|
Computer Science 109:
| ||||
Princeton University |
final exam schedule course summary last year's final exam answers.
Lecture notes: 9/19 9/21 9/26-28 10/3-5 10/10 10/12 10/17-19 10/24 10/26 11/7 11/9 11/14 11/16 11/21-23 11/30 12/5 12/7 12/12 12/14
Old stuff: playlist survey results lab assistants origin of smileys binary-decimal-hexadecimal-ascii converter toy machine simulator ESP 2004 midterm 2004 answers iPod flea final exam schedule 2005 midterm answers Javascript examples US Patent Office open document formats Wired's software bugs OED definition of bug a real bug Top 500 supercomputers Foreign Affairs article Diebold parody COS 109 fashions Cringely on Internet futures Enigma page RSA factoring challenge Harvard CS E-1 Google article another Google article Touretzky's Gallery of CSS Descramblers how MP3 works RF spectrum chart
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 2004
Comparison of COS 109, 111 and 126
Administrivia:
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; 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. COS 109 satisfies the QR requirement.
The labs are complementary to the classroom work, and are 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 sound. 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. For example, the technical and legal
issues around file sharing, digital rights management and intellectual property are very much
in the news today. Privacy and security are of increasing importance in
an era of viruses, spyware, phishing and identity theft. Search engines
have moved from curiosities to highly competitive and profitable businesses.
Sep 19, 21:
Introduction. What's in a computer
Sep 26, 28:
How does it work. Representation of information
Oct 3, 5:
What are the components and how are they made.
Oct 10, 12:
Software and algorithms
Oct 17, 19:
Languages, programming; Javascript
Oct 24, 26:
Javascript. Operating systems
[fall break]
Nov 7, 9:
File systems, information storage. Applications.
Nov 14, 16:
Networks & communications, Internet
Nov 21, 23:
World Wide Web
Nov 28, 30: Cookies and viruses; security and privacy
Dec 5, 7:
Cryptography; Compression & error detection.
Dec 12, 14:
Intellectual property. Case studies. Wrapup
[winter break]
Jan 9:
Q/A session at regular class time.
Jan 27: Final exam 9:00 am, McCosh 62 & 64
Lectures:
Monday and Wednesday 11:00-12:20,
Friend Center
008.
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 11 12 13 14 15 16 17
18 19 20 21 22 23 24 first class
25 26 27 28 29 30 problem set 1 due; lab 1 due
Oct 1
2 3 4 5 6 7 8 problem set 2 due; lab 2 due
9 10 11 12 13 14 15 problem set 3 due; lab 3 due
16 17 18 19 20 21 22 problem set 4 due; lab 4 due
23 24 25 26 27 28 29 takehome midterm due (no lab or problem set)
30 31 fall break
Nov 1 2 3 4 5
6 7 8 9 10 11 12 problem set 5 due; lab 5 due
13 14 15 16 17 18 19 problem set 6 due; lab 6 due
20 21 22 23 24 25 26 Thanksgiving (starts Thu, not Wed)
27 28 29 30
Dec 1 2 3 problem set 7 due; lab 7 due
4 5 6 7 8 9 10 problem set 8 due; lab 8 due
11 12 13 14 15 16 17 last class
18 19 20 21 22 23 24 winter break
25 26 27 28 29 30 31
Jan 1 2 3 4 5 6 7
8 9 10 11 12 13 14 Q/A session
15 16 17 18 19 20 21 final exam sometime
22 23 24 25 26 27 28
29 30 31
Syllabus
This will evolve over the semester, so check it out from time to time.
Administrative Information
Teaching Assistants:
Jordan Boyd-Graber jbg@ Thu 4:30-5:30 CS 415
Matt Hoffman mdhoffma@ Tue 8:30-9:30pm CS 103A
Janek Klawe jklawe@ Mon 1:30-2:30 CS 316
Send mail to cos109@princeton.edu with any questions any time.
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. 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 26. There will be no labs in the week before fall break, Thanksgiving week, or the last week of classes. Lab sessions are Monday and Tuesday at 1:30 and Monday through Wednesday at 7:30 in Friend 005 (except Monday afternoon, now in Friend 007).
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 recess (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.
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 of things more easily.
Students must complete all labs and assignments to pass the course.
You are encouraged to collaborate on problem sets, but 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.
There may well be short, unannounced, in-class quizzes to verify your existence and test your understanding. 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 any relevant reading through Monday, October 17. 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.
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 by Larry Snyder (Addison-Wesley, 2004) 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 loan; drop in to take a look.
Meanwhile, check out the bibliography for other suggestions.