Assignment 7 (FacePamphlet) went out early today. It's due on Friday, March 21 at 11:30AM. This is a hard deadline and no late days may be used on the assignment.
In this assignment, you'll build your own social network. In doing so, you'll pull together techniques from all over the course into a single, unified project. We hope that this final assignment of the quarter gives you a sense for just how much ground we've covered!
Good luck!
We've posted notes from the second midterm review session in case you'd like to study off of them. Hope this helps!
The second midterm exam will be held across 11 different rooms based on last name. Here's the room assignments:
Assignment 6 (NameSurfer) goes out today and is due on Wednesday, March 12 at 3:15PM. This assignment will give you experience with data visualization, object-oriented design, and interactors. We hope that you have fun exploring popular trends in US history!
The second midterm exam will be next Wednesday, March 5, from 7PM - 10PM. It covers material up through and including today's lecture on interactors.
We've posted a practice midterm exam. This was the second midterm we gave out last winter, which should be similar in structure to the upcoming exam. We'll release a second practice exam on Friday along with a solution set.
Midterms are graded! We handed back exams at the end of yesterday's lecture, and they are currently available for pickup in a marked filing cabinet in the Gates B Wing near Keith's office (under the entrance marked "Stanford Engineering Venture Fund Laboratories."). Solutions and statistics about the first midterm are available online.
If you have any questions about the exam, please feel free to ask us. If you believe that we made any errors grading your exam, you are welcome to submit the exam for a regrade no later than Wednesday, February 26 at 3:15PM by writing a short note describing what you'd like us to review and handing your exam to either Keith or Vikas. No regrades will be considered after this deadline.
Assignment 5 (Array Algorithms) goes out today and is due next Friday, February 28 at 3:15PM. This assignment explores arrays as applied to media processing, and we hope that you have fun building out the programs for this project!
This assignment comes with some prepackaged JAR files that contain the driver code for the assignment. Your job is just to implement the core logic for the various programs. If you'd like to access the full source of those JAR files (perhaps out of curiosity, or perhaps to do some extensions), you can download the JAR source files at the link for the assignment.
Assignment 4 (Readability
Indices) goes out today and is due next Wednesday, February 19 at 3:15PM.
This assignment explores strings, file processing, ArrayList
s,
decomposition, and modular design. It's a new assignment for CS106A, and
we hope you enjoy it!
We've posted notes from the first midterm review session in case you'd like to study off of them. Hope this helps!
The midterm will be held in three different locations this Tuesday from 7PM - 10PM, divvied up by last name:
If you have requested to take the exam at an alternate time, you should receive an email with us confirming the alternate exam time and place later this afternoon.
Good luck!
The review session for the first midterm is tomorrow, Sunday February 9, at 1pm in Hewlett 200. Come with questions! If you cannot make it, slides from the session will be posted here.
The first midterm exam has been rescheduled for Tuesday, February 11 from 7PM - 10PM. I sincerely apologize for the inconvenience. Please refer to the email I sent out to the class list for more information.
Because this new date is so close to the Breakout due date, I have given everyone in the course an extra late period.
Please feel free to contact me if you have any questions.
To help you prepare for the midterm, we've released a practice midterm. This was the midterm from last Winter quarter, so it should be comparable in style and substance to the actual midterm. We'll release solutions to this exam later in the week.
Assignment 3: Breakout goes out today and is due on Monday, February 10 at 3:15PM. This classic CS106A assignment combines together events, animation, and randomness into a nifty arcade game that you'll definitely want to share with your friends. We hope that you have fun with this assignment!
Miles will be holding assignment review hours on Tuesday, February 4 from 7:30PM - 8:30PM in Braun Auditorium. We'll get notes from that review session posted as soon as possible.
Good luck!
Keith's office hours will now be held in Gates 300 rather than the previous location. The times are the same as before.
Assignment 2: Welcome to Java goes out today and is due on Friday, January 31 at 3:15PM. This will be your first introduction to Java programming. The programs in this assignment range from simple console programs up through artistic composition, and we hope you enjoy it!
Good luck!
Assignment 1: Karel the Robot goes out today and is due on Friday, January 17 at 3:15PM. In this assignment, you'll get to play around with methods and control structures and will see how to use computers to solve complex problems using simple tools.
Good luck!
Welcome to CS106A! We've got an exciting quarter ahead of us and you're in for a real programming treat. Over the next ten weeks, we'll explore programming methodology, standard programming idioms and techniques, and applications of computer science across a variety of disciplines. It's going to be a lot of fun, and I hope that you're able to join us!
In the meantime, feel free to check out the course information handout and syllabus to learn more about what this class is all about, the prerequisites, and the course policies. If you have any questions in the meantime, feel free to email me at htiek@cs.stanford.edu with questions.
See you soon!
00: Course Information
01: Syllabus
02: Course Placement
03: Honor Code
04: Downloading Eclipse
05: Karel in Eclipse
07: Submitting Work
09: Programming Patterns
11: Control Statements
13: Random Numbers
15: Coding Style
18: Practice Midterm
18S: Practice Midterm Solns
19: Exam Strategies
20: 2nd Practice Midterm
20S: 2nd Practice Midterm Solns
22S: Midterm Solutions
27: Practice Second Midterm
27S: Practice Second Midterm Solns
28: Practice Second Midterm II
28S: Practice Second Midterm II Solns
30S: Second Midterm Solns
33: JAR Files
Section Handout 1
(solutions)
Section Handout 2
(solutions)
Section Handout 3
(solutions)
Section Handout 4
(solutions)
Section Handout 5
(solutions)
Section Handout 6
(solutions)
Section Handout 7
(solutions)
Section Handout 8
(solutions)
Assignment 1: Karel the Robot
Handout |
Starter Files
Assignment 2: Welcome to Java!
Handout |
Starter Files |
Notes
Assignment 3: Breakout
Handout |
Starter Files | Demo |
Notes
Assignment 4: Readability Indices
Handout |
Starter Files | Notes
Assignment 5: Array Algorithms
Handout |
Files | Demo |
JARs | Notes
Assignment 6: NameSurfer
Handout |
Files |
Notes
Assignment 7: FacePamphlet
Handout |
Files
| Demo
| Notes
Keith (Gates 300)
Tue 10:15AM - 12:15PM
Wed 4:30PM - 6:30PM
Vikas (Gates 160)
Tue/Thu 2:15PM - 4:15PM
Lecture Videos
Download Eclipse
Assignment Feedback
Section Sign-Ups
CS106A YouTube Channel
ACM Documentation
Karel Book
Blank Karel Project
Blank Java Project
LaIR Helper Hours
Question Hut, Q&A site
00: Introduction
Slides | Code
01: Programming Karel
Slides | Code
02: Problem Solving w/Karel
Slides | Code
03: Introduction to Java
Slides
04: Expressions, Control Statements
Slides | Code
05: Control Statements
Slides | Code
06: Objects and Graphics
Slides | Code
07: Methods
Slides | Code
08: Animation
Slides | Code
09: Randomness
Slides | Code
10: Events
Slides | Code
11: Strings I
Slides | Code
12: Strings II
Slides | Code
13: File Processing
Slides | Code
14: ArrayList
Slides | Code
15: Testing
Slides | Code
16: Arrays
Slides | Code
17: Multidimensional Arrays
Slides | Code
18: HashMap
Slides | Code
19: Graphs and Networks
Slides | Code | Data
20: Interactors
Slides | Code
21: Classes
Slides | Code
22: Networking
Slides | Code
23: Machine Learning
Slides | Code
24: Efficiency
Slides
25: Security and Privacy
Slides
26: Programming in the Real World
Slides | Code
27: Where to Go from Here
Slides