Notes
Slide Show
Outline
1
CS 211:
Introduction to Computer Programming II
  • Instructor: Brian M. Dennis
  • Teaching Assistants:
  • Tom Lechner, Bin Lin
  • http://www.cs.northwestern.edu/~bmd/cs211/


2
Administrivia
  • Class Meetings
    • MWF Lecture
    • Tu discussion
    • 11:00 – 11:50
    • Tech A110
    • Attendance
      • Not a stickler, but regular attendees generally do better
  • Contact
    • bmd@cs.northwestern.edu
    • Working on Tom & Bin
3
Administrivia
  • Grading
    • 50% Programming Labs
    • 15% 5 written homeworks
    • 15% Midterm exam
    • 20% Final exam
  • Late policy
    • 1 day, 10% off / 90% max
    • 2 days, 20% off / 80% max
    • 3 days, 40% off / 60% max
4
Administrivia
  • Textbook
    • “C++ How to Program” Deitel & Deitel 4th edition
    • No guarantee about 3rd edition
      • Seemed to work out for a few last year
    • 2nd edition is probably too far out of sync
  • Pros
    • Thorough
    • Lots of code examples
  • Cons
    • Expensive
    • Lots of noise
5
Administrivia
  • Working platforms
    • Win32
    • Linux
    • Cygwin


  • Easiest paths
    • Visual C++ 6.0  in book
    • Use CS TLab
    • MSDN AA
  • CS TLab
    • Location
      • 1st floor of 1890 Maple
    • Getting access
    • Win XP Pro
      • Visual C++ 6.0
    • Linux Redhat 9.0
      • G++ 3.0
6
Administrivia
  • Will we use Scheme?
    • Yes, as a working pseudo code
    • Language contrast
7
Philosophy
  • Have fun
  • Introduce systems programming
    • Intro to C++/C
    • Intro dev tools
  • Introduce computer science


  • We’re here for you
    • Get your money’s worth!!
  • Mostly no curve
  • A
    • Sustained excellent work
  • B
    • Reasonable effort
    • Good performance
  • C
    • Major gaps
  • D/F
    • Didn’t show for exams
    • Didn’t turn in homeworks
8
Overview
  • Week 1
    • SICP, 3 essential things in any language
      • Expressions
      • Combination
      • Abstraction
    • Examine in C++ context
    • Intro to C++ dev environments
    • HW 1 out on Friday


  • Week 2
    • Control flow constructs
    • Introduce arrays & pointers
      • One of the tougher areas of the course
    • HW 1 due on Friday
    • HW 2 out on Friday
9
Overview
  • Week 3
    • More pointers & arrays
    • Structs: simple C++ data abstraction
  • Week 4
    • Classes: sophisticated C++ data abstraction
    • HW 2 due on Friday
    • HW 3 out on Friday
10
Overview
  • Week 5
    • Classes: wrapup basics
    • Midterm Quiz, Wednsday
  • Week 6
    • Syntactic extension
    • C++ stream I/O
    • HW 3 due on Friday
    • HW 4 out on Friday
11
Overview
  • Week 7
    • Inheritance
    • Polymorphism
  • Week 8
    • More polymorphism & inheritance
    • Class design
    • HW 4 due on Friday
    • HW 5 out
12
Overview
  • Week 9
    • Templates: syntactic abstraction
    • Elements of good programming
  • Week 10
    • More elements of good programming
    • Wrapup
    • HW 5 due Sunday night
13
That’s a Wrap
  • Reading
    • Re-read / skim the first chapter of SICP
    • Read the first chapter of Deitel & Deitel
  • Get your dev environment in shape