Spring Quarter 2004: March 29, 2004 - June 4, 2004
| Less: | Basics | Coordinates | Books | Schedule | Project | Teams | Presentations | Assessment | More: | Scores | Policies |
Catalog Description: A study of software engineering techniques for the development, maintenance, and evolution of large software systems. Topics include requirements and specification; system design and implementation; debugging, testing, and quality assurance; reengineering; project management; software process; tools; and environments.
Prerequisite(s): CS 141: Intermediate Data Structures and Algorithms. Let me emphasize that you should have good writing skills to pass this course as a significant portion of the work will be reports of various kinds. You should also have reasonable presentation skills, or at least you should be willing to develop them.
Time Requirements: Four units (12-16 hours/week): lecture (3 hours/week), laboratory (3 hours/week), individual study (6-10 hours/week; includes reading, writing, and hacking).
Instructor:
Peter H. Fröhlich
Office Hours:
Monday, Wednesday, Friday, 11:10 am - noon
(email for additional appointments)
Location:
Surge,
Room 341
Lectures:
Monday, Wednesday, Friday, 5:10 pm - 6:00 pm
Location:
Sproul Hall,
Room 2340
Assistant:
Timothy Mauch
Office Hours:
Tuesday, 1:00 pm - 2:00 pm
(email for additional appointments)
Location:
Surge,
Room 282
Lab:
Friday, 11:10 am - 2:00 pm
Location:
Surge,
Room 283
Assistant:
Dragomir Yankov
Office Hours:
Friday, 1:00 pm - 2:00 pm
(email for additional appointments)
Location:
Surge,
Room 282
Lab:
Friday, 2:10 pm - 5:00 pm
Location:
Surge,
Room 283
Mailing List: cs180@lists.cs.ucr.edu (Archive)
Daniel Steinberg, Daniel Palmer: Extreme Software Engineering. Prentice Hall, 2004. Succinct introduction to eXtreme Programming (XP), an agile, iterative development process based on user stories, pair programming, testing first, and other interesting concepts.
Martin Fowler: UML Distilled. Addison-Wesley, 3rd edition, 2003. Succinct introduction to the Unified Modeling Language (UML) and also a concise summary of basic software engineering and software construction concerns. The 2nd edition is also good enough for the course, and it's available much cheaper.
Andrew Hunt, David Thomas: The Pragmatic Programmer: From Journeymen to Master. Addison-Wesley, 1999. A wealth of practical advice on various topics relevant to software construction, including design, implementation, testing, debugging, etc. Organized in 46 relatively small "lessons," extensively cross-referenced, including 70 "rules" and several check lists on a reference card. You can download additional material for this book here. An errata is available.
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995. The standard reference for object-oriented design patterns: well-documented solutions to recurring design and implementation problems. The case study in chapter 2 is also a great introduction to object-oriented design and programming.
Note the word tentative above. Things seldom go according to plan, and I expect changes here and there as we go along. Please also read the notes below. Most importantly: Keep in mind the actual Project Schedule available below, it contains details on when which assignments are due.
| Week | Lecture | Lab | Exam | Reading |
|---|---|---|---|---|
| 1 | Welcome [Lecture 1], Introduction to XP [Lecture 2], Core XP Practices [Lecture 3] | LaTeX [The Not So Short Introduction to LaTeX], Crossword Puzzle Exercise | - | S 1-2, F 1 |
| 2 | Core XP Practices [Lecture 4], Pair Programming [Lecture 5], Test-Driven Development [Lecture 6] | Subversion, Testing with xUnit/PyUnit, Map Drawing Exercise | - | S 3-4, F 2 |
| 3 | Requirements & Use Cases [Lecture 7], Domain Analysis (Static) [Lecture 8], Domain Analysis (Dynamic) [Lecture 9] | Requirements Case Study, CRC Cards, UML Tools | - | S 5, F 3, 9, 12 |
| 4 | Management [Lecture 10] [Lecture 11], Case Study: File System [Lecture 12] | Requirements Q&A, Acceptance Testing (FIT framework) | - | S 6-7, F 4-5 |
| 5 | Guest Lecture (Dan Berger), Midterm Review | Open Lab: TBA, Midterm Review |
[Midterm]
[Solution] |
S 8-9, F 6-8 |
| 6 | [Lecture 13] [Lecture 14] [Lecture 15] | - | - | S 10-11, F 10-11 |
| 7 | [Lecture 16] [Lecture 17] [Lecture 18] | - | - | S 12-13, F 12-14 |
| 8 | Patterns [Lecture 19] Patterns [Lecture 20] Cleanroom Process [Lecture 21] | - | - | S 14-15, F 15-17 |
| 9 | Components [Lecture 22], COM [Lecture 23] (Dan Berger), Legal Issues [Lecture 24] | - | - | S 1-15, F 1-17 |
| 10 | [Lecture 25] Comprehensive Review | Open Lab: Final Presentations |
[Comprehensive]
[Solution] |
S 1-15, F 1-17 |
Open Lab means you can attend any lab section offered that week; you don't have to attend the one you're enrolled in, and you can attend all of them as well.
The terms "S c" and "F c" refer to chapters in the required texts by Steinberg and Fowler; for example, "S 1" refers to chapter 1 in Steinberg, "F 4" refers to chapter 4 in Fowler. It's a good idea to review/skim the material "around" assigned chapters as well.
Some topics we go over in lecture or lab are not covered in the text; I will try to provide additional references for those. Also, some parts of the book are assigned as reading only and are not covered in lecture or lab (unless you ask about what you have read).
You are expected to do the assigned reading before a topic is covered in lecture or lab; reading assigned in the week of an exam is part of the exam.
The project in this "new and improved" version of the course is a little complicated. First, here's a description of the overall schedule, processes, and artifacts.
Here's a description of the actual project, at least of the most fundamental requirements. Your clients will definitely have their own ideas on top of these, so beware.
There will be future revisions of both of these documents, but they should be reasonably complete for now. Yes, we practice some form of XP ourselves. :-)
The final presentations are on Friday, June 4 during "lab time" in Surge 283. Two people from each team need to present for 20 minutes: 15 minutes for the actual talk and 5 minutes for questions from the audience (students, assistants, clients, experts, etc.). The default arrangement for a presentation will be the slides you handed in on our laptop. If you want to give a live demo, please contact Peter with the details; if you don't contact us, we'll assume a standard talk, slides only.
| Time | Team | Presenters |
|---|---|---|
| 11:10 - 11:15 | Welcome | Peter |
| 11:20 - 11:40 | ENKO | ? |
| 11:45 - 12:05 | 8th Dimension | Marcos Boyington, Jake Warmerdam |
| 12:10 - 12:30 | SPAM | Yunzhu (Julie) Shi, Matthew Nill |
| 12:35 - 12:55 | JAL | ? |
| 13:00 - 13:20 | DHL | Dennis Yu, Pioneer Chi |
| 13:25 - 13:45 | VAM | ? |
| 13:50 - 14:10 | MGB | Nhat Mai, Nicholas Quilantang |
| 14:15 - 14:35 | SRT | ? |
| 14:40 - 14:45 | Wrapup | Peter |
Note that the schedule includes 5 minutes of "slack" all over, which is already pretty "tight" judging from past experience. Please be on time, ideally even a bit early.
Assignments 40% (5), Iterations 20% (8), Midterm 15% (1), Comprehensive 15% (1), Peer Review (1): 10%. See my policies for more information.
|
Copyright © 2003-2004
Peter H. Fröhlich
All rights reserved.
$Id: index.html,v 1.34 2004/06/17 06:14:53 phf Exp $ |
|