Join 113,761 Students
In collaboration with

We're still building the full experience
Approx. 4 months
(work at your own pace)

Class Summary

In this class, you will learn basic skills and concepts of computer programming in an object-oriented approach using Java.

You will learn concepts like classes, methods and argument passing, loops, and general problem solving ability that will become building blocks to your programming skills.

What Will I Learn?

  1. How to analyze and explain the behavior of programs involving the fundamental program constructs.
  2. How to write short programs that use the fundamental program constructs including standard conditional and iterative control structures.
  3. How to design and implement your own classes of Objects given desired attributes and behaviors.
  4. How to reason about class hierarchies.
  5. How to write good documentation so your code can be re-used.
  6. How to use a real-world programming environment and a debugger.

What Should I Know?

No prior programming experience and knowledge is assumed or needed.


Lesson 1: Introduction to Computers, Programming Languages, Algorithms, and the Java Programming Environment

Lesson 2: Introduction to Classes and Objects

Lesson 3: Graphics

Lesson 4: Fundamental Data Types

Lesson 5: Decisions

Lesson 6: Iterations

Lesson 7: Arrays, ArrayLists and Simple Array Algorithms

Lesson 8: Methods (Parameter Passing, Instance vs. Static Methods)

Lesson 9: Inheritance

Course Instructors

instructor photo

Cay Horstmann


Cay grew up in Northern Germany and attended the Christian-Albrechts-Universit├Ąt in Kiel, a harbor town on the Baltic sea. He received a M.S. in computer science from Syracuse University, and a Ph.D. in mathematics from the University of Michigan in Ann Arbor. For four years, he was VP and CTO of an Internet startup that went from 3 people in a tiny office to a public company. He now teaches computer science at San Jose State University. In his copious spare time, he writes books and articles on programming languages and computer science education.

course developer photo

Cheng-Han Lee

Course Developer

Cheng-Han worked as a program manager at Microsoft prior to Udacity, and he studied at the University of Texas at Austin and University of California at San Diego for his degrees in computer science.

Outside of work, Cheng-Han is a world traveler. He has lived in Taiwan, Shanghai, Charleston (SC), Dallas, Austin, San Diego, Seattle, and now the Bay Area. In addition to traveling, he likes to find new parks to explore, new venues to visit, and new restaurants to try.