Stanford Programming Methodology Course Online

Ranked #2,321 in Education, #56,121 overall

Stanford's Programming Methodology Online Course Materials

As a part of Stanford Engineering Everywhere, Stanford has made course materials for several classes available online including videos of the lectures. Programming Methodology is the first of 3 introduction to computer science courses they have put the materials online for.

Of course you don't get college credit for following along with the course and you don't have an instructor to ask for help, but you still can learn from it. I have started following along with the course myself and I think the instructor is very good. The homework assignments are a little challenging but they do say you learn programming by programming.

Also, this class was recorded in 2007, but the introductory programming principles are still valid today of course.

Please note, I'm not enrolled at Stanford, I'm just someone who is trying to follow along with the lecture videos and doing the assignments on my own. I am not really able to answer any questions you have about the course. If you do need help, there is a Stanford Engineering Everywhere group on Facebook for that purpose. See Discussions which has a thread for CS106A. It doesn't seem to be that active lately. Facebook is arching groups and migrating to new groups in the next few months so not sure if the links are going to change or not.

Where to find Course Materials

book icon for Programming Methodology Course info LensSyllabus, Handouts, Lectures, Assigments, Exams, and Software
The course syllabus, handouts, lectures, assignments, exams and software are all available through a link on the course home page.

The Syllabus (it links directly to the syllabus pdf file) is useful because it tells you the reading that goes with each lecture, as well as when the assignments were due.

The handouts page lets you download the handouts that were given out at each lecture.

The lecture page has links to access all 28 lecture videos in different ways (ie. YouTube, iTunes, etc.)
You might also find these links useful: Programming Methodology Playlist on YouTube and Programming Methodology on iTunes

The assignments page has section assignments that were gone over in sections (not the main class, but the students in the class had a weekly session to attend with a TA and those were not recorded) and below those are the 7 main assignments for the class. The solutions for main assignments are not available, but the instructions tell you exactly what the program needs to do, so I just make sure that the assignments I try do everything they are supposed to, then consider them done and move on.

The exams page has a practice miderm and practice final available for download along with the solutions.

The software page has a link where you can download the Stanford version of Eclipse, a Java IDE that they used for the course. The Karel assignments won't work without this version of Eclipse. It is available for both Mac and PC.

Books:
Karel the Robot Learns Java is a 35 page tutorial where you start off programming with Karel which is an easy way to get started quickly. I didn't see it on the course's home page. If you search Google for 'Karel the Robot Learns Java' you should be able to find the latest pdf version on Stanford's site. This will get you through the first week of lectures and the first assignment, then it will be time for the Java book.
The Art and Science of Java by Eric Roberts is the Java/Programming principles textbook, and they do not make the whole thing available for free. I bought it so I could do the reading you are supposed to do in class. This link also has slides and code for the book.

Keeping Focused on the Course

One thing I find helpful when doing any kind of studying or course work is the Pomodoro technique. It is a time management technique where you work in increments of 25 minutes, then take a short break (and sometimes a longer break). The technique can help curb procrastination and keep you focused. There's a free book on that site that teaches you how to do it.

It says you need a timer and you can just use the cleverly named site e.ggtimer.com - it has an option to time a pomodoro plus 5 minute break by going to e.ggtimer.com/pomodoro

Stanford Programming Methodology Video Lectures

On the course page under lectures you will find links to the lecture videos in different formats. The resolution does not seem to be that great on any of the ones I've tried. I have been watching them on YouTube because it's easiest, but you can also get them on iTunes, and a few other ways. Below I have embedded YouTube videos for lectures for ease of access and I might make some notes about them as I go through the course (no promises though.)

Programming Methodology: Lecture 1

Skip to 41:35 where the real instruction starts if you don't want to hear all the administrative info he goes over at the first class. I like that he encourages students to ask questions by throwing a candy bar to anyone who asks a question. In my experience, teachers usually want you to give them a correct answer before they give you something.
powered by Youtube

Programming Methodology: Lecture 2

powered by Youtube

Programming Methodology Lecture 3

powered by Youtube

Programming Methodology Lecture 4

powered by Youtube

Programming Methodology Lecture 5

powered by Youtube

Programming Methodology Lecture 6

Starting with this lecture, I thought it would be helpful if I started writing down what times certain topics are discussed on my first time through the lecture so I can go back and review them if needed. If it has a - in front of the line below, that means it is a subtopic.

0:35 - Getting input from user with readInt() and readDouble()
1:20 - Operators +, -, *, /, %
3:30 - Order of Precedence
5:35 - Casting
- 8:30 - example program that averages 2 numbers and can use casting
12:49 - Shorthand
15:25 - Constants
23:50 - Boolean / Boolean Comparisons
- 30:06 - Short Circuit Evaluation
32:00 - Statements / Statement Blocks (Compound Statements)
- 35:06 - if statement
- 35:44 - if-else statement
- 36:21 - cascading if
- 38:11 - switch statement
- 40:36 - for loops
- 44:40 - while loop
powered by Youtube

Programming Methodology Lecture 7

0:24 - Cast
2:00 - While Loop / Loop and a Half
9:39 - For versus While
- 11:00 Checkerboard Program (if it's hard to see the text of the program, there's a similar program in Chapter 4 of the book - page 123)
22:05 - Methods
- 28:00 - How to define a method
- 33:45 - Return Statement
- 36:22 - Multiple Return Statements
- 38:17 - Predicate Methods
- 39:09 - Full Program - Factorial Example
- 46:40 - Returning Objects
powered by Youtube

Programming Methodology Lecture 8

0:23 - Methods / Information hiding
4:41 - Method - void return type
5:47 - Parameter passing
- 7:55 - FactorialExample program
- 14:23 - Bad Times with Methods (a buggy program example)
- 16:45 - Good Times with Methods
- 18:40 - Mona Lisa example/illustration
20:42 - Using Classes - client of a class vs implementor of class
- 21:36 - random numbers
- 24:54 - Instance variables
- 31:30 - Random Number Generator Program Example
- 33:19 - Methods to Generate Random Values
- 35:40 - Simple Random Example
- 36:22 - Roll Dice Progam Example
- 42:33 - How to Generate Random #s - Black Box illustration
-- 44:40 Seed numbers
powered by Youtube

Programming Methodology Lecture 9

powered by Youtube

Programming Methodology Lecture 10

powered by Youtube

Programming Methodology Lecture 11

powered by Youtube

Programming Methodology Lecture 12

powered by Youtube

Programming Methodology Lecture 13

powered by Youtube

Programming Methodology Lecture 14

powered by Youtube

Programming Methodology Lecture 15

powered by Youtube

Programming Methodology Lecture 16

powered by Youtube

Programming Methodology Lecture 17

powered by Youtube

Programming Methodology Lecture 18

powered by Youtube

Programming Methodology Lecture 19

powered by Youtube

Programming Methodology Lecture 20

powered by Youtube

Programming Methodology Lecture 21

powered by Youtube

Programming Methodology Lecture 22

powered by Youtube

Programming Methodology Lecture 23

powered by Youtube

Programming Methodology Lecture 24

powered by Youtube

Programming Methodology Lecture 25

powered by Youtube

Programming Methodology Lecture 26

powered by Youtube

Programming Methodology Lecture 27

powered by Youtube

Programming Methodology Lecture 28

The last one!

powered by Youtube

by

fefe

I love sharing about some of my interests on Squidoo such as various technology topics, television, anime, and shopping for gifts.

Feeling creative? Create a Lens!