CS 292: Dynamically Generated Web Sites.



Instructors           Jaime Davila & Daniel Parker
Office (Jaime)   : ASH 204
Office Hrs        : By Appointment
Phone Number  : 413-559-5687
email               : jdavila at hampshire dot edu  (by far the best way to reach me)


By the end of this course students will have been exposed to the major topics involved in developing real-life applications that make use of data in order to dynamically generate websites. Emphasis will be placed on both standard database theory and real-life deployment, installation, and maintenance of database driven websites. At least a semester of solid experience with a high level programming language is required.

Students are expected to actively contribute to the course, and should expect between 5-10 hours of work outside classtime. There will be programming homework due almost weekly.



Your evaluation for this course will be based on 1) the code you develop for homework, 2) the methods by which you develop this code, and 3) class participation.


Textbooks (both required).
The Practical SQL Handbook, 4th edition, by Judith S. Bowman, Sandra L. Emerson, and Marcy Darnovsky
Fundamentals of Database Systems, 4th edition, by Ramez Elmasri and Shamkant B. Navathe

Below is an initial outline of the topics we will cover this semester. As you can see, only the first few weeks have topics assigned to them. These weeks will be used to introduce general material, always with an eye on the program we will be developing. During the semester's fifth week we will, as a group, design how the rest of the semester will progress.

Many topics will be introduced as needed based on the conversations we will be having in class. Whenever we do, I will update this syllabus to reflect the topics covered.


Resources:
1) Request from a potential customer.
Week Dates Topics Assignments Readings
1 Jan. 29 Overview/Introduction   Fundamentals: chapter 1
2 Feb. 3, 5 Installing software
Database basics
Databases as relations
  Fundamentals: chapters 3, 5
3 Feb. 10, 12 Database basics
Tables
  SQL: chapters 1,2
4 Feb. 17, 19 Creating databases and tables
Database normalization
Querying Data
  SQL: chapters 2, 3, 4
Fundamentals: chapter 10
5 Feb. 24 Inserting, updating, and deleting data I    
6 Mar. 2, 4 Advanced queries
Inserting, updating, and deleting data II
  SQL: chapters 5, 6, 7
7 Mar 9, 11 Indexes, Functions   SQL: chapter 3
Fundamentals: chapter 14
8 Mar. 23, 25 Database management
(users, permissions, remote access)
  Fundamentals: chapter 23
9 Mar. 30, Apr. 1 Basic HTML
Basic PHP
   
10 Apr. 6, 8 Connecting to a web database
More PHP
   
11 Apr. 13, 15 Writing to a database
Data validation
   
12 Apr. 20, 22 Sessions   Fundamentals: chapters 17, 18
13 Apr. 27, 29 Authentication   Fundamentals: chapter 23
14 Apr. 4, 6 Backups, Performance Tuning, Scalability, Vacuuming, Automation   Fundamentals: chapters 16,19