Princeton University
Computer Science Dept.

Computer Science 109:
Computers in Our World

Fall 2000

Brian Kernighan

Wed Jan 31 09:15:38 EST 2001

Final exam answers

Fall 1999 Final Exam

Lecture notes: Sep 14 | Sep 19 | Sep 21 | Sep 26 | Sep 28/Oct 3 | Oct 5, 10 | Oct 12 | Oct 17 | Oct 19, 24 | Oct 26/Nov 7 | Nov 9 | Nov 14/16 | Nov 21-30 | Dec 7 | Dec 12 | Dec 14

Problem sets: 1  |  2  |  3  |  4  |  5  |  6  |  7  |  8 (writing assignment)     General comments on the writing assignment

Labs: Lab 1  |  Lab 2  |  Lab 3  |  Lab 4  |  Lab 5  |  Lab 6  |  Lab 7  |  Lab 8

Syllabus  |  Interface Hall of Shame  |  home pages from Lab 2  |  2000 midterm answers  |  1999 midterm  |  Lab sections for COS 109  |  The Ada Lovelace page  |  Survey results for COS 109

  • Course Summary
  • Syllabus
  • Comparison of COS 109, COS 111 and COS 126
  • Administrative Information
  • Labs | Problem Sets | Exams | Textbook
  • Links
  • Bibliography

    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 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; usability, reliability, security, privacy. 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. Three of the labs are a gentle introduction to programming in Visual Basic.

    The course will have fundamentally the same structure as last year, but case studies and examples will change according to what's happening (for example, Napster instead of Microsoft vs. DoJ; more on privacy concerns and intellectual property in the digital age; nothing about Y2K).
    COS109 1999 home page
    1999 syllabus and schedule.

    Administrative Information

    Tuesday and Thursday 11:00-12:20, Room 103, Computer Science Building.

    Brian Kernighan, 311 CS Building, 609-258-2089, Office hours: by appointment, or stop in if my door is open.

    Teaching Assistants:
    Sumeet Sobti, 004 CS Building, 8-1785; office hours by appointment
    Elena Zaslavsky, 217 CS Building, 8-0451; office hours by appointment
    You should feel free to send mail to one of the TA's with any questions any time.

    This course is supposed to be paperless. Problem sets, labs and announcements will be posted only on the web page. You are responsible for monitoring the web page frequently.

    You are encouraged to use email to set up appointments, leave messages, and ask quick questions, but most other conversations work better in person.


    Eight hands-on computing laboratory exercises will be assigned. The labs are designed to be easily completed within three hours, during the scheduled lab sections. Assistants will be in the labs to help out. Most labs require about one hour of preparatory reading. Labs are held in room E-203 of the Engineering Quadrangle.

    Lab reports are together worth 35 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. Students must complete all eight labs to pass the course.

    Labs start the week of Monday, September 25. There will be no labs in the week before Fall recess, nor the last week of classes. The labs times for COS109 are not yet determined, but there will be afternoon and evening choices Monday through Thursday.

    Problem sets:

    Nine weekly problem sets, together worth 20 percent of the course grade, will be assigned. Problems are intended to be straightforward and should take at most 2 hours to complete, not counting the reading. One problem set will involve writing a very short paper; this will take longer than 2 hours, and more time will be allotted for it.

    Problem set solutions will be due by 5:00 PM Thursday, one week after they are assigned; turn in solutions in the box on the second 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.

    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.

    Students are encouraged to collaborate on problem sets, but must turn in separate solutions; the names of collaborators should appear on the paper. (This elaboration of the policy on collaboration is paraphrased from CS 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.


    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 Thursday, October 19. It will be worth 15 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 30 percent of the course grade.

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


    There is no assigned text for this course; I have not found anything that seems right. Last year's text (reviled by many students) was Computer Science: An Overview, Sixth Edition, by J. Glenn Brookshear, Addison-Wesley, 2000, ISBN 020135747X. If you find a used copy at a discount price, it might be worthwhile; the fifth edition, with a slighly different title, might also be available. This book is being used in COS 111 this semester.

    Other readings will be handed out in class or found on the Web.


    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.