ECE470/570 Embedded Data Structures and OOP - Sample Course Calendar

Dates

Tuesday

Thursday

Homework due during the week
(Submission closes on Friday)

August
23, 25

Summer break

Introduction to C++, headers, cin, cout, ) – Chapters 2 None

August 30
Sept. 1

Review continued (selection, repetition, functions) – Chapters 2, 4, 5, 6
signed/unsigned data types – notes
basic data types, their representation and limits – finalized and
Multiple file projects, preprocessor commands, libraries, mixing C/C++ – notes
2 programs, review and C++ program structure

September
6, 8

C++ classes: Introduction – Ch. 13, 14 C++ classes: more OOP, arrays of classes – Ch. 13, 14 Lightweight class exercise

September
13, 15

C++ strings vs. C-style arrays, extracting information, repetitive tasks with strings – Ch. 10 Streams and Files in C++, data processing with console, files, and strings – Ch. 5, 12 C++ string data extraction

September
19, 22

Introduction to HW4 - stream data parsing and Embedded System Platform, introduced: OOP for digital IO, Singleton pattern for peripherals – notes Passing by reference vs. passing by pointer, arrays and pointers, dynamic memory allocation – Ch. 7, 9 Streams and data extraction/parsing

September
27, 29

Classes with pointers inside, deep vs. shallow copying – Ch. 13, 14 Exam 1
(up to arrays and pointers)
Test if you can program on the embedded board - extra credit

October
4, 6

Experiments with deep vs. shallow copying, scope and life cycle of variables, arrays of classes – notes (only partial recording) Class inheritance, virtual inheritance – Ch. 15,
Inheritance for buttons, abstract base class for timer interrupt handler
Classes with dynamic arrays inside – 1 program + 1 debug/troubleshoot

October
11, 13

Fall Break

Experiments with arrays of classes, class inheritance, and virtual inheritance – notes Class inheritance

October
18, 20

Class inheritance automation,
Interrupts Handlers using abstract base class, debugging on AVR Studio simulator - notes
Function overloading = good idea, Function templates = not quite, class templates – Ch. 16, notes Classes, arrays of classes, inheritance – embedded

October
 25, 27

Stacks, and Queues – Read Ch. 18 Stacks, and Queues – Read Ch. 18 Stack and queue homework worksheet

November
1, 3

Vector, Vectors of vectors, passing vectors to functions – Ch. 16, notes
Array from C++11= no dynamic memory – notes
Review - notes
vector<T>::iterator, iterators, constant iterators, idea of reverse iterator - Ch 16, notes
Templates

November
8, 10

More on iterators, <algorithm> <numeric> discussed, class templates for embedded systems: PWM generator code – notes Exam 2
(up to templates and class templates, including vector<T> /* as a super BadVector class from homework */ but not iterators)
T.B.A. - extra credit

November
15, 17

Review of stacks and queues. Inheritance vs. aggregation. Rotary buffers for embedded systems, Homework introduced – notes “Classic” Linked Lists – Ch. 17, notes:
Classes: link + iterator/constant iterator + introduction to list 
Rotary buffer implementation, class template notation

November
22, 24

“Classic” Linked Lists – Ch. 17, notes:
Classes: list, overview of homework test program, review of link and iterator(s)

Thanksgiving Break

None

Nov. 29
Dec. 1

Numerical complexity - based on recursive and non-recursive function implementations - notes; Recursion and function reentrance – Ch. 18, notes. Numerical complexity based on vector<T> and list<T> operations - notes;
Introduction to the Final Homework Assignment Project
Linked list or template,
fully graded, triple the points

December
6, 8, 12

Exam 3 Study Day Final Project Due
after this weekend
December
12
Final Lecture: 2:30-4:30 on Monday, December 12: Idea of Binary Trees – Ch 19, Partial Ch. 20.    

web site front local main page general bookmarks software bookmarks go back copyright info