|
Computer Science 109:
| ||||
Princeton University |
Lecture notes: 9/19 9/21 9/26-28 10/3-5 10/10 10/12 10/17-19 10/19-24 10/26 11/7 11/9 11/14 11/16-21 11/28 11/30-12/5 12/7 12/12 12/14
Old stuff: Playlist Lab schedule Survey results Babbage's Difference Engine Foxtrot on HTML CITP Lots of colors Toy simulator D is for Digital software patents Dennis Ritchie NY Times obituary Economist obituary Lab 4 web pages 2009 midterm answers 2010 midterm answers Astrakhan declaration Unix and programming language histories Midterm answers Hacked! article GNU General Public License Javascript examples Latest Top 500 list, pictures Possible follow-on courses certificate in information technology policy Javascript binary converter Open source in the news Unix history paper Denial of service in the news ATM and ISBN checksum algorithm Dave Touretzky's DeCSS page
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
Comparison of COS 109, 116 and 126
Office hours
Textbook
Problem Sets
Labs
Lateness Policy
Collaboration Policy
Exams and Grading
Bibliography
Computers, computing, and many things enabled by them are all around us. Some of this is highly visible, like laptops, phones 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 high level understanding of how computer hardware, software, networks, and systems operate. Topics will be motivated by current events and concerns, and will include discussion of how computers are built and operate; 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 computers and communications systems work and how they affect the world we 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. More and more of our private lives are
observed and recorded by business and government, occasionally with our
knowledge and consent. Major companies like Apple, Google,
Microsoft and Oracle are duking it out with each
other on technical and legal fronts, and with a variety of governments.
Skirmishes in the forever war between students and the entertainment
industry affect Princeton students all the time. The careless, the
clueless, and the criminal continue to do bad things with technology.
What could possibly go wrong? Come and find out.
Week 1: Sep 19, 21:
Introduction. What's in a computer
Week 2: Sep 26, 28:
How does it work. Representation of information
Week 3: Oct 3, 5:
What the components are and how they are made
Week 4: Oct 10, 12:
Software and algorithms
Week 5: Oct 17, 19:
Languages, programming; Javascript
Week 6: Oct 24, 26:
Javascript. Operating systems
[fall break]
Week 7: Nov 7, 9:
File systems, databases. Applications.
Week 8: Nov 14, 16:
Networks & communications, Internet
Week 9: Nov 21, 23:
World Wide Web
Week 10: Nov 28, 30: Threats; security and privacy
Week 11: Dec 5, 7:
Cryptography; Compression & error detection.
Week 12: Dec 12, 14:
Intellectual property. Case studies. Wrapup
[winter break]
Jan sometime:
Q/A session. (Depending on interest, we might arrange for two sessions.)
Jan 27: Final exam, 1:30 pm, Friend 101
Professor:
Brian Kernighan,
311 CS Building, 609-258-2089,
bwk at cs dot princeton dot edu
Schedule
Su Mo Tu We Th Fr Sa
Sep 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 5 pm (no lab or problem set)
30 31
Nov 1 2 3 4 5 fall break
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
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
15 16 17 18 19 20 21
22 23 24 25 26 27 28 final exam 1:30pm Friend 101
Syllabus
This will evolve over the semester, so check it out from time to time.
(1) The Computer History Museum site has a lot of interesting
material, including descriptions of
Babbage's mechanical computers.
(2) A famous 1945 Atlantic Monthly article by Vannevar Bush,
As we may think,
is often cited as predicting the Internet and the web. This page links
to
a version with
original illustrations.
Think about how Bush's "Memex" relates to Google and your computer, and
ask yourself what Bush got right and what he totally missed.
(3) Apple has introduced a variety of ground-breaking devices,
beginning with early personal computers and more recently the iPhone and
iPad. Read Jonathan Zittrain's
chapter on a
fundamental difference between them, and think about whether his
pessimistic take on the iPhone is still true in the face of the success
of Apple's App Store, which opened after Zittrain's essay, and in turn
Apple's disinclination to allow programs that compete with Apple's
businesses.
(1)
Preliminary discussion of the logical design of an electronic computing
instrument. Original article by Burks, Goldstine and von Neumann.
The first page is a clear description of how computers are
organized, though in archaic terminology. There's no need to read much
beyond that, though section 3 is also quite germane. There is also a
good online talk on
early computing
at Princeton by George Dyson; go to October 5, 2004.
(2) Sections 4 and 5 of Alan Turing's famous essay on whether machines can think,
Computing machinery and intelligence,
provides an alternative description of how machines operate, not so
detailed as von Neumann's.
(1) The Chilling
Effects Clearinghouse is an excellent, authoritative site dealing
with the legal issues around free speech, intellectual property, and online activities.
The Electronic Frontier Foundation
also has good coverage of these issues. James Gleick has an interesting
but now a bit dated
article on software patents;
there's a good
new one in the Economist.
Finally, Your Rights Online at Slashdot
points to numerous stories about online rights.
(2) 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:
Tianqiang Liu <tianqian> Thu 1:30-2:30, CS 418a
Taewook Oh <twoh> Wed 1:30-2:30, CS 213
Peng Sun <pengsun> Thu 3:30-4:30, CS 318C
Send mail to cos109@princeton.edu with questions any time.
Regular class attendance is expected and class participation helps. Frequent absences are grounds for a failing grade regardless of other performance. |
Please, no laptops, phones or tablets in class. Regrettably, computers and phones appear to be primarily used for email, chat, YouTube, Twitter, Google, solitaire, poker, eBay, Facebook, and similarly compelling diversions, all of which distract you, your neighbors, and me. (Additions to this list are welcome; I can't keep up.)
The text for the course is D is for Digital, a new book that was published in September 2011.
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 the detailed content, but you should understand the basic ideas. Check out the bibliography for other suggestions.
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 sets 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), Thanksgiving week, or the last week of the term.
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.
Labs will start the second week of classes. 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 somewhere in the Friend Center.
In fairness to everyone, only minimal credit can be given for late submissions unless there are extraordinary circumstances, and in no case after solutions have been posted or 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 turn in all problem sets and labs to pass the course.
You are encouraged to collaborate on problem sets, but you must turn in
separate solutions; the names of all 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 the end of the fifth week of
classes. It will be worth 20 percent of the course grade.
An open-book final examination will be given during the January
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.
If you do poorly on the midterm but much better on the final exam, I
will weight the final more heavily than usual, so a poor midterm grade
is not fatal at all. But you must do acceptably well on the final;
students who cannot answer even half the questions should not be
surprised to get a D, and an F is not impossible, especially if other
work is also inadequate.
Don't forget that P/D/F has three possible outcomes, only one of
which is good. Attending lectures, paying attention, participating,
turning work in on time, coming to office hours, studying for exams, and
attending Q/A sessions all help to avoid unpleasant results.
Collaboration Policy:
Examinations:
Comments on Grades: