CS 161, Imperative Problem Solving and Data Structures  Spring, 2012  Tentative Class Schedule  Page 1
Monday  Tuesday  Wednesday  Friday
January 23  January 24  January 25  January 27
Introduction  Module 0: Linux Basics  Module 0: Linux  Module 0: Linux
Problem-Solving Process  Laboratory Exercise 1  Laboratory Exercise 2  Laboratory Exercise 3
Module 0: Linux Introduction  commands:  Files, directories  File permissions
Linux Examples  mkdir, cd, ls, mv, cp  Help, printing
January 30  January 31  February 1  February 3
Module 0: Introduction to C  Module 0: Introduction to C  Module 1: Examples  Module 0: Project^{[Req]}
Laboratory Exercise 4  Laboratory Exercise 5  Program a Song
C Examples  Scribbler 2  (class devoted to
connect, disconnect  collaboration)

Sound

February 6  February 7  February 8  February 10
Module 1: Types and variables Module 1: Conditionals  Module 1: Loops^{[EC]}  Module 1: Loops and
(with casting)  Laboratory Exercise 6  Laboratory Exercise 7  Scribbler 2 Motion
Laboratory Exercise 8  Scribbler 2  Due: Module 0 Project  Laboratory Exercise 9

Motion Sensors

February 13  February 14  February 15  February 17
Module 1: Project^{[Req]}  Representation of Numbers  Data Representation^{[EC]}  Data Representation^{[Req]}
– Song and Dance  binary integers  Laboratory Exercise 10  Laboratory Exercise 11
Due: Supp. Problem 1  sign/magnitude,  Integer representation  Floating-point numbers
ones complement  Non-negatives  Roundoff errors
twos complement  Sign-magnitude notation  Numerical errors
Ones & twos complement  Due: Module 1 Project

bitwise operations

February 20  February 21  February 22  February 24
Module 2: Examples  Module 2: one-dim. arrays  Module 2: functions and testing Module 2: values, addresses
use of Scribbler 2 sensors  Laboratory Exercise 12  Laboratory Exercise 13  and the & operator

Laboratory Exercise 14

Due: Floating-Point Lab

Monday  Tuesday  Wednesday  Friday
February 27  February 28  February 29  March 2
Module 2: values, addresses  Module 2: Project^{[Req]}  Complete Module 2 Project
and the & operator  Follow a moving object  Hour Test 1

Laboratory Exercise 15

Due: Supp. Problem 2

March 5  March 6  March 7  March 9
Module 3: Examples  Module 3: characters & strings Module 3: I/O  Module 3: I/O
characters  Laboratory Exercise 16  Laboratory Exercise 17  Laboratory Exercise 18
strings  Due: Module 2 Project  scanf, printf  fgets
March 12  March 13  March 14  March 16
Module 3: Project^{[Req]}  Module 3: Project^{[Req]}  Module 4: Examples  Module 4: Transform a Pixel
Robot follows interactive  Robot follows interactive  Laboratory Exercise 19
commands  commands  Due: Module 3 Project

Due: Supp. Problem 3

March 19  March 20  March 21  March 23
Break  Break  Break  Break
March 26  March 27  March 28  March 30
Break  Break  Break  Break
April 2  April 3  April 4  April 6
Module 4: Transform Pixels^{[Req]} Module 4: Sorting - insertion  Module 4: Project^{[Req]}  Module 4: Project^{[Req]}
in a picture  Laboratory Exercise 20  Picture Transformation  Picture Transformation
Laboratory Exercise 21  Due: 2-D Pixel Lab
April 9  April 10  April 11  April 13
Module 5: Examples  Module 5: Pointers  Module 5: Linked Lists^{[Req]}
Laboratory Exercise 22  Laboratory Exercise 23  Hour Test 2

Due: Module 4 Project

April 16  April 17  April 18  April 20
Module 5: Linked Lists^{[EC]}  Module 5: Program Mgmt.^{[EC]} Module 5: Project^{[Req]}  Module 6: Examples
Laboratory Exercise 24  Laboratory Exercise 25  Insert theme into song  Stacks
Due: Scheme-Like Lists  Queues

Monday  Tuesday  Wednesday  Friday
April 23  April 24  April 25  April 27
Module 6: Stacks - lists  Module 6: Queues - lists^{[Req]}  Module 6: Bash scripts^{[EC]}  Module 6: Project^{[Req]}
Laboratory Exercise 26  Laboratory Exercise 27  Laboratory Exercise 28  Video
Due: Module 5 Project  use with testing
April 30  May 1  May 2  May 4
Module 6: Project^{[Req]}  Module 7: Examples  Module 7: Command-line Args. Module 7: Files
Video  bitwise operations  Laboratory Exercise 29  Laboratory Exercise 30
Due: Queues’ Lab  read and write to files

Due: Module 6 Project

May 7  May 8  May 9  May 11
Module 7: Files  Module 7: Project^{[Req]}  Module 7: Project^{[Req]}  Semester Wrap-Up
Laboratory Exercise 31  robot motion with logging  robot motion with logging  Project Showcase
include, separate compilation  End-of-course evaluations
separate linking  Due: Module 7 Project

Due: Supp. Prob. 4 or 5