Schedule

CS-11M C++ and Arduino Course Schedule (Fall 2017)

Sample headers and C++ include

Code to Fix Serial Monitor Line Ending Problems 

                                   

                                                                     (Homework is Due before the Next Class:)

Date Lessons
In Class Work turned in to Canvas
Reading Homework
Lab Homework
 
CodeLab Homework

08/28
 01A: Welcome and Course Overview
(slides)
01a: Ex. 2 Treasure Hunt
Syllabus
Ch. 1 Intro
Lab 0:Getting Started
Codelab 1: Review Exercises #1 and #2
08/30 01B: Getting Started with Arduino
(slides)
01B: Ex. 2 Changing the Delay
01B: Ex. 3 Errors and Debugging and cout
Ch. 2 Arduino C
Lab 01: C++ and Arduino
 
no Codelab hw
09/04      Labor Day - no class
       
09/06 02A: C/C++ Basics
(slides)
02A: Ex. 1 Arithmetic
02A: Ex. 2: SOS
 Ch. 3 Data Types
Study for Quiz 1
Lab 02: for loops and if statements
Codelab 1
   Tutorial Exercises:  Do all 16 problems
09/11 Quiz 1
02B: Variables and Serial I/O
02B: Ex. 1 Blink LED circuit
02B: Ex. 2 Four-LED Binary Counter
no Reading HW
Lab 3: LEDs and Resistors

no Codelab HW
09/13
03A: Decisions and Digital I/O
(slides)
03A Ex. 1 Changing the Blink Rate
03A Ex. 2 Counting Button Presses
Ch. 4 Decision Making (first half pgs. 69-82)
Lab 4: Coding Basics

Codelab 2:
   Review Exercises:  Do All
   Tutorial Exercises:  Do All in Arithmetic, Simple Conditions and Conditional (skip Strings)
09/18 03B: Electricity, Components and Analog I/O
(slides)
03B: Ex. 1 Read the 3.3v Power Rail
03B: Ex. 2 Using Analog with LEDs
no Reading HW
Lab 5: Resistor Networks
no Codelab HW
09/20 04A: Operators, Characters,Strings, Switch Statement
(slides)
04A: Ex 1 Initials

Ch. 6 Functions
Study for Quiz 2

Lab 6: Strings and Ohm's Law
Codelab 3:
    Review Exercises: Do All
    Tutorial Exercises:  Do All
09/25 Quiz 2
04B: Functions and Temperature Sensors
(slides)
04B: Ex. 1 Functions
04B: Ex. 2 Organizing Temperature Code

no Reading HW
     
Lab 7: Functions, Constant and Static Variables
no Codelab HW
09/27 5A: Complex Decisions
(slides)
05A Ex 1: Multiple Alternatives

Ch. 4 Decision Making (2nd half) pgs. 82-94
Lab 8: Using Sensor Data
Codelab 4: All Review Exercises
10/02
6A: Counting Loops and Bar Charts
(slides)
06A Ex 1: Counting Numbers
06A Ex 2: Bar Chart
Midterm 1 prep Questions that you develop
06A Ex 3: Graphing the PWM value


Codelab 4: All Tutorial Exercises
10/04
06B: Indefinite Loops
Midterm 1 Prep
(slides)
Midterm 1 Review Supplement
Ch. 5 Program Loops

Midterm 1 Practice Test
Study for Midterm 1
 No Codelab HW
10/09
07A: Midterm 1
06B Cont.: Do-While Loops and Sensor Calibration
(slides)
06B Ex 1: Sensor Calibration

no reading HW
Lab 9:  Indefinite Loops
No Codelab HW
10/11
06B Cont: Design & Develop a Loop
07B: More About Functions
(slides)
07B Ex 1: Reference Parameters
07B Ex 2: Validate User Input
Ch. 7 Storage Classes and Scope
06B Ex 2: Develop a Loop Program
Lab 10: Strings and Overloaded Functions  Codelab 6: Do All Review and Tutorial Exercises
10/16
08A: Random Numbers and Designing with Functions
(slides)
08A Ex 1: Getting Random
08A Ex 2: Electronic Dice demo

