web client side programming (4002-536)
fall quarter 2004 (051)

information technology department
rochester institute of technology

lecture notes
back
instructor
& meeting
times
Dan Bogaard
primary e-mail: dsb@it.rit.edu
office phone: 475-5231
office location: 70b-2571
current schedule

Section 01: Class meets Mon/Wed, from 12-1:50, in 86-1110

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

Course
Description &
Prerequisites
This course will explore the possibilities and purpose of client side scripting over the Internet. Students will learn to use both native and plug-in technologies to build interactive interfaces that are both usable and effective. Key features that will be addressed are browser compatibility, object reusability (bandwidth issues), and different scripting environments. Programming is required.
  • 3 course programming sequence
  • 4002-330
  • 4002-409
Prerequisite Skills
  • Design and construct a medium-scale static web site
  • Write computer programs incorporating:
    • Local and global variables used following generally accepted programming practices
    • Control Structures such as if, if-then-else, counted and conditional loops and nested control structures.
    • Good coding style such as commenting code, indenting code to show structure and choice of meaningful names.
    • Functions and/or Objects and Methods (OOP).
Topics
Covered
(we'll see how far we get...)
JavaScript
  • Review of DOM
    • window, document, and event objects
  • Browser comparisons
  • Strategies for multiple deployment
  • Cookie Review
  • Animation
  • Text File Parsing
  • Dynamic Menus
  • Repositioning Elements for Browser Correction
  • Server Communication with XML (or without!)
Future Client Side Technologies
  • XML-SVG
  • Tags
  • Animation and Interaction
Specific Plug-in Technologies (currently Flash)
  • Custom Technologies and Appropriate Usage
  • Learning the Flash Interface
  • Similarities of JavaScript / ActionScript
  • Animation (and comparison with JavaScript solutions)
  • Vector Graphics Explanation
  • Flash 'Controls'
  • Creating Forms using Flash
  • Parsing Forms with Actionscript
  • Objects & Arrays
  • Reusability
  • Streaming Flash content
  • Reading and writing from files
Integration
  • JavaScript and Flash integration
  • Passing variables and objects between pages / cookies / movies
specific objectives
(learning outcomes)
By the end of this course, students should be able to:
  • Students will create scripts that execute on multiple browsers/platforms such as Mozilla and Internet Explorer on both the PC and Macintosh environments in individual projects.
  • Students will use client side technologies to manipulate the document object model (DOM) to create interactivity and navigation, dynamically build page elements, and communicate with plug-in technologies in individual projects.
  • Students will write scripts in technologies such as JavaScript, DHTML, CSS, SVG, SMIL, and proprietary scripting languages to gain familiarity with current practices and future developments in web client side scripting. This will be assessed in in-class activities.
  • Students will demonstrate the use of vendor specific technologies to overcome the limitations of general purpose scripting languages in individual projects.
  • Students will demonstrate basic proficiency by completing a practical hands-on examination to create any of the following:
    • Interactive and/or dynamic web pages (that could utilize JavaScript, CSS, DHTML, SVG, SMIL, or other current client side technology)
    • Browser viewable application built upon plug-in technology
Texts &
Materials

The following required texts will be available at the bookstore, or via online booksellers such as amazon.com and bn.com:

Required:
Book Cover Thumbnail
JavaScript The Definitive Guide, 4th ed, Flanagan, O'Reilly & Associates, ISBN: 0596000480 - and yes, you MUST have the 4th edition)

Book Cover Thumbnail
Macromedia Flash MX 2004 ActionScript Bible (Reinhardt) Weily, ISBN: 0764543547 (available on Books 24x7)

Recommended*:
Book Cover Thumbnail Macromedia Flash MX 2004 for Windows and Macintosh (Visual QuickStart Guide) (Ulrich) Peachpit Press, ISBN: 0201794810

More texts Will be assigned as we discuss what we will do with the second half of the course

*There will be no assigned readings from the recommended text, it is simply a guide to familiarize yourself with the Flash Interface (so any basic text will do).

In addition to the texts, online readings might be assigned in class and linked from this page.

You should purchase at least one Zip disk to store your work on; I recommend two in case you have problems with the first.

Grading &
Enrollment
Issues

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 80% of your final grade (#1—30%, #2—20%, #3—30%). The first will be JavaScript, the second SVG, and the last is ActionScript (see below).

The final practical shall be worth 20% of your grade. The practical itself 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).

If you wish to dispute your final course grade, you must do so before the end of the quarter following 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 control, 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
(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:

  • Assignment 1: Interactive Form Elements. Due Sunday, October 2nd (end week 4) . (some possibly useful links)
  • Assignment 2: Personal SVG page - both SMIL and JS animations. Due Sunday, October 16th (end week 6) .
  • Assignment 3: E-Commerce Site. Due ???? (our final exam time - finals week) .

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 (say, the use of DHTML to enhance your project) and beyond that I will challenge you to impress me!
  • Any JavaScript Assignments will be submitted to TurnItIn.com to check for plagiarism...
FirstClass
Conference
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 18.
Academic
Dishonesty
Policy

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 collusion. There is a fine line between asking for a classmate's help in solving 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 violate the academic dishonesty policy, you will fail the course. It's just not worth it.

Course
Outline

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.

Unit
Topics
Readings/Assignments
Part 1 - JavaScript
Weeks 1 to 4
  • Week 1 - Javascript Basics
    • Arrays & Functions
  • Week 2a - Window & Cookies
  • Week 2b - Document & Forms
  • Week 3a - DOM
  • Week 3b - DHTML & Events
  • Week 4a - DHTML (Menus)
  • Week 4b - AJAX
  • W1: JS-Ch 1-9, (esp. 4,7,9)
  • W2a: JS-Ch 12, 13, & 16
  • W2b: JS-Ch 14 & 15
  • W3a: JS-Ch 17
  • W3b: JS-Ch 18, 19
Part 2 -
Future Considerations:
Week 5-6
  • SVG & the DOM
    • SVG objects
    • Animation with SMIL
    • Animation with JS
Part 3 -
Flash
Weeks 6-9
  • Week 6b - Application Interface
  • ActionScript Programming
  • Read "MX 2004 Visual QuickStart Guide"
  • AS: Will be updated as we move along
Part 4 -
ActionScript & JavaScript
Week 9
  • Interaction
    • AS -> JS
    • JS -> AS
    • Communication with the server
***All timing of assigned readings/assignments are tentative and subject to change!

Take the pre-test!
©2002 Dan Bogaard
Page last modified: Monday, 20-Aug-2007 23:48:23 EDT