Fall 2003
Tuesdays 1900–2200
219 Smith Hall
Prerequisite: CISC220
(Data Structures)
Instructor: Walt Leipold E-mail: leipold@udel.edu Office: 411 Smith Office hours: T 1730–1900 Web: http://www.cis.udel.edu/~leipold/ |
Teaching Assistant: Sachin Kamboj E-mail: kamboj@mail.eecis.udel.edu Office: 77-79 E. Delaware Ave (the Greenhouse) Office hours: TR 1400–1500 in 115B Pearson Hall Mailbox: 214A Smith |
This is the syllabus for section 011 of CISC370, "Object-Oriented Programming with Java". This Web page will contain announcements, homework assignments, copies of the lecture slides, and other pertinent material for the course. It will be updated frequently—plan on checking for new or updated material several times a week.
About the course
Textbooks
Schedule
Project
Grading
Policies
Resources
CISC370 is a course about object-oriented programming using the Java programming language. It will cover the a wide range of topics, including:
The course will consist of weekly lectures, a number of programming assignments, and a semester-long programming project.
Required: Core Java 2: Volume I — Fundamentals, 6th Edition, ISBN 0130471771, Horstmann and Cornell, Prentice-Hall, 2002.
Required: Core Java 2: Volume II — Advanced Features, 5th Edition, ISBN 0130927384, Horstmann and Cornell, Prentice-Hall, 2001.
Optional: Java How to Program, Fifth Edition, ISBN 0131016210, Deitel and Deitel, Prentice-Hall, 2002.
You are expected to attend all classes, and to be prepared for each class by reviewing notes from the previous lecture and reading the scheduled reading assignments. You are responsible for all announcements and material presented during classes, whether you are present or not. The lecture slides will be posted on this Web site. However, the slides will not cover many of the topics discussed in class—do not regard them as a substitute for attending class!
Date | Topic | Reading | Notes | Due |
---|---|---|---|---|
9 Sep |
Intro to Java Java programming environment Programming structures |
CJ I — Chap 1 CJ I — Chap 2 CJ I — Chap 3 | Slides | |
16 Sep |
Objects and classes Inheritance |
CJ I — Chap 4 CJ I — Chap 5 |
Slides Sample code HW#1 code | Homework 1 |
23 Sep |
Reflection Interfaces and inner classes Graphics programming |
CJ I — Chap 5 CJ I — Chap 6 CJ I — Chap 7 |
Slides Sample code HW#2 code | Homework 2 |
30 Sep |
Graphics programming Event handling Exceptions |
CJ I — Chap 7 CJ I — Chap 8 CJ I — Chap 11 |
Slides Sample code HW#3 code | Homework 3 |
7 Oct |
Event handling Menus |
CJ I — Chap 8 CJ I — Chap 9 |
Slides Sample code HW#4 code |
Homework 4 Project plan |
14 Oct |
GUI components with Swing Design patterns | CJ I — Chap 9 |
Slides Sample code HW#5 code | Homework 5 |
21 Oct |
Dialogs Deploying applets and apps Properties & Preferences |
CJ I — Chap 9 CJ I — Chap 10 |
Slides Sample code HW#6 code | Homework 6 |
28 Oct |
Streams and files More design patterns | CJ I — Chap 12 |
Slides Sample code HW#7 code |
Homework 7 1st progress report |
4 Nov |
Database connectivity: JDBC Antipatterns |
CJ II — Chap 4 |
Slides Sample code | |
11 Nov |
Collections Networking |
CJ II — Chap 2 CJ II — Chap 3 |
Slides Sample code | |
18 Nov |
Multithreading Refactoring | CJ II — Chap 1 |
Slides Sample code | 2nd progress report |
25 Nov |
XML Remote objects |
CJ II — Chap 12 CJ II — Chap 5 |
Slides Sample code | |
2 Dec |
Security JTree and JTable |
CJ II — Chap 9 CJ II — Chap 6 |
Slides Sample code | |
9 Dec | Project presentations |
Presentation Project paper |
Part of your grade will be based on a semester-long project. The project will involve designing and developing an application or applet of your own choosing. Your project topic must be approved by the instructor. A randomly-selected set of students will present their projects to the class during the last class session. Every student must submit a short paper describing the project.
The project can be a productivity application, simulation, programming utility, game, or whatever, as long as it is:
The milestones and deliverables for the project are as follows:
Milestone | Date | Deliverable |
---|---|---|
Project plan | 7 Oct | Turn in a detailed description (several detailed paragraphs, not just a one-sentence summary!) of your project, including its purpose, a description of the application's interface, and the tools, classes, and technologies you intend to use. |
1st progress report | 28 Oct | Turn in a short writeup (a few paragraphs) of your progress to date. Describe any architectural decisions you have made, the work remaining to be done, and your plan for completing the project. Be prepared to spend several minutes verbally describing your progress to the class. |
2nd progress report | 18 Nov | Turn in a short writeup (about one page) of your progress to date. Be prepared to speak for 1–2 minutes to the instructor and the class about your progress. By this point, coding should be just about finished, with only testing, polishing, and documentation (including the final report) remaining. |
Presentation | 9 Dec | Give a ten-minute presentation of your project to the class. You must provide (or arrange for) hardware to conduct the presentation. If you intend to implement a multiplayer game or something similar, remember that the classroom projector can only display one screen at a time. |
Report | 9 Dec | Turn in a 3–5 page report describing your project's purpose, design, and implementation, as well as the lessons you learned during it. | 9 Dec | Submit the project code to
grading@bozoid.com
by the start of class.
The submission should be a single ZIP or tar archive attached to
your e-mail containing:
|
Each programming assignment will be graded as follows:
Correct interpretation of assignment: | 20% | |
Correct behavior: | 20% | |
Correct algorithm: | 20% | |
Indentation and other formatting: | 20% | |
Variable & method names, commenting, etc.: | 20% | |
Extra credit (if assigned): | 20% |
Your grade for the semester will be based on:
Programming assignments: | 50% of final grade | |
Semester project: | 40% of final grade | |
Attendance and participation: | 10% of final grade |
The semester grade is computed according to the following table:
Point range | Letter grade | |
---|---|---|
95 <= points | A | |
92 <= points < 95 | A- | |
89 <= points < 92 | B+ | |
86 <= points < 89 | B | |
83 <= points < 86 | B- | |
80 <= points < 83 | C+ | |
78 <= points < 80 | C | |
76 <= points < 78 | C- | |
74 <= points < 76 | D+ | |
72 <= points < 74 | D | |
70 <= points < 72 | D- | |
70 > points | F |
Code conventions: With a few exceptions which will be discussed in class, your source code must conform to Sun's Java coding conventions.
Development tools: This is a course about programming, rather than about a particular development platform. All assignments will be done using the Java command-line tools (javac, jar, java, etc.) rather than an IDE (Integrated Development Environment) such as NetBeans. Points will be deducted for any programming assignment that appears to have been developed using an IDE.
Academic integrity: You will be expected to conform to the University's policy on academic integrity. In particular, the code you write in this course must be your own work. You are free to discuss the Java language and other programming topics with other students or the instructor, but you must not copy other people's code, from any source, and you must not allow your code to be copied by another student.
Late assignments: Assignments are due at the start of class each week. No credit will be given for late assignments.
Last modified: Tuesday, 16 December 2003