-- Software Development
(last updated 12/20/2003)
- [12/20/2003] Added pictures from the post-code-freeze breakfast at my house.
- [12/9/2003] The Final Exam (or
in Microsoft format) is now available as
of 7:45am Tuesday 12/9. Your completed papers (hard copy) will be
due in my office by 10am Tuesday 12/16.
- [12/5/2003] The Peer
Evaluation forms are now available. I will be bringing copies
on Tuesday, December 9.
- [10/15/2003] As we approach mid-term evaluation time, I am
your comments and criticisms toward helping me improve the course
during the second half. If you miss class on Thurs, 10/16, please
edit it with your suggestions and drop it in my mail slot or send it
through campus mail. I greatly appreciate your suggestions and
- [10/9/03] I've removed the executable. If you need it, talk
- [9/23/03] Shift-click or right-click to
grab an executable that Ryan N. tried to email everyone but
choked the list. Please grab a copy during the next few days as
I'll be removing it from the server around Friday.
- [9/16/03] Here is another entertaining essay from Umberto Eco, Mac is Catholic, DOS is Protestant,
with a link to a response.
- [9/4/03] I read this article by Paul Kimmel in class. Here
is a link
Recipe for a Perfect Project.
Office hours: TTh 10am-noon, W
2-3pm (or other times by arrangement)
Object-Oriented and Classical Software
Time and place: TTh, 8-9:50 am;
(fifth edition), by Stephen R. Schach.
McGraw Hill. (2002). [required. Unfortunately, this
book is expensive; be aware that you could probably find it used at
amazon for much less than at the bookstore. --wfi]
The Mythical Man-Month
(anniversary edition), by Frederick P. Brooks, Jr.
Addison-Wesley. (1995). [suggested]
Official Syllabus (OpenOffice, Word). (Unofficial html syllabus.)
Tentative class schedule
For quite some time, software
has been the limiting factor for most problem domains -- both in terms
of functionality and in terms of cost. The discipline of software
engineering has grown up around the problem of designing, developing,
testing, and maintaining large software systems. The class covers
an overview of software engineering and its methods and will engage in
a reasonably large software
development project. This class will
probably require the dominant share of your available time; please plan
Acknowledgements: I have
borrowed extensively from Professor
Richard Taylor's website at UC Irvine and specifically from his
courses ICS52 and ICS125. I will extensively use the lecture
slides provided at Schach's textbook website.
- GNU Go.
Go is an ancient game of strategy played on a 19x19
grid with black and white stones. While computer chess programs
have played at master levels for some time, the best computer Go
programs are still at the novice level. GNU Go is a free software
implementation of Go. We could extend the program in any one of
- Gnucash. Gnucash is a
powerful financial management system
with an extensive user-base. However, it still lacks a budgeting
capability that lets users see average monthly expenses by category or
make projections about expenses by category. Extensions to
Gnucash are written in Guile (Scheme).
Chandler is an ambitious personal information
management system aimed at replacing existing integrated email,
calendaring, etc applications. Chandler is being implemented in
Python. As a potentially very useful tool with a broad user-base,
it represents an ideal platform for studying and deploying adaptive
personalized assistants. In order for these assistants to be
adaptive, they must have data from which to build models of user
behavior, preferences, etc. A nice project would be to implement
the data collection and logging capabilities for Chandler.
- Automated Program Grading. Last year's CS130 started to
design and build a system that would enable the automated or
semi-automated grading of student programming assignments. The
state of the system is somewhat unknown, but as a group project, we
could pick up where they left off.