Course Syllabus
Fall 2008 CpSc 217:  Structured and Dynamic Web Programming  
Instructor: Dr. David Dailey

Meeting Times:

Section 1: M W & F 8:00 a.m. - 8:50 a.m. (Period 1) 

Meeting place: 224 ATSH

Instructor's Office Hours: Monday and Wednesday 10:00 a.m. - 11:00 a.m..; Tuesday  and Thursday 8:00 a.m. - 9:30 a.m.., or by appointment.

Instructor's Office location: ATSH 248

Instructor's e-mail addressdavid.dailey@sru.edu

Assessment: The connection of course outcomes, with departmental outcomes and ultimately with university outcomes is discussed at some length at http://cs.sru.edu/~whit/assessment/.

Course Description: This course is designed to cover the features of popular programming languages specifically for creating Web pages.  Mouse rollovers, browser detects, pop-up windows that launch when a Web page loads or in response to specific actions, and form data-checking are just a few of the most popular uses of Web programming languages that will be discussed.  Programming will be done in a representative programming language.  (3 credits)

Course Objectives: See end of this document.

Prerequisites:  CpSc 130 and CpSc 140.

Required reading: Class web page found at http://srufaculty.sru.edu/david.dailey/cs217/index.htm

Suggested text: JavaScript Definitive Guide by Flanagan, published OReilly, 0596101996.
Alternative suggestion: Inside JavaScript
by Steve Holzner, publisher: New Riders, ISBN 0735712859.

Computing labs: The class will primarily use equipment provided in Eisenberg 103; but other machines on campus are available and may be used as well. ATSH 230, for example has much of the same software as that deployed in Eiseberg 103.

Software used:

Microsoft Windows, possibly UNIX or Linux
Web-browsers: recent versions of Firefox, Opera, and Internet Explorer
Web-authoring software:  Macromedia HomeSite.
Graphics software: Adobe Photoshop.

Use of e-mail software (Eudora, Pine, or other) is also required.

Method of determining final grade
: Assignments: 35%; quizzes 40%
(two quizzes, each worth 20%); one final project: 20%, due at time of last class meeting; attendance and class participation 5%.

Final exam:  The course will not have a final exam, but rather will meet for a final class (Tuesday Dec. 9th, 8:00 a.m. - 10:00 a.m.).

Attendance policy: Regular attendance is expected. Excessive absences will have an effect on your grade. If a prolonged illness should cause you to miss several class periods, you are expected to discuss this with the instructor.

Late work: The grade on any late assignment will be dropped by 20%. Assignments more than two weeks late will not be accepted. Any work submitted late must have the word (LATE) in parentheses following your last name in the subject line of the email. If it does not, it will not be scored.

Make-up exams: It is the student's responsibility a) to notify the instructor beforehand if he or she must miss an exam due to illness or family emergency and b) to take the initiative in finding a time suitable to the instructor for a make-up exam. Make-up exams should be scheduled within one week following the original exam date.

Academic Integrity: All academic work for this course must consist of your own work. See the See the University's statement on Academic Integrity in the Undergraduate Catalog (2003-04, pages 52 - 53).

Assignments and tasks: Each assignment will be explained in class. Any uncertainties students may have about an assignment should be raised at the time the assignment is made. Students will be required to use e-mail for certain assignments; assignments submitted via e-mail must include the course number, the student's last name and the assignment number in the subject line of the message. Assignments submitted through e-mail that do not follow the specified format may not be accepted.

Several homework assignments will be given during the semester. Unless otherwise stated, these assignments are to be completed individually by each student. Students may be called upon to present and explain their work to the class or to the instructor and should be consistently and adequately prepared to do so.

As the semester progresses, additional details about assignments may be found on the class web page.

Tentative Schedule of Topics

The instructor reserves the right to change topics covered or the order in which they are covered at his/her discretion. Assignments shown may vary. Refer to lecture notes and/or course web-site for details.

Week 1 -- Aug. 25 - 29: Course introduction. Web browsing. A glimpse of JavaScript, introduction to web-authoring: basic HTML.

          HTML review (tags and attributes, tables, anchors, scripts, images): 

Assignment 1: verify ability to login to lab machines to find class web-space and to use e-mail.

      Legal issues (part 1):

a.       Differences between copyright, trademark, and patent

b.      Copyright: Title 17, (basic definitions, scope, exclusive rights, limitations) sections 102, 105, 106, 107, 120).

c.       Differences between statute, treaty and case law

Week 2 -- Sept. 2 - 5:  More on HTML: Basics of a web page.  Forms, form elements.  Beginning JavaScript: functions, alert messages and debugging. Adobe Photoshop, more on legal issues, GIF and JPEG, images in tables, responding to simple events.

