CS 680 Object Oriented Design
Ethan Bolker
Spring, 2003
This is the home page for CS680 - located on the net at
www.cs.umb.edu/~eb/680 and on our unix system in directory
/home/eb/680, henceforth referred to as $CS680.
Course Description
This course addresses principles, techniques and tools for the
object-oriented modeling, design, implementation, and testing of
contemporary software applications. Topics include UML, use cases,
design patterns, graphical user interface programming, application
frameworks, and refactoring. Significant programming projects will
use Java and at least one other object-oriented language.
This is not a course in object-oriented programming.
You are all experienced
programmers, and can learn any new language or language feature on
your own. But you have not yet had significant experience at UMass
designing applications. That will be our focus. But there is
significant programming in this course - you will implement your
designs, some in Java and some in C++.
Arrange your life to allow yourself the time it will take to write the
programs.
You cannot succeed in this course (or in the software world) just by
reading books and doing well on exams. You are learning a craft.
Prerequisites
You may not take this course until you have successfully completed
CS650 (compilers).
No exceptions.
Grading
There will be several programming assignments (including a significant
final project), design documents, analyses of readings,
a midterm, and (probably) a final exam. The programming will account
for approximately 2/3 of your final grade.
You must earning a B or better in this course in order to take
take the year long cs681-683 software engineering sequence next year.
One sure way to derail your career at UMass is to cheat. Learning from
others is necessary and appropriate. Stealing their work instead of
doing your own is not. I am repeatedly surprised when students do not
understand this, pay no attention to this warning, and thus fail the
course. For more on this serious topic,
see http://www.cs.umb.edu/~eb/honesty.html
Exams
Texts
- Xiaoping Jia,
Object-oriented Software Development Using Java:
principles, patterns and frameworks.
,
Addison-Wesley, ISBN 0-201-35084-X.
The second edition is the current one. I think a fair amount has
changed since the first edition, so a second hand copy of the first
editiom will probably not do.
The Java source code for the examples in this text is
available at http://se.cs.depaul.edu/Java/source.html.
-
Stanley
B. Lippman and Josée Lajoie,
C++
Primer, Third Edition, Addison-Wesley, 1998. ISBN:
0-201-82470-1. Universally recognized as a good book to learn C++ from.
-
Martin Fowler,
Refactoring:
Improving the Design of Existing Code, Addison-Wesley, 1999,
ISBN: 0201485672.
These texts are available at the bookstore in a single package that
saves you some money when compared to the cost of purchasing them
separately. Of course used copies will be cheaper. I don't know
whether Amazon does better than the bookstore.
Syllabus
See the syllabus and
schedule as they evolve.
Assignments
My solution to the elevator simulation problem:
$CS680/simulator/elevator.
The j2h and javadoc are up one directory.
Useful Links
Kent Beck on CRC
cards.
A CRC
card tutorial
>
Accommodations
Section 504 of the Americans with Disabilities Act of 1990 offers
guidelines for curriculum modifications and adaptations for students
with documented disabilities. If applicable, students may obtain
adaptation recommendations from the Ross Center for Disability
Services, M-1-401, (617-287-7430). The student must present these
recommendations and discuss them with each professor within a
reasonable period, preferably by the end of Drop/Add period.