CSCI 200 - Spring 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]
W Jan 11 2023 00 Python vs. C++
Slides (.pdf) Lab0 assigned
A0 assigned
R Jan 12 2023 A0 due
F Jan 13 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: L1
[Top]
M Jan 16 2023 --- NO CLASS --- MARTIN LUTHER KING JR. DAY ---
W Jan 18 2023 02 C++ CLI MM Imperative Programming: Variables, Memory, & Random Values

Handout (.pdf)
Slides (.pdf)

zyBooks 2.1 - 2.13, 2.15 - 2.21, 2.23, 4.30

A Tutorial On Two's Complement

cpp4py: 2.1 - 2.4

cppme: L11

cppme: Modulus

cppme: Random Values
Lab1A assigned
F Jan 20 2023 03 C++ CLI The Command Line Interface
Makefiles I: Targets & Compiler Directives
Slides (.pdf)

Lecture Example Code

CLI Cheat Sheet (.pdf)

Makefile Cheat Sheet
[Top]
M Jan 23 2023 04 C++ DE MM Structured Programming: Conditionals, Boolean Logic, & Scope

Handout (.pdf)
Slides (.pdf)

Lecture Example Code

zyBooks 3.1 - 3.14, 3.16 - 3.24

cpp4py: 3.1

cppme: L2
cppme: L5
Lab1B assigned

A1 assigned
W Jan 25 2023 05 C++ DE MM Structured Programming: Repetition via Loops & Scope

Handout (.pdf)
Slides (.pdf)

zyBooks 4.1 - 4.5, 4.8 - 4.29

cpp4py: 3.2 - 3.3

cppme: L3
F Jan 27 2023 06 C++ CLI DE Debugging I: Print Lines vs. The Debugger
Slides (.pdf)

Lecture Example Code

Debugger Cheat Sheet (.pdf)
[Top]
M Jan 30 2023 07 C++ DE Data Streams I/O: Reading & Writing Using Files
Slides (.pdf)

Lecture Example Code

zyBooks 8.1 - 8.4, 8.8 - 8.19

cpp4py: 6.1 - 6.7

cppme: L10
Lab2A assigned
T Jan 31 2023 Set1 due
A1
Lab1A
Lab1B
zyBooks 1
W Feb 01 2023 08 C++ DE MM I/O: Formatting Output & Validating Input
Slides (.pdf)

Lecture Example Code

zyBooks 2.22, 3.15, 4.6 - 4.7

cppme: iomanip
F Feb 03 2023 09 C++ DE MM Procedural Programming: Functions
Slides (.pdf)

Lecture Example Code

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

cpp4py: 4.1

cppme: L4
A2 assigned
[Top]
M Feb 06 2023 10 C++ DE MM Pass-by-Value vs. Pass-by-Reference
Structural Programming Quiz
Slides (.pdf)

zyBooks 5.14 - 5.15, 5.18 - 5.25

cpp4py: 4.2
Lab2B assigned
W Feb 08 2023 11 C++ MM Debugging II: The Call Stack & Scope Revisited

Handout (.pdf)
Slides (.pdf)

Lecture Example Code

zyBooks 5.8, 5.13
F Feb 10 2023 12 C++ CLI DE Makefiles II: Multifile Compilation & Linking
Slides (.pdf)

Lecture Example Code

zyBooks 5.5, 9.14
[Top]
M Feb 13 2023 13 C++ CLI DE MM Exam I Review
Procedural Programming Quiz
Slides (.pdf)

Exam 1 LOs


Exam 1 Extra Credit Questions
W Feb 15 2023 14 ADS C++ DE MM Static Arrays & C-Strings
+
Big-O Analysis

Handout (.pdf)
Slides (.pdf)

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 Feb 17 2023 15 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
Set2 due
A2
Lab2A
Lab2B
zyBooks 2

Lab3A assigned

A3 assigned
[Top]
M Feb 20 2023 --- NO CLASS --- PRESIDENT'S DAY ---
W Feb 22 2023 16 C++ CLI DE MM Exam I
F Feb 24 2023 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
[Top]
M Feb 27 2023 18 C++ MM Dynamic Memory Allocation & Deallocation
+
Pointer Math & Pass-by-Pointer
Slides (.pdf)

Pointers and const

zyBooks 7.3 - 7.9

cppme: L14
Lab3C assigned
W Mar 01 2023 19 C++ DE Exception Handling: try-catch
Slides (.pdf)

cppme: Exceptions
F Mar 03 2023 20 ADS
C++
DE
MM
Meet the struct
Arrays vs. Linked Lists
Pointers & Array Quiz
Slides (.pdf)

