5895 Home Page
Some notes on setting up Eclipse under WindowsXP
There will be two minor assignments and then a term project
Office Hours: 1:00-2:00, Mondays & Wednesdays or by appointment.
Please submit assignments by email to our TA, Lujie Zhan (email address is lujie at engineering).
Marking Scheme & Schedule
Please note: All submissions are electronic (email) and all deadlines are 8:55 am in the morning of the day noted See Assignments page for more details.
UML only. 10%, due Monday, Jan. 21st. Done individually
- UML phase 10% due Wednesday, Jan 30th.
- code phase 10% due Monday, Feb 11th.
Done in teams of two.
Done in teams of two.
UML + code 70%
There is a small hints page posted about designing with UML.
Charter Statement due Wednesday Feb. 13th.
Preliminary Design in form of a Rose file due Monday, Feb. 25th.
Project Reviews will be conducted Tuesday, March 4th.
Final project deadline, Monday, March 24th. Demonstrations will be Tuesday , March 25th at 2:00-5:00
The course is directed towards the gap between programming in the small (coding, algorithms, data structures) and programming in the large (software engineering).
The problem is particularly acute with today's emphasis on object-oriented programming. The clarion call here, of course, is not objects, per se, but rather the promise of reusability. True reusability, however, is much harder to achieve in practice than it first appears. Above all, it requires careful, clear-eyed design.
The course has three academic elements: (1) we introduce the Unified Modeling Language (UML) that is the emerging standard for software design, focusing on its core elements. These are Use Cases, Class Diagrams and Interaction Diagrams.; (2) we briefly introduce Java, focusing on the differences between it and C++ as well as providing a brief introduction to the Abstract Windowing Toolkit (AWT) and Swing; (3) we introduce the powerful new notion of patterns ( Gamma, et. al.)-- that is, typical solutions to well-known, usually thorny, problems that occur again and again in object-oriented design.
Design, however, is ultimately learned by doing. The core of the course is the design assignments, which require students to produce both UML diagrams in Rational Rose and working Java programs.