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?