CSCI 200 - Fall 2023
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

Resources

DOW Date Lec ## Mod Lecture Subject Reading Notes
[Top]
M Aug 21 2023 00 C++ Python vs. C++
Slides (.pdf) Lab0 assigned

A0 assigned
T Aug 22 2023 A0 due
W Aug 23 2023 01 C++ CLI Imperative Programming: Compiling Hello World
Slides (.pdf)

Lecture Example Code

zyBooks 1.1 - 1.18, 12.13

cpp4py: 1.1 - 1.4

cppme: Basics of C++
F Aug 25 2023 02 C++ MM Imperative Programming: Variables, Memory, and Random Values

Handout (.pdf)
Slides (.pdf)

Lecture Example Code

zyBooks 2.1 - 2.21, 2.23, 4.16, 4.30

A Tutorial On Two's Complement

cpp4py: 2.1 - 2.4

cppme: Typecasting

cppme: Modulus

cppme: Random Values
Lab1A assigned
[Top]
M Aug 28 2023 03 CLI The Command Line Interface and Makefiles I: Compiler Directives & Targets
Slides (.pdf)

Lecture Example Code

CLI Cheat Sheet (.pdf)

Makefile Cheat Sheet
W Aug 30 2023 04 C++ DE MM Structured Programming: Conditionals & Scope

Handout (.pdf)
Slides (.pdf)

Lecture Example Code

zyBooks 3.1 - 3.14, 3.16 - 3.24

cpp4py: 3.1

cppme: if

cppme: switch
Lab1B assigned

A1 assigned
F Sep 01 2023 05 C++ DE MM Structured Programming: Loops & Scope

Handout (.pdf)
Slides (.pdf)

zyBooks 4.1 - 4.5, 4.8 - 4.15, 4.17 - 4.29

cpp4py: 3.2 - 3.3

cppme: Loops
[Top]
M Sep 04 2023 --- NO CLASS --- LABOR DAY ---
W Sep 06 2023 06 C++ CLI Debugging: Print Lines v The Debugger
Slides (.pdf)

Lecture Example Code

Debugger Cheat Sheet (.pdf)
R Sep 07 2023 Set1 due
A1
Lab1A
Lab1B
zyBooks 1
F Sep 08 2023 07 C++ DE MM Procedural Programming: Functions by Value

Quiz 1: Imperative & Structured Programming
Slides (.pdf)

Lecture Example Code

zyBooks 5.1 - 5.4, 5.6 - 5.7, 5.9 - 5.12, 9.7

cpp4py: 4.1, 4.4

cppme: Functions
Lab2A assigned
[Top]
M Sep 11 2023 08 C++ CLI DE Abstraction & Reuseability: Multifile Programs & Makefiles II
Slides (.pdf)

Lecture Example Code

zyBooks 5.5, 9.14
W Sep 13 2023 09 C++ MM Scope on the Call Stack: Introducing Pointers
Slides (.pdf)

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
Lab2B assigned
F Sep 15 2023 10 C++ DE MM Procedural Programming: Functions by Pointer
Slides (.pdf) Lab2C assigned

A2 assigned
[Top]
M Sep 18 2023 11 C++ CLI DE MM Exam I Review

Quiz 2: Procedural Programming
Slides (.pdf)

Exam 1 LOs


Exam 1 Extra Credit Questions
W Sep 20 2023 12 C++ CLI DE MM Exam I
F Sep 22 2023 13 C++ MM OOP Object-Oriented Programming: Encapsulating State
Slides (.pdf)

zyBooks 9.1 - 9.2, 9.5

cppme: Classes
[Top]
M Sep 25 2023 14 C++ DE OOP File Input & Validation
Slides (.pdf)

Lecture Example Code

zyBooks 3.15, 4.6 - 4.7, 8.1 - 8.3

cpp4py: 6.1 - 6.7

cppme: File I/O
T Sep 26 2023 Set2 due
A2
Lab2A
Lab2B
Lab2C
zyBooks 2
W Sep 27 2023 15 C++ DE OOP File Output & Formatting
Slides (.pdf)

Lecture Example Code

zyBooks 2.22, 8.4, 8.8 - 8.19

cppme: iomanip
Lab3A assigned
F Sep 29 2023 16 ADS C++ DE MM OOP Collections & Big-O Notation: std::vector & std::string
Slides (.pdf)

Lecture Example Code

zyBooks 2.13, 8.5 - 8.7, 6.14, 6.24

cpp4py: 5.3 - 5.4
Lab3B assigned
[Top]
M Oct 02 2023 17 C++ DE MM OOP Object-Oriented Programming: Constructors & Access Modifiers
Slides (.pdf)

Lecture Example Code

zyBooks 9.3 - 9.4, 9.6, 9.8 - 9.13
A3 assigned
W Oct 04 2023 18 C++ DE MM OOP Procedural + Object-Oriented Programming: Passing Objects to Functions
Slides (.pdf)

Lecture Example Code

zyBooks 9.15 - 9.24
FP Proposal assigned
F Oct 06 2023 19 C++ DE MM OOP Procedural + Object-Oriented Programming: Returning Objects from Functions via the Free Store
Slides (.pdf)

Lecture Example Code
[Top]
M Oct 09 2023 20 C++ DE MM OOP The Effects of const

Quiz 3: File I/O & Collections I
Slides (.pdf)

Pointers and const

cppme: const
T Oct 10 2023 Set3 due
A3
Lab3A
Lab3B
zyBooks 3
W Oct 11 2023 21 C++ MM OOP Reference v Pointing
Slides (.pdf)

zyBooks 13.5
FP Proposal due
F Oct 13 2023 22 C++ DE MM OOP Object-Oriented Programming: The Big 3

Shallow Copy v Deep Copy
Slides (.pdf)

