CSCI 200 - Fall 2025
Foundational Programming Concepts & Design

Schedule

Go To Today

Modules

  • ADS: Algorithms and Data Structures
  • C++: C++ Programming
  • CLI: Command Line Interface
  • DE: Design Elements
  • MM: Memory Management
  • OOP: Object-Oriented Programming
Date Topic Before Class In Class After Class Resources
[Top]
Mon Aug 25 2025

Lec 00
Python vs. C++

(C++)
Lab0 assigned

A0 assigned
Wed Aug 27 2025

Lec 01
Imperative Programming: Compiling Hello World

(C++ CLI)
Lab0 due

Watch C++ Language & Syntax (7:37)

Watch Standard Output (4:02)
cpp4py: 1.1 - 1.8

cppme: Basics of C++
Thu Aug 28 2025 A0 due
Fri Aug 29 2025

Lec 02
Imperative Programming: Variables, Memory

(C++ MM)

Watch Data Types (10:13)

Watch Standard Input (3:32)

Watch Style Guide - Variable Naming (4:51)
Lab1A assigned
cpp4py: 2.1 - 2.4

cppme: Modulus

A Tutorial On Two's Complement

cppme: Typecasting
[Top]
Mon Sep 01 2025 --- NO CLASS --- LABOR DAY ---
Wed Sep 03 2025

Lec 03
Random Values
&
The Command Line Interface and Makefiles I: Compiler Directives & Targets

(CLI)
First read cppme: Random Values

Then watch rand() Considered Harmful

Watch C++11 Random Number Generation (2:16)
CLI Cheat Sheet (.pdf)

Makefile Cheat Sheet
Fri Sep 05 2025

Lec 04
Structured Programming: Conditionals & Scope

(C++ DE MM)
Lab1A due

Watch if-else (6:06)

Watch switch (6:48)
Lab1B assigned

A1 assigned
cpp4py: 3.1

cppme: if

cppme: switch

Comparing floats
[Top]
Mon Sep 08 2025

Lec 05
Structured Programming: Loops & Scope

(C++ DE MM)

Watch Loops (while, do-while, for) (6:25)

Watch Loop Flow (break, continue) (3:38)
cpp4py: 3.2 - 3.7

cppme: Loops
Wed Sep 10 2025

Lec 06
Debugging: Print Lines v The Debugger

(C++ CLI)
Lab1B due
Debugger Cheat Sheet (.pdf)
Thu Sep 11 2025 A1 due
Fri Sep 12 2025

Lec 07
Procedural Programming: Functions by Value

(C++ DE MM)

Watch Functions (7:30)
Lab2A assigned
cpp4py: 4.1, 4.4

cppme: Functions
[Top]
Mon Sep 15 2025

Lec 08
Abstraction & Reuseability: Multifile Programs & Makefiles II

(C++ CLI DE)
Wed Sep 17 2025

Lec 09
Scope on the Call Stack: Introducing Raw Pointers

(C++ MM)


Watch Pointers + Free Store (27:59)
Lab2B assigned
cpp4py: 2.5

cppme: Pointers
Fri Sep 19 2025

Lec 10
Procedural Programming: Functions by Pointer

(C++ DE MM)
Lab2A due

Watch Pointers + Free Store (27:59)
Lab2C assigned

A2 assigned
[Top]
Mon Sep 22 2025

Lec 11
Exam I Review

(C++ CLI DE MM)


Wed Sep 24 2025

Lec 12
Exam I

(C++ CLI DE MM)
Structured & Procedural Programming Exam
Fri Sep 26 2025

Lec 13
Reference v Pointing

(C++ MM OOP)
Lab2B due
w3s: References
[Top]
Mon Sep 29 2025

Lec 14
Object-Oriented Programming: Encapsulating State

(C++ MM OOP)
Lab2C due
w3s: OOP

w3s: Classes/Objects

w3s: Methods
Tue Sep 30 2025 A2 due
Wed Oct 01 2025

Lec 15
File Input & Output

(C++ DE OOP)

Watch Using Objects (2:55)

Watch File Input (5:07)

Watch File Output (3:06)
Lab3A assigned
cpp4py: 6.1 - 6.7

cppme: File I/O

w3s: Files
Fri Oct 03 2025

Lec 16
Stream Formatting & Data Validation

(C++ DE OOP)

Watch Output Formatting (5:12)
cppme: iomanip
[Top]
Mon Oct 06 2025

Lec 17
STL Collections & Big-O Notation: std::vector & std::string

(ADS C++ DE MM OOP)
Lab3A due

Watch STL Vector (3:48)

Watch STL String (3:22)
Lab3B assigned
cpp4py: 5.3 - 5.4

C++ Reference: string

C++ Reference: vector

w3s: Strings

w3s: Vectors
Wed Oct 08 2025

Lec 18
Object-Oriented Programming: Constructors & Access Modifiers

(C++ DE MM OOP)
A3 assigned
w3s: Constructors

w3s: Access Modifiers

w3s: Encapsulation
Fri Oct 10 2025

Lec 19
Object-Oriented Programming: Working with Objects

