Not in the Syllabus

In the spirit of Greg's Not on the Shelves post about books he'd like to see, here's one class I'd like to see taught:

Test-Driven Web Development

This class will introduce students to test-driven software engineering through the development of a database-backed Web site. Student development will be driven by requirements specified in acceptance tests on a weekly basis, with periodic code reviews and demo presentations. The course will cover test-driven software engineering, Web architecture, databases, JavaScript/AJAX, and good software development practices.

Rough outline:

  1. Hello, World: HTML, HTTP, and the Web
  2. Structuring Web sites
  3. Unit and functional tests
  4. Storing and retrieving information from an SQL database
  5. Data models and database architecture; object databases
  6. Security thoughts: cookies, XSS, SQL injection attacks
  7. Scalability and back-end architecture
  8. Asynchronous page updates (AJAX) and JavaScript
  9. Continuous integration and regression tests

Technologies: Python, JavaScript/AJAX, PostgreSQL, Linux

Prerequisites: Intro Programming

Textbook: Dreaming in Code

Legacy Comments

Posted by Grig Gheorghiu on 2007-02-04 at 22:41.

Let me try stopping salivating for a while and say those MSU students
are a lucky bunch! I hope videos of the lectures will be on the Web,
in true Open Source fashion :-)    Grig

Posted by michael schurter on 2007-02-05 at 09:27.

The syllabus seems far too practical.  Perhaps each step should be
followed by a discussion of an esoteric alternative programming
paradigm which was popular among a small group of academics in the 70s
and has really never been surpassed in functionality and elegance?
Now that's education!

Posted by Titus Brown on 2007-02-05 at 10:44.

Michael, I think you're right.    "Database-Backed Web Programming in
ALGOL"?    ;)    Seriously, although I do intend to provide plenty of
practical information, for most of the items I do have plenty of more
theoretical stuff to pass on.  I was thinking of trying to do a "1
on/1 off" lecture style, with one day of pure practical stuff ("here's
how HTTP works, guys!") and one day of theory (REST,  stateless
interactions, HTTP as a limited API).  I'll probably have to flesh
that out a bit more.    --titus

Posted by Diane Trout on 2007-02-16 at 17:52.

Are you sure you're not part of the CIS department?    Back in at my
university the CIS major was part of the school of business and they
taught things like Visual Basic and Office Automation.     So of
course the CS majors looked down on them for being clueless posers.
On the other hand my CS department didn't know how to teach people how
to program. (The only people who passed CS101 already knew how to
code.)    Now we've got CS classes who are trying so hard to make CS
approachable that they're even useing <a

Comments !