zyBooks 5.14 - 5.15, 5.18 - 5.25, 7.2, 13.1 - 13.4, 13.7 - 13.8, 13.11 - 13.15

cpp4py: 4.2

cppme: Function Pointers

cppme: Functors

cppme: Operator Overloading
Lab4A assigned
[Top]
M Oct 16 2023 --- NO CLASS --- FALL BREAK ---
T Oct 17 2023 --- NO CLASS --- FALL BREAK ---
W Oct 18 2023 23 C++ DE OOP Object-Oriented Programming: Templates

Quiz 4: OOP & Pointers
Slides (.pdf)

zyBooks 13.9 - 13.10

cppme: Templates

cppme: Templated Functions
Lab4B assigned
F Oct 20 2023 24 CLI DE OOP Libraries & SFML
Slides (.pdf)

SFML
Lab4C assigned

A4 assigned
[Top]
M Oct 23 2023 25 ADS C++ CLI DE MM OOP Exam II Review
Slides (.pdf)

Exam 1 LOs
Exam 2 LOs
Exam 1 & 2 LOs


Exam 2 Extra Credit Questions
W Oct 25 2023 26 ADS C++ CLI DE MM OOP Exam II
F Oct 27 2023 27 C++ DE MM OOP Object-Oriented Programming: Inheritance
Slides (.pdf)

Lecture Example Code

zyBooks 10.1 - 10.3

cppme: Inheritance

cppme: Inheritance II

cppme: Object Lifetime
[Top]
M Oct 30 2023 28 C++ DE MM OOP Inheritance: Compile Time Polymorphism
Slides (.pdf)

cppme: Multiple Inheritance
T Oct 31 2023 Set4 due
A4
Lab4A
Lab4B
Lab4C
zyBooks 4
W Nov 01 2023 29 C++ DE MM OOP Inheritance: Runtime Polymorphism
Slides (.pdf)

Lecture Example Code

zyBooks 10.4 - 10.16, 13.6
Lab5A assigned
F Nov 03 2023 30 C++ DE MM OOP Inheritance: Abstract Classes & Interfaces

SOLID Principles I
Slides (.pdf) A5 assigned
[Top]
M Nov 06 2023 31 C++ DE MM OOP SOLID Principles II: Designing with Abstraction
Slides (.pdf)

cppme: Class Design
W Nov 08 2023 32 ADS C++ DE MM Collections: Static Arrays & Big-O Analysis

Handout (.pdf)
Slides (.pdf)

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
F Nov 10 2023 33 ADS C++ DE MM Collections: Abstract List Operations & Dynamic Arrays
Slides (.pdf)

zyBooks 7.3 - 7.9
Lab6A assigned
[Top]
M Nov 13 2023 34 ADS C++ DE MM Collections: Linked List
Slides (.pdf)

zyBooks 7.14 - 7.20, 14.1, 14.6

cppme: Structures

cppme: Singly Linked Lists
T Nov 14 2023 Set5 due
A5
Lab5A
zyBooks 5
W Nov 15 2023 35 C++ DE Exception Handling

Quiz 5: Inheritance
Slides (.pdf)

cpp4py: 7.1

cppme: Exceptions
F Nov 17 2023 36 ADS C++ DE MM Collections: Sorting a List

Selection / Insertion / Bubble / Merge Sort
Slides (.pdf)

zyBooks 6.4, 12.1 - 12.3, 12.8, 12.10 - 12.12
Lab6B assigned
[Top]
M Nov 20 2023 37 DE MM Recursion
Slides (.pdf)

zyBooks 5.16 - 5.17, 5.26, 11.1 - 11.16

cppme: Recursion
W Nov 22 2023 --- NO CLASS --- THANKSGIVING BREAK ---
R Nov 23 2023 --- NO CLASS --- THANKSGIVING BREAK ---
F Nov 24 2023 --- NO CLASS --- THANKSGIVING BREAK ---
[Top]
M Nov 27 2023 38 ADS C++ DE MM Searching a List: Linear / Binary Search

Iteration v Recursion
Slides (.pdf)

zyBooks 6.5, 12.9, 12.15 - 12.19
W Nov 29 2023 39 ADS C++ DE MM Collections: 2D Lists

Breadth-First Search v Depth-First Search
Slides (.pdf)

zyBooks 6.12 - 6.13, 14.2 - 14.4
Lab6C assigned

A6 assigned
F Dec 01 2023 40 ADS C++ DE MM Collections: C++ STL - std::vector, std::list, std::stack, std::queue
Slides (.pdf)

zyBooks 6.15 - 6.23, 14.7 - 14.9
[Top]
M Dec 04 2023 41 ADS C++ DE MM Collections: Trees & Graphs

Quiz 6: Lists
Slides (.pdf)

zyBooks 16.1 - 16.12

cppme: Binary Trees
LabXC assigned

AXC assigned
W Dec 06 2023 42 ADS C++ CLI DE MM OOP Final Exam Review
Slides (.pdf)

Exam 1 LOs
Exam 2 LOs
Exam 1 & 2 LOs
Full Course LOs



Final Exam Extra Credit Review Questions
R Dec 07 2023 LAST DAY TO SUBMIT ASSIGNMENTS FOR CREDIT
FP due

Set6 due
A6
Lab6A
Lab6B
Lab6C
zyBooks 6

SetXC due
AXC
LabXC
[Top]
M Dec 11 2023 Final Exam
Time: 8:00 AM - 10:00 AM

Rooms:
Section A (8am Scholten) - BB W280
Section B (9am Scholten) - BB W280
Section F (9am Wang) - BB W210
Section C (10am Paone) - BB W250
Section D (11am Paone) - CK 140
Section E (12pm Scholten) - CK 150

[Top]