CS130 -- Software Development
Spring, 2008
(last updated 1/7/2008)


Wayne Iba,
office: new Math and Computer Science Building,
phone: 565-6799
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. [optionalThis 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. 
Stephen R. Schach.  (2004).  Object-Oriented and Classical Software Engineering (sixth edition).  McGraw Hill.  ISBN 0072865512.[optional]
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.