No Reading HW
Lab 11: Decimal to Binary
no Codelab HW
10/18
08A: Designing with Functions Cont.
09A: Arrays and Vectors
(slides)
08A Ex 3: Function Stubs
08A Ex 4: Finish dice_complete


No Reading HW
Lab 12: Music Player Codelab 7: HW Do All Review and Tutorial Exercises
10/23
09A: Arrays and Vectors Cont.
(slides)

09A Ex 1: Exploring Arrays


No Reading HW
09A Ex 2:Vectors
Submit any missing assignments since Midterm 1
 No Codelab HW
10/25
09B Array Algorithms, Vectors, Sorting
(slides)
09B Ex 1&2: Averaging and Difference
09B Ex 3: Vector Max

No Reading HW
Study for Quiz 3
Lab 13: Music Player II
Codelab 9: Do All Review and Tutorial Exercises
10/30
Quiz 3
09B Cont. Array Algorithms, Vectors, Sorting
(slides)


09B Ex 4: Insertion Sort



No Reading HW
Lab 14:Arrays

 No Codelab HW
11/01
10A Cont.: Bubble Sort, Break, Continue and Pointers
(10A slides)
(Pointer slides)

10A Ex 1: Bubble Sort



Ch. 8 Intro to Pointers Lab 15: Selection Sort, Pointers, Break,Continue
Codelab 8: Do All Review and Tutorial Exercises
11/06
10A Cont.: Pointers
11B: Arduino Libraries slides
11B: Arduino Libraries Notes

10A Ex 2: Blink using Pointers
11B Ex 2: RGB_LED library

Ch. 12: Arduino Libraries Lab 16: Making a Library
 No Codelab HW
11/08
12A: Classes and Objects Slides
12A: Classes and Objects Notes
12A: Ex 1: Class Student
12A: Ex 1: Starter Code

Ch. 14 Object Oriented Programming

Lab 17:Class Car

Codelab 10: Do All Review and Tutorial Exercises
11/13
12A Cont.: Classes
12B: Motors Notes
12B Slides

12A: Ex 2: Shadowing
12B: Ex 1: DC Motors
Midterm 2 Test Questions that you develop Lab 18: Servo Motors

 No Codelab HW
11/15
12B: Motors & Classes Cont. Slides
12B: Motors Notes
Midterm 2 Prep
12B: Ex 2: ClassColor
Midterm 2 Review Supplements
Study for Midterm 2
Finish Midterm 2 Review Supplements
 No Codelab HW
11/20
Midterm 2
12C Pair Programming
12C slides
Start Lab 19: Elevator



Lab 19: Elevator
(due 11/26 midnight)
 
11/22
Students worked on Lab 19


Lab 20: Proposal 1st Draft
 
11/27
13A: Recursion and Recursive Algorithms
(slides)
Project Proposal Ideas



Install Cygwin on your laptop
Lab 21: Project Proposal
 
11/29
13A Continued: Recursion and Recursive Algorithms
(slides)
13B: Arduino C/C++ vs. Standard C++
(slides)
13A: Ex 1: Recursive Exponentiation
13A: Ex  2: Practicing Recursion
13B: Ex 2: Convert RecursiveWash to Standard C++


Lab 22: Project Prototype  
12/04
14A: Classes
(slides)
14B: Final Exam Prep
15A: Start Practice Final
14A: Ex 1: Passing Objects


Lab 23: Final Project  
12/06
15B: Final Project Presentations
15A: Practice Final
    15A Practice Final

12/11
Final Exam 1-4pm Rm. 829
 Files      



Schedule Notes

  1. This schedule is subject to change.
  2. Readings are from the course textbook unless otherwise indicated. Numbers refer to the chapter and section as shown in the textbook contents. If you are not familiar with common book-reference abbreviations, "pp" means pages and "ch" means chapter. Readings are due before class.
  3. Assignments are due by the start of class on the date listed unless otherwise stated in Canvas.