Instructor Ben Delaware bendy at
When MW 10:00 - 11:00a Office Hours: MTh 11:00a - 12:00p
GDC 5.818F
Where GDC 2.506
What (Unique Number) 53610
Ground Rules Code of Conduct and Academic Honesty
Grades Blackboard
Discussion Group Piazza Discussion Group

Course Overview

The goal of this course is to introduce students to the basics of building modern webages using a combination of HTML, PHP, SQL, and JavaScript. Students will begin by learning how to design static webpages using HTML and CSS, and will then see how PHP can be used to extend this foundation to create dynamic websites. The course will also cover how to manage persistent using SQL, how to use JavaScript for client-side computation, and how to integrate these four technologies to build interactive webpages.

Prerequisites: A grade of at least C- in Computer Sciences 307, 313E, 314, 314H, or Electrical Engineering 422C (or 322C). While the course does not assume any experience with the various languages covered, it does rely on some familiarity with object-oriented programming in order to focus on topics specific to web programming.


Lecture slides will be posted after class for your perusal; click on a topic to see a pdf of the associated lecture. There is no required textbook, although I recommend Nixon's Learning PHP, MySQL, JavaScript, and CSS as a solid introductory reference text. A digital version of this book is available from the library.

In order to cover HTML, PHP, SQL, and JavaScript, the lectures will not be able to delve into every detail of each language. Thankfully, there is no shortage of good references available online.


The bulk of the course grade will come from the design of a photo-sharing website. The project is divided into five phases, with each phase focusing on one of the technologies from class. Each phase will account for a fifth of the points for the project. Assignments will need to be posted on your webspace on and the source code for each needs to be submitted using turnin.

Turnin Instructions

After each phase, you will submit a short analysis of a classmate's website after interacting with it for fifteen minutes. This will give you a feel for how your project appears to the end-user. This analysis should be done using this template which notes what the website does well, what needs improvement, and what (if anything) you found confusing. After looking over the feedback I will forward it to the designer of the website. In order to ensure everyone gets feedback, I will assign websites for each student to analyze.

The remainder of the grade will come from class participation- attendence and completion of in-class activities. Bonus points may be awarded for exemplary participation.

Final grades will be calculated from these three components using the following weights:

Assignments: 75%
Website Analyses 15%
Class Participation 10%

Late submissions. There will be a 25% penalty for every day that a homework assignment is late. If you are worried that you will miss a deadline, contact me as soon as possible. I'm willing to work with you if there are exceptional circumstances.

If you feel that an error was made in grading an assignments, you must request a regrade in writing within a week of receiving the grade in question. Keep in mind that I may regrade the entire assignment.

10/22 Critique 4 Posted [Show]
Critique 4 has been posted. It is due on October 22th, this Thursday.
10/20 Phase 5 Live [Show]
Phase 5 is now available. It is due on October 30th, the day before Halloween.
10/9 Phase 4 Live [Show]
Phase 4 is now available. It is due on October 18th, a week and a half from now.
10/8 Critique 3 Out [Show]
The third critique has been posted; it's due October 11th at 10pm.
9/27 Phase 3 Live [Show]
Phase 3 is now available. It is due on October 6th, a week and a half from now.
9/23 Critique 2 Out [Show]
The second critique has been posted; it's due September 26th at 10pm.
9/18 New Office [Show]
I have been forced to trade my view of the roof of ACES for a view of the roof of GEO. My new desk is 5.818F in 5S, so all my future office hours will be there.
9/10 Phase 2 Live [Show]
Phase 2 is now available. It is due on September 19, a week and a half from now.
8/29 Class Piazza [Show]
I have set up a page and discussion board on piazza and added a post with the information for accessing the lecture slides. I added everyone who filled out the Google Form . If you haven't gotten an email from piazza, please fill out the form ASAP.
8/28 Meta-Data Needed [Show]
Everyone should fill out this Google Form so that I can get your webspace on z set up and your email added to the class discussion board.
8/28 No Class on 9/2 [Show]
There is no class on the Labor Day holiday.


8/28 Course Overview
Introduction to HTML and CSS
Hello World
Tag Zoo
Styled Tag Zoo
Music Map
9/2 No Class: Labor Day
9/4 HTML Forms Phase 1 Due Tomorrow (9/5)


Color Schemes
Google Webfonts
HTML Validator

Personality Test
New Music Event
9/9 Introducing PHP Analysis 1 Due Tomorrow (9/10)
PHP Hello World Source
New Event Handler Source
PHP Music Map Source
9/11 Object-Oriented Programming in PHP Animal.php Source
9/16 Introduction to Relational Databases and SQL SQL Walkthrough
9/18 Joins in MySQL Phase 2 Due Tomorrow (9/19)
Joins Walkthrough
9/23 Using SQL with PHP
SQL Security
Customers Source
Add Cust Source
Edit Cust Source
Update Cust Source
Add Orders Source
9/25 Guest Lecture:
The Model View Controller Pattern
Analysis 2 Due Tomorrow (9/26)
9/30 No Class: Class cancelled for ICFP
10/2 Sessions, and Cookies Phase 3 Due Sunday (10/5)
SQL Music Map Source
get_info.php Source
10/7 Introduction to Javascript Demo 1
Demo 2
Demo 3
10/9 JQuery Analysis 3 Due Friday (10/11)
10/14 Event Handlers in Javascript Javascript Music Map
10/16 Scripted HTTP (AJAX) Phase 4 Due Friday (10/18) AJAX Music Map Source
Get Events
Get Map
Set Coordinates
10/21 Web Frameworks Analysis 4 Due Thursday (10/24)
10/23 Donuts and Course Evals Phase 5 due in a Week (10/30)