next up previous
Up: CSSAP442 Home Page

Computing & Software Systems, Applications Programming 442:
Advanced Programming Methodologies I
Autumn 1998

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.

Instructor
Michael Stiber <stiber@u>, room 234, phone 352-5280, office hours Mondays 1-2PM or by appointment.

Teaching Assistants
Katherine Wetherington and Sylvia Yu.

Lectures
Tuesdays and Thursdays, 5:45-7:50PM, room 151.

Textbooks
Fintan Culwin, Java: An Object First Approach, Prentice Hall, New York, 1998. [JOFA]

Fintan Culwin, A Java GUI Programmer's Primer, Prentice Hall, New York, 1998. [JGPP]

Grading
25% homework + 25% midterm + 25% final + 25% project.

Assignments
Assignments are due at the beginning of class on the due date, unless specified otherwise. Late work will not be accepted. Of course, in special circumstances, such as medical and other emergencies, arrangements should be made for an extension in advance of the due date, if possible.

Special Needs
If you have a documented disability and wish to discuss academic accommodations, please contact Kathleen Bernhard as soon as possible. I will coordinate with the University to ensure that the appropriate accommodations are made in the class.

Submitting work
Your name, student number, and email address should be written on everything you submit. Please strive to write clearly; I cannot give you credit for what I cannot read. You are more than welcome to submit work before the due date.

Collaboration
You are expected to do your work on your own. If you get stuck, you may discuss the problem with other students, provided that you don't copy from them. Assignments must be written up independently. You may always discuss any problem with the instructor. You are expected to subscribe to the highest standards of honesty. Failure to do this constitutes plagiarism. Plagiarism includes copying assignments in part or in total, debugging computer programs for others, verbal dissemination of algorithms and results, or using solutions from other students, solution sets, other textbooks, etc. without crediting these sources by name. Plagiarism will not be tolerated in this class, any more than it would be in the ``real world''. Any student guilty of plagiarism will be subject to disciplinary action.

Class attendance
I strongly encourage you to come to class. You will be held responsible for all material covered in class, regardless of its presence (or lack thereof) in the textbook. Please come to class on time; do not bother showing up if you are more than a couple minutes late!

Problems
If you have problems with anything in the course, please come and see me during office hours, or send email. I want to make you a success in this course. If you have trouble with the assignments, see me before they are due. If you fall behind, it will be difficult to catch up.

Projects and Project Proposals

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).

Workload and Teams

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.

Proposals

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:

Tentative Course Schedule

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

About this document ...

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


next up previous
Up: CSSAP442 Home Page
Dr. Michael Stiber stiber@u.washington.edu