CS101 Syllabus
CS101 Syllabus
CS101 Syllabus
CS Majors are not allowed to take CS101 - it's too basic. It's fine to take
CS101, fall in love with CS, and then become a CS major.
Course in a nutshell: Taking CS101 you will learn a lot about code, bugs,
and how computers work, and it's less work than CS106A.
CS101 Themes
Course Details
Tue/Thu 1:30-2:50 in 50-52H. There's no section, we just do
everything in class.
Our main course site is at http://web.stanford.edu/class/cs101/ --
everything will be maintained there (shortcut: cs101.stanford.edu)
Nick Parlante Home Page -- nick.parlante@cs.stanford.edu
Course Format
No paper -- I'm not bringing paper copies of anything to class. See
http://web.stanford.edu/class/cs101/ for everything. Each lecture has
one or more written pages like this, linked off front page. It's very
easy to see what we did each day.
Code in page -- Often lecture will include a little code demo or example
in the page (we'll see this later today).
Scrolling -- for lecture I'll go through the pages pretty quickly to show
and talk about the main ideas. Then you can go back to page later if
needed to try the same code I did and review the explanations.
You Try It -- In lecture, I might say "now you try it", and give time for
everyone to work on the example, then we can discuss it.
Homework exercises -- The homeworks will be due soon after we do
something in lecture, e.g. Tue/Thu we do exercises, then the
homework exercises are due the following Mon. Often I'll leave extra
time for you to work on the homework exercises at the end of lecture,
so you may finish most of each week's homework in class. (Theme:
tighten up the timing between seeing a concept and doing it yourself.)
Homeworks
We'll have regular homeworks (homeworks = 35% of grade). The
homeworks are not that hard, with an average score around 95%. The exam
problems will very much resemble the homework problems, so the point of
the homeworks is giving you practice on problems so you can solve them on
the exams.
Exams
There will be 1 in-class midterm and 1 final exam (exams = 65% of grade).
Like most classes in the school of engineering, I'll curve the exams instead
of a 90%=A scheme. However, on an absolute scale, if the whole class does
very well, I'll give better grades. You must pass the final exam to pass the
class. If someone does terrible on the midterm but studies and does much
better on the final, I will count their midterm less.
Late Days
Every student gets 3 "late days" to use to extend the deadline of an
assignment. No permission is required to use these .. just turn the work in
late. These are to account the various problems and miscues real life,
allowing you a little extra time to turn in high quality work. On the other
hand, 3 days is not much, so plan to hit the deadlines and save the late days
for real emergencies. We record how late each assignment is turned in and
do an accounting at the end of the quarter.
The goal of the late-day system is treating all the students the same. After
the late days are used up, work loses a half letter grade per day. If you have
an exceptional circumstance, contact Nick to see about getting some sort of
accommodation.
Honor Code
In the spirit of collegial and cooperative learning, you are free to discuss
ideas and approaches with other students, and then implement the solution
yourself. The key is this: all the code you submit you should type in
and get working yourself. In particular, it is not appropriate to email or
share multi-line code phrases to be pasted in. The Computer Science
department produces many honor code cases at Stanford. This is not
because CS is a magnet for cheating; it's just that online submissions
provide a large body of evidence, and computer science has tools which do
an extremely good job of finding cheating.
Each homework submission has a "README" section where you can write
notes for the grader. If you think a bit of collaboration may have crossed the
line, mention it in your README notes for that homework. You can never get
in honor code trouble for collaboration mentioned in this way.
Week-#/Monday-Date
Week 1, Mon=Apr 3, starting Tue Mar 29 -- Introduction, basic code,
start digital images
Week 2, Apr 10 -- Image loops, color channels
Week 3, Apr 17 -- Image if-logic, digital bluescreen effect, take your
own bluescreen picture
Week 4, Apr 24 -- Topics: computer hardware, bits bytes, computer
software
Week 5, May 1 -- Topics: analog and digital, compression, Thu May
4th Midterm in class
Week 6, May 8 -- Topics: Networking, wi-fi, internet, the web
Week 7, May 15 -- Table data code, iteration, logic, counting
Week 8, May 22 -- Basic spreadsheets, Thu begin Computer Security
Week 9, May 29 -- Computer security, passwords, hacks, oh my.
Internet economics and privacy.
Week 10, June 5 -- Conclusions, big ideas, no class Thu
Finals -- Final Exam Fri June 9th 12:15-3:15