CS106B: Programming Abstractions
Autumn 2017
Monday/Wednesday/Friday 12:30pm to 1:20pm in NVIDIA Auditorium

RESOURCES

Overview
Submitter
icon Piazza
Lecture Videos
icon QT Creator
icon Stanford C++ Lib
Blank Project
Help Hours
Socrative

ASSIGNMENTS


EXAMS

Midterm
Thurs Nov 2
7-9pm

Final
Mon Dec 11
8:30-11:30am


STAFF

Lecturer: Cynthia Lee
cbl@stanford.edu
Gates 190
Tues 10:30-11:30am
Fri 10:30-11:30am

Head TA: Ashley Taylor
ataylor4@stanford.edu
Gates B02
Wed 2:00-3:00pm
Thurs 11:15-12:15pm


SCPD

SCPD Office Hours will be held virtually through the link below, on Wednesday, 2:00-3:00PM and Thursday, 11:15-12:15PM.
(link)
All times listed in PST


ANNOUNCEMENTS

Midterm Info
2017102622

EXAM and SOLUTIONS have been posted.

WHEN: Thursday, Nov. 2, 7-9pm.
Note: If your weekly section time conflicts with the midterm, you must attend a different section that week. Plan early to find one that will work for you!

WHERE: Due to our large class size, the registrar has scheduled us across several rooms, and there is little to no wiggle room, so it is CRUCIAL that everyone go to their assigned room (based on last name). Thanks! Rooms and name assignments are as follows:

  • A-CAO: Herrin 175
  • CAR-DEN: Educ 128
  • DIA-LIM: NVIDIA
  • LIN-POO: Skilling
  • PRA-VO: Gates BO1
  • WANG-Z: Gates BO3

WHAT: The following topics are fair game for testing:

  • C++ basics: there will be problems that require you to write code; need very basic console I/O, pass by reference vs pass by value, basic string manipulation, using a struct
  • ADTs: Vector, Grid, Stack, Queue, Map, Set, Lexicon
  • Recursion: predict outcome of recursive code by reading/tracing, write recursive functions and recursive backtracking functions, understand difference between breadth-first search (BFS) and depth-first search (DFS), wrapper functions
  • Big O: state BigO analysis for given code sample (e.g., loops, recursive function)
  • Memory, pointers, link nodes: predict outcome of code that uses dynamic memory/pointers by reading/tracing, draw memory diagram for given code sample, write code that manipulates chain of linked nodes, understand dynamically allocated arrays, address-of & operator, dereference * operator, -> operator
  • Sections: through Week 5 (week before midterm)
  • Homeworks: through assign4 (note: due date is after midterm, but you should understand concepts)
Note that you don't need the following:
  • anything from lecture after Oct 25 (i.e. not including Oct 27, Oct 30, Nov 1)
  • file I/O
  • anything more than extremely basic console I/O and string manipulation
  • HashMap, HashSet
  • Writing your own class
  • LinkedList class, ArrayList class

HOW: There are some details of rules and procedures for this exam in the Course Information Sheet, but a few reminders:

  • You are allowed only 1 page of notes (2 sides, standard 8.5x11 paper).
  • You are allowed to bring a copy of the textbook if you have one. (NO digital copies.) If you don't have a copy, one will be available at the front of the exam room for you to use. This copy is shared and does not go back to your seat with you! FWIW, in my experience almost nobody feels the need to refer to the book, since our exams are desigend to test your conceptual understanding and not memorization.
  • No calculators, computers, etc.
  • The exam is on paper. Bring a pen or #2 pencil. If using pencil, be sure your writing is dark and visible since we will be scanning exams for online grading.

REVIEW SESSION: Tuesday Oct 31 1:30-2:50pm in Skilling Auditorium (lead by SL Nolan!). Will be recorded by SCPD and uploaded same day.

PRACTICE: The following practice exams are based on actual exams from previous quarters:

Welcome
2017092422

Welcome to CS106B! I am so excited to meet all of you, and to especially welcome those who are joining our Stanford family for the first time this autumn. We are looking forward to a fun quarter. Class starts Monday September 25th at 12:30pm in NVIDIA Auditorium.