CS 11 C track: lecture 1 - California Institute of Technology
Download
Report
Transcript CS 11 C track: lecture 1 - California Institute of Technology
CS 11 organizational meeting
Spring 2008
About CS 11
"Computer Language Shop"
Goals:
learn how to program
learn to be a better programmer
learn a new language
do a fun project for credit
Me: Mike Vanier (mvanier@cs)
Also: Donnie Pinkston (donnie@cs)
Prerequisites
(very few)
Need a CS cluster account
link on CS 11 home page to sign up page
Need some familiarity with Unix/Linux
CS 1 strongly recommended
not required
Straw poll
How many people have taken CS 1?
How many people have taken CS 11
before?
About CS 11
3 credits, pass/fail only
Under-united (usually)
4-6 credits is more like it
perhaps more if haven't programmed before
Can take 3 times for credit
Can audit as many times as you want
but assignments might not be graded...
Tracks and projects
CS 11 divides into two different segments:
Language tracks
learn a language by working through series of
pre-written exercises
Individual projects
(almost) anything your heart desires
(almost) any language
Language tracks
C (me)
C++ (Donnie)
Java (Donnie)
Python (me)
advanced C (me), C++, Java (Donnie)
ACM programming contest (Fall only)
Ocaml or Haskell (me)
DARPA grand challenge gone!
Language tracks (2)
One lab per week
Lectures (45 minutes to 1 hour)
often in this room
Get detailed feedback on code
May require rework until we're happy with it
All labs must be completed to pass
other passing criteria (discretion of instructor)
Projects
Best for more experienced programmers
Need to keep scale reasonable
Almost any language OK
even ones we don't know
No lectures, less hand-holding
Meet w/Donnie or me once/week
Administrivia
Home page:
http://www.cs.caltech.edu/courses/cs11
note Frequently Asked Questions (FAQ) list!
Need a CS cluster account
Need some familiarity with Unix/Linux
CS 1 recommended, not required
Common questions
Best track for novice programmers: C
other tracks not set up for absolute beginners
C++ track should be taken after C track
C++ track assumes you know everything in
the C track
Having done "some C programming" before
not nearly sufficient
Common paths through CS 11
Many people take CS 11 in multiple terms
Common progressions through CS 11:
C
C
C
C
C++ Java
Java Python
Python
Python Ocaml or Haskell
My grading system (1)
Student creates directories for labs, e.g.
These directories are in your CS cluster account
/home/joeblow/cs11/c
/home/joeblow/cs11/c/lab1
/home/joeblow/cs11/c/lab2 etc.
ITS, UGCS not acceptable
Can develop elsewhere and copy into them
They must be world-readable
world == me
My grading system (2)
I collect labs each week, grade, email
comments back to you
Comments included inline in code
If labs need to be redone:
you have one week to redo
you must inform me by email when redo is ready
Late policy:
Initial submissions: 1 mark/day
Redone assignments: 0 if overdue
My grading system (3)
Labs graded on scale of 0 - 10
Passing requires average lab grade of at least 7/10
56/80 on C track (8 labs)
49/70 on Python track (7 labs)
Redo penalties:
first redo: 1 mark off
second: 1-2 additional marks off
third:
1-3 additional marks off
maximum three redos!
if still not done, grade as-is with 6 mark penalty
Lab suggestions (1)
READ THE LABS CAREFULLY!
Every term, get dozens of questions that
could have been answered by reading the lab
Many lab redos due to not reading the lab
carefully
Read the entire lab!
don't just skip to the bottom
if it's there, you need to know it
Lab suggestions (2)
The "one hour" rule:
If you struggle with anything for more than
one hour, you need to come see us (or a TA,
if there is one)
Further work on your own will probably not
get you anywhere, and will only frustrate you
We don't want to hear "I worked 20 hours on
this and still couldn't get it to work!"
After one hour, come see us!
Redo suggestions
Don't use redos as a debugging tool!
Test code after every redo
If you don't understand a comment, email me
for clarification
Do not ignore comments!
If you need one-on-one help,
leads to automatic re-redo, more marks off
come to office hours
set up meeting by email
We don't mind getting questions!
Collaboration policy
Collaboration is OK (encouraged) as long as
You write the entirety of your own lab
You don't copy another person's lab while writing
yours
You don't have another person dictate the answer
to you while you write
Advice on algorithms, solution methods, etc.
is fine
Labs that are too similar may get you a trip
to the BoC
What now?
Divide into groups, one per track
Sign up on sheets
DON'T LEAVE AFTER SIGNUP!
we'll arrange lecture times now
Questions?