-
Notifications
You must be signed in to change notification settings - Fork 131
Stanford Introduction To Computer Science Programming Methodology CS106A Class Guide
Anas Alkhatib edited this page May 25, 2021
·
41 revisions
This is a guide for anyone who is interested in learning computer science through the free online Stanford Introduction To Computer Science Programming Methodology CS106A Class. The lectures and assignments are broken up so someone with a full-time job will be able to complete these on the side during the week.
- All the course materials are online and free! Here is the link to the course page: https://see.stanford.edu/Course/CS106A
- Some of the software listed on the course page is not up to date, so if you have a newer computer, make sure to visit the student version of the course page: http://www.stanford.edu/class/cs106a
- Here is the link to the book Karel the Robot book (free!): https://cs.stanford.edu/people/eroberts/karel-the-robot-learns-java.pdf
- Here is the link to The Art and Science of Java book (not the most recent edition, but free): http://people.reed.edu/~jerry/121/materials/artsciencejava.pdf
- Complete the suggested assignments below on a weekly basis
- Download and set up Eclipse (the software you will be using): http://web.stanford.edu/class/cs106a/eclipse.html
- Complete watching Lectures 1 and 2 - the first lecture is more about class formalities, so you can probably skip most of it. If you watch it via the "View Now" links instead of YouTube, it'll break it out by sections, so you can skip the more administrative parts of the lectures. Here is the link to the lectures: http://see.stanford.edu/see/lecturelist.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111
- Complete Problems 1 and 2 of the first assignment - make sure to scroll all the way down this page to get to it: http://see.stanford.edu/see/materials/icspmcs106a/assignments.aspx. You should do the assignment distributed after lecture 2 (not the lecture 4 one that is on the top of that page). If you're really stuck, examples of possible solutions for Assignment 1 are located here: https://github.com/NatashaMurashev/Stanford-CS-106A/blob/master/Assignment1/CollectNewspaperKarel.java
- Watch Lecture 3: http://see.stanford.edu/see/lecturelist.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111
- Complete Problems 3 and 4 of the first assignment: http://see.stanford.edu/see/materials/icspmcs106a/assignments.aspx. If you're really stuck, examples of possible solutions for Assignment 1 are located here: https://github.com/NatashaMurashev/Stanford-CS-106A/blob/master/Assignment1
- Extra Credit: Post your answers on Github. If you have a mac, simply download Github for Mac and sync your folder where you keep your assignments with github by creating a "new repository". It will automatically detect any changes you make to the folder (adding new assignments / answers for example), which you'll be able to commit and sync as well. Here is how to set up git for windows: http://help.github.com/win-set-up-git/. You might need to use your terminal to get this fully set up. Ask your developer friends for help if you need to!
- Complete section Assignment 1: http://see.stanford.edu/materials/icspmcs106a/10-section-handout-1.pdf. Here are instructions for setting it up: http://natashatherobot.wordpress.com/2011/10/30/karel-defends-democracy-assignment-and-solution/ . This is the last Karel the Robot assignment and should be simple if you figured out all the other ones :)
- Watch Lectures 4 and 5: http://see.stanford.edu/see/lecturelist.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111
- Watch Lecture 6 and the first 20 minutes of Lecture 7: http://see.stanford.edu/see/lecturelist.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111
- Complete problems 1 and 2 of Assignment 2: http://see.stanford.edu/materials/icspmcs106a/13-assignment-2-simple-java.pdf
- Complete problems 3-6 of Assignment 2: http://see.stanford.edu/materials/icspmcs106a/13-assignment-2-simple-java.pdf
- Complete Section Assignment 2: http://see.stanford.edu/materials/icspmcs106a/15-section-handout-2.pdf - you can create a Class by clicking on the C+ button in the green circle in Eclipse.
- Watch the rest of Lecture 7
- Watch Lectures 8
- Set up the Bricks in Assignment 3
- Watch Lectures 9 and 10
- Complete Section Assignment 3
- Watch Lecture 11
- Create a paddle and a bouncing ball in Assignment 3
- Complete Assignment 3
- Watch Lectures 12 and 13
- Complete Section Assignment 4
- Watch Lecture 14
- Complete Part 1 of Assignment 4 - the Hangman Game.
- Complete Part 2 of Assignment 4 - the Hangman Game.
- Complete Midterm Problems
- Watch Lectures 15 and 16
- Finish Part 3 of Assignment 4 - the Hangman Game.
- Complete Section Assignment 5
- Watch Lecture 17 and 18
- Complete Section Assignment 6
- Start working on Assignment 5 - Yahtzee!
- Finish working on Assignment 5 - Yahtzee!
- Watch Lecture 19, 20, and 21
- Complete Section Assignment 7
- Watch Lecture 22
- Complete parts 1 and 2 of Assignment 6 - NameSurfer
- Finish Assignment 6 - NameSurfer
- Start Assignment 7 - FacePamphlet
- Watching the rest of the lectures is optional.
- Finish Assignment 7 - FacePamphlet
- Watching the rest of the lectures is optional.
- Complete the Practice Final