80 min lecture / 80 min lab
Office hours: 8:15-10pm the night before the homework is due (usually Wednesday) unless otherwise stated. Arrange private hours via e-mail.
Prerequisites: CSE 232. Knowledge of Python is suggested but not required.
The goal of this course is to introduce students to the theory and practice of database-backed Web site development. By the end of the course, students will have implemented a simple but complete interactive "Web 2.0" multiuser Web site in Python with asynchronous JavaScript (AJAX) features and an SQL database. Students will learn basic HTML, CSS, SQL, and JavaScript, while gaining an understanding of client-server programming, software architecture considerations, automated tests, and basic software carpentry (version control, source code management, and tools for collaboration).
Graded work: weekly programming assignment and two short papers.
Justification: database-backed Web development exposes students to a plethora of modern (and immediately relevant) technologies. Actually implementing a simple Web site will introduce students to modern network programming, client-server architecture, and software architecture design and deployment considerations -- all practical skills with deep underpinnings in computer science. I'm hoping to foster an increased awareness of effective programming tactics and skills with this course, as well as exposing them to a variety of technologies and theoretical considerations.
Additional topics, if they can be worked in: usability consideration; statelessness; REST; scalability; OS/network stack; OS process/thread/event handling; the Semantic Web; remote APIs and RPC; trust networks; and social engineering.
There is a Wiki, at http://msu-cse491-fall-2008.wikidot.com/; to join as a member, go here and enter the password 'spartannica'.
You can also view the mailing list archives.
Lab of Genomics, Evolution and Development / ctb@msu.edu