CSCI 200 - Foundational Programming Concepts & Design - Fall 2022

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 22 2022 00 Python vs. C++
Slides (.pdf)

zyBooks 1.1 - 1.18, 12.13

cpp4py: 1.1 - 1.3
Lab0 assigned
A0 assigned
T Aug 23 2022 A0 due
W Aug 24 2022 01 C++ CLI Imperative Programming: Compiling Hello World! using Variables & I/O
Slides (.pdf)

zyBooks 2.1 - 2.13, 2.15 - 2.21, 2.23

cpp4py: 1.4, 2.1 - 2.4

cppme: L1
cppme: Modulus
Lab1A assigned
F Aug 26 2022 02 C++ CLI MM C++ Memory & Random Values
The Command Line Interface
Slides (.pdf)

zyBooks 4.30

cppme: L11
cppme: Random Values

CLI Cheat Sheet (.pdf)
[Top]
M Aug 29 2022 03 C++ DE MM Structured Programming: Conditionals, Boolean Logic, & Scope
Slides (.pdf)

zyBooks 3.1 - 3.14, 3.16 - 3.24

cpp4py: 3.1

cppme: L2
cppme: L5
Lab1B assigned

A1 assigned
W Aug 31 2022 04 C++ DE MM Structured Programming: Repetition via Loops & Scope
Slides (.pdf)

zyBooks 4.1 - 4.5, 4.8 - 4.29

cpp4py: 3.2 - 3.3

cppme: L3
F Sep 02 2022 05 C++ CLI Makefiles I: Targets & Compiler Directives
Slides (.pdf)

Code

Makefile Cheat Sheet
[Top]
M Sep 05 2022 --- NO CLASS --- LABOR DAY ---
T Sep 06 2022 Set1 due
A1
Lab1A
Lab1B
zyBooks 1
W Sep 07 2022 06 C++ CLI DE Debugging I: Print Lines vs. The Debugger
Slides (.pdf)

Code

Debugger Cheat Sheet (.pdf)
F Sep 09 2022 07 C++ DE Data Streams I/O: Reading & Writing Using Files
Slides (.pdf)

Code

zyBooks 8.1 - 8.4, 8.8 - 8.19

cpp4py: 6.1 - 6.7

cppme: L10
Lab2A assigned
[Top]
M Sep 12 2022 08 C++ DE MM I/O: Formatting Output & Validating Input
Structural Programming Quiz
Slides (.pdf)

zyBooks 2.22, 3.15, 4.6 - 4.7

cppme: iomanip
W Sep 14 2022 09 C++ DE MM Procedural Programming: Functions
Slides (.pdf)

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

cpp4py: 4.1

cppme: L4
A2 assigned
F Sep 16 2022 10 C++ DE MM Pass-by-Value vs. Pass-by-Reference
Slides (.pdf)

zyBooks 5.14 - 5.15, 5.18 - 5.25

cpp4py: 4.2
Lab2B assigned
[Top]
M Sep 19 2022 11 C++ MM Debugging II: The Call Stack & Scope Revisited
Slides (.pdf)

zyBooks 5.8, 5.13
W Sep 21 2022 12 C++ CLI DE Makefiles II: Multifile Compilation & Linking
Slides (.pdf)

zyBooks 5.5, 9.14
F Sep 23 2022 13 Exam I Review
Procedural Programming Quiz
Slides (.pdf)

Exam 1 LOs


Exam 1 Extra Credit Questions
[Top]
M Sep 26 2022 --- NO CLASS --- DAY BACK FOR COMMON EXAM I ---
M Sep 26 2022 COMMON EXAM I
8:00 PM - 9:30 PM

Rooms:
Section A (9am): BE 108
Section B (10am): BE 241
Section C (11am): BE 241
Section D (12pm): BE 243

T Sep 27 2022 Set2 due
A2
Lab2A
Lab2B
zyBooks 2
W Sep 28 2022 15 ADS C++ DE MM Static Arrays & C-Strings
+
Big-O Analysis
Slides (.pdf)

Code

zyBooks 6.1 - 6.3, 6.8 - 6.11, 12.4

cpp4py: 5.1 - 5.2, 6.8

cppme: L8
cppme: L9
cppme: string
F Sep 30 2022 16 ADS C++ DE MM Resizable Arrays: std::vector & std::string
+
Passing Arrays To Functions
Slides (.pdf)

zyBooks 2.13, 8.5 - 8.7, 6.6 - 6.7, 6.14 - 6.22, 6.24

cpp4py: 4.3, 5.3 - 5.4
Lab3A assigned

A3 assigned
[Top]
M Oct 03 2022 17 C++ MM Pointers: The Stack vs. The Free Store
Slides (.pdf)

zyBooks 7.1 - 7.2, 7.10 - 7.13

cpp4py: 2.5

cppme: L6
Lab3B assigned
W Oct 05 2022 18 C++ MM Dynamic Memory Allocation & Deallocation
+
Pointer Math & Pass-by-Pointer
Slides (.pdf)

zyBooks 7.3 - 7.9

cppme: L14
Lab3C assigned
F Oct 07 2022 19 C++ DE Exception Handling: try-catch
Slides (.pdf)

cppme: Exceptions
[Top]
M Oct 10 2022 20 ADS
C++
DE
MM
Meet the struct
Arrays vs. Linked Lists
Pointers & Array Quiz
Slides (.pdf)

zyBooks 14.1, 14.4
T Oct 11 2022 Set3 due
A3
Lab3A
Lab3B
Lab3C
zyBooks 3
W Oct 12 2022 21 ADS C++ DE MM Linked List Operations
Slides (.pdf)

zyBooks 7.14 - 7.20

