Hacker Courses The online courses programmers keep recommending, ranked from 20 years of public forum comments.
i
#388 overall

CS108 Object-Oriented Systems Design

Stanford University

1 recommender · 1 thread · recommended in 1 year, 2017 · score 1.2

Go to course ↗

CS108 is Stanford's object-oriented systems design course, taught in the archived 1992 offering linked here (the course was C++ at the time). It covers OOP concepts such as inheritance, encapsulation, and interfaces, along with design and implementation of object-based projects.

One commenter remembers CS108 as one of their favorite courses of all time, taken with advisor Nick, and the course is mentioned in a thread about learning OOP well.

Programming Languagesintermediate#object-oriented design#c++#software design#stanford

Recommendations by year

20062026

What commenters said (2)

  1. Strongly recommendsbstrong2017in “Essential C”

    Oh, memories. I took CS107 in 1996, which was apparently the date this handout was written. Nick was my academic advisor, and his CS108 (which was C++ at the time) was one of my favorite courses of all time. Bunny World...

    Maybe I'm just a grumpy old programmer, but I feel like kids these days are missing out on something important by learning to program in a language that doesn't require them to truly grok memory management.

  2. Mentions__strisk2017in “Ask HN: Are there any courses/course materials that teach oop concepts well?”

    From my research so far, here is what I have found...

    the main topics that one should learn are: * some tidbit of history on why oop * fundamental object oriented concepts: inheritance, encapsulation, and interfaces * network of objects and their restricted interactions

    * modeling a domain using objects * documenting objects and their interactions * how are objects represented in memory * SOLID principles * solutions (design patterns) to common problems * concurrent design and thread safety in oop designs * tools in oop design (CRC cards, UML, etc.) * actually making projects and laying out the code in an implementation language.

    Here are some books I seem to like so far.

    books:

    Holger Gast - How to Use Objects: Code and Concepts (https://www.amazon.com/gp/product/0321995546) This book seems to be what I was looking for. It has an integrated practical approach using the Eclipse source code as examples for various object oriented concepts. I have cross-checked various sources and it seems like this book covers all relevant concepts including SOLID principles.

    Bertrand Meyer - Object-Oriented Software Construction https://www.amazon.com/Object-Oriented-Software-Construction... This seems to be a great reference. However, I haven't looked too thoroughly into it. I found a nice quote though.

    "Today, no one will call security if one of the cocktail guests declares object-oriented tastes. This is the buzzword effect, which has been dubbed mOOzak: the omnipresence, in the computer press, of O-O this and O-O that, causing a general dilution of the concepts. The words flow so continuously from the loudspeakers — object, class, polymorphism... — as to seem familiar, but are the concepts widely understood? Often not." (29.1)

    only found one course that I would probably refer to... courses: https://web.stanford.edu/class/archive/cs/cs108/cs108.1092 This has great course notes and projects to implement using object oriented programming.

Related courses

Keyboard

In the course grid
←↑→↓
Move between courses
Home End
Start / end of row (with Ctrl: first / last)
PgUp PgDn
Jump several rows
Enter
Open course
S
Save / unsave course
1–5
Best, Trending, Hidden gems, Evergreen, Saved
[ ]
Previous / next topic
On a course page
← →
Previous / next course in your list
S
Save / unsave
O
Open the course website
Esc
Back to the grid
Everywhere
/
Search
T
Light / dark theme
?
This help