Who is this class for: The course assumes students are familiar with programming covered by most introductory courses, but it is explicitly designed not to be a particularly advanced course. Students should be comfortable with variables, conditionals, arrays, linked lists, stacks, and recursion (though recursion will be reviewed and expanded upon), and the difference between an interface and an implementation. Students should be eager to write programs in languages new to them. Part C of the course analyzes basic object-oriented concepts and contrast them with those of other languages, so familiarity with Java or a closely related language (e.g., C#) might be helpful for Part C, but it is not necessary for the assignments. This course is based on a course designed for second- and third-year undergraduates: not a first computer science course, but not an advanced course either. So it certainly will not cover everything in the beautiful world of programming languages, but it is a solid introduction. It is designed to be eye-opening and fascinating both for learners seeking a "third or fourth programming course" and for learners with more experience who are looking for a clear and precise foundation in programming languages. The assignments in the course are designed to be challenging, but with everything you need in the course content. An introductory video and another reading discuss assumed background in some more detail in Week 1 of Part A of the course.

Created by:  University of Washington

  • Dan  Grossman

    Taught by:  Dan Grossman, Professor

    Computer Science & Engineering
Commitment8-16 hours/week
How To PassPass all graded assignments to complete the course.
User Ratings
4.9 stars
Average User Rating 4.9See what learners said

How It Works

Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.

Help from Your Peers
Help from Your Peers

Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.


Earn official recognition for your work, and share your success with friends, colleagues, and employers.

University of Washington
Founded in 1861, the University of Washington is one of the oldest state-supported institutions of higher education on the West Coast and is one of the preeminent research universities in the world.
Ratings and Reviews
Rated 4.9 out of 5 of 75 ratings

I would say I got the exact the same reason as Dan for choosing computer science to be a huge part of my life: The true Awe-inspiring thing! And this is literally the best course I have ever take for the past 20 years

As far as I know this is the best series of courses that covers the major programming paradigms and the most valuable idioms that emerge from the different traits of these paradigms. I strongly recommend it to everyone studying computer science!

Interesting class and well taught. Part B was particularly fun.

Really helpful for understanding a lot of programming concept. Very wonderful experience. Thanks to Dan and Coursera!