The final programming assignment of the quarter, Assignment 8 (FacePamphlet) goes out today. It's due on Tuesday, March 17 at 8:30AM (note the unusual due time of 8:30AM). This assignment asks you to design a program for maintaining a social network. You can create profiles, set status messages, and create friendships. Conceptually, there's not much new in this assignment from NameSurfer, and we hope that this assignment helps solidify your understanding of the course content and serves as a fitting capstone to your CS106A experience. After all - you'll have gone from zero to building your own social network in ten weeks!
The second midterm exam locations are the same as the first! Rooms are assigned by last (family) names as follows:
Good luck!
Assignment 7 (NameSurfer) goes out today. It's due on Monday, March 9 at 3:15PM. This assignment will give you a chance to play around with classes, interactors, HashMaps, inheritance, and the graphics system. We hope that you enjoy it!
In case you missed the practice exam tonight, we've released electronic copies of the practice second midterm and solutions.
We recommend that you write out your answers on paper and then check them electronically. We've released a Java project with starter code for trying out the coding problems that you can use to help test out your answers. Hope this helps!
The first midterm exam is coming up next Tuesday, March 3, from 7PM - 10PM. The exam is closed-book and closed-computer. You may, however, have one double-sided sheet of 8.5" × 11" paper with you when you take the exam. We'll be providing this Java and library reference handout during the exam.
The exam covers material up through and including Wednesday's lecture on graphs and networks. The exam will primarily focus on the topics tested on Assignments 5 and 6 but will include at least one question on HashMaps. Interactors will not be tested. Due to the nature of the material in this course, the exam may indirectly test topics from earlier in the quarter (loops, methods, etc).
We will be holding a practice exam on Thursday from 7PM - 10PM in Cubberly Auditorium. It's purely optional, but highly recommended as a way to get practice writing code on paper under exam conditions. We'll release the exam and solutions electronically this evening in case you're unable to make it.
We are currently finalizing the exam locations, and we'll post room assignments later this week.
If you are interested in adding extensions to Assignment 6 and would like to access the full source for the assignment starter code, you can download the full source using this link. For simplicity, we recommend only downloading these projects if you're adding in extensions; the default starter code is all you need for the base assignment.
The first midterm exam has been graded! If you haven't already picked up your exam, they're available for pickup right outside of Keith's office (Gates 178). You're welcome to stop by at your convenience.
We've released a handout with statistics, solutions, and common mistakes that we hope will give you a better sense for your performance on the exam and how to improve going forward.
If you believe that we've made any grading errors on your exam, you are welcome to submit a regrade request. To do so, please print out a copy of the regrade request form, fill it out, and staple it to the front of your exam. You can then hand it to either Keith or Alisha at their office hours or at lecture. All regrade requests must be received by 4:15PM on Wednesday, February 26.
Assignment 6 (Array Algorithms) goes out today and is due on Friday, February 27. In this assignment, you'll get to play around with arrays, image processing, and sound processing and will build up a much stronger intuition for how, when, where, and why to use arrays. We hope you have fun with this one!
The first midterm will be spread across seven different testing locations, which are assigned by last (family) name as follows:
Good luck!
The first midterm exam is coming up next Tuesday, February 10, from 7PM - 10PM. The exam is closed-book and closed-computer. You may, however, have one double-sided sheet of 8.5" × 11" paper with you when you take the exam. We'll be providing this Karel and library documentation handout during the exam as a reference.
The exam covers material up through and including today's (Wednesday's) lecture on strings and string processing. The focus of the exam will primarily be on the material explored on the first four programming assignments.
We will be holding a practice exam tonight from 7PM - 10PM in Cemex Auditorium. It's purely optional, but highly recommended as a way to get practice writing code on paper under exam conditions. We'll release the exam and solutions electronically this evening in case you're unable to make it.
We are currently finalizing the exam locations, and we'll post room assignments later this week.
Assignment 4 (Breakout!) goes out today and is due next Monday, February 9, at 3:15PM. In this classic CS106A assignment, you'll get a chance to combine the skills you developed in Assignments 2 and 3 with event processing to build your owen version of the classic arcade game. We hope that you have a lot of fun with this assignment!
Good luck!
Assignment 3 (Problem-Solving in Java) goes out today and is due in one week (Monday, February 2). This assignment picks up where Assignment 2 leaves off and asks you to design a collection of smaller Java programs, some graphical, some text-based. We hope that you find these problems interesting and come away from this assignment with a firm grasp of loops, methods, variables, parameters, and return statements.
Good luck!
Assignment 2 goes out today and is due on Monday, January 26 at 3:15PM. In this assignment, you'll explore new features of Java that weren't covered in Karel (graphics, variables, parameters, and constants) and will get a better command of how these tools work. As always, feel free to email your section leader, stop by office hours, or visit Alisha's and Keith's office hours if you have any questions.
Good luck!
The first programming assignment of the quarter goes out today. It's due on Friday, January 16 at 3:15PM. In this assignment, you'll get your first practice programming Karel the Robot and will write your very first programs!
We recommend that you try to complete the Collect Newspaper Karel problem as soon as possible so that you have time to iron out any Eclipse installation issues that might come up. From there, you'll then have a full week to complete the remaining three programming problems.
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!
27: JAR Files
25S: Midterm 2 Solutions
25R: Midterm 2 Regrade Request Form
22: Practice Midterm 2
22S: Practice Midterm 2 Solns
18S: Midterm Solutions
18R: Regrade Request Form
15: Practice Midterm
15S: Practice Midterm Solutions
07: Submission Instructions
05: Using Karel in Eclipse
04: Downloading Eclipse
03: Honor Code Policies
02: Course Placement
01: Syllabus
00: Course Information
Section Handout 8
(solutions)
Section Handout 7
(solutions)
Section Handout 6
(solutions)
Section Handout 5
(solutions)
Section Handout 4
(solutions)
Section Handout 3
(solutions)
Section Handout 2
(solutions)
Section Handout 1
(solutions)
Assignment 8: FacePamphlet
Handout |
Starter Files
Assignment 7: NameSurfer
Handout |
Starter Files
Assignment 6: Array Algorithms
Handout |
Starter Files
Assignment 5: The Java String Quartet
Handout |
Starter Files
Assignment 4: Breakout!
Handout |
Starter Files
Assignment 3: Problem-Solving in Java
Handout |
Starter Files
Assignment 2: Welcome to Java!
Handout |
Starter Files
Assignment 1: Karel the Robot
Handout |
Starter Files
Keith (Gates 178)
Thursday 1:00PM - 4:00PM
Alisha (Gates 160)
Tuesday 1:00PM - 4:00PM
Wednesday 4:15PM - 5:15PM
Lecture Videos
Download Eclipse
Karel Reader
Section Sign-Ups
Blank Karel Project
Blank Java Project
ACM Docs
27: Where to Go from Here
Slides
26: Your Questions
Slides
25: Programming in the Real World
Slides | Code
24: Passwords
Slides
23: Networking
Slides | Code
22: Machine Learning
Slides | Code
21: Classes
Slides | Code
20: Graphs and Networks
Slides | Code | Data
19: HashMap
Slides | Code
18: Interactors
Slides | Code
17: Testing and Debugging
Slides | Code
16: Multidimensional Arrays
Slides | Code
15: Arrays
Slides | Code
14: ArrayLists
Slides | Code
13: File Processing
Slides | Code
12: Strings
Slides | Code
11: Objects and Parameters
Slides | Code
10: Events
Slides | Code
09: Animation
Slides | Code
08: Randomness and Returns
Slides | Code
07: Control Structures Revisited
Slides | Code
06: Methods and Parameters
Slides | Code
05: Control Structures
Slides | Code
04: Graphics in Java
Slides | Code
03: Intro to Java
Slides | Code
02: Problem-Solving with Karel
Slides | Code
01: Programming Karel
Slides | Code
00: Introduction
Slides | Code