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

The third part of the class will be discussed during the first week of class. In the past, it has been:
Specific client applications (currently Yahoo! Widgets):

Learning to program in others (screwed-up) environments

Custom Technologies and Appropriate Usage

JavaScript in these different environments

Widget interface

Regual Expressions

Gleaming content from other pages

Writing data to the client

--or--

Specific Plug-in Technologies (in the past, 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

--or--

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:

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

In addition to the text(s), online readings might be assigned in class and
linked from this page.

You should purchase at least one thumb drive 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 75% of your final grade

The final practical shall be worth 25% 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 8th. 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 8th 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
8th 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.

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...

mycourses
Conference

I will post announcements related to class in our class
on the mycourses page, rather than sending mass e-mails.
All projects will be submitted to the dropbox in mycourses. All starter files will also be found there.

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.