Legal issues part 2:

a. current legislation (e.g. copyright term extension act, database misappropriation act)

b. current case law pertaining to the web (e.g., Bridgman v Corel, thumbnails, deep-linking)

c. the public domain

Images:

a.       File formats: gif, jpg, and png as opposed to (for example) svg, targa, tiff, bmp and pct.

b.      compression, lossiness

c. bitmapped versus vector graphics

d.      Dpi and bits per pixel; print vs. screen images

e.       Color space: RGB, HSB, and CIE

f.       anti-aliasing, dithering

g.        Creating images.

 

Week 3 --Sept. 8 - 12:  Scripting images: rollovers,  The document.images[] and document.forms[] arrays; JavaScript loops.

Week 4 --Sept. 15 - 19:   Scripting images (conditionals and string handling)

Week 5 --Sept. 22 - 26:  Objects, events, buttons, mouse-clicks and functions. Random numbers.

Naming objects in JavaScript

a.       scope of identifiers

b.      document.formname.input.value vs., input.value vs. getElementById

Attaching events to objects

a.       HTML objects (body, form elements, anchors)

b.      events: onload, onmousedown, onmouseup, onmouseover, onmouseout, onfocus, onkeydown


Probable time for Quiz 1

Week 6 -- Sept. 29 - Oct. 3:  Functions, variables, strings, random number generation

a    Message passing: functions, arguments and objects

b.    Scope of variables in functions

c.     string methods (charAt,      IndexOf, substring, split)

Week 7 --Oct. 8 - 10:  Simple data structures:  arrays, objects, time. The Document Object Model.

Week 8 -- Oct. 13 - 17:   Array management: PushPop Split, Join Sort

Week 9 -- Oct. 20 - 24:   Windows, Documents, Locations, Frames; rewriting a document.  document.write, innerHTML, getElementById, createElement and appendChild.

Weeks 10 -12 -- Oct. 27 - Nov. 14:  :  Animation and timing: SetTimeout and setInterval, Phase and synchrony issues, mouse coordinates, Absolute positioning: style.top and style.left ,  Screen dimensions. Assigning events.

Quiz: Probable time for Quiz 2.

Weeks 13 - 15 -- Nov 17 - Dec. 8:  XML; Advanced topics, including lab work on final projects.  May include topics such as server-side scripting, user-interface,    preloading images, Assigning event handlers, etc.


From http://classwork.sru.edu/Computer_Science/All%20Faculty/CourseOutcomes07/217Outcome.htm -- this ties all rubrics together.
Computer Science Department
Course Competency Plan

COURSE: CpSc 217 - Structured and Dynamic Web Programming: <language>

Catalog Description:
This course is designed to cover the features of popular programming languages specifically for creating web pages. Mouse rollovers, browser detects, pop-up windows that launch when a web page loads or in response to specific actions, and form data-checking are just a few of the most popular uses of web programming languages that will be discussed. Programming will be done in a representative programming language. Prerequisites: CpSc 130 and 140. (3 credits)

Course Outcomes: This course and its outcomes support the Information Technology Learning Outcomes of Problem Solving and Critical Thinking (PS&CT), Communication and Interpersonal Skills (C&IS), and Ethical and Professional Responsibilities (E&PR). These Information Technology Learning Outcomes are tied directly to the University Wide Outcomes of Critical Thinking and Problem Solving, Communication, and Values and Ethics.

 

Objectives Strategies Assessment Methods
The student will be able to:
  1. Demonstrate the use of general scripting concepts. [PS&CT a]
  2. Write dynamic, web-based programs that involve user input. [PS&CT b]
  3. Identify the constructs of the chosen programming language that are used for sequential, conditional, and iterative programming as well as modular constructs. [PS&CT c, d, e; C&IS a, b, c]
  4. Identify the concerns related to the ethical and legal use of advancing computer technologies. [E&PR b, c, e]
Together, the students and the professor will:
  1. Discuss general scripting concepts.
  2. Discuss the features of HTML.
  3. Demonstrate, discuss, and practice getting user input in a Web programming language.
  4. Discuss and practice debugging scripts.
  5. Demonstrate, discuss, and practice using system objects in a Web programming language.
The student will:
  1. Answer questions about general scripting concepts and Web languages in homework assignments and quizzes.
  2. Complete multiple projects involving the general features of a Web programming language.
  3. Debug and modify existing programs written in a Web programming language.
  4. Complete exams that assess understanding of structured Web programming and scripting concepts.