cppme: L7
cppme: L15
Lab4A assigned
F Oct 14 2022 22 C++ DE MM OOP Object-Oriented Programming: Encapsulating State into Classes & Objects
Slides (.pdf)

zyBooks 9.1 - 9.2, 9.5

cppme: L12
[Top]
M Oct 17 2022 --- NO CLASS --- FALL BREAK ---
W Oct 19 2022 23 C++ MM OOP Managing State: Constructors & Access Modifiers
Slides (.pdf)

zyBooks 9.3 - 9.4, 9.8 - 9.13, 9.15 - 9.24

cpp4py: 4.4
Lab4B assigned

A4 assigned

FP Proposal assigned
F Oct 21 2022 24 C++ DE MM OOP The Big Three via Operator Overloading & Copying
Slides (.pdf)

zyBooks 9.7, 13.2 - 13.4, 13.6 - 13.7
[Top]
M Oct 24 2022 25 C++ DE MM OOP Classes & Functions: const & Templates
Slides (.pdf)

zyBooks 13.8 - 13.9

cppme: const
cppme: Templates
cppme: Templated Functions
Lab4C assigned
T Oct 25 2022 FP Proposal due
W Oct 26 2022 26 ADS DE MM Sorting a List I: Bubble, Insertion, & Selection Sorts
Slides (.pdf)

zyBooks 6.4, 12.1 - 12.3, 12.5, 12.11 - 12.12
F Oct 28 2022 27 ADS DE MM OOP Sorting a List II: MergeSort via Recursion
Slides (.pdf)

zyBooks 5.16 - 5.17, 5.26, 11.1 - 11.7, 11.9 - 11.16, 12.6 - 12.8

cppme: L16
Lab5A assigned
[Top]
M Oct 31 2022 28 C++ DE MM OOP Recursion: Unwinding & Backtracking
Procedural vs. Object-Oriented: Function Pointers vs. Operator Overloading
Slides (.pdf)

zyBooks 11.8, 12.10, 13.1, 13.10 - 13.14

cppme: Function Pointers
cppme: Functors
cppme: Operator Overloading
Lab5B assigned
T Nov 01 2022 Set4 due
A4
Lab4A
Lab4B
Lab4C
zyBooks 4
W Nov 02 2022 29 ADS DE Variants of a Linked List: Stacks, Queues, and Multidimensional Lists
Object-Oriented Programming & Linked List Quiz
Slides (.pdf)

zyBooks 6.12 - 6.13, 6.23, 14.2, 14.5 - 14.7
A5 assigned
F Nov 04 2022 30 Exam II Review
Slides (.pdf)

Exam 1 LOs
Exam 2 LOs
Exam 1 & 2 LOs


Exam 2 Extra Credit Questions
[Top]
M Nov 07 2022 31 ADS DE Searching a List: Linear vs. Binary
Slides (.pdf)

zyBooks 6.5, 12.9, 12.15 - 12.19
Lab5C assigned
M Nov 07 2022 COMMON EXAM II
8:00 PM - 9:30 PM

Rooms:
Section A (9am): BE 108
Section B (10am): BE 241
Section C (11am): BE 241
Section D (12pm): BE 243

W Nov 09 2022 32 ADS DE Searching a Multidimensional List: Breadth-First Search vs. Depth-First Search
Slides (.pdf)
F Nov 11 2022 33 CLI Makefiles III: Building Libraries & SFML
Slides (.pdf)

SFML
Lab6A assigned

Lab6B assigned
[Top]
M Nov 14 2022 34 C++ DE OOP Object-Oriented Programming: Inheritance
Slides (.pdf)

Code

zyBooks 10.1 - 10.3

cppme: L19
cppme: L20
cppme: Object Lifetime
A6 assigned
W Nov 16 2022 35 C++ DE OOP Compile-Time Polymorphism
Big-O Analysis & Algorithms Quiz
Slides (.pdf)

cppme: Multiple Inheritance
F Nov 18 2022 36 C++ DE OOP Run-Time Polymorphism: Virtual & Overridden Functions
Slides (.pdf)

zyBooks 10.4 - 10.16, 13.5
Lab6C assigned
[Top]
M Nov 21 2022 --- NO CLASS --- DAY BACK FOR COMMON EXAM II ---
T Nov 22 2022 Set5 due
A5
Lab5A
Lab5B
Lab5C
zyBooks 5
W Nov 23 2022 --- NO CLASS --- THANKSGIVING BREAK ---
F Nov 25 2022 --- NO CLASS --- THANKSGIVING BREAK ---
[Top]
M Nov 28 2022 38 C++ DE OOP Object-Oriented Programming: Abstract Classes & Interfaces
SOLID: Interface Segregation Principle
Slides (.pdf)
W Nov 30 2022 39 DE OOP SOLID Design Principles:
Open/Closed Principle
Liskov Substitution Principle
Slides (.pdf)
F Dec 02 2022 40 DE OOP Designing with Abstraction:
Dependency Inversion Principle
Slides (.pdf)

cppme: Class Design
[Top]
M Dec 05 2022 41 ADS Advanced Data Structures & Their Algorithms: Trees & Graphs
Inheritance & SOLID Design Quiz
Slides (.pdf)

zyBooks 14.3, 16.1 - 16.12

cppme: L18
LabXC assigned

AXC assigned
T Dec 06 2022 Set6 due
A6
Lab6A
Lab6B
Lab6C
zyBooks 6
W Dec 07 2022 42 Final Exam Review
Slides (.pdf)

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



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

SetXC due
AXC
LabXC
F Dec 09 2022 Final Exam
3:15 PM - 5:15 PM

Rooms:
Section A (9am): CK 140
Section B (10am): CK 130
Section C (11am): CK 130
Section D (12pm): CK 150

[Top]