
Course number: CSPP51036
Location: Ryerson 277
Time: Tue 5:30-8:30
Professor: Andrew Siegel
Office: Ry175-B
Email:asiegel@cs.uchicago.edu
Office Hours: 3:30-5:30 Tue
TA: Ozgur Sumer
Office: Ry162-A
Office Hours: Mon 4-6 and Fri 3:30-5:30 (appt only on Fri)
Email: osumer@cs.uchicago.edu
Course description: This is a fast-paced first course in Java for students with some prior programming experience, though not necessarily in an object-oriented language. A strong emphasis will be placed on understanding basic fundamentals of OO design -- inheritance, polymorphism, composition, etc, and more generally on applying sound principles of modern software engineering to real-world problems. In the latter half of the course more advanced OO design patterns will be studied in the context of certain Java libraries (e.g. Swing). However, the main focus will be on using the "core language" to write good software rather than a detailed study of particular high-level libraries.
Course Format:
Instructor lecture with significant student participation.
Please come prepared.
The final grade is determined as:
Getting Help: The TA will have a group review session followed by more informal office hoursy. He will also be available by appointment. The Instructor will be available both by appointment and at regular office hours, before class each Tuesday. The course listhost is the best place to get help quickly. We will monitor it as frequently as possible and often be able to answer immediately. Students are encouraged to help their peers on the listhost by contributing when it is convenient. Please register here.
Required text
Core Java 2, Volume I: Fundamentals (7th or 8th Edition) by Gary Cornell, Cay S. Horstmann
Recommended Texts (not required)
Required Software
Important Links:
All course material (updated throughout course)
Week 1 Sept 30: Introduction
Week 2 Oct 7: Object Basics (Prof. Shacklette, guest Lecturer)
Week 3 Oct 14: Interfaces and abstract classes
Week 4 Oct 21: More complex Object relationships
Week 5 Oct 28: io, exceptions, other language features
Week 6 Nov 4: Swing
Week 7: CLASS CANCELLED
Week 8 Nov 18: Collections, etc.
Week 9 Nov 25:
Week 10 Dec 2.5: Introspection, Intro to Threads
Week 10 Dec. 1: Testing
Week 11 Dec 8: Makeup class