CMSC 10100-1
Introduction to Programming for the World Wide Web
(XHTML, CSS, Perl CGI, and JavaScript)
Winter 2009

Instructor: William H. Sterner

email: bill@midway.uchicago.edu
Office: My office is in the CS Lab,
Room A01C on A-Level in Regenstein Library.
Hours: By appointment.

Key Addresses:

Class Syllabus (this page): http://www.classes.cs.uchicago.edu/current/10100-1/html/CMSC101win09Syllabus.html

Course Schedule: http://www.classes.cs.uchicago.edu/current/10100-1/html/crssched.html

Class Listserv email: cmsc10100-1@mailman.cs.uchicago.edu (Note, it sometimes takes a long time for mail to post.)

Grading Registration (TAs need this to grade.):
http://cgi-cmsc.cs.uchicago.edu/~henrywu/register2009.cgi

Do this after you have your CS account.

Relevant Computer Science Department Web Pages:

Request a Computer Science Student Account so you can use CS computers: https://www.cs.uchicago.edu/info/services/account_request

Request a Computer Science CGI Service Account so you can program web pages. Be sure to select the "CMSC CGI option." https://tools.cs.uchicago.edu/activate_cgi_service

Web Services: http://www.cs.uchicago.edu/info/services/web_services
Tips on CGI Programming: http://www.cs.uchicago.edu/info/services/cgi

-->


Our TA and Grader are:

Henry Wu (xyzw2307@yahoo.com)
Karl Norby (knorby@uchicago.edu)
They will be available in the CS MacLab at regular hours, which will be announced and posted on the Course Schedule.

Return

Class Times:

TT 10:30 pm-12:00 pm in Ryerson 251.

Return

Overview:

This course teaches the basics of building and maintaining a site on the World Wide Web. We discuss Internet terminology and how the Internet and its associated technologies work. Among the topics of the course are:

  1. Hypertext markup language (Mainly a reformulation of HTML 4 in XML 1, that is, XHTML 1-20020801.)
  2. Cascading Style Sheets (1 & 2 together take about 3 weeks.)
  3. Common Gateway Interface (CGI) scripts (using Perl) (About 4 weeks.)
  4. Client-side scripting via JavaScript and Final Project (About 3 weeks.)
Return

Objectives:

Our goal is to get you started on a range of fundamental technologies widely used today and to acquaint you with the status and development of Web standards adopted by the World Wide Web Consortium (W3C). We hope this puts you in a position to:

Return

Homework Policies:

In the laboratory homeworks, you will use the course material to build pieces of a Web site of interest to you. The laboratory assignments will be posted during the appropriate week of the course, including their hand-in date. Late laboratory submissions will be accepted with penalty, and all assignments will count towards the final grade. Your laboratories will be graded on their operation, syntactic correctness, conformance to standards, and visual design. Debugging is part of doing the lab; it is the student's responsibility to find the errors in their code. Please follow the Laboratory/Project Submission Instructions to submit your homework. (See below.)

Return

Provisional Schedule of Readings:

(You are expected to have read the textbook assignment and try out the code in the text for yourself. Always check the Course Schedule for the exact assignments.)

WEEKREADINGS
1Pence, Chapters 1 to 4
2Pence Ch. 4, 5, 6 & 8.
3Pence Ch. 7 to 10.
4Lash Ch.1, 2, & 3.
5Lash Ch. 5 & 6. Midterm, Class 10.
6Lash Ch. 7, Pence Ch. 14.
7Lash Ch. 4 & 8.
8Pence, Ch. 15, Estrella - JavaScript part 1.
9Estrella - JavaScript part 2.
10Estrella - JavaScript part 3, Final Project.
FINALFinal Project Due.
Return

Midterm:

The midterm will be a 1.5 hour written exam, given during class. This exam will, among other things, test:

Return

Final Project:

The final project will give you an opportunity to put together all of the pieces you created for homework into a fully functional site. You will give the site a consistent look and feel and implement some client-side and server-side scripting. The final project will be posted by the time of the midterm. Please follow the Homework/Project Submission Instructions to submit your project. You may also propose an alternate project of equal or greater difficulty.

Return

Class Mechanics:

For coursework, there will be 6 or so graded web page laboratories, a midterm and a final project, which will be a more extensive web page design. The laboratories will typically be due either on Fridays or on Tuesdays at 11:59:59 PM. Depending on the results of the midterm, there may also be a final exam. Do well in 5th week and be free to put more effort into your final project!

