Course number: CSPP51036-2
Location: Ryerson 276
Time: Mon 5:30-8:20
Professor: Adam Gerber
Office: Ryerson 154
Email:gerber@cs.uchicago.edu
Office Hours: 3:30-5:30
TA: Jing Tie
Office: Jones 209 (5747 S. Ellis Avenue)
Office Hours: 6:00pm to 8:00pm Thu
Recitation:
Email: jtie@uchicago.edu
TA: Shashank Sharma
Office: Ryerson 251
Office Hours: 8:30pm to 10:30pm Wed
Recitation:
Email: ss-sharma@live.com
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:
Criteria for evaluation on homework and final project
Submitting homework and final project
Tar you project using eclipse.
See video called eclipseCreateTar posted to course web-page.
Homework file naming: hw + [number]+ hyphen + [lastname] + [firstInitial of firstName] .tar
Homework file name examples John Smith: hw1-smithj.tar, hw2-smithj.tar
Final project file naming example: fp-smithj.tar
Email to me gerber@cs.uchicago.edu and cc Jing jtie@uchicago.edu and Shashank ss-sharma@live.com.
Late homework/final project is penalized 5% every day late for two days, after which time,
no more homeworks will be accepted. Because I must coordinate the release of homework answers with
the other Java Programming section, there is an absolute deadline for homework on the Wednesday at midnight
following the due date (Monday at 5:30pm). Homework answers will be released shortly after midnight on Wednesday, and
no homework submissions will be accepted thereafter, and students who fail to submit by Wednesday at midnight
will recieve a zero for that assignment.
Getting Help: I will be available both by appointment and at office hours, before class each Monday. The pace of this course if rapid, so please come to office hours if you feel you're falling behind or need help. I have office hours this Autumn quarter from 3:30-5:30 every Monday. Also, please feel free to email me or post to the listhost; see below. The course listhost is the best place to get help quickly. Instructors and TAs will monitor the course listhost 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
Important Links:
All course material (updated throughout course)
Week 1 : Introduction
Week 2 : Object Basics
Week 3 : Interfaces and abstract classes
Week 4 : More complex Object relationships
Week 5 : io, exceptions, other language features
Week 6 : Swing
Week 7 : Collections
Week 8 : Threads
Week 9 : Inner classes, etc.
Week 10
Week 11