CS 105
The Web: Technologies and Techniques

  • Instructor
  • Texts
  • Lectures and Readings
  • Assignments, Laboratories and Grading
  • Discussion Group

  • 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 from frames to VRML are introduced frequently. The HTML "standard" is evolving in several directions simultaneously as vendors introduce competing extensions. 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. 2-3
    Tues. 10-12
    Wed. 1-2:30
    Thurs. 2-3

    Texts

    Most of the readings for this course will either be provided on-line or distributed as handouts. For our coverage of HTML, however, the following text is suggested.

    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. Copies of the papers mentioned in this list will be made available to you before the related topic is discussed. Additional readings will be assigned during the semester (and this list will be updated to reflect those additions)).

    Date Topic Readings
    1. 9/10 Introduction: Why Digital?

    2. 9/15 - 9/17

    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
    • Aronson and Lowery, pp. 1-51.
    • Engelfriet, Arnoud; Web Design Group, Wilbur -- HTML 3.2.

    3. 9/22

    Digital Image Encoding.

    4. 9/24

    Digital Transmission: Media, Encoding, Multiplexing

    5. 9/29

    Interactive Content: A Sample Java Applet
    • handouts

    5.5 10/1 - 10/6

    Java II: Applet Structure + Basic Graphics

    6. 10/8 & 10/15

    Multi-machine Communications: LANs and WANs.

    7. 10/13

    HTML II: Text, Lists and Tables.
    • Aronson and Lowery, Ch. 3.

    8. 10/22

    The internet Concept.  

    9. 10/27

    HTML III: Using Graphics
    • Aronson and Lowery, Ch. 6.

    10/27

    Midterm Review Session
    (9:30 - ?, Bio 111)
     

    10/29

    MIDTERM EXAM

    10. 11/3

    Java III: GUI Components and Control Structures.

    11. 11/5

    Basics of the Internet.

    12. 11/10

    HTML IV: Forms and CGI scripts
    • Aronson and Lowery, pp. 132-147.

    13. 11/12

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

    13. 11/17

    Java IV: Iteration and Animation Structures.
    • handouts

    15. 11/19 - 11/24

    Data Delivery Obstacles: Errors and Retransmission  

    16. 12/1 - 12/3

    Cryptographic Techniques.
    • Zimmermann, Philip R., "Cryptography for the Internet", Scientific American, Vol. 279, No. 4, October 1998, pp. 110-115.
    • Diffie, Whitfield and Martin, E. Hellman, "New Directions in Cryptography", IEEE Transactions on Information Theory, Vol. 22, pp. 644-654, Nov. 1976.
    • Netsurfer Focus on Cryptography and Privacy
    • Microsoft, Inc., What is a Cookie?

    17. 12/8-12/10

    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"

    18. Next Year?

    Network Routing
    • Hsieh, Wen-Ning and Israel Gitman, "Routing Strategies in Computer Networks", IEEE Computer Networks, Vol. 17, No. 6, pp. 46-56, June 1984.

    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. Attendance at these labs 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 problems 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 25%, laboratory grades as 25%, the midterm as 20% and the final as 30%.


    To help you prepare for the final exam, I have placed an HTML version of last year's final on the web. I now also have a version of this old exam including solutions available. This was constructed in a bit of a hurry. So, if anything seems fishy, ask rather than spending a lot of time thinking about it.

    I still have good intentions, but it is not clear that I will find the time to make some additional sample questions available as I had hoped.


    Links to the descriptions of written homework assignments will appear hear as the course progresses. All laboratory assignments will be due at 11PM on the Monday evening following the laboratory period unless otherwise indicated on the assignment sheet.


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


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


    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

    Discussion Group

    Students with questions relating to the course are encouraged to use the course on-line discussion group to pose questions or share opinions. It is hoped that this will provide a way for students to get extra help in addition to office hours and TA consulting hours.