You must register with the TA class list in order to get graded. The sign-up page can be found at:
http://cgi-cmsc.cs.uchicago.edu/~henrywu/register2009.cgi

Return

Grading:

It will be along the lines of:

35%laboratories
20%exam
35%final project
10%class participation

You will be expected to attend class and participate in class discussion, and this will be a concrete portion of your final grade. Asking questions and speaking in class can never lower your grade, but they can raise it.

Take note that your final grade will be the accumulation of your scores in each of these categories. This means for example, you might do A work on the exams and final project, while staying silent in class participation and skipping the laboratories. This means you would get a full 60 percentage point total, and thereby achieve an F for the course.

Return

Textbooks:

There are a small number of the Lash texts available at the U of C Barnes and Noble bookstore. Unfortunately the texts have recently gone out of stock or out of print. Please attempt to find copies from Amazon or another source such as TextbookLand at: http://www.textbookland.com. Make sure to get the same editions. Often searching on the ISBN without hypens is best. The interface working with the actual text is better. Otherwise, I will hand out copies as needed. If you wish to work ahead please let me know so I can get them to you early.

Required text # 1: How to do everything with HTML AND XHTML, 2nd edition, James H. Pence. McGraw Hill: Osborne, 2003. ISBN 0-07-223129-7.

We will go through most of this text rather quickly. Best to read all your texts next to your computer and do the exercises immediately as they come up. DOING is always better than reading about.

Required text #2: The Web Wizard's Guide to Perl and CGI by David Lash, published by Addison-Wesley, ISBN# 0201764369.

Required text #3: The Web Wizard's Guide to JavaScript by Steven G. Estrella. Addison-Wesley, ISBN# 020175833 (If you have purchased the McGrath, JavaScript in easy steps, that is fine. It covers the same material and I will provide copies of the relevant parts of Estrella.)

You also are encouraged to take advantage of the University's access license to the O'Reilly online library of technical books. There are many web related texts that can be viewed online through this URL: http://proquest.safaribooksonline.com/?uicode=uchicago. You must be accessing the service through the University's network.

Return

Miscellaneous:

There is a class mailing list, which you should have gotten an email about. If not, please send me an email with your desired mail address. Class Listserv email:

cmsc10100-1@mailman.cs.uchicago.edu

(Note, it sometimes takes a long time for mail to post.)

I will be doing the teaching on a Macintosh platform, however, you are free to use whatever platform you prefer. Be alerted that I may not know the specifics of non-Mac platforms. If you are working on a Windows or linux machine, you will be responsible for finding out the local environmental facts. The TA's and lab staff can help with this. Please share your knowledge in and with the class!

My default browsers will be Firefox and Safari, but I will test my code, as should you, on one or two other browsers such as Internet Explorer (IE). It is important to get into the habit of testing on multiple platforms with multiple browsers as your source code will definitely produce different results in each. (nb: Since IE is no longer supported on OS X, we will use Firefox as an alternative to Windows IE; also, Netscape is no longer being maintained.)

Plagiarism, or any form of cheating will not be tolerated. Period.

Return

Working Environments:

The class will be conducted on a Macintosh running Leopard OS X 10.5.x, and the primary browsers will be Safari and Firefox. If you are windows based you can use Internet Explorer but remember the instructors may see something different than you do. You will be building your pages and programs on the Computer Science classes.cs.uchicago.edu server under a linux operating system and its perl programming language. Your browser will supply a JavaScript engine.

Students are free to use whatever platform they prefer, with their homework projects loaded to their classes accounts. Again be aware that the pages will be viewed on multiple browsers with different implementations on multiple platforms by the TA's and instructor.

I'll be using SubEthaEdit (named after Douglas Adam's The Hitchhiker's Guide to the Galaxy series use of the "SubEthaNet") as my primary editor in class. It is available on the MacLab Macs and freely downloadable. Any text-only editor will do including unix editors such as GEdit, emacs or vi, and windows Notepad, but one designed for web programming will have additional helpful features. Terminal application for ssh-ing into classes. Fugu, WinSCP, SCP, etc. for file transfer. See this help file: How to Upload Files Help

(My thanks to the instructors that have preceded me in this course, especially Wolfgang Freis, Zhang Xuehai, and Jen Golbec.)

Return

Valid XHTML 1.0 Strict