CSCI 200 - Summer 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 May 15 2023 00 C++ CLI Python vs. C++:
Compiling Hello World via the Command Line Interface
Slides (.pdf)

Lecture Example Code

zyBooks 1.1 - 1.18, 12.13

cppme: L1

cpp4py: 1.1 - 1.4

CLI Cheat Sheet (.pdf)
Lab0 assigned

A0 assigned
T May 16 2023 01 C++ DE MM C++ Data Types, Conditionals, & Repetition

Handout (.pdf)
Slides (.pdf)

Lecture Example Code

zyBooks 2.1 - 2.12, 2.15 - 2.21, 2.23, 3.1 - 3.14, 3.16 - 3.24, 4.1 - 4.5, 4.8 - 4.30

A Tutorial On Two's Complement

cppme: L2
L3
L5
L11
Modulus
Random Values

cpp4py: 2.1 - 2.4, 3.1 - 3.3
A0 due

Lab1A assigned

Lab1B assigned

A1 assigned
W May 17 2023 02 CLI DE Building & Debugging
Slides (.pdf)

Lecture Example Code

Makefile Cheat Sheet

Debugger Cheat Sheet (.pdf)

Visualize C++
R May 18 2023 03 C++ DE MM Functions by Value in Multiple Files
Quiz 1: 5/15 - 5/17

Handout (.pdf)
Slides (.pdf)

Lecture Example Code

zyBooks 5.1 - 5.7, 5.9 - 5.12, 9.14

cppme: L4

cpp4py: 4.1, 4.4
F May 19 2023 Set1 due
A1
Lab1A
Lab1B
zyBooks 1
[Top]
M May 22 2023 04 C++ DE MM Scope on the Call Stack: Introducing Pointers
Slides (.pdf)

Lecture Example Code

zyBooks 5.8, 5.13, 7.1 - 7.2, 7.10 - 7.13

cpp4py: 2.5

cppme: L6
Lab2A assigned

Lab2B assigned
T May 23 2023 05 Object-Oriented Programming:
Encapsulating & Managing State
Slides (.pdf)

Lecture Example Code

zyBooks 9.1 - 9.24

cppme: L12

cpp4py: 4.4
FP Proposal assigned

Lab2C assigned

A2 assigned
W May 24 2023 06 I/O: Validating Input, Formatting Output, File Streams
Quiz 2: 5/18 - 5/23
Slides (.pdf)

zyBooks 2.22, 3.15, 4.6 - 4.7, 8.1 - 8.4, 8.8 - 8.19

cpp4py: 6.1 - 6.7

cppme: L10
iomanip
Lab3A assigned
R May 25 2023 --- NO CLASS --- ICPC NAC ---
S May 27 2023 FP Proposal due

Set2 due
A2
Lab2A
Lab2B
Lab2C
zyBooks 2
[Top]
M May 29 2023 --- NO CLASS --- MEMORIAL DAY ---
T May 30 2023 07 std::vector & std::string Collections
Pointing to the Free Store
Big-O Notation
Slides (.pdf)

zyBooks 2.13 - 2.14, 8.5 - 8.6, 6.14 - 6.22, 6.24

cpp4py: 4.3, 5.3 - 5.4

cppme: string
Lab3B assigned

A3 assigned
W May 31 2023 08 Dynamic Memory Management
& The Effect of const

Reference vs. Pointers
Slides (.pdf)

Pointers and const

zyBooks 7.5, 7.8

cppme: const
R Jun 01 2023 09 The Big 3
Shallow vs. Deep Copy

Quiz 3: 5/24 - 5/31
Slides (.pdf)

zyBooks 5.14 - 5.15, 5.18 - 5.25, 9.7, 13.1 - 13.4, 13.6 - 13.7

cpp4py: 4.2

cppme: Operator Overloading
Lab4A assigned
F Jun 02 2023 Set3 due
A3
Lab3A
Lab3B
zyBooks 3
[Top]
M Jun 05 2023 10 Templates
Exam Review
Slides (.pdf)

zyBooks 13.8 - 13.9

cppme: Templates
cppme: Templated Functions

Exam 1 LOs


Exam 1 Extra Credit Questions

Review Question Solutions
T Jun 06 2023 11 The SFML Library

Midterm Exam
Slides (.pdf)

SFML
Lab4B assigned

A4 assigned
W Jun 07 2023 12 Inheritance & Compile Time Polymorphism
Slides (.pdf)

Lecture Example Code

zyBooks 10.1 - 10.3, 13.10 - 13.14

cppme: L19
cppme: L20
cppme: Object Lifetime

cppme: Function Pointers

cppme: Functors

cppme: Multiple Inheritance
R Jun 08 2023 13 Runtime Polymorphism & Abstract Classes
Quiz 4: 6/01 - 6/07
Slides (.pdf)

Lecture Example Code

zyBooks 10.4 - 10.16, 13.5
Lab5A assigned

A5 assigned
F Jun 09 2023 Set4 due
A4
Lab4A
Lab4B
zyBooks 4
[Top]
M Jun 12 2023 14 Designing with Abstraction: SOLID Principles
Slides (.pdf)

cppme: Class Design
T Jun 13 2023 15 Abstract List Operations & Big-O Analyis
Static & Dynamic Array Implementation

Handout (.pdf)
Slides (.pdf)

Lecture Example Code

zyBooks 6.1 - 6.3, 6.6 - 6.11, 7.3 - 7.4, 7.6 - 7.9, 8.7, 12.4

cpp4py: 5.1 - 5.2, 6.8

cppme: L8
cppme: L9
cppme: L14
W Jun 14 2023 16 Linked List Implementations
Exception Handling
Slides (.pdf)

zyBooks 7.14 - 7.20, 14.1 , 14.4

cppme: L7
cppme: L15
cppme: Exceptions
Lab5B assigned
R Jun 15 2023 17 Sorting a List: Selection/Insertion/Bubble/Merge

Searching a List: Binary
Recursion vs. Iteration

Quiz 5: 6/08 - 6/14
Slides (.pdf)

zyBooks 5.16 - 5.17, 5.26, 6.4 - 6.5, 11.1 - 11.16, 12.1 - 12.3, 12.5 - 12.12, 12.15 - 12.19

cppme: L16
Lab6A assigned

Lab6B assigned
F Jun 16 2023 Set5 due
A5
Lab5A
Lab5B
zyBooks 5
[Top]
M Jun 19 2023 --- NO CLASS --- JUNETEENTH ---
T Jun 20 2023 18 Searching a Maze: BFS/DFS & Queue/Stack
Slides (.pdf)

zyBooks 6.12 - 6.13, 6.23, 14.2, 14.5 - 14.7
Lab6C assigned

A6 assigned
W Jun 21 2023 19 Trees & Graphs
Exam Review
Quiz 6: 6/15 - 6/20
Slides (.pdf)

zyBooks 14.3, 16.1 - 16.12

cppme: L18

Exam 1 LOs
Full Course LOs



Final Exam Extra Credit Review Questions
(Solutions)
LabXC assigned

AXC assigned
R Jun 22 2023 20 Final Exam
F Jun 23 2023 LAST DAY TO SUBMIT ANY ASSIGNMENTS FOR CREDIT
Set6 due
A6
Lab6A
Lab6B
Lab6C
zyBooks 6

FP due

SetXC due
AXC
LabXC
[Top]