CSCI 200 - Summer 2024
Foundational Programming Concepts & Design

Schedule

Modules

  • ADS: Algorithms and Data Structures
  • C++: C++ Programming
  • CLI: Command Line Interface
  • DE: Design Elements
  • MM: Memory Management
  • OOP: Object-Oriented Programming

Resources

DOW Date Lec ## Mod Lecture Subject Reading Notes
M 5/13/24 0 C++, CLI Python vs. C++
Imperative Programming: Compiling Hello World
zyBooks 1.1 - 1.18, 12.13 Lab0 assigned
cpp4py: 1.1 - 1.4 A0 assigned
cppme: Basics of C++  
T 5/14/24 1 C++ MM Imperative Programming: Variables and Memory.
Random Values
The Command Line Interface and Makefiles
Compiler Directives & Targets
zyBooks 2.1 - 2.21, 2.23, 4.16, 4.30 Lab1A assigned
cpp4py: 2.1 - 2.4 A0 due
cppme: Typecasting  
cppme: Modulus  
cppme: Random Values  
Makefile Cheat Sheet  
W 5/15/24 2 C++ DE MM Structured Programming: Conditionals & Scope
Structured Programming: Loops & Scope
zyBooks 3.1 - 3.14, 3.16 - 3.24 Lab1B assigned
cpp4py: 3.1 A1 assigned
cppme: if  
cppme: switch  
zyBooks 4.1 - 4.5, 4.8 - 4.15, 4.17 - 4.29  
cpp4py: 3.2 - 3.3  
cppme: Loops  
R 5/16/24 3 C++ DE MM Debugging: Print Lines v The Debugger
Procedural Programming: Functions by Value
Quiz 1: Imperative & Structured Programming
zyBooks 5.1 - 5.4, 5.6 - 5.7, 5.9 - 5.12, 9.7 Lab2A assigned
cpp4py: 4.1, 4.4  
cppme: Functions  
F 5/17/24 Set1 due
A1
Lab1A
Lab1B
zyBooks 1
M 5/20/24 4 C++ CLI DE MM Abstraction & Reuseability: Multifile Programs & Makefiles II
Scope on the Call Stack: Introducing Pointers
Lecture Example Code A2 assigned
zyBooks 5.5, 9.14 Lab2B assigned
Lecture Example Code  
Pointers Video (27:58)  
Pointers Slides (.pdf)  
zyBooks 5.8, 5.13, 7.1, 7.10 - 7.13  
cpp4py: 2.5  
cppme: Pointers  
T 5/21/24 5 C++ CLI DE MM Procedural Programming: Functions by Pointer   Lab2C assigned
   
W 5/22/24   C++ MM OOP Object-Oriented Programming: Encapsulating State zyBooks 9.1 - 9.2, 9.5 FP Proposal assigned
cppme: Classes  
R 5/23/24 7 C++ DE OOP File Input & Validation
File Output & Formatting
Quiz 2: Procedural Programing
zyBooks 3.15, 4.6 - 4.7, 8.1 - 8.3  
cpp4py: 6.1 - 6.7  
cppme: File I/O  
zyBooks 2.22, 8.4, 8.8 - 8.19  
cppme: iomanip  
F 5/24/24 Set2 due
A2
Lab2A
Lab2B
Lab2C
zyBooks 2
M 5/27/24 Memorial Day - No Class
T 5/28/24 8 ADS C++ DE MM OOP Collections & Big-O Notation: std::vector & std::string
Object-Oriented Programming: Constructors & Access Modifiers
zyBooks 2.13, 8.5 - 8.7, 6.14, 6.24 A3 assigned
cpp4py: 5.3 - 5.4 Lab3A assigned
zyBooks 9.3 - 9.4, 9.6, 9.8 - 9.13 Lab3B assigned
W 5/29/24 9 C++ DE MM OOP Procedural + Object-Oriented Programming: Passing Objects to Functions
Procedural + Object-Oriented Programming: Returning Objects from Functions via the Free Store
zyBooks 9.15 - 9.24  
R 5/30/24 10 C++ DE MM OOP The Effects of const
Reference v Pointing
Quiz 3: File I/O & Collections I
Pointers and const FP Proposal due
cppme: const  
zyBooks 13.5  
F 5/31/24 Set3 due
A3
Lab3A
Lab3B
zyBooks 3
M 6/3/24 11 Midterm
T 6/4/24 12 C++ DE MM OOP Object-Oriented Programming: The Big 3
Shallow Copy v Deep Copy
Object-Oriented Programming: Templates
zyBooks 5.14 - 5.15, 5.18 - 5.25, 7.2,


