Syllabus version 1.2
This document is also available as a PDF.
Lecturers
David J. Malan
+1-617-523-0925
Dan Armendariz
+1-617-686-5089
Description
Today's websites are increasingly dynamic. Pages are no longer static HTML files but are instead generated by scripts and database calls. User interfaces are more seamless, with technologies like Ajax replacing traditional page reloads. This course teaches students how to build dynamic websites with Ajax and with Linux, Apache, MySQL, and PHP (LAMP), one of today's most popular frameworks. Students learn how to set up domain names with DNS, how to structure pages with XHTML and CSS, how to program in JavaScript and PHP, how to configure Apache and MySQL, how to design and query databases with SQL, how to use Ajax with both XML and JSON, and how to build mashups. The course discusses issues of security, scalability, and cross-browser support.
Prerequisites
Prior programming experience in any language is assumed.
Expectations
You are expected to attend all lectures and to implement four projects.
Grades
Your final grade will be based on your performance on the course's projects, each of which will bear equal weight. Remarkable effort and improvement will not go unnoticed.
Website
The address of this course's website appears below.
Visit the course's website to access the course's bulletin board, enter the virtual classroom, check your grades, watch videos of Spring 2008's lectures, download handouts and software, and follow links to other resources.
Staff
To contact the entire staff, email the address below.
However, you are encouraged to post most questions to the forum on the course's website instead so that others might benefit as well.
Lectures
Lectures will take place in room N050 of the CGIS Knafel Building at 1737 Cambridge Street on Mondays and Wednesdays from 6:00 P.M. until 8:30 P.M.
A schedule of lectures, subject to change, appears below.
Sections
Sections offer opportunities to review recent lectures' material in a more intimate environment with only a teaching fellow and a handful of classmates present. Sections also provide guidance on projects.
A schedule of sections appears on the course's website.
Office Hours
Throughout the week, the staff hold office hours during which you can receive hands-on, one-on-one assistance. The staff also hold virtual office hours in the course's "virtual classroom," where you can receive remote, one-on-one assistance via the Web. Thanks to technology, the staff can help you troubleshoot bugs by observing or sharing control of your screen while chatting with you via IM or VOIP, whether you're at home, at work, at Starbucks, or beyond!
A schedule of office hours appears on the course's website.
Projects
In addition to a final project, four other projects will be assigned during the semester.
A schedule of projects, subject to change, appears below.
Extensions on these four projects will not be granted, except in cases of emergency. Technical difficulties will not constitute emergencies. Work submitted n hours late without extension will penalized 5% for n in (0, 24], 10% for n in (24, 48], 25% for n in (48, 72], 50% for n in (72, 96], or 100% for n greater than 96. Lateness will be determined by submissions' timestamps.
Exams
This course will have neither a midterm nor a final exam.
Books
No books are required for this course. However, we recommend the below as references. Each is available for purchase at sites like Amazon.com. Each has also been placed on reserve at Grossman Library. Realize that links to free, if not superior, alternatives to these books can be found on the course's website.
Grossman Library
Each of this course's recommended books has be placed on reserve in Grossman Library, located in Sever Hall 311; the books may not be checked out.
A schedule of hours appears at the address below.
Virtual Private Server
So that the course's lessons are as real-world as possible, you will develop your projects on a virtual private server configured to resemble a commercial web host. In fact, Project 0 will have you purchase (for just a few dollars) your very own domain name for use throughout the semester. All of your projects, including your final project, will ultimately reside in that very domain.
The course will host your domain for you for the duration of the semester. We will provide you with an account via which each of your websites will be hosted. Not only will the account be accessible via SFTP and SSH, it will include at least 500 MB of storage space, unlimited email addresses within your own domain (accessible via IMAP, POP, and webmail), your own MySQL databases, and more.
Software
It is not necessary to purchase any software for this course. All software required by the course's projects will be installed on the course's virtual private server, and most will also be available for download via the course's website for Linux, Mac OS, and Windows alike.
Academic Honesty
All work that you do toward fulfillment of this course's expectations must be your own unless collaboration is explicitly allowed (as by the final project). Viewing or copying another individual's work (even if left by a printer, stored in an executable directory, or accidentally shared in the course's classroom) or lifting material from a book, magazine, website, or other source—even in part—and presenting it as your own constitutes academic dishonesty, as does showing or giving your work, even in part, to another student.
Similarly is dual submission academic dishonesty: you may not submit the same or similar work to this class that you have submitted or will submit to another. Moreover, submission of any work that you intend to use outside of the course (e.g., for a job) must be approved by the staff.
You are welcome to discuss the course's material with others in order to better understand it. You may even discuss projects with classmates, but you may not share non-trivial amounts of code (e.g., entire files). If in doubt as to the appropriateness of some discussion, contact the staff.
You may turn to the Web for instruction beyond the course's lectures and sections and for solutions to technical problems, so long as you cite the origin of any code you encounter and incorporate into your own work (as with CSS, PHP, or XHTML comments). Failure to cite the origin of any such code may be considered academic dishonesty.
All forms of academic dishonesty will be dealt with harshly.
Noncredit Status
If you are not taking this course for credit, you are not required to submit any work. However, all of the work in this course is designed to facilitate your comprehension and retention of the course's material. Consequently, you are encouraged to complete on time as much of the work as possible. In return, you will receive feedback on any work that you do submit.
David J. Malan
+1-617-523-0925
Dan Armendariz
+1-617-686-5089
Description
Today's websites are increasingly dynamic. Pages are no longer static HTML files but are instead generated by scripts and database calls. User interfaces are more seamless, with technologies like Ajax replacing traditional page reloads. This course teaches students how to build dynamic websites with Ajax and with Linux, Apache, MySQL, and PHP (LAMP), one of today's most popular frameworks. Students learn how to set up domain names with DNS, how to structure pages with XHTML and CSS, how to program in JavaScript and PHP, how to configure Apache and MySQL, how to design and query databases with SQL, how to use Ajax with both XML and JSON, and how to build mashups. The course discusses issues of security, scalability, and cross-browser support.
Prerequisites
Prior programming experience in any language is assumed.
Expectations
You are expected to attend all lectures and to implement four projects.
Grades
Your final grade will be based on your performance on the course's projects, each of which will bear equal weight. Remarkable effort and improvement will not go unnoticed.
Website
The address of this course's website appears below.
Visit the course's website to access the course's bulletin board, enter the virtual classroom, check your grades, watch videos of Spring 2008's lectures, download handouts and software, and follow links to other resources.
Staff
To contact the entire staff, email the address below.
However, you are encouraged to post most questions to the forum on the course's website instead so that others might benefit as well.
Lectures
Lectures will take place in room N050 of the CGIS Knafel Building at 1737 Cambridge Street on Mondays and Wednesdays from 6:00 P.M. until 8:30 P.M.
A schedule of lectures, subject to change, appears below.
Lecture 0: HTTP
Monday, 23 June 2008
Monday, 23 June 2008
Lecture 1: XHTML and CSS
Wednesday, 25 June 2008
Wednesday, 25 June 2008
Lecture 2: PHP
Monday, 30 June 2008
Monday, 30 June 2008
Lecture 3: PHP, Continued
Wednesday, 2 July 2008
Wednesday, 2 July 2008
Lecture 4: XML
Monday, 7 July 2008
Monday, 7 July 2008
Lecture 5: XML, Continued
Wednesday, 9 July 2008
Wednesday, 9 July 2008
Lecture 6: SQL
Monday, 14 July 2008
Monday, 14 July 2008
Lecture 7: SQL, Continued
Wednesday, 16 July 2008
Wednesday, 16 July 2008
Lecture 8: JavaScript
Monday, 21 July 2008
Monday, 21 July 2008
Lecture 9: JavaScript, Continued
Wednesday, 23 July 2008
Wednesday, 23 July 2008
Lecture 10: Ajax
Monday, 28 July 2008
Monday, 28 July 2008
Lecture 11: Mashups
Wednesday, 30 July 2008
Wednesday, 30 July 2008
Lecture 12: Scalability
Monday, 4 August 2008
Monday, 4 August 2008
Lecture 13: Security
Wednesday, 6 August 2008
Wednesday, 6 August 2008
Sections
Sections offer opportunities to review recent lectures' material in a more intimate environment with only a teaching fellow and a handful of classmates present. Sections also provide guidance on projects.
A schedule of sections appears on the course's website.
Office Hours
Throughout the week, the staff hold office hours during which you can receive hands-on, one-on-one assistance. The staff also hold virtual office hours in the course's "virtual classroom," where you can receive remote, one-on-one assistance via the Web. Thanks to technology, the staff can help you troubleshoot bugs by observing or sharing control of your screen while chatting with you via IM or VOIP, whether you're at home, at work, at Starbucks, or beyond!
A schedule of office hours appears on the course's website.
Projects
In addition to a final project, four other projects will be assigned during the semester.
A schedule of projects, subject to change, appears below.
Project 0: Setup
Assigned: Monday, 23 June 2008
Due: Wednesday, 2 July 2008, 5:00 P.M.
Due: Wednesday, 2 July 2008, 5:00 P.M.
Project 1: PizzaML
Assigned: Wednesday, 3 July 2008
Due: Monday, 21 July 2008, 5:00 P.M.
Due: Monday, 21 July 2008, 5:00 P.M.
Project 2: C$75 Finance
Assigned: Monday, 14 July 2008
Due: Wednesday, 30 July 2008, 5:00 P.M.
Due: Wednesday, 30 July 2008, 5:00 P.M.
Project 3: Google Newsworthy
Assigned: Monday, 28 July 2008
Due: Wednesday, 13 August 2008, 5:00 P.M.
Due: Wednesday, 13 August 2008, 5:00 P.M.
Extensions on these four projects will not be granted, except in cases of emergency. Technical difficulties will not constitute emergencies. Work submitted n hours late without extension will penalized 5% for n in (0, 24], 10% for n in (24, 48], 25% for n in (48, 72], 50% for n in (72, 96], or 100% for n greater than 96. Lateness will be determined by submissions' timestamps.
Exams
This course will have neither a midterm nor a final exam.
Books
No books are required for this course. However, we recommend the below as references. Each is available for purchase at sites like Amazon.com. Each has also been placed on reserve at Grossman Library. Realize that links to free, if not superior, alternatives to these books can be found on the course's website.
HTML: Your visual blueprint for designing Web pages with HTML, CSS, and XHTML
Paul Whitehead and Hames H. Russell
Wiley Publishing, Inc., 2005
ISBN 0-7645-8331-X
JavaScript: Your visual blueprint for building dynamic Web pages, 2nd Edition
Eric Pascarello
Wiley Publishing, Inc., 2004
ISBN 0-7645-7497-3
PHP 5: Your visual blueprint for creating open source, server-side content
Toby Joe Boudreaux
Wiley Publishing, Inc., 2005
ISBN 0-7645-8332-8
SQL: Visual QuickStart Guide, Second Edition
Chris Fehily
Peachpit Press, 2005
ISBN 0-321-33417-5
Paul Whitehead and Hames H. Russell
Wiley Publishing, Inc., 2005
ISBN 0-7645-8331-X
JavaScript: Your visual blueprint for building dynamic Web pages, 2nd Edition
Eric Pascarello
Wiley Publishing, Inc., 2004
ISBN 0-7645-7497-3
PHP 5: Your visual blueprint for creating open source, server-side content
Toby Joe Boudreaux
Wiley Publishing, Inc., 2005
ISBN 0-7645-8332-8
SQL: Visual QuickStart Guide, Second Edition
Chris Fehily
Peachpit Press, 2005
ISBN 0-321-33417-5
Grossman Library
Each of this course's recommended books has be placed on reserve in Grossman Library, located in Sever Hall 311; the books may not be checked out.
A schedule of hours appears at the address below.
Virtual Private Server
So that the course's lessons are as real-world as possible, you will develop your projects on a virtual private server configured to resemble a commercial web host. In fact, Project 0 will have you purchase (for just a few dollars) your very own domain name for use throughout the semester. All of your projects, including your final project, will ultimately reside in that very domain.
The course will host your domain for you for the duration of the semester. We will provide you with an account via which each of your websites will be hosted. Not only will the account be accessible via SFTP and SSH, it will include at least 500 MB of storage space, unlimited email addresses within your own domain (accessible via IMAP, POP, and webmail), your own MySQL databases, and more.
Software
It is not necessary to purchase any software for this course. All software required by the course's projects will be installed on the course's virtual private server, and most will also be available for download via the course's website for Linux, Mac OS, and Windows alike.
Academic Honesty
All work that you do toward fulfillment of this course's expectations must be your own unless collaboration is explicitly allowed (as by the final project). Viewing or copying another individual's work (even if left by a printer, stored in an executable directory, or accidentally shared in the course's classroom) or lifting material from a book, magazine, website, or other source—even in part—and presenting it as your own constitutes academic dishonesty, as does showing or giving your work, even in part, to another student.
Similarly is dual submission academic dishonesty: you may not submit the same or similar work to this class that you have submitted or will submit to another. Moreover, submission of any work that you intend to use outside of the course (e.g., for a job) must be approved by the staff.
You are welcome to discuss the course's material with others in order to better understand it. You may even discuss projects with classmates, but you may not share non-trivial amounts of code (e.g., entire files). If in doubt as to the appropriateness of some discussion, contact the staff.
You may turn to the Web for instruction beyond the course's lectures and sections and for solutions to technical problems, so long as you cite the origin of any code you encounter and incorporate into your own work (as with CSS, PHP, or XHTML comments). Failure to cite the origin of any such code may be considered academic dishonesty.
All forms of academic dishonesty will be dealt with harshly.
Noncredit Status
If you are not taking this course for credit, you are not required to submit any work. However, all of the work in this course is designed to facilitate your comprehension and retention of the course's material. Consequently, you are encouraged to complete on time as much of the work as possible. In return, you will receive feedback on any work that you do submit.