(C++ DE MM OOP)
Lab3B due
FP Proposal assigned
[Top]
Mon Oct 13 2025

Lec 20
Procedural + Object-Oriented Programming: Objects and Functions

(C++ DE MM OOP)
Wed Oct 15 2025

Lec 21
The Effects of const

(C++ DE MM OOP)
Read: Pointers and const
cppme: const
Fri Oct 17 2025

Lec 22
Object-Oriented Programming: The Big 3

Shallow Copy v Deep Copy

(C++ DE MM OOP)
FP Proposal due at midnight

Lab4A assigned
cpp4py: 4.2

cppme: Functors

cppme: Operator Overloading
[Top]
Mon Oct 20 2025 --- NO CLASS --- FALL BREAK ---
Tue Oct 21 2025 --- FALL BREAK ---
Wed Oct 22 2025

Lec 23
Object-Oriented Programming: Templates

(C++ DE OOP)
Lab4B assigned
cppme: Templates

cppme: Templated Functions
Thu Oct 23 2025 A3 due
Fri Oct 24 2025

Lec 24
Exam II Review

(ADS C++ CLI DE MM OOP)


[Top]
Mon Oct 27 2025

Lec 25
Exam II

(ADS C++ CLI DE MM OOP)
Object-Oriented Programming Exam
Wed Oct 29 2025

Lec 26
Object-Oriented Programming: Inheritance

(C++ DE MM OOP)
Lab4A due
w3s: Inheritance

cppme: Inheritance

cppme: Inheritance II

cppme: Object Lifetime

cppme: Inheritance
Fri Oct 31 2025

Lec 27
Libraries & SFML

(CLI DE OOP)
Lab4B due
Lab4C assigned

A4 assigned
SFML
[Top]
Mon Nov 03 2025

Lec 28
Inheritance: Compile Time Polymorphism

(C++ DE MM OOP)

Watch Function Pointers (8:17)
cppme: Multiple Inheritance

w3s: Polymorphism

cppme: Function Pointers
Wed Nov 05 2025

Lec 29
Inheritance: Runtime Polymorphism

(C++ DE MM OOP)
Lab5A assigned
Fri Nov 07 2025

Lec 30
Inheritance: Abstract Classes & Interfaces

SOLID Principles I

(C++ DE MM OOP)
Lab4C due
A5 assigned
[Top]
Mon Nov 10 2025

Lec 31
SOLID Principles II: Designing with Abstraction

(C++ DE MM OOP)
cppme: Class Design
Tue Nov 11 2025 A4 due
Wed Nov 12 2025

Lec 32
Collections: Static Arrays & Big-O Analysis

(ADS C++ DE MM)
cpp4py: 4.3, 5.1 - 5.2, 6.8

cppme: Arrays

cppme: C-Strings

cppme: string

cppme: Command Line Arguments
Fri Nov 14 2025

Lec 33
Collections: Abstract List Operations & Dynamic Arrays

(ADS C++ DE MM)
Lab5A due
Lab6A assigned
[Top]
Mon Nov 17 2025

Lec 34
Collections: Linked List

(ADS C++ DE MM)
cppme: Structures

cppme: Singly Linked Lists
Wed Nov 19 2025

Lec 35
Exception Handling

(C++ DE)
cpp4py: 7.1

cppme: Exceptions

w3s: Exceptions
Fri Nov 21 2025

Lec 36
Collections: Sorting a List

Selection / Insertion / Bubble / Merge Sort

(ADS C++ DE MM)
Lab6B assigned
[Top]
Mon Nov 24 2025

Lec 37
Recursion

(DE MM)
Lab6A due
cppme: Recursion

w3s: Recursion
Tue Nov 25 2025 A5 due
Wed Nov 26 2025 --- NO CLASS --- THANKSGIVING BREAK ---
Thu Nov 27 2025 --- THANKSGIVING BREAK ---
Fri Nov 28 2025 --- NO CLASS --- THANKSGIVING BREAK ---
[Top]
Mon Dec 01 2025

Lec 38
Collections: Searching a List via Linear / Binary Search

Iteration v Recursion

(ADS C++ DE MM)
Wed Dec 03 2025

Lec 39
Collections: 2D Lists

Breadth-First Search v Depth-First Search

(ADS C++ DE MM)
Lab6C assigned

A6 assigned


(For Fun Watch: Micromouse Competition)
Fri Dec 05 2025

Lec 40
Collections: C++ STL - std::vector, std::list, std::stack, std::queue

(ADS C++ DE MM)
[Top]
Mon Dec 08 2025

Lec 41
Collections: Trees & Graphs

(ADS C++ DE MM)
Lab6B due
AXC assigned
cppme: Binary Trees
Wed Dec 10 2025

Lec 42
Final Exam Review

(ADS C++ CLI DE MM OOP)
Lab6C due




Thu Dec 11 2025 LAST DAY TO SUBMIT ASSIGNMENTS FOR CREDIT
A6 due
FP due
AXC due
[Top]
Mon Dec 15 2025 Final Cumulative Exam
Time: 08:00 AM - 10:00 AM

Rooms:
TBA

[Top]