This course focuses on mastery of advanced software design and implementation tools and techniques. Topics includes: object-oriented design and programming, an introduction to concepts in generic data structures and algorithms (such as iterators), graphical user interface programming, concurrency, synchronization, deadlock, and software testing. Finally, one of these basic skills is the ability to quickly come up to speed in a new language on one's own. Thus, while Java is used, this is not a Java programming course.
Fintan Culwin, A Java GUI Programmer's Primer, Prentice Hall, New York, 1998. [JGPP]
The purpose of the project is to build a nontrivial application using what you have learned in the course. No a priori restrictions are placed on application type: you may choose something of personal interest, something related to your work, something related to volunteer work you do, something you think will be fun, and/or something which you feel will illustrate one of the course topics. You may approach this as either a personal or a group project. It should be accompanied by detailed design documentation in the final report (see the ``Elephant Burger Bar'' case study in Java: An Object First Approach for an example).
The project is worth 25% of your grade, and the amount of time you spend should reflect that. I would expect a team of 3 or 4 people to spend about 25 hours/person working on the project; an individual project would take more time for the single person involved. Regardless of individual circumstances, you should expect to spend at least 20 hours and hopefully no more than 40 hours.
If you are working as a team, it is important that you be efficient, work together to design the project, and then split the work amongst yourselves appropriately.
Project proposals are due on 22 October; a team should hand in only one copy. Note that you will receive a grade for the proposal, which will count towards your grade for the course as one-fifth of your project grade. So, a team should have spent on the order of 5 hours/person on the project design by that time. All proposals and reports must be typed or typeset. It is acceptable to submit hand-drawn figures, but I encourage you to use a drawing program.
The proposal itself should be 3-4 pages of 10-point text. Components of your proposal should include (but are not limited to) any of the following that are relevant:
| Week | Topics | Reading | Assignments |
|---|---|---|---|
| 1 | Introduction to the course | JOFA, Ch. 1, 2 & Apps. A & C | |
| Java and JSP/UML/OMT notation | |||
| 2 | Classes, inheritance, override actions | JOFA, Ch. 3 | HW1 assigned |
| 3 | Exceptions, IS-A vs. HAS-A relationships | JOFA, Chs. 4, 5 | |
| 4 | UI basics, exceptions revisited | JOFA, Chs. 6, 7, 9 | Project proposals |
| HW1 due | |||
| 5 | Concurrent processes, state machines | JOFA, Ch. 8 | HW2 assigned |
| 6 | Class hierarchy design | JOFA, Ch. 10 | |
| Software testing | JOFA, Ch. 11 | ||
| 7 | Object reflection & I/O | JOFA, Ch. 12 | HW2 due |
| Iterators & generic data structures | JOFA, Chs. 13-15 | HW3 assigned | |
| 8 | Intro. to GUIs | JOFA, Ch. 16; JGPP, Chs. 1, 2 | |
| 9 | Writing new GUI classes | JGPP, Ch. 3 | HW3 due |
| 10 | GUI styles | JGPP, Chs. 4-7 | |
| Internationalization revisited | JGPP, Chs. 8 & 9 | Project reports |
This document was generated using the LaTeX2HTML translator Version 98.1p1 release (March 2nd, 1998)
Copyright © 1993, 1994, 1995, 1996, 1997, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
The command line arguments were:
latex2html -split 0 syllabus.
The translation was initiated by Dr. Michael Stiber on 1998-09-25