80 min lecture / 80 min lab
Office hours: 9:15-11:15pm Monday (the night before the homework is due) unless otherwise stated. Arrange private hours via e-mail.
Office: Egr 3137 (office hours or by appointment); Giltner 318(a) the rest of the time.
Prerequisites: CSE 232. Knowledge of Python is strongly suggested.
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). See the syllabus for more information.
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.
You can also view the mailing list archives.
Lab of Genomics, Evolution and Development / ctb@msu.edu