CMSI 361: Internet Technologies

Fall 2005

Tuesday, ThursdayCaskey L. Dickson
10:50 a.m. - 12:05 p.m.caskey-lmu @ technocage.com
Doolan 219310-338-5100
Office Hours: T,Th 1:30-3:30Doolan 104

Objectives

To gain a working knowledge of the basic mechanisms, services and protocols of the global Internet; to master XHTML, CSS and JavaScript; to learn how to configure and work with web servers and web server extensions; to understand the overall architecture of efficient, scalable and secure web sites. Students will gain a strong technical knowledge of XML, XHTML, CSS, and JavaScript through the study of the syntax and semantics of these languages in a decidedly computer science setting.

Audience

This is the fourth course in a six course sequence for the Computer Science minor in multimedia. The first two courses in the sequence, graphics and multimedia authoring languages, should already be completed, however the digital toolbox course is not strictly necessary to succeed in this course. In place of these two prerequisites you can get by with one of: exceptional programming skills, demonstrated talent in digital design, or industry experience in web design.

Required Texts & Materials

The following book will form the core of the course with reading and homework assignments weekly.

Additionally, the following materials will be necessary. At your option you may use your own computer or a third party service for these. Each is available in certain department laboratories. Talk with the lab TAs to find out how to gain access to lab resources. You are strongly encouraged to use the Keck Computer lab as it has been specifically configured to support Computer Science courses.

Supplemental Texts & Materials

The required texts serve as an overview of the most essential parts of this course. However they will have to be heavily supplemented via other sources. Of special note is that not all of the answers to the homework can be found in the required texts. Below are a few of the most essential web sites, but you may have to make use of Google or your favorite search engine to thoroughly complete the homework and projects.

The following RFCs, while technically detailed, contain valuable information which may aid in your understanding of the material. RFC2396 (URIs) RFC2616 (HTTP 1.1) Sections 1, 3.0-3.4, 3.7, 3.10, 6.1.1, 9.1, 9.3-9.7, 15

Grading Policy

There will be homework sets assigned every week, most of which will come from the text. The homework may include work on a term project which will consist of several parts to be completed during the term. Examinations will cover material from lectures not necessarily assigned for homework. It is highly recommended that you attend class. Attendance will not be taken, however if I call on you in class and you are not there to answer your participation grade will be affected.

All coursework, other than the exams, is intended to be done together with a partner. Each pair of partners will turn in only one copy of their solutions with both of their names on it. Both students are responsible for understanding all of the content and may be asked at any time for an oral explanation of any solution. You may select and change partners however and whenever you see fit. Groups of three or more students are only allowed with explicit permission from me which must be obtained in advance. Working with a partner is NOT required, though it may aid in understanding the material.

Your final grade will be weighted as follows.

Homework Sets and Project ...................................... 40%
Quizzes + Participation ...................................... 20%
Test ...................................... 20%
Final Exam ...................................... 20%

Letter grades on assignments are generally figured according to the standard scale: 90% or more of the total points will earn you an A- or better, 80% a B- or better, 70% a C- or better, and so on. The final grade you receive in the class, however, will be curved up or down based upon your performance in relation to your peers.

Homework

Homework is generally due on Tuesdays at the beginning of class. You will not be reminded to turn it in, you are expected to keep track of your deadlines. There is no specific penalty for turning in late homework, however given the volume of homework that is anticipated, failure to keep up with the delivery dates will most likely incur its own significant penalty. You are strongly encouraged to do your best to keep up with the due dates. Homework that is turned in on-time will be graded first, late homework will be graded at my discretion and schedule. While I will make my best effort to grade late assignments, if you turn in all the assignments on the last day, do not be surprised if you score zero on every assignment. All work will be returned to you on the day of the final and so the last day to turn in work is the last day of lecture.

Your lowest homework set grade will be dropped before assigning a final grade.

Your coding style will play a huge part in determining your score on the assignments. I will not hesitate to assign D's and F's to working pages/programs which are poorly structured, haphazardly indented, under-commented, have poor identifier names and abbreviations, contain inappropriate hard-coded values, or are not "easily maintainable". Appearance of the grading policy in this syllabus constitutes "fair warning" of the consequences of poorly written code.

Code that fails to compile or fails to validate when run through a conformance test (e.g. validating parser) will be given an F. With one exception being that if you are unable to make your solution to the assignment work on time, you may turn in what you have produced to date, along with an explanation of how your intended solution was to work and the problems you are facing making it do so. Your work will be reviewed and you will receive a credit/no-credit grade on the assignment based upon the following criteria.

A no-credit grade will be given if the work shows a lack of sincere effort on your part to do the work before the due date and it will be treated as unsubmitted. If a credit grade is given, you may at your option resubmit for a full grade once you do complete the assignment. You are, of course, encouraged to submit the full assignment and it can only improve your homework grade to do so. In any event, this option should be exercised with due care. Do not abuse this policy.

