CS130
-- Software Development
Spring, 2008
(last updated 1/7/2008)
Updates:
Professor:
Office hours: see my main page
Time and place: Tues & Thurs, 8:00-9:50; KSC 218
Textbooks (two required, one recommended, two optional):
Thomas, D. & Hansson, D.H. (2006). Agile Web Development with Rails (second edition). The Pragmatic Bookshelf.
ISBN 0977616630. [
required]
This
book takes the reader through the development of an on-line
shopping application and then into the details of the Rails
framework. We will be using the book primarily during the first
several
weeks and then you may find it useful as a reference.
Tate, B.A. & Hibbs, C. (2006). Ruby on Rails: Up and Running. O'Reilly Media Inc.
ISBN 0596101325. [
optional]
This
is a no-frills (thin and light) introduction to Ruby on Rails. The book
demonstrates many of the features and conventions of Ruby on Rails by
guiding the reader through the development of a web-based photo album
management application. This book could serve as an additional resource
for getting up-to-speed with Ruby on Rails. I thought it did a
few things better than the Agile Web Development with Rails book, but as a stand alone resource it might not be sufficient.
Harvey, Michael. (2003).
The Nuts and Bolts of College Writing.
Hackett Publishing. ISBN 0872205738. [
recommended]
You should have writing guide. If you do not have one, this is recommended. But the classic Strunk & White is fine.
Resources:
You will need to install
Ruby and Rails if you do not already have them on your computer
If you've not programmed in Ruby, it would be a good idea to work through a tutorial (there are many from which to choose)
You should also work through a small application built on Rails. Again, working through a tutorial would be a good idea.
Official 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, implementing,
testing, and maintaining large software systems. This course covers
an overview of software engineering and its methods and will engage in one or more reasonably large software
development projects. This class will
probably require the dominant share of your available time; please plan
accordingly.
To repeat, this class will probably
be alot of work. Do your best to plan your overall
schedule so that you are not taking other time-demanding courses during the
same semester as CS130. If you choose to ignore this advice, do
not complain about the workload in Software Development. I
understand that you're taking other classes but I expect CS130 to be
your priority.
This class will require significant amounts of writing; under the new
GE, it has been designated as satisfying the writing-intensive
requirement. There will naturally be extensive code writing, but
you will also be writing multiple technical documents in service of
your projects. You will also be writing (and rewriting) six to
twelve essays in response to assigned readings. Please read these
general comments on the reading
assignments and your required analyses (link coming soon). The Harvey book
above is recommended although if you already have a copy of Strunk and
White that is just as good. I expect you to
become a better writer during this
course.
Other Links
Acknowledgements: I am extensively revising this course for Spring 2008.