The course introduces students to principles, concepts and techniques associated with team-based development of complex software systems. It is assumed that students know how to program and have developed programs using the Java language. Major topics include system and requirements engineering, object-oriented design, and systematic code testing techniques. Students will learn to use software tools.
|Course date:||Monday, August 22, 2005 through Friday, December 16, 2005|
|Meeting day(s):||Tuesdays, Thursdays|
CS253 and all the prerequisites for CS253 including CS166 (Discrete Structures) and CS200 (Data Structures).
|Email:||ghosh @ cs DoT colostate DoT edu|
|Office location:||224 University Services Center|
|Office hours:||TR 2:00-3:15|
|Email:||lijun @ cs DoT colostate DoT edu|
|Cubicle:||N1, 2nd floor, University Services Center|
|Office location:||North or South lab on 3rd floor University Services Center|
|Office hours:||Monday 12PM - 1PM, Tuesday 1PM - 3PM, Wednesday 12PM - 1PM|
|Required reading:||Object-Oriented Software Engineering: Practical software development using UML and Java,, Timothy C. Lethbridge and Robert Laganiere, McGraw Hill, 2nd, 2005, 0077109082|
|Recommended reading:||Java 2: The Complete Reference, Herbert Schildt, McGraw Hill Osborne, 5th Edition, 2004, 0072230738|
An overall course grade will be awarded based on continuous evaluation in the form of quizzes (individual or group), individual assignments, team project, midterm exams, and a final. Quizzes, assignments, and projects will be given throughout the semester, so be prepared! The following table shows each component:
Grades will be assigned according to the following table. The actual cutoffs may be adjusted depending on the performance of the entire class; cutoffs can be lower but never higher. After each midterm exam and before the final, we will announce "approximate" letter grades so that you know where you are.
Short unannounced quizzes will be given in class throughout the semester. The intent may be to:
There will be about 3 individual homework assignments covering topics such as software safety and software testing.
You will work in teams of three to develop a software application. During the course of the project, you will identify and analyze requirements, use techniques learned in this class to develop a high level object-oriented design, implement a working prototype, and develop a test plan. The project will involve iterative, incremental software development.
There are two exams: one midterm exam in class and one final exam during the final's week.