Princeton University
Computer Science Dept.

Computer Science 109:
Computers in Our World

Fall 2002

Brian Kernighan


Sun Jan 26 10:20:10 EST 2003

The final exam has been graded and your course grade has been mailed to you. 2002 final exam answers

Lecture notes:    9/13    9/18    9/23    9/25    9/30, 10/2    10/7    10/9-14    10/16-21    10/23    11/04    11/11    11/13    11/18    11/20    11/25-12/2    12/9    12/11   

Problem sets:    1     2     3     4     5     6     7     8

Labs:    1     2     3     4     5     6     7     8

Problem set solutions:    1     2     3     4     5     6     7     8    

Miscellaneous:    Economist article on Internet jurisdiction    Touretzky's Gallery of DeCSS Descramblers    cleaning up old web pages    Abby Notterman    denial of service attacks    William Safire on TIA    ESP site    /usr/sbin/traceroute    the truth about Caesarea    Michael Lemonick    midterm comments    2002 answers    109 in the news    2001 midterm    answers    code/art at the Whitney    binary counter program    the origin of "SPAM"    survey results   

Problem sets, labs and announcements will be posted only on the web page. You are responsible for monitoring the web page frequently.


Course summary, schedule and syllabus    What was covered in 2001
      Comparison of COS 109, 111 and 126
Administrivia:    Labs   Problem Sets   Exams   Lateness Policy   Collaboration Policy   Textbook
Links
Bibliography

I have put half a dozen books on reserve in the engineering library in Friend. None is right for the course, but among them there is coverage of many class topics, so you might find it helpful to browse in them a bit.


Course Summary

Computers, computing, and many things enabled by them are all around us. Some of this is highly visible, like personal computers and the Internet; much is invisible, like the microprocessors in cars and appliances, or the programs that fly our planes and keep our telephones and power systems and medical equipment working, or the myriad systems that quietly collect and share personal data about us.

Even though most people will not be directly involved with creating such systems, everyone is strongly affected by them. COS109 is intended to provide a broad, if rather high level, understanding of how computer hardware, software, networks, and systems operate. Topics will be motivated by current issues and events, and will include discussion of how computers work; what programming is and why it is hard; how the Internet and the Web operate; security, privacy, and property rights. We will also touch on fundamental ideas from computer science, and some of the inherent limitations of computers.

This course is meant for humanities and social sciences students who want to understand how computing works and how it affects the world they live in. No prior experience with computers is assumed. There are no prerequisites.

The laboratory is complementary to the classroom work, uses PCs running Windows, and is based on the Internet and the Web. Students will construct their own home pages in the first few weeks. They will then add to them throughout the semester, while exploring a spectrum of practical applications, including graphics and digital sound. Two of the labs are a gentle introduction to programming in Visual Basic.

The course will have fundamentally the same structure as in previous years, but case studies and examples will change according to what's happening. For example, Napster is now a dead issue, but privacy, security and intellectual property in the digital age are of increasing importance.

Schedule

	 S  M Tu  W Th  F  S
Sep	 8  9 10 11 12 13 14	first class (logical Monday)
	15 16 17 18 19 20 21	no class Monday
	22 23 24 25 26 27 28	problem set 1 due; lab 1 due
	29 30
Oct	       1  2  3  4  5	problem set 2 due; lab 2 due
	 6  7  8  9 10 11 12	problem set 3 due; lab 3 due
	13 14 15 16 17 18 19	problem set 4 due; lab 4 due
	20 21 22 23 24 25 26	take-home midterm due (no lab or prob set)
	27 28 29 30 31
Nov	                1  2	fall break
	 3  4  5  6  7  8  9	problem set 5 due; lab 5 due
	10 11 12 13 14 15 16	problem set 6 due; lab 6 due
	17 18 19 20 21 22 23	problem set 7 due; lab 7 due
	24 25 26 27 28 29 30	Thanksgiving
Dec	 1  2  3  4  5  6  7	problem set 8 due; lab 8 due
	 8  9 10 11 12 13 14	last class
	15 16 17 18 19 20 21	winter break
	22 23 24 25 26 27 28
	29 30 31
