CS 161: Computer Science I


You can download the syllabus here. The syllabus includes information on grading, course goals, and policies I will use in teaching this course.


Eck Text McFadyen Text Horstmann Text

You have a choice of textbooks:

Finally, my JOI textbook can be found here. (You will need the password, and it is a work in progress.)

Other Resources

Additional resources will be placed here.


Specific assignments are given below. Please note that homeworks are very important, and make up a very large portion of your grade. If you fall behind, you will likely do poorly on the exams as well. Homework should follow the specifications given here.

Homeworks can be turned in here.

Exam Grades

The exam distributions will be placed here, after they are graded.

Class Schedule

This is a problable schedule for the class. I may change it depending on how the class progresses. We will start by talking about basic data structure and control, and from there move into more complicated object-oriented programs.
Lab Lab Date Homework HW Due Date Files McFadyen
1 Hello World Sep. 2 Basic Math Sep. 6 Ch. 1, 2.1-2.4 Ch. 1, 2.1-2.2
2 Conversation Sep. 9 Strings Sep. 12 2.5-2.7
(skip JOptionPane)
3 If Math Sep. 16 Calculator Sep. 19 3.1-3.3 Ch. 3
4 Loop Lab Sep. 23 Loop Math Sep. 26 3.4-3.6, Ch. 4 Ch. 4, 5
Midterm I: Thursday September 30
5 Partners Oct. 7 Business Oct. 10 Ch. 5-6 6.1-6.4
6 Selection Sort Oct. 14 Bubble Sort Oct. 19 Wikipedia bubble sort
& selection sort
skim 14.1-14.3
Fall Break!
7 Rabbits & Foxes Oct. 21 Sieve of Eratosthenes Oct. 24 6.5-6.8
8 Vector Object Oct. 28 Fraction Object Oct. 31 Vector.java (docs)
Fraction.java (docs)
Ch. 7 Ch. 8
Midterm II: Thursday November 4
9 Card Object Nov. 11 CardSet Object Nov. 14 TestCards.java
10 Pretty Pictures Nov. 18 Fantasy Game Nov. 21 GraphicsWindow.java (docs)
11 Chess Problems Dec. 1 setup.cp
Ch. 7
12 Checkers Dec. 2 Card Shuffling Dec. 8 cards.png
Final Exam: Friday, December 17 (8am)