COMS S1007

Object-Oriented Programming and Design in Java

Summer 2008

Announcements

A description of the final project is now available. Please note that the section on testing has changed.

A tutorial for using NetBeans is available here.

Teaching Staff

Instructor: Chris Murphy (cmurphy@cs.columbia.edu)
Office hours: Tues 3-5pm, 608 CEPSR

TA: Swapneel Sheth (swapneel@cs.columbia.edu)
Office hours: Thurs 3-5pm, 608 CEPSR

Syllabus (Tentative)

Date Topics Covered Reading Notes Assignments
Jul 8 Course introduction
Review of Java basics
1-7 (review) slides
Employee.java
Quiz.java / Student.java
 
Jul 10 Designing classes
Software engineering
Software testing
8.1 - 8.9
12.1 - 12.5
2.8, 3.6, 5.5, 7.8
slides
software engineering
software testing
 
Jul 15 Interfaces and Polymorphism
Inheritance
9.1 - 9.5
10.1 - 10.8
slides

Player.java
ComputerPlayer.java
HumanPlayer.java

BankAccount.java
SavingsAccount.java
TransactionalSavingsAccount.java

 
Jul 17 Basic Graphics
2.11 - 2.13, 3.9 slides
FrameTest.java
CircleComponent.java
CircleViewer.java
Assignment #1 due
MovingCircle.java
BouncingCircle.java
Jul 22 More Graphics
Event Handling
9.6 - 9.10, 10.9 - 10.11 slides
TestKeyboardEvent.java
TestMouseEvent.java
TestMouseMotionEvent.java
 
Jul 24 Graphical User Interfaces 18.1 - 18.4 slides
TestActionEvent.java
TestActionEventAnonInnerClass.java
TestActionEventNoInnerClass.java
TestCheckbox.java
TestRadioButton.java
LoginPasswordEvent.java
ChatApplication.java
Notepad.java
Assignment #2 due
Jul 29 Networked applications 21.1 - 21.5 slides

Server.java
MathServer.java
Client.java
MathClient.java
MathClientCL.java
MathClientUI.java

Message.java
MessageServer.java
MessageClient.java
MessageClientCL.java

 
Jul 31 Exceptions
Multithreading
11.1 - 11.7
20.1 - 20.2
slides
BankAccountTest.java
ThreadTest.java
AdderThread.java
MultiplierThread.java
ParallelMath.java
MTMathServer.java
Assignment #3 due
Aug 5 Synchronization
Data structures
20.3 - 20.5
15.1 - 15.4
slides

ThreadsafeBankAccount.java
SynchronizedBankAccount.java

ParallelAdd.java

LinkedList.java

 
Aug 7 More data structures
Design patterns
Advanced topics
16.1 - 16.10 slides
design patterns
 
Aug 12 Final Project presentations
Final Exam review
  slides
Final Project due
Aug 14 Final Exam      

All readings are from Big Java by Cay Horstmann, Third Edition.

Class Policies
Exams There will be an in-class final exam on the last day of classes. No makeup exams will be given.
 
Grading Grades will be assigned using the following guidelines:
Homeworks 35%
Final Exam 40%
Final Project 25%
 
Late Policy Because of the tight schedule, it is important that assignments be submitted on time. Late homeworks will not be accepted without previous permission from the instructor.
 
Academic Honesty Please familiarize yourself with the Computer Science Department's academic honesty policy.


cmurphy@cs.columbia.edu