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

 01A: Welcome and Course Overview
01a: Ex. 2 Treasure Hunt
Ch. 1 Intro
Lab 0:Getting Started
Codelab 1: Review Exercises #1 and #2
08/30 01B: Getting Started with Arduino
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
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
03A: Decisions and Digital I/O
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
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
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
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
05A Ex 1: Multiple Alternatives

Ch. 4 Decision Making (2nd half) pgs. 82-94
Lab 8: Using Sensor Data
Codelab 4: All Review Exercises
6A: Counting Loops and Bar Charts
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
06B: Indefinite Loops
Midterm 1 Prep
Midterm 1 Review Supplement
Ch. 5 Program Loops

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

no reading HW
Lab 9:  Indefinite Loops
No Codelab HW
06B Cont: Design & Develop a Loop
07B: More About Functions
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
08A: Random Numbers and Designing with Functions
08A Ex 1: Getting Random
08A Ex 2: Electronic Dice demo

No Reading HW
Lab 11: Decimal to Binary
no Codelab HW
08A: Designing with Functions Cont.
09A: Arrays and Vectors
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
09A: Arrays and Vectors Cont.

09A Ex 1: Exploring Arrays

No Reading HW
09A Ex 2:Vectors
Submit any missing assignments since Midterm 1
 No Codelab HW
09B Array Algorithms, Vectors, Sorting
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
Quiz 3
09B Cont. Array Algorithms, Vectors, Sorting

09B Ex 4: Insertion Sort

No Reading HW
Lab 14:Arrays

 No Codelab HW
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
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
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
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
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
Midterm 2
12C Pair Programming
12C slides
Start Lab 19: Elevator

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

Lab 20: Proposal 1st Draft
13A: Recursion and Recursive Algorithms
Project Proposal Ideas

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

Lab 22: Project Prototype  
14A: Classes
14B: Final Exam Prep
15A: Start Practice Final
14A: Ex 1: Passing Objects

Lab 23: Final Project  
15B: Final Project Presentations
15A: Practice Final
    15A Practice Final

Final Exam 1-4pm Rm. 829

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.