CISC370-011

Object-Oriented Programming with Java

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


About the course

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.


Textbooks

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.


Schedule

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

Project

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.
E-mail 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:
  • Sources
  • javadocs
  • An executable (JAR or equivalent)
  • A copy of your project report
  • A readme.txt file containing your name and e-mail address, as well as any instructions needed to install and run the project code

Grading

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

Policies

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.


Resources


Last modified: Tuesday, 16 December 2003