Comm 442/542 World Wide Web: Advanced Interactive Design
Fall 2009 Syllabus
under construction
W. D. Horn Office: Snell 174
Phone x6420 Office Hours: MTWT 11:00 a.m. - Noon and by appt.
Classroom: 239 Snell. MW 4:00 - 5:15
Required Texts
Schwartz, Randal L. & Tom Phoenix.
Learning Perl. 5th Edition.
O'Reilly. [Llama]
Forta, Ben
MySQL Crash Course Sams. [Forta]
Castro, Elizabeth. HTML, XHTML & CSS.
6th Edition. Peachpit. [Castro]
Recommended Texts
Wall, Larry. Programming Perl.
3rd Edition O'Reilly [Wall]
Online Texts:
Much of the documentation for this class is in Electronic form,
on the Web and in Linux "man" pages. Consult it as
directed during the course.
Course Objectives
At the successful completion of this course students will have the following:
- An practical knowledge of server/client (server/browser) communication
on the World Wide Web.
- An understanding of the Web data stream and how to parse it.
- The ability to create interactive Web CGI's using Perl.
- Experince in creating handling HTML forms with CGI's
- The experience of creating numerous interactive Web pages combining
HTML, CSS, and JavaScript into a CGI.
- The experience of working in a team on an extended
Web programming project.
- The ability to create datastream filters using Perl
- An understanding of Perl's special programming shortcuts, including
arrays, hashes, and Unix/Linux database.
- A user/programmer's knowledge of Unix/Linux commands
- A working knowledge of Unix/Linux I/0.
- A working knowledge of Standard Regular Expressions.
- A beginner's understanding of JavaScript
- A beginner's understanding of MySQL
- A basic implementation of Perl/MySQL interaction.
- An understanding of when particular kinds of programming are
appropriate: JavaScript, HTML/CSS and Cookies for the client;
CGI/Perl, PHP, and MySQL for the server.
- An understanding of the basic principles of PHP and how they differ from Perl.
- An ability to create basic interactive Web pages using PHP.
Much of the material for this class is available on the Web. Be sure
to make yourself familiar with it at URL:
http://www.mybookmarks.com/public/wdhorn
Other materials will be handed out in class, or placed on reserve in the
library.
Class consists of lecture and labs. Most of the work will
be hands on at the computer. You are expected to take electronic
notes on the work covered in class. Your online work will be graded
periodically. Expect unannounced quizzes.
Grading: Learning about computers is a hands-on
activity. Much of the work will be in the form of in-class exercises.
To do well you must attend regularly. Attendance is a large part
of the class participation grade.
This course includes two large projects, numerous
small assignments, and online quizzes. The final examination will be comprehensive.
|
quizzes
|
20%
|
|
short assignments, participation, personal web pages
|
20%
|
|
individual project
|
20%
|
|
group project
|
20%
|
|
final exam
|
20%
|
Cheating:
No form of academic dishonesty will be tolerated. Do not cheat.
Plagiarism is the use of another's words or ideas without acknowledgment.
Do not plagiarize. Do not help others to cheat. If at
any time during the semester you have a question about what might constitute
academic dishonesty, please consult the instructor.
In any creative endeavor, much must be
learned from others. There are many gray areas. In this
course, your work will be published on the Web. Be careful to
respect copyright and intellectual property. When in doubt
about what is fair practice, ask questions.
Class Schedule
Week 1
Aug 24 Mon: Intro to course. A theory of education: do it, repeat it,
difficult remembered, symbolic manipulation. Requirments, books,
workload, syllabus. Basic Unix. Editors: vi, MicroEmacs, Nano. Basic HTML.
JavaScript. About Perl. READING: Llama Chapter 1.
Aug 26 Wed: Documentation Project. Perl, invoking Perl, scalar
variables, $var, $_, control structures More Unix: piping, redirect,
etc. Backtics, system(). READING: Llama 2.
Week 2
Aug 31 Mon: Your TC442 page. HTML: Links, relative and absolute,
images. More Perl scalar variables: operators, strings, string
operators, variable interpolation, print(), print <<EOT, interpolation,
qq//, q//. Lists and Arrays
binary assignment operators.
READING: Llama 3;
Sep 02 Wed: CGI: template. HTML: Locate, tables, mailto, forms, echo.
Principles of Design. Perl: Lists and Arrays READING: Llama 3.
Week 3
Sep 07 Mon: Individual projects. HTML: Forms - text entry.
JavaScript: one liners. Perl: Subroutines, functions, return, use(),
require(); local(), my(), @_, $_[0]. More string operators, arrays,
control structures, if/unless, while/until; autoincrement. READING:
Llama 4.
Sep 09 Wed: HTML: Forms - radio buttons, etc. Perl: Control
structures: blocks, labels, for, foreach, redo, next, last, die, and,
&&, or, ||, &, CGI arguments: "?" READING: Llama 4 & 10.
Week 4
Sep 14 Mon: Team Projects. Perl: Hash (Associative Arrays),
foreach and hash, sort. Basic I/O. <STANDIN> READING: Llama 5 & 6;
Sep 16 Wed: Perl: Regular Expressions, m//, s///, tr/// READING: Llama 7 & 8.
Week 5
Sep 21 Mon: Perl: Regular Expressions: greedy Filters, HTML Filters.
READING: Llama 9.
Sep 23 Wed: Perl: More Control Structures. Personal Perl Library - PPL.
The CGI data stream. A Parser: pack, read_form_results(). READING: Llama 10.
FALL RECESS: September 25 (begins at the end of the last scheduled class) -
Sep 30 (8:00 am)
Week 6
Sep 30 Wed: Perl: Filehandles and File Tests.
READING: Llama 11
Week 7
Oct 05 Mon: Perl: more file handles and file tests: open(FH,"fname"),
open(FH,">out"), open(FH,">>out").
Oct 07 Wed: Perl: Directory Functions and File Manipulation: grep(),
lc(), opendir(), readdir(), closedir(), chmod(). READING: Llama 12 -
13;
Week 8
Oct 12 Mon: quiz
Oct 14 Wed: Perl: File manipulation. Process Management.
READING: Llama 13 - 14; MySQL. Team projects. Forta 1-2
Week 9
Oct 19 Mon: Perl: CGI PPL: webdie(), weberror(). Review regular
expressions. pos() Sorting. MySQL. READING: Llama 15; Forta 3
Oct 21 Wed: CGI: word lists, filters, searches, the flat
database. Database PPL: begin_html(), end_html(), log_it(), copyright().
MySQL. READING: Llama 16; Forta 4
Week 10
Oct 26 Mon: Perl: Advanced Techniques. CGI: Interacting with Unix. security, Unix security. PPL: security(),
read_form_paired(), read_form_both. Modules READING: Llama 17; Forta 5.
http://heron.tc.clarkson.edu/~horn/bk/ch4/ch4.html
Oct 28 Wed: CGI: hypergate.cgi, an invention program, a compurter
corrected quiz. READING: Forta 6-7.
http://heron.tc.clarkson.edu/~horn/bk/ch5/ch5.html
Week 11
Nov 02 Mon: CGI: Recursion, returning HTML, creating a comment space.
Perl: optimzing for time efficiency. Refernece. READING: Forta 8-9.
Nov 04 Wed: HTML Style Sheets. Perl special projects. Reference
Week 12
Nov 09 Mon: Writing JS program from a CGI. Passing arguments to
a second CGI. OOP Perl. Backing up MySQL READING: Forta 29
Nov 11 Wed: Dynamic Pages. Links. Perl READING: Forta 19-20
Week 13
Nov 16 Mon: Review: Oral Presentations. Ties.
Nov 18 Wed: Review. Presentations.
Week 14
Nov 23 Mon: Oral presentations.
THANKSGIVING RECESS:
November 24 (begins at the end of the last scheduled class) - Nov. 30 (8 a.m.)
Week 15
Nov 30 Mon: Review. Presentations.
Dec 02 Wed: Final Review. (Individual projects due.)
Week 16 Final Exam: Monday, Dec 7, 8:00am - 11:00am Snell 239