|
Course Description
This course
will focus on designing software that is flexible, extensible, correct
and robust. Object-oriented techniques, including design patterns, will be emphasized. Development techniques such
as extreme programming will be explored. The programming assigments
will include large group projects. C# and the
Microsoft .NET Framework will be used as the development language. No prior knowledge
of C# or .NET is required however. This course is designed to emphasize
and recreate design and programming situations encountered in the "real world". This
course will stress individual/group research and exploration of many
topics. Prerequisite: Comp212
This class will be run "seminar" style, where
the students will be responsible for both researching as well as
presenting the class materials. There will be minimal lecturing
by the instructor.
Class web site:
http://www.exciton.cs.rice.edu/comp410
Course Objectives
The main objective of this course is to learn techniques of designing software that is
scalable to large industrial sizes. This will involve
learning new language and infrastructure designed for use
in such projects (C# and .NET) and architectural
techniques such a design patterns. Perhaps as
importantly, in this course, the student will learn how to
gather, assimilate and disseminate new information that affects the
progress and implementation of a project. One very important
aspect will be learning how to work in teams and groups of
teams. This will include learning to modularizing a project
, team coding, creating API's, and maintaining code and informational
coherency within the group. We will also learn how to use modern
software developement tools such as RAD IDE's and CASE
tools.
Class hours
Monday, Wednesday 1:00 PM - 1:50 PM in Symonds II
laboratory
Friday 1:00 PM - 1:50 PM in DH 1075 + 5:00 PM - 6:00 PM in Symonds
II
Staff
Instructor: Stephen Wong
E-mail: swong@rice.edu
Office: DH 3102
Office hours: see web page (http://www.exciton.cs.rice.edu/faculty/wong)
Course
Assistant/Grader: Sumit
Mittal E-mail: mittal@cs.rice.edu
Textbooks
Required:
 |
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides,
Design Patterns, Elements of Reusable Object-Oriented
Software, Addison Wesley, 1995. ISBN
0201633612. The bible of design patterns, a must-have for
anyone serious about object oriented programming. |
 |
Martin Fowler and Kendal Scott, UML Distilled: A
Brief Guide to the Standard Object Modeling Language, 2nd
ed., Addison Wesley, 1999. ISBN 020165783X.
Useful for learning how to fully use UML
diagrams. |
Recommended:
 |
Kent Beck, eXtreme Programming eXplained, Embrace
Change, Addison-Wesley,
ISBN:
0201616416. The definitive reference by the
developer of XP. |
 |
Martin Fowler,Kent Beck, John Brant,William
Opdyke, Don Roberts, Refactoring: Improving the Design of
Existing Code, Addison-Wesley, ISBN: 0201485672. The definitive
book on refactoring.
|
Assignments
This is a project course designed to teach about
software engineering, so the class grade will determined on
a combination of project milestones and
journals.
Project Milestones
- Each student will be responsible for at least
one milestone that comes due every two weeks.
- 100% score will be awarded for a completed
milestone. Incomplete milestones will be assigned a
score commensurate with their completeness level and the importance of
the milestone.
Journals
- Each student will be turn in a journal entry
each Friday.
- Each journal entry must cover the
following issues
- Status of the student's milestones -- be
specific and complete!
- Gains made
- Obstacles encountered
- Solutions proposed
- Analysis of development process
- What seems to be working -- why?
- What seems to not be working -- why?
- Proposals for change
- Must propose something, no matter how small.
- What is proposal designed to fix/change?
- Journals must be in MS Word format with
imbedded graphics if needed.
- Journals will be posted and all students are
responsible for reading all journal entries.
- File naming convention:
[login]JXX.doc where XX
is the two-digit journal number.
- General dropoff location: ftp://comp410@www.exciton.cs.rice.edu/comp410/dropoff
(On campus only! Hit "Refresh/Reload" if "Page not found"
error appears.)
Final Project
At the end of the semester the final project will be
assigned a score that will be applied equally to all students.
Attendence
100% class
attendance is absolutely mandatory.
Grading (subject to change)
| Journals: |
45% |
| Milestones: |
45% |
| Final Project: |
10% |
|