Jan	          1  2  3  4
	 5  6  7  8  9 10 11	review session
	12 13 14 15 16 17 18
	19 20 21 22 23 24 25	final exam, 1:30 pm, Friend 006

Syllabus

This will change somewhat over the semester, so check it out from time to time.

Sep 13, 18:    Introduction. What's in a computer

  • Reading: Three articles from The Atlantic Monthly give interesting perspectives on what could be foreseen and what was not. As we may think, Vannevar Bush, 1945; The computers of tomorrow, Martin Greenberger, 1964; Living With a Computer, James Fallows, 1982.
  • Problem set 1, due Sep 25

    Sep 23, 25:    How machines work. How machines are made.

  • Reading: Preliminary discussion of the logical design of an electronic computing instrument Original article by Burks, Goldstine and von Neumann. The first page is remarkable.
    Intel web pages on How microprocessors work, how chips are made, and Moore's Law.
  • Lab 1: Windows, Netscape, SSH, mail, file transfer
  • Problem set 2, due Oct 2

    Sep 30, Oct 2:    Bits, bytes, and representation of information.

  • Reading: Whatis has some very short articles on bits, bytes, and binary; How Stuff Works has a useful longer article, but their site is now littered with offensive pop-up ads.
  • Lab 2: HTML and web page design
  • Problem set 3, due Oct 9

    Oct 7, 9:    Software and algorithms

  • Reading: Suggested readings on algorithms
  • Lab 3: Advanced HTML
  • Problem set 4, due Oct 16

    Oct 14, 16:    Languages, programming; Visual Basic

  • Reading: an essay about operating systems, the first quarter of which is fun.
  • Lab 4: Graphics
  • Problem set 5, due Nov 6

    Oct 21, 23:    Visual Basic. Operating systems

  • Reading: Professor Michael Mahoney's Freshman seminar on The World of the Computer points to a remarkable collection of interesting reading, including a Unix oral history.
  • Take-home midterm, due Oct 25 5PM.   
  • No lab, no problem set due this week.

    [fall break]

    Nov 4, 6:    File systems, information storage. Applications.
    Guest lecturer Michael Lemonick
    on Nov 6.

  • Reading: Here are three online VB tutorials, out of many, that seem useful. Your mileage may differ. one, two, three. These articles describe some of the real realities: Patriot missile defense system failure, a GAO report; A Bug and a Crash, by James Gleick.
  • Lab 5: Introduction to Visual Basic / Programming fundamentals
  • Problem set 6, due Nov 13

    Nov 11, 13:    Networks & communications, Internet

  • Reading: Skim some of the Internet history papers
  • Lab 6: More Visual Basic / user interfaces
  • Problem set 7, due Nov 20:   

    Nov 18, 20:    World Wide Web;

  • Reading: browse around in some ancient Web history
  • Lab 7: Sound and multimedia
  • Problem set 8, due Dec 4

    Nov 25:    Cookies and viruses; security and privacy

  • No problem set or lab this week; Nov 27 will be a Q/A session for review
  • Reading: what do they know about you?, general information on privacy; the Electronic Privacy Information Center is also informative. Also check out Does Issuing Passports Make Microsoft a Country?, an interesting article with a good discussion of cookies and extensions.

    Dec 2, 4:    Cryptography. Compression & error detection.
    Guest lecturer Abby Notterman on Dec 4.

  • Reading: FAQ on cryptography. Crypto and homeland security. Lots of information on MP3.
  • Lab 8: Spreadsheets

    Dec 9, 11:    Intellectual property. Wrapup

  • Reading: The Chilling Effects Clearinghouse is an excellent, authoritative site dealing with the legal issues around free speech, intellectual property, and online activities. And speaking of which, the article The Heavenly Jukebox from The Atlantic Monthly (September 2000) is a good discussion of the late Napster at its peak.
  • No more labs or problem sets!

    [winter break]

    Jan 8:    Review session at regular class time if there is enough interest

    Jan 21:    Final exam    Tuesday, Jan 21, 1:30 pm, Friend 006

  • Registrar's Official Exam Schedule page


    Administrative Information

    Lectures: Monday and Wednesday 11:00-12:20, Friend Center  004.

    Professor: Brian Kernighan, 311 CS Building, 609-258-2089, bwk@cs.princeton.edu. Office hours by appointment, or just drop in if my door is open, which it usually is.

    Teaching Assistants:
        Limin Jia, ljia@cs.princeton.edu, 258-0254, Thursday 3-4 (CS 223)
        Elisha Ziskind, eziskind@cs.princeton.edu, 258-1798, Tuesday 11-12 (CS 415)

    You should feel free to send mail to cs109@cs.princeton.edu with any questions any time.

    Labs:

    There will be eight labs to give hands-on practice in important aspects of computing. The labs are designed to be easily completed within three hours, if you have read through them beforehand. Most labs require about one hour of preparatory reading. Assistants will be available to help out during scheduled lab sections. Labs are held in the Friend Center; many can be done in dorm rooms or campus clusters, but there will be lab assistants to help out in Friend, and no help elsewhere.

    Labs are together worth about 20 percent of the course grade. To receive credit, students must complete labs by 5:00 PM Friday of the week they are assigned, unless there are extraordinary circumstances.

    Labs start the week of Monday, September 23. There will be no labs in the week before Fall recess or in the last week of classes. Lab sessions are Monday and Tuesday at 1:30 and Monday through Wednesday at 7:30 in Friend 005.

    Problem sets:

    Eight weekly problem sets, together worth about 20 percent of the course grade, will be assigned. Problems are intended to be straightforward, reinforcing material covered in class and providing practice in quantitative reasoning, and should take at most 2 hours to complete.

    Problem set solutions will be due by 5:00 PM Wednesday, one week after they are assigned; turn in solutions in the box outside room 311 on the third floor of the CS building, or at the beginning of class. There will be no problem set due in the week before Fall recess (midterm instead) or the last week of the term. No credit can be given for late submissions unless there are extraordinary circumstances.

    Lateness Policy

    For both labs and problem sets, extracurricular activities and heavy workloads in other classes don't count as "extraordinary", no matter how unexpected or important or time-consuming. Nevertheless, everyone gets truly behind from time to time. In recognition of this, you are allowed two late submissions (no more than 3 days late in each case). Please let us know that you will be submitting late so we can keep track of things more easily.

    Students must complete all labs and assignments to pass the course.

    Collaboration Policy

    Students are encouraged to collaborate on problem sets, but must turn in separate solutions; the names of collaborators should appear on each submission. (This elaboration of the policy on collaboration is paraphrased from COS 126:) You must reach your own understanding of the problem and discover a path to its solution. During this time, discussions with friends are encouraged. However, when the time comes to write the solution to the problem, such discussions are no longer appropriate -- the solution must be your own work. If you have a question, you can certainly ask friends or teaching assistants, but do not, under any circumstances, copy another person's work or present it as your own. This is a violation of academic regulations.

    Examinations

    There will likely be short, unannounced, in-class quizzes to test your understanding and verify your existence. These will be worth 5-10 percent of the course grade. Regular class attendance is expected; frequent absences are grounds for a failing grade regardless of other performance.

    A take-home, open-book midterm examination will be given during the week before fall break. It will cover material presented and discussed in class and assigned reading through Wednesday, October 16. It will be worth 20 percent of the course grade.

    An open-book final examination will be given during the fall-term exam period. It will cover all of the assigned readings and material presented and discussed in class. It will be worth 35-40 percent of the course grade.

    Sorry: no collaboration on take-home exams or the final.

    Textbook

    There is no assigned text for this course; I have never found anything that seems right. (Fluency with Information Technology by Larry Snyder (Addison-Wesley, 2002) is the closest so far, though too broad-brush and superficial in places. It's comparatively cheap at $28.) Occasional readings will be handed out in class or found on the Web. There are also half a dozen books on reserve in the engineering library in Friend, including Snyder. None is right for the course, but among them there is coverage of many class topics, so you might find it helpful to browse in them a bit.

    Meanwhile, check out the bibliography for other suggestions.


    Credits

    Much of the material for these pages and the labs has been adapted from COS111; thanks to Andrea LaPaugh and Doug Clark for their help.