Class Schedule
Class meets Mondays and Wednesdays from 6-9:10pm in 337 Seeley W. Mudd.
First class is on Monday, July 6, 2009, last class is on Wednesday, August 12, 2009.
Teaching Staff
Instructor: Julia Stoyanovich, 504 CSB jds2109@columbia.edu.
Office hours: Monday and Wednesday 2-3pm and by appointment.
TA: Abishek Sainath Madduri, 506 CSB asm2145@columbia.edu.
Office hours: Thursdays 4-6pm, 504 CSB
Textbook
Big Java 3E by Cay Horstmann, available at Columbia University bookstore and as an eBook on www.coursemart.com.
Prerequisites
COMS 1004 or AP Computer Science with a grade of 4 or 5, or consent of the instructor.
Grading
Homework assignments 60%
Final exam 30%
In-class quizzes 10%
Class Policies
Class participation

Laptops may not be used in class.

Several short in-class quizzes will be given to ensure attendance and class participation. Quizzes will not be announced ahead of time, and will include recent material, possibly presented in class as recently as in that day's lecture.

Homeworks

There will be 4 homework assignments. All are to be completed individually. Please see the academic honesty policy of the Computer Science Department.

All assignments will be announced on Wednesday in class, and will be due at 5pm on Friday of the following week. All assignments must be submitted electronically.

Cunix accounts are required for the course. You may implement your assignments using Eclipse or Cunix, but all assignments must compile and run on Cunix. You will need your UNI and password to log on to Cunix. If you don't know your UNI, please take a look at the CUIT UNI page.

Two grace days are provided for your benefit. Grace days may only be used in whole. For example, if you submit your assignment on Friday at 8pm; you will have used one grace day. You may use both grace days on a single assignment, in which case you need to submit the assignment by 5pm on Sunday. You may also use grace days on two assignments, one day on each. In that case both assignments are due no later than 5pm on Saturday. If you have used up your grace days and submit an assignment late, your assignment will not be accepted.

Exam

The final exam will be given on the last day of class. The exam will be closed-book and closed-notes. No make up exam will be given.

Syllabus (subject to change)
Topic Date Details Reading Notes
Review July 6 Review of Java basics
Javadoc
Ch. 1-7 BankAccount
Person
Address
Transaction
Javadoc
Object-Oriented Design July 8 Designing Classes
Introduction to UNIX
Quiz 1
Ch. 8.1, 8.2, 8.3, 8.4, 8.6, 8.7, 8.8, 8.9
UNIX tutorials
Checkers
Board
Player
Square
Piece
Move
Constants
Javadoc
unix_demo.txt
July 13 Inheritance Ch. 10.1-10.8 (except cloning) Person
Employee
Manager
President
Address
Company
Javadoc
July 15 Abstract Classes and Interfaces
Quiz 2
Ch. 9.1, 9.2, 9.3, 9.5, 12.3, 16.1 SuperBeing
SuperHero
StrongSuperHero
MagicalSuperHero
Villain
Armageddon
Javadoc
Files and Exceptions July 20 Input and output
Working with files
Exception handing
Ch. 11 Student
Roster
IllegalGradYearException
Javadoc
July 22 Files and Streams
Debugging with Eclipse
Quiz 3
Ch. 19.1, 19.3, 19.4
Java Tutorial: Basic I/O
GNU make
StreamsDemo
Makefile
Data Structures and Algorithms July 27 Sorting
Recursion
Ch 14.1, 14.3, 13.1, 13.3, 14.4 Sorter
July 29 Searching
Linked Lists
Stacks and Queues
Binary Trees
Quiz 4
Ch. 14.6, 14.7
15.1, 15.2
15.4
16.6
LinkedList
ListIterator
ListTester
MyStack
StackAndQueueDemo
ShuntingYardEvaluator
August 3 HashTables
Sets and Maps
Binary Search Trees
Heaps
Ch. 16 SetAndMapDemo
BST
MinHeap
Databases August 5 Relational databases
Introduction to SQL
Unit testing
Ch. 22 SortTester
Student
Registrars
DBUtils
University.sql
Wrap-up August 10 Course review   list of topics
August 12 Final exam