A4 assigned
zyBooks 13.1 - 13.4, 13.7 - 13.10 , 13.11 - 13.15 Lab4A assigned
cpp4py: 4.2 Lab4B assigned
cppme: Function Pointers  
cppme: Templates  
cppme: Templated Functions  
cppme: Functors  
cppme: Operator Overloading  
W 6/5/24 13 C++ DE MM CLI DE OOP  Object-Oriented Programming: Inheritance
Libraries & SFML
SFML Lab4C assigned
zyBooks 10.1 - 10.3  
cppme: Inheritance  
cppme: Inheritance II  
cppme: Object Lifetime  
R 6/6/24 14 C++ DE MM OOP Inheritance: Compile Time Polymorphism
Inheritance: Runtime Polymorphism
Quiz 4: OOP & Pointers
cppme: Multiple Inheritance  
zyBooks 10.4 - 10.16, 13.6  
F 6/7/24 Set4 due
A4
Lab4A
Lab4B
Lab4C
zyBooks 4
M 6/10/24 15 C++ DE MM OOP Inheritance: Abstract Classes & Interfaces
SOLID Principles
cppme: Class Design A5 assigned
  Lab5A assigned
T 6/11/24 16 ADS C++ DE MM Collections: Static Arrays & Big-O Analysis
Collections: Abstract List Operations & Dynamic Arrays
zyBooks 6.1 - 6.3, 6.6 - 6.11, 12.4  
cpp4py: 4.3, 5.1 - 5.2, 6.8  
cppme: Arrays  
cppme: C-Strings  
cppme: string  
cppme: Command Line Arguments  
zyBooks 7.3 - 7.9  
W 6/12/24 17 ADS C++ DE MM Collections: Linked List
Exception Handling
zyBooks 7.14 - 7.20, 14.1, 14.6  
cppme: Structures  
cppme: Singly Linked Lists  
cpp4py: 7.1  
cppme: Exceptions  
R 6/13/24 18 ADS C++ DE MM Collections: Sorting a List
Searching a List: Linear / Binary Search
Recursion
Iteration v Recursion
Selection / Insertion / Bubble / Merge Sort
Quiz 5: Inheritance
zyBooks 6.4, 12.1 - 12.3, 12.8, 12.10 - 12.12 Lab6A assigned
zyBooks 5.16 - 5.17, 5.26, 11.1 - 11.16 Lab6B assigned
cppme: Recursion  
zyBooks 6.5, 12.9, 12.15 - 12.19  
   
F 6/14/24 Set5 due
A5
Lab5A
zyBooks 5
M 6/17/24 19 ADS C++ DE MM Collections: 2D Lists
Breadth-First Search v Depth-First Search
zyBooks 6.12 - 6.13, 14.2 - 14.4 Lab6C assigned
  A6 assigned
T 6/18/24 20 ADS C++ DE MM Collections: C++ STL - std::vector, std::list, std::stack, std::queue
Collections: Trees & Graphs
Quiz 6: Lists
zyBooks 6.15 - 6.23, 14.7 - 14.9 LabXC assigned
zyBooks 16.1 - 16.12 AXC assigned
cppme: Binary Trees  
W 6/19/24 21 Juneteenth: No Class
T 6/20/24 22 Final Project DueSet6 due
A6
Lab6A
Lab6B
Lab6C
zyBooks 6

SetXC due
AXC
LabXC
Final Exam