The following table shows the class schedule, by week, and the topics for the classes. While there may be some adjustment in the schedule as the term progresses, I will try to stick to the schedule as much as possible. Homework assignments are due through turnin by class time on the day they are due.
|
Date
|
Topics | Assignment | Reading |
|
14-Mar
|
Course introduction, teams, communication, tools, nature of software |
Form teams. There should be three teams. Each should have the same number of members, ideally. However, if there are not enough to make this come out even, there should be no more than one team member difference. You can use the class SourceForge project for discussion. When the teams are formed, email the team members' names to me along with the team name, if you choose one. Every student should get an account on the WPI SourceForge system. One member from each team should request a new project on SourceForge and then add the other project team members. (Due 16-Mar) |
Introduction, Ch. 1 Two articles: Teaching Software Development vs Software Engineering and Software Development 101 |
|
16-Mar
|
Tools, pair programming, introduction to XP and iterative development, pair programming overview, spikes. |
Students will work in pairs for this assignment. If there are an odd number of students, there may be one group that can have 3 students, but you need to make sure that you all get a chance to pair program. Try an XP spike as described in Chapter 2 of the text. You should, at the minimum, pair program, estimate your work by writing simple user stories, and, if possible, try test-first programming. Your program description is described here. You will need to write a short report on your experiences of the different practices you use. Evaluate the effectiveness of the practice and wheter you think the practice is something that you will use again in the future. There should be one report for each pair. You will be graded on your code correctness, code style and comments, and your report. Make sure that each student's name is on all artifacts that you create. (Due 27-Mar) /cs/bin/turnin submit cs3733 hw1 homework1.zip |
Ch. 2, 3, 4 |
|
17-Mar
|
Introduction to the project, team selection, iterative and incremental development | Ch. 5, 6 | |
|
20-Mar
|
Requirements: use cases, user stories | Ch. 7, 8 | |
|
21-Mar
|
Project planning: the planning game, estimation | Ch. 9, 10 | |
|
23-Mar
|
Configuration management, agile methods, XP | Ch. 11, 12 Slides are here ABCs of Branching and Merging ABCs of Release Management |
|
|
24-Mar
|
Team meetings, exercises, iteration reports |
|
Ch. 13 |
|
27-Mar
|
Pair programming, Test-first programming, JUnit |
Ch. 14 Optional reading: |
|
|
28-Mar
|
People, Process, Tools, generating trust, team behavior | Slides from this class are here. | |
|
30-Mar
|
Unit testing, mock objects, CVS |
|
|
|
31-Mar
|
Team meetings, exercises, iteration reports | Ch. 15 | |
|
3-Apr
|
Analysis: finding domain classes, interactions, introduction to UML | You are going to write unit tests for a program (class) using JUnit. The interface for the class is here.
Write a class called YahtzeeStateTest.java that contains all of your
tests.Your tests should be as comprehensive as possible. You will be
graded on your code style, the number of good tests that you write, the
lack of redundancy in tests, and how well they work on the actual code.
Just submit your Java source file. The actual class you will test is
YahtzeeState, and it has a default constructor that you can use in your
test cases. This initializes the state to have no score. Make sure that your name is on the source file that you create. This is an individual assignment. (Due 11-Apr) /cs/bin/turnin submit cs3733 hw2 YahtzeeStateTest.java |
|
|
4-Apr
|
Analysis methods: CRC cards, textual analysis | ||
|
6-Apr
|
Design: architecture | ||
|
7-Apr
|
Team meetings, exercises, iteration reports | ||
|
10-Apr
|
Midterm exam |
||
|
11-Apr
|
Design: class design | ||
|
13-Apr
|
Design: design patterns | ||
| 14-Apr | Team meetings, exercises, iteration reports | Read Philippe Kruchten's article on the 4+1 Views of Software Architecture in the SourceForge project for this class. It is in the Documents>Readings folder. | |
|
17-Apr
|
Design: design patterns |
|
Read: What is a Software Architecture |
|
20-Apr
|
Testing: fundamentals, test cases | ||
|
21-Apr
|
Team meetings, exercises, iteration reports | ||
|
24-Apr
|
Testing: integration and system tests | Parnas and Clements article | |
|
25-Apr
|
Testing | Complete the individual project report form and email it to me by 1-May. | |
|
27-Apr
|
Extra topics | ||
|
28-Apr
|
Final exam | ||
|
1-May
|
Project presentations | ||
|
2-May
|
Project presentations |
Modified: 17-Apr-2006
Gary
Pollice