CS 105
The Web: Technologies and Techniques

  • Instructor
  • Lectures and Readings
  • Assignments, Laboratories and Grading
  • Questions, questions, questions...

  • This course will enable students to understand the technology that underlies the World Wide Web and provide them with the skills needed to effectively use this new medium.

    The course introduces techniques for creating hypermedia documents on the web. Students will learn the basics of HTML, the formatting language used to author World Wide Web documents, and a subset of Java, a language that can be used to add interactive elements to web pages.

    The technology that makes the Web possible is developing as rapidly as its use is growing. New facilities are introduced frequently. Web "standards" are evolving in several directions simultaneously as vendors implement competing proposals. Accordingly, rather than simply learning how to use the Web as it is today, we will also examine the fundamental technologies that make the Web possible. These include digital encoding techniques, computer network organization, communication protocols and encryption systems. This material will leave students prepared to understand future possibilities for and obstacles to the development of the Internet.

    Instructor

    Tom Murtagh
    Office: 126 Bronfman
    Phone: 597-2369
    Email: tom@cs.williams.edu
    Hours: Mon., Tue., Wed. - 1:30 - 3:00

    Lectures and Readings

    In the following, I have indicated the major topics we will be discussing during the semester and included a preliminary list of readings associated with each topic. In general the readings listed should be completed in preparation for the class meeting under whose description they appear. Most of the readings for this course will be provided on-line. In a few cases, readings will be distributed in class.

    Additional readings may be assigned during the semester (and this list will be updated to reflect those additions)).

    Date Topic Readings
    1. 2/3 Introduction: Why Digital?

    2. 2/8 - 2/10

    HTML I: Philosophy, History and Syntax.
    • Berners-Lee, Tim, Robert Cailliau, Arir Luotonen, Henrik Frystyk Nielsen, and Arthur Secret, "The World Wide Web", Communications of the ACM", Vol. 37, No. 3, pp. 76-82 (You will need Adobe Acrobat Reader installed on your machine to read this document. If you do not have it on your machine, you can download it from the Adobe web site.)
    • Meyer, Eric A., "Introduction to HTML" (Read §1, 2, 3, and 6)
    • Meyer, Eric A., "Here's Wilbur!" (Read "Alignment" and "A Page Divided" in §5)
    • Engelfriet, Arnoud; Web Design Group, Wilbur -- HTML 3.2. (Provided as a reference that will be of value throughout the course. Look up any tag within this document to get the details of how to use the tag.)

    3. 2/15-2/17

    Digital Image Encoding.

    4. 2/17-2/22

    Digital Transmission: Media, Encoding, Multiplexing

    5. 2/24 - 2/29

    Multi-machine Communications: LANs and WANs.

    6. 2/29 - 3/2

    Interactive Content: An introduction to Java
    • handouts

    7. 3/7

    HTML II: Text, Lists and Tables.

    8. 3/9

    The internet Concept.  

    9. 3/14

    Basics of Internet Implementation

    3/14

    Tentative Midterm Review Session
    (10:00PM - Griffin 6, )
     

    3/16

    MIDTERM EXAM

    10. 4/4

    HTML III: Using Graphics

    11. 4/6

    UDP, TCP + Internet Application Protocols: Mail, Telnet,....

    12. 4/11

    Java II: GUI Components.

    13. 4/13

    Data Delivery Obstacles: Congestion
    • Peterson, Larry L. and Bruce S. Davie, "TCP Congestion Contol" in Computer Networks: A Systems Approach, Morgan Kaufmann Publishers, 2000. (This is a fairly technical reading. I'm hoping, however, that even if you just skim the most technical parts (i.e. the little formulas), it will still give you a clear explanation of TCP congestion control).

    14. 4/18

    HTML IV: Forms and CGI scripts

    15. 4/20

    Data Delivery Obstacles: Error Detection and Correction  

    16. 4/25 - 4/27

    Java III: Contitional, Communications and Strings.
    • handouts

    17. 5/2

    Privacy and Cryptographic Techniques.

    18. 5/4

    Privacy and Cryptographic Techniques. (cont.)

    19. 5/9

    Java IV: Iteration.
    • handouts

    20. 5/9 - 5/11

    Network Security and Privacy.
    • Spafford, Eugene H., "The Internet Worm Incident", Technical Report CSD-TR-933, Department of Computer Science, Purdue University, 1991. (You will need Adobe Acrobat Reader 3.0 to read this document. It can be found on the WSO server. You need only read up to but not including the section entitled "Step-by-step description".)
    • Festa, Paul, "IE 4 has hyperlink bug"

    5/20

    Final Exam

    Assignments, Laboratories and Grading

    In addition to class meetings, we conduct laboratory sessions each week so that we can actively assist you in the development of the skills required to create HTML documents and Java programs. As a demonstration of you mastery of the material on HTML presented, you will also be asked to construct a small, but complete web site as a final lab project.

    Attendance at lab sessions is mandatory. You will submit your laboratory work electronically. The procedure will be explained in laboratory.

    Room B34 in Bronfman is the lab for Computer Science 105 (and other most other CS courses). It is equipped with a number of Macintosh computers that can be used to run all of the software needed for this course. The software used in the course is stored on disks in the computers in Bronfman B34 and available from the department's "Cider Press" file server in the "Computer Science" zone of the campus network.

    Written assignments and short problem sets will be assigned as appropriate throughout the course.

    Your work on all homeworks and programs must conform to the "Honor Code Guidelines for Computer Science Courses" . In interpreting these guidelines all the laboratory work in this course should be treated as "laboratory programs".

    There will be a midterm and a final examination. Grades will be based on an average obtained by treating homework scores as 20%, laboratory grades as 20%, the final HTML project as 15%, the midterm as 20% and the final as 25%. You can check your current scores online.


    Links to the descriptions of written homework assignments will appear hear as the course progresses.


    The following link will take you to the description of the "HTML project".


    Links to the descriptions of laboratory assignments will appear hear as the course progresses. For students in the Thursday labs, lab assignments will be due by 11PM the following Monday (unless otherwise noted in the assignment description). For students in the Friday labs, lab assignments will be due by 11PM the following Tuesday.


    Questions, questions, questions...

    Students with questions relating to the course are encouraged to use the course on-line discussion group to pose questions or share opinions.

    Students seeking personal rather than electronic help are encouraged to take advantage of the instructors office hours and the TA consulting hours held every evening from Sunday through Thursday in Bronfman B34.

    Honor Code Guidelines for Computer Science Courses

    The Honor Code as it applies to non-programming assignments is outlined in the Student Handbook.

    For programming assignments in Computer Science courses, the honor code is interpreted in very specific ways. When a program is assigned, your instructor will identify it as a "practice," "test," "laboratory," or "team" program. The Honor Code applies differently to each:

    Practice Programs. These are provided to help you gain an understanding of a topic, and are not graded. Guideline: Help on these programs is unrestricted.

    Test Programs. Any assignment designated as a test program is to be treated exactly as a take-home, open-book test. You are allowed to read your textbook, class notes, and any other source approved by your instructor. You may not consult anyone other than your instructor. The instructor encourages the asking of questions, but reserves the right not to answer, just as you would expect during an exam. Guideline: Any work that is not your own is considered a violation of the honor code.

    Laboratory Programs. Laboratory programs are expected to be the work of the individual student, designed and coded by him or her alone. Help locating errors is allowed, but a student may only receive help in correcting errors of syntax; help in correcting errors of logic is strictly forbidden. Guideline: Assistance in the design or coding of program logic will be considered a violation of the honor code.

    Team Programs. Team programs are laboratory or test programs to be worked on in teams of two or more students. You are allowed to discuss team programs with your partners, but work with others is otherwise restricted by the appropriate rules above. Guideline: Any work that is not the work of your team is considered a violation of the honor code.

    If you do not understand how the honor code applies to a particular assignment, ask your instructor.

    Students should be aware of the Computer Ethics outlined in the Student Handbook. Violations (including uninvited access to private information and malicious tampering or theft of computer equipment or software) are subject to disciplinary action.

    Guideline: To protect your work dispose of printouts and diskettes carefully, and avoid leaving your programs on hard disks in labs and other public storage areas.

    The Department of Computer Science takes the Honor Code seriously. Violations are easy to identify and will be dealt with promptly.

    Department of Computer Science February 1994