All submitted work, when turned in must be typed and proofed. The ability to communicate your ideas clearly and effectively is a critical aspect of your work now and later in industry. As such, assignments with misspellings, bad grammar or other such mechanical errors will be returned ungraded. You are encouraged to make use of your peers and it is my assumption that all writing assignments you turn in have been proofed by at least one other person. The campus LRC is an invaluable resource in this regard. An exception to printed/typeset material requirement is granted for hand-annotation of printed screen shots, complicated diagrams or other material that would be impractical to typeset. However, illegible work will be returned ungraded.

Work may be turned in either in-class or via email, however email submissions of writing assignments will be accepted in PDF format only.

As this is a Computer Science course, be prepared to spend anywhere between 2 and 6 hours each week working in the lab on the exercises and assignments. Much of this material is learned and understood through hands-on usage and the grades in this class have a strong relationship to the amount of time each student spends in the lab practicing their skills.

Exercises

Exercises are due the first day after we complete lecture on a chapter. I will aim for this to be Tuesdays and the schedule below reflects that. Depending upon the speed with which we cover material, however, the specific dates may be moved up. Do not assume a date has been pushed back unless changes to this syllabus have been posted online.

Lab Reports

Each chapter includes Lab Exercises. These should be done before completing the regular Exercises. As you complete each exercise, you will compose a Lab Report containing a brief paragraph or two of commentary on each exercise. This paragraph should describe how you worked the exercise and your observations about the exercise. You should write this report as you do each lab exercise, do not wait until all the exercises are done.

Questions & Help

Your first line of assistance is the Laboratory Teaching Assistants on duty in the Keck Computer Lab. They are full time Computer Science students and are there to assist you in understanding the material. My office hours are listed above, though make sure you have tried to solve the problems before coming to me. My first question will be for you to describe how you tried to solve the problem and why you think your solution isn't correct.

You can contact me via email at the address above, however you must mention CMSI361 in the subject line of the email. I receive hundreds of emails each day and do not want your email to get lost in the avalanche. Do not forget to mention who you are in your email, too often I am left wondering who surferguy85 may be.

Tests & Quizzes

There will be one Midterm Exam and one Final Exam which together will comprise 40% of your grade. The exam format will be a combination of short answer, true, false and longer problems similar to the exercises in the text. The best preparation for the exams is consistent work and submission of the exercises.

Each week when readings are assigned there will be a 5 minute quiz covering the chapter(s) assigned. This quiz will be on the first day of lecture that the readings were assigned for. Do not be late to class as you will not be given extra time to complete the quiz.

I repeat: Each week when readings are assigned there will be a 5 minute quiz covering the chapter(s) assigned. This quiz will be on the first day of lecture that the readings were assigned for.

Proposed Course Schedule

This schedule is an outline only and may be updated at any time as we cover content faster or slower than allowed for here. Any updates will be posted to the course website listed above.

Unit 1, Web Publishing

August 30
course introduction; syllabus review; Basics of the Internet
Basic HTML & XHTML
Lagerstrom 1 Lagerstrom 2
Cascading Style Sheets
Lagerstrom 3
Lab Reports & Exercises 1:1-4,6 (also refer to wikipedia.org), 2:all
Attributes, Lists & Tables
Lagerstrom 4
Lab Report & Exercises 3:all
Images, Lists & Multimedia
Lagerstrom 5
Lab Report & Exercises 4:all
October 18-November 1
Design & Layout
Lagerstrom 6 W3.org CSS 2.1 Sections 8 and 9
October 18, Lab Report & Exercises 5:all
October 27, 3 Column Layout (due to holiday, only 1st question due)
November 1, 3 Column Layout all
November 3
Midterm Exam

Unit 2, Client Side Interactivity

October 6, 11, 13
Programming & Javascript
Lagerstrom 7
October 18, 20
Objects & Variables
Lagerstrom 8
Lab Report & Exercises 7:all
October 25
No lecture, undergrad holiday
October 27
Functions & Parameters
Lagerstrom 9
Lab Report & Exercises 8:all
November 1, 3
Forms & Interactivity
Lagerstrom 10
Lab Report & Exercises 9:all
November 8, 10
Calculations
Lagerstrom 11
Lab Report & Exercises 10:all
November 15, 17
Conditionals & Advanced Forms
Lagerstrom 12
Lab Report & Exercises 11:all
November 22, 24
Loops & Arrays
Lagerstrom 14
Lab Report & Exercises 12:all
Extra Credit: Exercises 13:all

Unit 3, Advanced Javascript

November 29, December 1
Strings, Dates & Cookies
Lagerstrom 15
Lab Report & Exercises 14:all
December 6, 8
Custom Objects
Lagerstrom 16
Lab Report & Exercises 15:all
December 13
Final Exam, Tuesday 11am

Valid XHTML 1.0!