FRAMES
NO
FRAMES
Course Description
This course is about problems we face when
constructing large software systems. Students will learn about various
methodologies used in all parts of the software life cycle. We will
illustrate the use and application of these methodologies by examining
how they can be supported by the Java language. By the end of the
semester students will have acquired a strong grounding in
object-oriented design in Java and, more generally, improved their
skills for programming in the large. We will study several topics
related to software design,
including: Inheritance, Exceptions, Namespaces, Abstract Types,
Representation Invariants, Procedure Specifications, Object Models,
Data Models, Design Patterns, Design Strategy.
Lectures
Monday, Wednesday, 2:30 pm - 4:00 pm, in Room
MCS B33.
Prerequisites
Extensive programming experience with at least
one high-level programming language is required. Some experience with
object-oriented principles is recommended. At least a basic familiarity
with Java is highly recommended.
Even though there is only one formal
prerequisite for CS 511 according to the BU Bulletin, namely CS 320 or CS 411,
you should be aware that the course presumes a level of preparation you normally
get from having completed the 300-level CS courses, or equivalent courses.
Exams
MidTerm Exam: Wednesday, March 5,
2:30 pm - 4:00 pm.
EndOfTerm Exam: Wednesday, April 30, 2:30 pm - 4:00 pm.
Project Presentations: Wednesday,
May 07,
9:00 am - 11:00 am, Room MCS B23 (not MCS B33).
The exams are closed book. You may, however,
bring one 8.5 by 11 sheet of paper (i.e. one regular-size sheet of paper) as
a crib sheet. Preparing a crib sheet can be a useful study aid, so take
time in selecting material for it. You may use both sides of the paper
and write as small as you like, but in any case, you are allowed only
one sheet. No mechanical or electronic reproductions are allowed; the crib
sheet must be hand written. You must hand in your crib sheet when you
hand in your exam, and you will get credit for it in your total grade for
the exam.
Teaching Staff
Instructor -- Assaf Kfoury
Office
Hours: Tue 3:00 pm - 5:00 pm, Thu 12:00 pm - 2:00 pm
Location:
MCS 176, e-mail: kfoury@cs.bu.edu
Teaching assistant -- ???
Office
hours: ???
Location:
MCS 177, e-mail: ???@cs.bu.edu
Mailing List
The course mailing list is named cs511 and
is managed by IT's majordomo engine. All students registered for the
course should add themselves to the mailing list. To join the course mailing
list, type "csmail -a cs511" at the Unix prompt. To inspect who else
is on the mailing list, type "csmail -p cs511". To remove
yourself from the mailing list, type "csmail -r cs511".
Students are welcome to post messages and
questions to the mailing list. All messages to cs511@cs.bu.edu
are archived (click here).
Books
Required:
- Barbara Liskov. Program Development
in Java: Abstraction, Specification, and Object-Oriented Design.
Addison Wesley, 2001.
[PDJ]
Recommended:
- David Flanagan. Java
in a Nutshell, 5th Edition. O'Reilly, 2005. [JN]
- Joshua Bloch. Effective Java:
Programming Language Guide, 1st Edition. Addison Wesley, 2001. [EJ]
- Gamma, Helm, Johnson and Vlissides. Design
Patterns. Addison Wesley, 1994. [DP]
- Ian Darwin. The Java Cookbook,
2nd Edition. O'Reilly, 2005.
[JC]
Maintained by Assaf Kfoury
Created: 2008.01.02 Last modified:
2008.03.18