CS 161: Computer Science I

Syllabus

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

Text

Java: An Open Introduction

The textbook is Java: An Open Introduction, by myself. It is available for free to my students. You can read it here, but you will need to get the login and password from me.

Other Resources

Additional resources will be placed here.

Homework

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 on Canvas.

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 Readings
1 Hello World Sep. 5 Basic Math Sep. 10 JOI 0, 1.1
2 Conversation Sep. 12 Strings Sep. 15 JOI 1
3 If Math Sep. 19 Calculator Sep. 22 JOI 2
4 Loop Lab Sep. 26 Loop Math Sep. 29 JOI 3
5 Partners Oct. 3 Business Oct. 13 JOI 4
G4G Arrays
Midterm I: Thursday, October 10
6 Selection Sort Oct. 17 Bubble Sort Oct. 22 JOI 15.1-15.2
Fall Break!
7 Rabbits & Foxes Oct. 24 Sieve of Eratosthenes Oct. 27 JOI 5
8 Vector Object Oct. 31 Fraction Object Nov. 3 Vector.java (docs)
TestVectors.java
Fraction.java (docs)
TestFractions.java
JOI 6
Midterm II: Thursday, November 7
9 Card Object Nov. 14 CardSet Object Nov. 17 TestCards.java JOI 7
10 Pretty Pictures Nov. 21 Fantasy Game Nov. 24 GraphicsWindow.java (docs)
terrain.png
wizard.png
Thanksgiving!
11 Chess Problems Dec. 4 setup.cp
problem1.cp
chess-pieces.png
JOI 8.1-8.2
12 Checkers Dec. 5 Card Shuffling Dec. 11 cards.png
Final Exam: Friday, December 20 (8am)