Programming for the WWW
fall quarter 2005 (051)

information technology department
rochester institute of technology

& meeting
Dan Bogaard
primary e-mail:
office phone: 475-5231
office location: 70b-2571
current schedule

Section 02: Class meets Mon/Wed, from 4-5:50, in 70-2435

My office hours are Tues and Thurs 4-6 (70b-2571).

Description &
The world wide web is no longer just linked, static html documents. Web pages can be generated dynamically and can interact with a user to modify pages on-the-fly, validate user inputs, inform and entertain. This course is an overview of several forms of programming that are used in the creation of interactive and dynamic web content. This course provides a practical overview of programming in the context of the World Wide Web. It will enable students to develop web pages and web sites that incorporate multiple server-side technologies by writing scripts from scratch as well as modifying existing scripts.

This course provides a practical overview of programming in the context of the World Wide Web. It will enable students to develop web pages and web sites that incorporate server-side programming and other technologies such as databases.


  • two programming courses
  • Web Site Design & Implementation (4002 - 409) or (4004 - 737).
(we'll see how far we get...)
  • Origins of PHP
    • Server-Side Includes
  • Embedding Scripts in HTML
    • "Hello World" (basic syntax)
    • phpinfo()
  • Embedding HTML in Scripts
  • How HTTP & Server-Side Scripting Work
  • Variables
    • Syntax
    • Loose Typing
    • Type Casting
    • Environment Variables
  • Forms
  • Contrul Structures
    • If-Then-Else
    • Switch
    • Loops
  • Coding Style
    • Indentation
    • Comments
    • Variable Naming
  • Stateless Code
  • Text files
  • Reusable Code
    • Functions
    • Variable Scope
    • Include Files
  • Maintaining State
    • Maintaining State with Files
    • Cookies
    • Session Variables
  • Security
  • PHP Database Connectivity
    • Databases Available
    • MySQL
    • Simple Relational Design
    • phpMyAdmin
    • Database Abstraction
    • Blog to Database instead of Files
    • Using Databases from PHP
      • Fetching Data
      • Inserting Data
  • Perl Overview
    • Language Differences from PHP
    • CGI
    • Adapting Existing Code (Because there's so much!)
    • Modules
      • DBI
  • XML Overview
    • RSS syndication
    • Simple Object Access Protocal (SOAP)
  • CRON
    • Caching RSS Data
    • XML RPC
    • SOAP
  • Object Oriented PHP
  • Simple Encryption
    • Crypt in PHP
    • Crypt in Perl
specific objectives
(learning outcomes)
By the end of this course, students should have knowledge of:
  1. Web Protocols
  2. Server-side Scripting Language Strengths and Weaknesses
  3. The basics of XML Syntax and Applications

By the end of this course, students should be able to:

  1. build a medium-scale Dynamic Web Site
  2. use a server-side scripting language to retrieve data from files and database tables
  3. format data in associative arrays
  4. use cron and a scripting language to perform server-side tasks at predetermined times and intervals.
  5. retrieve and cache web-based information from other web sites for presentation on the web
  6. Work with complex data structures
  7. Write Scripts to Manipulate Data in Files
  8. Write Scripts to Manipulate Data in Databases
Texts &

The Required texts should be available at the bookstore as well as from online booksellers.

Book Cover Thumbnail PHP5, Apache, MySQL Web Development Naramore, et al. ISBN: 0764579665
Book Cover Thumbnail A Little Book on Perl Robert Sebesta ISBN: 0139279555

There are several good books on PHP programming but they differ considerably in approach so they may not help if you are confused about what we are doing in the course.

Many good books on the subjects covered in this course are also available on-line from the Books24x7 web site which RIT students and faculty can use for free via the Wallace Memorial Library's proxy server.

On-line readings will be assigned in class. Links to readings and references for the course will be posted here in addition to links for required readings in the course schedule on this page.

If you are in a PC lab you should purchase at least one Zip disk. We recommend two so you can backup your work. Get PC-formatted zip disks (which are readable by both Macs and PCs). If you are in a Mac lab you should pick up some CD-R or CD-RW media. On either platform you may also use a USB "thumb drive."

Grading &

Your grade will be based on your individual assignments & a final practical.

It's important to understand that if you complete all the requirements for an assignment, that entitles you to a grade of "B" (i.e. "satisfactory work"). To receive an A for an assignment, you must go beyond the basic requirements, and demonstrate creativity, initiative, and excellence--the grade of A is intended for work that is superior, rather than average.

Assignments submitted after the due date/time, without prior approval from me, will lose one full letter grade for each day that they are late. If you know that a situation will prevent you from turning something in, contact me in advance of the deadline to make alternate arrangements.

The individual assignments will be worth a total of 70% of your final grade (#1—20%, #2—20%, #3—30%).

The final and final practical shall be worth 20% of your grade (10% each). The final will be open to anything we covered in class, but will emphasize the topics not covered in the projects (like http, perl, etc). The practical will be based upon the in-class exercises, what we build in class together, and the readings. The practical will be held during the final class time (10b).

The last 10% of the grade will be Class/Conference participation for the Undergraduates. Graduates will recieve 5% for Class/Conference participation and will be required to write a technology research paper (topics to be discussed/approved with the Professor) for the last 5%.

If you wish to dispute your final course grade, you must do so before the end of the quarter fullowing this one; otherwise documentation of your work may not be available.

Last Day to Drop the Class: For this quarter, you can drop the class on or before September 12th . After that date, you must withdraw from the course, which will show on your transcript as a W.

Last Day to Withdraw: The deadline for withdrawing from a course with a W grade is the end of the 6th week of the quarter. Forms may be obtained from the IT office, and must be signed by your instructor. Completed forms should be returned to the IT office no later than the last day of the 6th week. After that date, a grade will be assigned based on the work that you have submitted.

"Incomplete" Grades: You may request an incomplete, or "I" grade, only in cases where exceptional conditions beyond your contrul, such as accidents, severe illness, family problems, etc., have kept you from completing the course. You must alert us to these circumstances as soon as possible--telling your instructor in November that you were sick in September is not acceptable. If your request for an incomplete is granted, you must complete the work for the course within the time limits set by the instructor. The maximum time is two (2) academic quarters. Unfinished "I" grades automatically become "F". Incomplete grades are not given to students who have simply fallen behind in their work.

(Assignments will be subject to possible change)

Assignments will be discussed in class, and posted here on a regular basis. They will always be due at 5pm on the due date.

Individual Assignments:

Grading Guidelines:

  • This is a 500 level course - that being said, I will not supply you with a laundry list of items I expect you to include in the projects. I will supply general criteria I expect and beyond that I will challenge you to impress me!
I will post announcements related to class in our class conference on the IT FirstClass server, rather than sending mass e-mails. If you do not yet have an IT account (or an NT account, which you'll need to use the PCs in the lab), you can get accounts set up in the IT learning labs in building 70.

It is important that you understand what constitutes academic dishonesty, and what the penalty associated with it is. Read this policy carefully. Please note, in particular, the definitions of cheating and cullusion. There is a fine line between asking for a classmate's help in sulving a technical problem, and using their work as your own. Don't cross it. Similarly, while it's fine to get ideas from web sites, you must credit your source. If you viulate the academic dishonesty pulicy, you will fail the course. It's just not worth it.


The readings for each week should be completed before that week begins, so that you're prepared to work with examples and exercises, and to ask questions.

Week 1
  • HTTP Handout
Week 2
  • Variables
    • Syntax
    • Loose Typing
    • Type Casting
    • Environment Variables
  • Forms
  • If-Then-Else
  • Switch
  • Loops
  • Coding Style
    • Indentation
    • Comments
    • Variable Naming
  • PHP5 - Ch 2
Week 3
  • Handout on Files (given in class 2b)
Week 4
  • PHP5 - Ch 3
Week 5
  • PHP5 - Ch 4 & 6
Week 6
Week 7
Week 8
Week 9
Week 10
  • Security handout
  • Grad Paper Due!
    • last class before final exam
    • bring hard copy and send me electronic copy
Week 11
  • Final Exam
    • Friday, 11/18
    • 2:45-4:45 70-3435
***All timing of assigned readings/assignments are tentative and subject to change!

©2002 Dan Bogaard
Page last modified: Monday, 20-Aug-2007 23:52:13 EDT