Dynamic Web Development
Fall, 2011
Christopher Sung
Interactive Telecommunications Program, NYU
Class: 1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 · 10 · 11 · 12 · 13 · 14

Week 1: Introduction and The Basics

Topics:

  • Introduction to the Class
  • Web Hardware and Software Basics
  • Setting Up Your Production Environment
  • Creating "Hello, World" in PHP

    Class Resources:

  • Class #1 Notes

    Weekly Assignment:

  • Pick a website you admire and write a paragraph about what you like about it. If the site contains elements that you'd like to incorporate into your own projects this semester, please note them as well so we can discuss. Modify your "Hello, World" program to contain your analysis and a link to that website, and submit the url of your script to the class homework submission page (which is linked at the top of this page).

    Recommended Reading/Reference:

  • Web Database Applications with PHP & MySQL
    Pages 1-15 (Chapter 1: Database Applications and the Web)
  • DWD Bookmarks about HTML
  • DWD Bookmarks about basic UNIX


    Week 2: PHP Basics and CGI: Script-Generated Pages

    Topics:

  • PHP Basics, Variable Types, Statements, Examples
  • Functions
  • PHP & CGI - Interacting With The Web Server
  • POST and GET - Obtaining and Parsing Form Input
  • HTML Form Widgets - An Overview
  • Sample PHP Template
  • Basic File I/O
  • Webpages That Constantly Change

    Class Resources:

  • Class #2 Notes
  • Class #2 PHP Template
  • DWD Bookmarks about basic PHP

    Weekly Assignment:

  • Using the Class #2 PHP template shown above, create a web page that changes based upon user input. Please use at least two HTML widgets in addition to your submit button, and use the input from these widgets to create something useful or interesting for the end user. Please try to make your display cohesive by imagining how and why someone might use your web page.

    Recommended Reading/Reference:

  • Web Database Applications with PHP & MySQL
    PHP Variables, Operators, Expressions, Logic Flow (pps. 16-36), Functions and Include Files (pps. 45-56), Arrays, Strings and Dates (pps. 57-71, 76-87, 97-103)


    Week 3: Database Design, MySQL, and the SQL Language - Part 1

    Topics:

  • Introduction to Databases
  • Relationship Modeling
  • Using PhpMyAdmin To Create Your First Table
  • MySQL Data Types
  • Basic SQL Commands

    Class Resources:

  • Class #3 Notes
  • PhpMyAdmin Database Tool
  • DWD Bookmarks about MySQL
  • MySQL Reserved Keywords

    Weekly Assignment:
    The basis of this week's assignment is to create and manipulate a table of your own creation, but also to show what you did and present it in a web page that is created by a PHP script. Thus, all SQL statements that you issue will be documented in your web page, as well as how each statement affected the data in your table. Here are more specific instructions:

    Please try to choose your table columns and queries in some sort of coherent fashion. Think of some data in your life that you'd like to organize (address book, the weather, your CDs, etc), and how you might be able to keep track of it, and to obtain interesting results by querying it.

    Recommended Reading/Reference:

  • Web Database Applications with PHP & MySQL
    Chapter 5, SQL and MySQL, Database Basics (pps. 134-138), SELECT statements (pps. 152-160)
  • Teach Yourself MySQL in 21 Days By Anthony Butcher
    Pages 42-46 (Relationship Modeling), 65-83 (Data Types), 109-112 (INSERT), 115-116 (UPDATE), 128-134 (SELECT), 151 (DELETE)


    Week 4: Database Design, MySQL, and the SQL Language - Part 2

    Topics:

  • Database Optimization - First 3 Forms of Normalization
  • Multiple-Table Queries
  • Advanced Single-Table Queries
  • MySQL Date and Time Functions

    Class Resources:

  • Class #4 Notes
  • DWD Bookmarks about MySQL

    Weekly Assignment:
    Pick a raw data set of your choosing that contains at least 10 records, and normalize it through the three forms of normalization, making sure that the design changes with each step. The design of your raw data set is what will help demonstrate your knowledge of what defines each step of normalization, so choose it carefully. Your design must consist of several tables. Take snapshots of your design at each step and present them in a web page generated by PHP such that we can dissect them in class.

    Recommended Reading/Reference:

  • An Introduction to Database Normalization By Mike Hillyer
  • Multiple Table Joins @ Wikipedia
  • Teach Yourself MySQL in 21 Days By Anthony Butcher
    Pages 46-49 (Normalization), 127-139 (SELECT Queries), 156-161 (Multiple Table Queries), 188-196 (MySQL Date and Time Functions)
  • MySQL GROUP BY Functions
  • MySQL Date and Time Functions


    Week 5: PHP Talks to MySQL: The Web to the Database and Back

    Topics:

  • The PHP Interface To MySQL
  • Practical Considerations on Stage
  • Common PHP DB Methods
  • Example Scripts for the Four Main SQL Queries
  • Favorite Sites Demo
  • Handling One-To-Many Relationships
  • Handling Many-To-Many Relationships

    Class Resources:

  • Class #5 Notes
  • Favorite Web Sites Demo - Submit & Vote | Source Code
  • Favorite Web Sites Demo - Submit with Category (One to Many) | Source Code
  • Favorite Web Sites Demo - Submit with Tags (Many to Many) | Source Code

    Weekly Assignment:
    Create a web page that accepts user input and stores it in a table (or tables) in your database. This page should also be able to display the contents of your table(s) in some interesting way. As always, try to choose your data and functionality in some coherent fashion, paying particular attention to user interface design. Why would someone want to use this little application you've created? Why is it important that whatever activity they have performed be persistent in your database? On a more technical level, this means that PHP will have to perform at least one SELECT query, at least one INSERT query, possibly an UPDATE query, and possibly a DELETE query. However, the functionality of your interface is ultimately more inportant than the range of SQL operations it needs to perform.

    Recommended Reading/Reference:

  • Web Database Applications with PHP & MySQL
    Querying MySQL and Formatting Output (pps. 171-183), Processing User Input (pps. 190-197)
  • PHP/MySQL Documentation


    Week 6: Basic PHP Tricks and Bulk Data Population

    Topics:

  • Redirection
  • Cookies
  • Session Management & Password-Protected Pages
  • Sending Simple E-mail
  • Image Management
  • Data Population Techniques
  • Miscellaneous Tricks

    Class Resources:

  • Class #6 Notes
  • Class #6 Login Demo | Source Code
    Note: To login to the demo, use the username: itpdb and the password: interact

    Weekly Assignment:
    Your assignment is start working on your mid-term project, which is due Nov 1st. Your mid-term project cannot be a collaborative effort with another student, as each student must show a core proficiency in the basic concepts that have been taught up to now. You will be free to collaborate on your final project if desired. The main technical requirements for the mid-term project are as follows:

    Your finished project should consist of the following: Recommended Reading/Reference:
  • PHP Header Function Reference
  • PHP Session Handling Functions
  • PHP Mail Function | Emailing in PHP - Reference
  • PHP File Upload Reference


    Week 7: Advanced PHP Tricks, Intro to MVC & PHP Frameworks

  • Command-Line Scripting and Using Cron
  • GD and Image Processing
  • Intro to Regular Expressions and Form Parsing
  • Using HTTP in PHP
  • Object Oriented Design
  • Web Application Frameworks and the MVC Model
  • The Favorite Sites Demo as faux MVC Model
  • Introduction to Codeigniter

    Class Resources:

  • Class #7 Notes

    Weekly Assignment:
    Your assignment is to continue your work on your mid-term project.

    Please be prepared to present your project next week. Also, please make sure that your description page and your working demo link to each other such that you can easily switch between them. Note that if your project isn't functioning properly, it is still far better to submit it than to submit nothing, because we can dissect any problems during class.

    Recommended Reading/Reference:

  • GD Library Reference
  • Regular Expressions - Perl-Compatible
  • PHP Curl Library
  • PHP Reference - Objects and Classes
  • MVC Metaphor - definition
  • CodeIgniter Video Tutorials


    Week 8: Mid-Term Project Presentations

    Topics:

  • Mid-Term Projects - Each student will present the fruits of the last few weeks of work as their mid-term project. We will spend 5-10 minutes dissecting and learning from each student's demo and database design.

    Your finished mid-term project should consist of the following:

    Weekly Assignment:
    Your assignment is to spend the next few days thinking about ideas for your final project. It can expand on your mid-term project or be an entirely new concept. Create a PHP script that discusses what your final project will be and what type of functionality you expect it to encompass.


    Week 9: CSS, The DOM, and Basic Javascript

    Topics:

  • Intro to Cascading Style Sheets (CSS)
  • Assigning CSS Rules
  • CSS In Practice
  • Random CSS Goodies
  • Introduction to JavaScript
  • Embedding JavaScript In HTML
  • The Object Model and Write Method
  • The Concept of a Function in JavaScript
  • Popup Windows
  • Dynamic Element Manipulation
  • Dynamic Div Display
  • Interacting with HTML Forms
  • Embedded vs. External JavaScript
  • Javascript Frameworks and Intro to jQuery
  • PHP Writes JavaScript

    Class Resources:

  • Class #9 Notes

    Weekly Assignment:
    Your assignment is to create a PHP script that uses CSS and basic JavaScript to enhance its visual design and functionality. Pay particular attention to your user interface design, as your use of these technologies should augment your page's capability, and not simply exist just to fulfill the assignment.

    Recommended Reading/Reference:

  • W3Schools CSS Tutorial
  • CSS Zen Garden
  • WebMonkey CSS Guide
  • CSS Property Reference
  • David Thau's JavaScript Tutorial at WebMonkey.com
  • JavaScript Tools at Webreference.com
    Adventurous uses of Javascript - Bookmarklets, Browser Sniffing, Rollover Menus


    Week 10: XML, AJAX, Frameworks and Web Service Basics

    Topics:

  • Introduction to XML
  • PHP Writes XML
  • AJAX (Asynchronous JavaScript and XML)
  • Using jQuery for AJAX and Data Transfer
  • Google Maps
  • Introduction to JSON
  • jQuery and JSON
  • Web Services and Flickr (images)
  • Web Services and YouTube (videos)
  • Web Services and Twitter (status)

    Class Resources:

  • Class #10 Notes

    Weekly Assignment:
    Your assignment is to create a PHP script that uses Javascript to interact with a web service API. Please feel free to use a Javascript framework to handle the parsing of web service data and to streamline the display process.

    Recommended Reading/Reference:

  • Head Rush AJAX by Brett McLaughlin
    The book website has on-line demos with source code downloads
  • AJAX Tutorial at W3Schools
  • Ajax Programming at Wikipedia
  • XMLHttpRequest API at Wikipedia
  • jQuery Official Site | jQuery Documentation
  • Google Maps Documentation
  • Flickr API Documentation
  • YouTube API Documentation
  • Twitter API Documentation


    Week 11: Web Service Integration, Mashups, Geocoding, and Facebook Apps

    Topics:

  • Providing a Web Service
  • Web Service Integration in PHP
  • Using the jQuery UI Library
  • Anatomy of a Mashup
  • Introduction to Geocoding
  • The Facebook API
  • The Twitter API
  • URL Rewriting and Friendly Links
  • Class Resources:

  • Class #11 Notes

    Weekly Assignment:
    Your assignment is to start or continue working on your final project.

    Recommended Reading/Reference:

  • Dennis Crowley's Geocoding Notes
  • Yahoo Developer Network
  • Yahoo Music API
  • Yelp
  • Yelp API Overview & Getting Access
  • Yelp API Documentation
  • Yelp Examples
  • Mashups on programmableweb.com
  • Facebook
  • Facebook Developers Start Page
  • How to Build an App
  • Facebook Official PHP Client Library
  • Facebook Developer Documentation
  • DWD Bookmarks about Apache web server


    Week 12: Interfacing with Flash; Intro to Amazon Web Services; Going Mobile

    Topics:

  • Introduction to Flash
  • Flash-Only Interaction
  • Flash/PHP Interaction - The PHP Side
  • Flash/PHP Interaction - The Flash Side
  • Flash/PHP Example Movies
  • Favorite Sites Demo - Revisited
  • Flash, XML, and Dynamic Widget Population
  • Flash and JSON
  • Introduction to Amazon Web Services (AWS)
  • Creating a Mobile Version of a Web App
  • Class Resources:

  • Class #12 Notes
  • Download All Flash Demo Movies in ZIP format: Flash CS3 (5.69MB) | Flash CS4 (5.04MB)

    Weekly Assignment:
    Your assignment is to continue working on your final project.

    Recommended Reading/Reference:

  • ActionScript.org
  • Flash Developer Center
    Lessons, tutorials, and documentation courtesy of Macromedia


    Week 13: Final Project Workshop

    There is no official class on this date, as time will be devoted to personal attention to your final projects. Booking one-on-one time is optional, and is for students who could benefit from the personal help. The times for help are:

    Please use the DWD Workshop Page:

    http://itp.nyu.edu/~cs220/dwd/hw/workshop.php

    to reserve times. Simply enter your Net ID in whichever time slot is convenient and click "Book It!". Help sessions are in 15 min intervals, but may run longer or shorter depending on each student's needs. The schedule is more of a guideline as to the order in which we will individually meet.

    If you need to cancel or change a slot for any reason, simply e-mail me and I'll free that time period in the workshop page for someone else.

    Final project presentations will be the last day of class, Dec 13th at the usual time, 12:30pm-3:00pm.


    Week 14: Final Project Presentation

    Topics:

  • Final Projects - Each student will present the fruits of the labor during the latter part of the semester. We will spend 5-10 minutes dissecting and learning from each student's demo and database design.

    Your finished final project should consist of the following:


  • Home  ·  Syllabus  ·  Submissions  ·  Resources
    © 2003-2012. All rights reserved.