Miscellaneous Handouts
Zoom Meeting Information
Course Syllabus
Next Steps after First Lecture
Linux, Git, C/C++ Cheat Sheet
Lecture Handouts
Course Overview
(
results from activities
)
Topic 1: Introduction to C
(
notes
)
Topic 2: C Recursion
Topic 3: C Types
(
problems
)
Topic 4: C Pointers
(
problems
)
Topic 5: C Arrays
(
problems
)
Topic 6: C Dynamic Allocation
(
problems
)
Topic 7: Lists and Vectors
(
problems
)
Topic 8: Complexity Analysis
(
update
,
problems
)
Topic 9: Sorting Algorithms
(
update
,
problems
)
Topic 10: Abstract Data Types
Topic 12: Transition to C++
Topic 13: Object-Oriented Programming
(
update
,
problems
)
Topic 14: Generic Programming
(
problems
)
Topic 15: Functional Programming
Topic 16: Concurrent Programming
Topic 17: Trees
Topic 18: Tables
Topic 19: Graphs
Section Handouts
Section 1: Linux Development Environment
Section 2: Compiling and Running C Programs
Section 3: C Build and Test Frameworks
Section 4: C Debugging, Testing, Formatting
Section 5: C Profiling for Performance and Memory Usage
Section 6: C Problem-Based Learning
(
solutions
)
Section 7: Sorting Lab
(
PA2 discussion
)
Section 8: Object-Oriented Programming Lab
(
PA3 discussion
)
Section 9: Dynamic Polymorphism Lab
Section 10: C++ Problem-Based Learning
(
solutions
)
Section 11: Static Polymorphism Lab
(
PA4 discussion
)
Programming Assignment Handouts
Programming Assignment Logistics
Test and Debug Strategy
Coding Conventions
PA1: Math Functions
PA2: List and Vector Data Structures
PA3: Sorting Algorithms
PA4: Handwriting Recognition System – Linear vs. Binary Search
PA5: Handwriting Recognition System – Tree vs. Table Search
In-Class Paper Quiz Handouts
Quiz 1: Introduction to C
(
solution
)
Quiz 2: C Pointers
(
solution
)
Quiz 3: C Dynamic Allocation
(
solution
)
Quiz 4: Complexity Analysis
(
solution
)
Quiz 5: Complexity Analysis
(
solution
)
Quiz 6: Object Oriented Programming
(
solution
)
Quiz 7: Generic Programming
(
solution
)
Quiz 8: Generic Programming
(
solution
)
Tutorial Handouts
Tutorial 0: Remote Access to ecelinux
Tutorial 1: Linux Development Environment
Tutorial 2: Git Distributed Version Control System
(
github
)