CS450/CS550 Syllabus
Fall 2002
Prof. Russ Nelson, SC 366, x2386

The majority of work in this course will be on a project. You may propose your own project, or work on the class project. Proposals are due by 9/14 at 23:00. All projects will be team projects.

Grading

The majority of your grade will come from your performance on the project. Grades for the projects will be given individually based on your performance evaluation. You will assign yourself a grade, and I will not change it without explanation.

in-class exam9%
in-class exam9%
in-class exam9%
interim written performance evaluation29%
final written performance evaluation39%
fudge factor5%

I will use the fudge factor to adjust your grade up or down based on my subjective evaluation of the effort you have put into learning how to design and develop software. If you have learned much and accomplished little, your fudge factor will show it. If your project shows exemplary skill, your fudge factor will show it. If, through no fault of your own, your project turns out all burned and crunchy, the frosting slides down the sides, and it gets mashed on the way to class, your fudge factor will show it.

Fall Schedule

Week 1

Aug 27 Tue: The coding telephone game. Everyone received a snippet of code and is asked to write the specification for the code. When finished, everyone swaps, and gets somebody else's description, and writes the code based on the description. Some do well, some do poorly, some have a poor description to work from. Then we swap again, and people try to write descriptions of the code they got.

Aug 29 Thu: Introducing the POS project. The offered project consists of multiple front-end client machines (Front of House), one back-end server (Back of House), and a Management Workstation. Kitchen orders get printed out, customers get printed receipts, and the manager gets printed reports.

Week 2

Sep 03 Tue: Specifying the system. Mostly, this means laying out the database fields. The business model drives the necessary data. The design of the data drives the database fields. Scribe: Emily.

Sep 05 Thu: Specified the back of house Credit Card Authorization Protocol (CCAP) (EMBA -- Everything Must Be Acronymized), and the initial menu tree laid out in the database. Scribe: Ashwin

Week 3

Sep 10 Tue: Set people up in their teams. Spoke some more about how the team play would actually work out. Caused Brendan's eyes to get really big when he realized the responsibility he's taking on. I am confident, though, that he and Steve are up to the task. Scribe: Milly Chen.

Sep 12 Thu: Talked about management workstation reports. Milly Chen and Yu Wang helped devise them on Tuesday. Started into implementing my FOH system. Made the point that a successful "top-down" design must necessarily alternate between top-down specifying, and bottom-up implementing. Without these reality checks, a top-down design can create something whose details cannot be reasonably implemented. Also made the point that early assumptions cannot be changed, just as the utilities buried in the concrete of a building can't reasonably be changed. AKA the principle "bathrooms get moved only at great expense." Pointed to Stewart Brand's "How Buildings Learn".

Sep 14 Sat: 11PM alternative proposals due ("due" not "do").

Week 4

Sep 17 Tue: Did an introduction to SQL queries. Brendan and Steve decided to use MySQL.

Sep 19 Thu: Provisioned a box for running the back-of-house server. Name is boh.russnelson.com. Could probably get a Clarkson name, but it's not so very important to have matching forward and reverse DNS names. Did an introduction to CVS.

Week 5

Sep 24 Tue: Covered Makefiles in specific, and more generally, the process of building an executable out of its component parts. Pointed out that the dependencies between parts of a project form a Directed Acyclic Graph. The make program traverses that graph and compares file timestamps to make sure that all dependent parts are newer. When they aren't, it runs commands which presumably make it newer.

Sep 26 Thu: in-class exam. This will cover the first two chapters of Brooks.

FALL RECESS: September 27 (begins at the end of the last scheduled class) - October 2 (8 a.m.)

Week 6

Oct 03 Thu:

Week 7

Oct 08 Tue:

Oct 10 Thu: in-class exam

Oct 12 Sat: Interim Performance Evaluations due at 11PM

Week 8

Oct 15 Tue:

Oct 17 Thur:

Week 9

Oct 22 Tue:

Oct 24 Thu:

Week 10

Oct 29 Tue:

Oct 31 Thu: in-class exam

Week 11

Nov 05 Tue:

Nov 07 Thu:

Week 12

Nov 12 Tue:

Nov 14 Thu:

Week 13

Nov 19 Tue:

Nov 21 Thu:

Nov 22 Sat: Final Performance Evaluations due at 11PM

Week 14

Nov 26 Tue: Oral presentations. Everyone must be ready for this day. Order of presentation will be chosen at random.

THANKSGIVING RECESS:

November 26 (begins at the end of the last scheduled class) - December 2 (8 a.m.)

Week 15

Dec 03 Tue: Oral presentations.

Dec 05 Thu: Demo day.

Final Exams Week: Dec 9-13


Russell Nelson
Last modified: Wed Sep 25 11:23:31 EDT 2002