Java Programming
Fall 2011

Course number: CSPP51036
Location: Ryerson 276
Time: Mon 5:30-8:20

Professor: Andrew Siegel
Office: Ry175-B
Email:asiegel@cs.uchicago.edu
Office Hours: 3:30-5:30 Mon

TA: Ali Alkhafaji
Recitation times: Every Wed and Fri, 6:30-7:30
Recitation location: Ry 277 (regular classroom)
Additional office hours: by appt
Email: ali.a.alkhafaji@gmail.com

Grader: Keven Wang
Email: kdwang@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:

  • 70% bi-weekly assignments
  • 20% Periodic Quizzes
  • 10% participation (either in-class or listhost)

    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, Volume I: Fundamentals, 8th Edition,by Gary Cornell, Cay S. Horstmann
    ISBN: 978-0132354769

    Recommended Texts (not required)


    Required Software

    Useful Links



    All course material (updated throughout course)


    Lectures


    Week 1 Sept. 26: Introduction




    Week 2 Oct 3: Object Basics



    Week 3 Oct 10: Interfaces and abstract classes


    Week 4 Oct 17: More complex Object relationships


    Week 5 Oct. 24: Object methods & exceptions


    Week 6 Oct. 31: Inner Clases, Swing



    Week 7 Nov 7: Collections


    Week 8 Nov 14: Threads


    Week 9 Nov. 21: Inner classes, etc.


    Week 10 Nov. 28

    Finals Week Dec. 5