zyBooks 14.1, 14.4
[Top]
M Mar 06 2023 21 ADS C++ DE MM Linked List Operations
Slides (.pdf)

zyBooks 7.14 - 7.20

cppme: L7
cppme: L15
Lab4A assigned
W Mar 08 2023 22 C++ DE MM OOP Object-Oriented Programming: Encapsulating State into Classes & Objects
Slides (.pdf)

zyBooks 9.1 - 9.2, 9.5

cppme: L12
R Mar 09 2023 Set3 due
A3
Lab3A
Lab3B
Lab3C
zyBooks 3
F Mar 10 2023 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
[Top]
M Mar 13 2023 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
T Mar 14 2023 FP Proposal due
W Mar 15 2023 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
F Mar 17 2023 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
[Top]
M Mar 20 2023 --- NO CLASS --- SPRING BREAK ---
W Mar 22 2023 --- NO CLASS --- SPRING BREAK ---
F Mar 24 2023 --- NO CLASS --- SPRING BREAK ---
[Top]
M Mar 27 2023 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
W Mar 29 2023 28 ADS DE Recursion: Unwinding & Backtracking
Searching a List: Linear vs. Binary
Slides (.pdf)

zyBooks 6.5, 11.8, 12.9, 12.15 - 12.19
Lab5B assigned
F Mar 31 2023 29 C++ DE MM OOP Procedural vs. Object-Oriented: Function Pointers vs. Operator Overloading
Slides (.pdf)

zyBooks 12.10, 13.1, 13.10 - 13.14

cppme: Function Pointers
cppme: Functors
cppme: Operator Overloading
Lab5C assigned
[Top]
M Apr 03 2023 30 ADS C++ CLI DE MM Exam II Review
Object-Oriented Programming & Linked List Quiz
Slides (.pdf)

Exam 1 LOs
Exam 2 LOs
Exam 1 & 2 LOs


Exam 2 Extra Credit Questions
W Apr 05 2023 31 ADS C++ CLI DE MM Exam II
R Apr 06 2023 Set4 due
A4
Lab4A
Lab4B
Lab4C
zyBooks 4
F Apr 07 2023 32 ADS DE Multidimensional Lists
Slides (.pdf)

zyBooks 6.12 - 6.13, 6.23
A5 assigned
[Top]
M Apr 10 2023 33 ADS DE Searching a Multidimensional List: Breadth-First Search vs. Depth-First Search with Queues & Stacks
Slides (.pdf)

zyBooks 14.2, 14.5 - 14.7
W Apr 12 2023 34 CLI Makefiles III: Building Libraries & SFML
Slides (.pdf)

SFML
Lab6A assigned

Lab6B assigned
F Apr 14 2023 --- NO CLASS --- E-DAYS ---
[Top]
M Apr 17 2023 35 C++ DE OOP Object-Oriented Programming: Inheritance
Slides (.pdf)

Lecture Example Code

zyBooks 10.1 - 10.3

cppme: L19
cppme: L20
cppme: Object Lifetime
A6 assigned
W Apr 19 2023 36 C++ DE OOP Compile-Time Polymorphism
Big-O Analysis & Algorithms Quiz
Slides (.pdf)

cppme: Multiple Inheritance
F Apr 21 2023 37 C++ DE OOP Run-Time Polymorphism: Virtual & Overridden Functions
Slides (.pdf)

Lecture Example Code

zyBooks 10.4 - 10.16, 13.5
Lab6C assigned
[Top]
M Apr 24 2023 38 C++ DE OOP Object-Oriented Programming: Abstract Classes & Interfaces
SOLID: Interface Segregation Principle
Slides (.pdf)

Lecture Example Code
T Apr 25 2023 Set5 due
A5
Lab5A
Lab5B
Lab5C
zyBooks 5
W Apr 26 2023 39 DE OOP SOLID Design Principles:
Open/Closed Principle
Liskov Substitution Principle
Slides (.pdf)
F Apr 28 2023 40 DE OOP Designing with Abstraction:
Dependency Inversion Principle
Slides (.pdf)

cppme: Class Design
[Top]
M May 01 2023 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
W May 03 2023 42 ADS C++ CLI DE MM OOP 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 May 04 2023 LAST DAY TO SUBMIT ASSIGNMENTS FOR CREDIT
Set6 due
A6
Lab6A
Lab6B
Lab6C
zyBooks 6

FP due

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

Rooms:
Section A - CT 102
Section B - CT 102
Section C - CK 130
Section D - CK 130
Section E - CT 102

[Top]