
Syllabus
Textbook
The textbook for the course is:
 Big Java by Cay Horstmann, 3rd edition, John Wiley and Sons, 2008. ISBN: 9780470112090.
The above ISBN number is for the version of the book that comes packaged with access to WileyPlus, an online resource for the book. Please make sure to use the above ISBN number when you order the textbook (the online access to WileyPlus is free with the purchase of the book).
Students in the course will also be required to frequently access and use online resources such as Sun Microsystem's Java API documentation .
Optional References
Students with advanced interest in topics covered will find it interesting and useful to refer to:
 Core Java(TM), Volume IFundamentals by Cay Horstmann and Gary Cornel, 8th edition, Prentice Hall, 2005.
 Core Java 2: Volume IIAdvanced Features by Cay Horstmann and Gary Cornel, 7th edition, Prentice Hall, 2005.
 Design Patterns: Elements of Reusable ObjectOriented Software by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, AddisonWesley Professional, 1994
 The Pragmatic Programmer by Andrew Hunt and David Thomas, AddisonWesley, 2000
 Introduction to Algorithms by Thomas Cormen, Charles Leiserson, Ronald Riverst and Clifford Stein, 2nd edition, Prentice Hall, 2001
Syllabus and Class Schedule
This is the tentative schedule for the course
Week 1
Review of basic Java
Recursion
Week 2
Class design I: good design, basic UML, inheritance
Effective debugging, JUnit
Week 3
Exceptions, Files, streams
Containers: Arraylist, Vector
Week 4
Searching (linear, binary) algorithms
Sorting (insertion, merge, quick) algorithms
Week 5
Introduction to runtime analysis
Midterm
Week 6
Class design II: Introduction to design patterns
Introduction to dynamic containers
Week 7
Linked lists, stacks, queues
Trees
Week 8
Hashing (maps, hash code)
Binary search trees, Heaps and heapsort
Week 9
Catch up and Review
Week 10
Catch up and Review
