This Java-based computer programming course is a college-prep course for students aspiring to be computer science majors or a foundation course for students who wish to study other STEM fields. Prior knowledge of computing or programming in Java or other languages is not necessary for this course, although experience with mathematical logic is preferred. The course will familiarize students with programming methodology, data structures, algorithms, data and procedural abstraction, and social context of computing. The content and rigor of the course are modeled after the College Board’s AP Computer Programming A course. Students will learn about object-oriented programming using Java programming language, including objects and methods found in the AP CS Java Subset. Prior to the class, each student will need to be provided with a computer that has Internet connection and Eclipse development environment installed on it (Eclipse is a free Internet download from https://eclipse.org). At the beginning of the course, students will learn by analyzing code written by someone else. They will progress to defining interfaces that describe real-world objects and problems, then implementing interfaces that are created for them, and at the end of the course students will create their own interfaces and implement them while considering things such as time/space efficiency, code reusability, and data abstraction. We hope to leverage the strengths of our online teaching platform, Webex, to provide students with an exciting and versatile learning environment. It allows strong opportunities for instructor to student interaction through screen sharing, file sharing, file editing, and private messaging. Instructors will be able to integrate multimedia presentations easily.