CS3733-D06 Class Schedule

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:
Test Before you Code
JUnit home page

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