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

Tuesday, Thursday, 11:00 am - 12:30 pm, in Room MCS B31.

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: Thursday, March 2,   11:00 am - 12:30 pm.
EndOfTerm Exam: Thursday, April 27,   11:00 am - 12:30 pm.
Project Presentations: Wednesday, May 3,   2:00 pm - 4:00 pm.

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, Wed 2:00 pm-3:00 pm
       Location: MCS 176, e-mail: kfoury@cs.bu.edu
Teaching assistant -- Yarom Gabay
       Office hours: Wed 10:00 am-12:00 pm, Thu 2:00 pm-3:00 pm
       Location: MCS 177, e-mail: yarom@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: Recommended:
Maintained by Assaf Kfoury
Created: 2005.12.27    Last modified: 2006.01.10