|
Computer Science 109:
| ||||
Princeton University |
2006 final 2006 answers 2007 final 2007 answers
Lecture notes: 9/15 9/17 9/22 9/24 9/29-10/1 10/6 10/8 10/13 10/15 10/20 11/3 11/5 11/10 11/12-11/17 11/19 11/24 12/1-12/3 12/8 12/10
Old stuff: playlist lab schedule Survey results Lest We Remember Foxtrot: counting in binary Megapenny David Dobkin on NBC News Toy machine simulator lab 2 web pages Javascript examples 2006 midterm   2007 midterm   2006 midterm answers   2007 midterm answers   Voting machine study Rebuttal report   Diebold Variations   2008 midterm answers   Final exam schedule   COS 109 job opportunity?   GNU GPL   xkcd on Turing computability   Courses after COS 109   Happy birthday, Turing machine   BCD in the news   RSA demo   ATM checksum demo   DMCA 10 years later   Viacom v. Google  
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 2007
Comparison of COS 109, 116 and 126
Office hours
Labs
Problem Sets
Exams
Lateness Policy
Collaboration Policy
Textbook
Bibliography
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 computers in gadgets and appliances and cars, 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. COS 109 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; and how all of these affect security, privacy, property and other issues. 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, and there are no prerequisites. COS 109 satisfies the QR requirement.
The labs are complementary to the classroom work, though intended to reinforce the basic ideas. They will cover a spectrum of practical applications; two of the labs are a gentle introduction to programming in Javascript.
The course will have fundamentally the same structure as in previous
years, but lectures, case studies and examples change every year
according to what's happening. Ubiquitous cameras and sites
like MySpace and YouTube expose more and more of our private lives, and
Viacom's suit against Google and YouTube threatens to expose more.
Microsoft and Google are duking it out with each other and with a
variety of governments. Skirmishes in the forever war between
students and the RIAA/MPAA affect Princeton students all the time. The
careless and the clueless continue to do bad things with technology.
Oh, yes -- it's an election year and everyone uses computers to vote.
What could possibly go wrong? Come and find out.
Sep 15, 17:
Introduction. What's in a computer
Sep 22, 24:
How does it work. Representation of information
Sep 29, Oct 1:
What the components are and how they are made
Oct 6, 8:
Software and algorithms
Oct 13, 15:
Languages, programming; Javascript
Oct 20, 22:
Javascript. Operating systems
[fall break]
Nov 3, 5:
File systems, information storage. Applications.
Nov 10, 12:
Networks & communications, Internet
Nov 17, 19:
World Wide Web
Nov 24, 26: Threats; security and privacy
Dec 1, 3:
Cryptography; Compression & error detection.
Dec 8, 10:
Intellectual property. Case studies. Wrapup
[winter break]
Jan xx:
Q/A session. (Depending on interest,
this date might move around, and
we might arrange for two sessions.)
Jan 16: Final exam, 7:30 pm, Friend 101
Professor:
Brian Kernighan,
311
CS Building, 609-258-2089,
bwk at cs dot princeton dot edu
Schedule
S M Tu W Th F S
Sep 14 15 16 17 18 19 20 first class
21 22 23 24 25 26 27 problem set 1 due; lab 1 due
28 29 30
Oct 1 2 3 4 problem set 2 due; lab 2 due
5 6 7 8 9 10 11 problem set 3 due; lab 3 due
12 13 14 15 16 17 18 problem set 4 due; lab 4 due
19 20 21 22 23 24 25 takehome midterm due 5pm (no lab or problem set)
26 27 28 29 30 31 fall break
Nov 1
2 3 4 5 6 7 8 problem set 5 due; lab 5 due
9 10 11 12 13 14 15 problem set 6 due; lab 6 due
16 17 18 19 20 21 22 problem set 7 due; lab 7 due
23 24 25 26 27 28 29 Thanksgiving (starts Thu, not Wed)
30
Dec 1 2 3 4 5 6 problem set 8 due; lab 8 due
7 8 9 10 11 12 13 last class
14 15 16 17 18 19 20 winter break
21 22 23 24 25 26 27
28 29 30 31
Jan 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17 Q/A Sunday 7:00, final exam Friday 7:30 Friend 101
18 19 20 21 22 23 24
Syllabus
This will evolve over the semester, so check it out from time to time.
The
original technical paper describing Google. Skip the hard bits,
but get the insights. Note the comments about advertising in Appendix A.
Administrative Information
Teaching Assistants and office hours:
Wednesday:
3pm-4pm: Jialu Huang CS 213
4pm-5pm: Xiaobai Chen CS 413
Thursday:
10am-11am: Peng Jiang Carl Icahn Lab 231
11am-12pm: Chris Park Carl Icahn Lab 227
Friday:
11am-12am: Hanjun Kim CS 223
2pm-3pm: Prakash Prabhu CS 223
Send mail to cos109@princeton.edu with any questions any time.
Regular class attendance is expected and class participation helps. Frequent absences are grounds for a failing grade regardless of other performance. |
I won't prohibit the use of laptops in class, but I would be grateful if you could use them primarily for course-related activities like following the notes, rather than for email, chat, YouTube, Twitter, Google, solitaire, poker, eBay, Facebook, or similarly compelling distractions. (Additions to this list are welcome; I can't keep up.)
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 the instructions beforehand, which should take at most an hour. Undergrad lab assistants will be available to help out during scheduled lab sections. Labs are held in the Friend Center; they can be done in dorm rooms or campus clusters, but there will be lab assistants 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 midnight Friday of the week they are assigned, unless there are extraordinary circumstances.
Labs start the week of September 22. There will be no labs in the week before fall break, Thanksgiving week, or the last week of classes. Lab sessions are PROBABLY Monday through Friday at 1:30 and 7:30 in the basement of Friend.
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 1-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 break (midterm instead) or the last week of the term. No credit can be given for late submissions unless there are extraordinary circumstances, and in no case after solutions have been discussed in class.
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. And I am unsympathetic to the appeal that "this is my fifth class," since the same could be said of any one of the others.
Nevertheless, everyone gets truly behind from time to time. In recognition of this, you are allowed two late submissions (no more than 4 days late in each case). Please let us know ahead of time that you will be submitting late so we can keep track.
You must complete all labs and assignments to pass the course.
You are encouraged to collaborate on problem sets, but you must turn in
separate solutions; the names of your collaborators must 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 down the
solution to the problem, such discussions are no longer appropriate --
the solution must be your own work, so you must work on the written
assignment on your own. 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.
Another way to look at this: If I asked you to explain how you got
your answer, you would have no trouble doing so, because you understood
the material completely.
There may well be short, unannounced, in-class quizzes to verify
your existence and test your understanding. These could be worth 5-10
percent of the course grade.
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 any relevant reading through Wednesday, October 15. 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 relevant readings and material
presented and discussed in class. It will be worth 35-40 percent of the
course grade.
There will be question and answer sessions before exams. These are
not meant to be an orderly review and are not a substitute for missed
lectures, but they are a chance for you to ask questions about course
material.
Sorry: no collaboration on take-home exams or the final.
There is no assigned text for this course; I have never found
anything that seems right.
Fluency
with Information Technology, 3rd edition by Larry Snyder (Addison-Wesley, 2007)
is the closest so far, but it's expensive. Notes and readings will be
posted online. The weekly readings are for background, context, general
education, and/or entertainment. You are not expected to know any of
the detailed content, but you should at least understand the general
ideas.
I have half a dozen books that purport to cover the same kinds of
areas as the course. None feels right to me, but among them there is
coverage of many class topics, so you might find it helpful to browse in
them a bit. Available for short term loans; drop in to take a look.
Meanwhile, check out the bibliography for
other suggestions.
Collaboration Policy:
Examinations:
Textbook and Readings: