Chris Brooks
HR 541
422-5221
cbrooks@cs.usfca.edu
Office Hours: MW 2:30-4:00 pm (or by appointment)
TR 10:00-11:45 am
HR 514
In this course, you will complete a semester-long project, working in
teams of two or more. You will detrmine the project goals, set
milestones and deliverables, and implement and document your project.
This is a different sort of project than you've probably encountered
in previous courses. First, it's more open-ended. Rather than being
given a tightly specified assignment, you will be involved in a
creative process. There is not necessarily a 'right' way to implement
a project, and you will run into unforseen problems that none of you
(or me) know how to solve at first. Figuring out how to solve new and
unusual problems is one of the most important skills you'll learn in
here. Second, collaboration and use of outside code is
encouraged. You'll be working on substantial projects, so any
supplemental code you can find to help you out is great. (you should
acknowledge this work in your documentation, of course.) Third, you
will be responsible for the other members in your group. I will expect
you to 'police' each other to a large extent and make sure that your
team members are doing what they're supposed to be doing.
Grades will be assigned based on a combination of your completed project, your web page/documentation, and your presentations.
While you really have one big assignment to complete by the end of the semester, there are several assignments and milestones along the way.
Periodically throughout the semester I'll print out your web pages, grade them and comment on them. I'll then meet with each group and give you feedback and advice on what looks good and what can be improved.
Your documentation should also contain links to related work, including previous projects that you are extending, research papers that you have read, or other projects or software that are related to your project.
For examples of what is required, take a look at the web pages from last semester.
Documentation is extremely important. A common objection is that it's just ``busy work'', or that it's not necessary since what you really want to learn is how to code. This is just not the case. In any job, one of the most important skills is communication; you need to be able to document and explain to people what you have done, why they should care about it, and how it works. In an ongoing project, you also need to ``set the stage'' for the next person who's taking your spot.
Feb 10th (3rd week of class) - First review of web pages.
Feb 17th (4th week of class) - First code walkthrough.
March 10th (7th week of class) - Midterm presentations.
March 17th (8th week of class) - Spring Break. (yay!)
April 7th (11th week of classes) - Second review of web pages.
April 14th (12th week of classes) - Second code walkthrough.
May 12th (16th week of classes) - Final Presentations