Opening the iTunes Store.If iTunes doesn't open, click the iTunes application icon in your Dock or on your Windows desktop.Progress Indicator
Opening Apple Books.If Apple Books doesn't open, click the Books app in your Dock.Progress Indicator

iTunes is the world's easiest way to organize and add to your digital media collection.

We are unable to find iTunes on your computer. To download from the iTunes Store, get iTunes now.

Already have iTunes? Click I Have iTunes to open it now.

I Have iTunes

Programming Abstractions

by Stanford

This course material is only available in the iTunes U app on iPhone or iPad.

Course Description

This course is the natural successor to Programming Methodology and covers such advanced programming topics as recursion, algorithmic analysis, and data abstraction using the C++ programming language, which is similar to both C and Java. If you've taken the Computer Science AP exam and done well (scored 4 or 5) or earned a good grade in a college course, Programming Abstractions may be an appropriate course for you to start with, but often Programming Abstractions (Accelerated) is a better choice. Programming Abstractions assumes that you already have familiarity with good programming style and software engineering issues (at the level of Programming Methodology), and that you can use this understanding as a foundation on which to tackle new topics in programming and data abstraction.

Topics: Abstraction and its relation to programming. Software engineering principles of data abstraction and modularity. Object-oriented programming, fundamental data structures (such as stacks, queues, sets) and data-directed design. Recursion and recursive data structures (linked lists, trees, graphs). Introduction to time and space complexity analysis. Uses the programming language C++ covering its basic facilities.

Prerequisites: Solid performance in Programming Methodology and readiness to move on to advanced programming topics. A comparable introductory programming course (including high school AP courses) is often a reasonable substitute for our Programming Methodology course.

This Stanford course was taught on campus three times per week in 50 minute lectures for the Stanford Engineering Everywhere Initiative.

For more online learning opportunities, please visit Stanford Online.

Customer Reviews

Poor video quality

Great intro teacher, but video quality is just low enough that you can't read the example code.

Assignments out of date

The teaching in this class is great. Unfortunately, because the class is was recorded in 2008, all the files for the assignments are out of date. It's a configuration nightmare to get a compiler set up and using all of Stanford's custom libraries. You can find the current semester's libraries online, but they have been modified since this class was recorded. It's dissapointing that you can't get the full experience of this class.

A hassle.

This course doesn't provide you with the instructions you need to get started. The lectures say you have to download VB 2008, the handout says you have to have VB 2005 to run the library's, and nothing works from the start.

I stuck through CS106A only to hit a wall with CS106B. I wish they would provide consistent material for this course so I could get started, but since neither the lectures nor the book explain how to do anything if you don't have previous experience in c++ I guess I have to google everything until I can understand what they assume everyone knows.

They rely too heavily on teaching the important parts OUTSIDE of the lectures and don't document it.