In collaboration with
Join 112,284 Students

Approx. 4 months

Assumes 6hr/wk

(work at your own pace)

Course 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.

Why Take This Course?

  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.

Pre-Requisites and Requirements

No prior programming experience and knowledge is assumed or needed.

See the Technology Requirements for using Udacity

What Will I Learn


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

Instructors & Partners

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.

instructor 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.

San Jose State University