Techniques of Computer Science

Thursday, November 15: Review Tuesday, November 13: ArrayLists Thursday, November 8: Arrays of objects Tuesday, November 6: Objects with arrays Thursday, November 1: Arrays of arrays Tuesday, October 30: Arrays Thursday, October 25: Exam Tuesday, October 23: Event handling Tuesday, October 16: Java graphics Thursday, October 11: Object-oriented programming Tuesday, October 9: Inheritance Thursday, October 4: Object interaction Tuesday, October 2: Handling references Thursday, September 27: Managing data Tuesday, September 25: Defining classes Thursday, September 20: Quiz Tuesday, September 18: Defining methods Thursday, September 13: Review Tuesday, September 11: Using objects Thursday, September 6: String manipulation Tuesday, September 4: Java coding Thursday, August 30: Introduction
Course overview

This course will continue your development as a programmer, strengthening your coding skills and introducing some more advanced concepts, including:

We will be working in Java, a mature language that has maintained a high level of popularity across several decades.


CS 140 or other prior experience with fundamental programming concepts.


We will be using a free online text for this course. Reading is likely to improve your understanding of concepts from class, and will sometimes teach you additional details.

Office hours

My office hours this semester are 3-4pm every weekday. If you have other commitments during those times, we can make other arrangements.


If your learning or participation in this course may be affected by a disability or any other factor, please talk to me early in the semester so that we can arrange appropriate accommodations. I will do my best to ensure that everyone can learn effectively.


Being in class is crucial for your learning in this course. Absences will leave holes in your understanding of course concepts. If you must miss a class, you are expected to work to get caught up before the next class.


This class is normally taught in the Bewkes computer labs, but this semester it was too big to fit. If you have a laptop, please bring it to class every day. If you donít have one, please meet with me. You will still have access to the computer labs outside of class.

Graded work

Your final grade will be a weighted average of exams (40%), projects (30%), labs (20%), and quizzes (10%). This table shows how averages translate to the 4-point scale. Please note that I do set a high bar for a 4.0 and this course does not have extra credit.

Academic integrity

It is important to me that you conduct your work in this course with academic integrity. That means abiding by the specific policies outlined below, as well as the general guidelines in the Student Handbook. It is my responsibility to report violations of these policies to the Dean.


There will be two kinds of assignments: labs (short exercises) and projects (longer programs). Labs are individual, and projects may be done in pairs.


There will be a midterm exam (likely October 16-25) and a final exam (on December 19) with written problems that ask you to explain concepts and write small chunks of code.


There will be two quizzes (likely September 18-20 and November 27-29) to give you practice for the exams.


Things you might find useful:

We will be using Sakai for homework submission and grade tracking.