CS 250: Basic Data Structures with C++

CS 250 Course Repository | Rachel's Computer Science Notes | JCCC Course Description - CS 250

Resources

Lecture videos and their slides, instructor's notes, and example coding.
Click on the button from the GitLab page to download the file.

In-class video archive

  1. 2020-08-24, Week 1
    ­čÄą Class lecture
  2. 2020-08-31, Week 2
    ­čÄą Lecture, Exception Handling
  3. 2020-09-14, Week 4
    ­čÄą Project 1
    ­čÄą STL Vector
    ­čÄą Vector lab walkthru
  4. 2020-09-14, Week 5
    ­čÄą General
    ­čÄą Intro to Linked Lists
    ­čÄą Algorithm Efficiency
    ­čÄą Project 2
    ­čÄą C++ Review: this keyword
  5. 2020-09-28, Week 6
    ­čÄą Linked Lists and Project 2
  6. 2020-10-05, Week 7
    ­čÄą Queues
  7. 2020-10-14, Week 8
    ­čÄą Stacks

Programming Labs

Smaller programming assignments to introduce you to the new topics.
Click on the button from the GitLab page to download the file.

  1. Tool setup Unit 1
    ­čôő┬áDocumentation
  2. Git and Source Control Unit 1
    ­čôő┬áDocumentation ­čô║┬áVideo guide (14:24)
  3. Debugging Unit 2
    ­čôő┬áDocumentation ­čĺż┬áStarter code
  4. Testing Unit 3
    ­čôő┬áDocumentation ­čĺż┬áStarter code
  5. Vectors - Wrapping an Array Unit 4
    ­čĺż┬áStarter code
  6. Algorithm Efficiency Unit 5
    ­čôő┬áDocumentation
  7. Queues Unit 7
    ­čôő┬áDocumentation ­čĺż┬áStarter code
  8. Stacks Unit 8
    ­čôő┬áDocumentation ­čĺż┬áStarter code
  9. Recursion Review Unit 10
  10. Binary Search Tree Unit 11
  11. Hash Tables Unit 12
  12. Heaps Unit 13
  13. Balanced Search Trees Unit 13
  14. Function Pointers Unit 14
  15. Iterators Unit 14

Programming Projects

Larger programming projects, combining multiple topics into one.

Fall 2020

  1. Project 1: Image Manipulation
    ­čôő┬áDocumentation ­čĺż┬áStarter code
  2. Project 2: Linked Lists
    ­čĺż┬áStarter code and ­čôő┬áDocumentation

Pre-recorded lectures and notes

Software Development

  1. Integrated Development Environments
    ­čô║┬áLecture (8:49) ­čôâ┬áSlides
    ­čô║┬áUsing Visual Studio (3:27)
    ­čô║┬áUsing Code::Blocks (3:49)
  2. Testing
    ­čôŁ┬áNotes - Testing
  3. Debugging Tools

Data Structures

  1. Introduction to Data Structures
    ­čôŁ┬áNotes - Intro to Data Structures

Algorithm Efficiency and Big-O Notation

  1. Introduction to Algorithm Efficiency
    ­čôŁ┬áNotes - Intro to Algorithm Efficiency

Data Structures

  1. Linked Structures and Linked Lists
    ­čôŁ┬áNotes - Linked Lists
  2. Queues
    ­čôŁ┬áNotes - Queues
  3. Stacks
    ­čôŁ┬áNotes - Stacks

C++ Review

C++ Basics

  1. Introduction
    ­čô║┬áLecture (9:47)
  2. Integrated Development Environments
    ­čô║┬áLecture (8:49) ­čôâ┬áSlides
    ­čô║┬áUsing Visual Studio (3:27)
    ­čô║┬áUsing Code::Blocks (3:49)
  3. C++ Basics
    ­čô║┬áLecture (11:24) ­čôâ┬áSlides ­čôŁ┬áNotes - C++ Basics
    ­čô║┬áCoding practice video (16:46) ├ş┬╝┬ő├ş┬╗┬áView code
  4. Propositional Logic
    ­čô║┬á Lecture (16:35) ­čôâ┬áSlides ­čôŁ┬áNotes - Control Flow
  5. Branching
    ­čô║┬áLecture (14:53) ­čôâ┬áSlides ­čôŁ┬áNotes - Control Flow
  6. Loops
    ­čô║┬áLecture (16:22) ­čôâ┬áSlides ­čôŁ┬áNotes - Control Flow

Functions

  1. Functions
    ­čô║┬áLecture (43:48) ­čôâ┬áSlides ­čôŁ┬áNotes - Control Flow
  2. Const
    ­čô║┬áLecture (11:23) ­čôâ┬áSlides ­čôŁ┬áNotes - Const
  3. Const, part 2
    ­čô║┬áLecture (2:25) ­čôâ┬áSlides ­čôŁ┬áNotes - Const

Object Oriented Programming

  1. Structs
    ­čô║┬áLecture (40:07) ­čôâ┬áSlides ­čôŁ┬áNotes - Classes
  2. Classes, part 1
    ­čô║┬áLecture (25:16) ­čôâ┬áSlides ­čôŁ┬áNotes - Classes
  3. Classes, part 2
    ­čô║┬áLecture (18:44) ­čôâ┬áSlides ­čôŁ┬áNotes - Classes
  4. Class design
    ­čô║┬áLecture (8:14) ­čôâ┬áSlides ­čôŁ┬áNotes - Classes
  5. Inheritance
    ­čô║┬áLecture (19:55) ­čôâ┬áSlides ­čôŁ┬áNotes - Inheritance
  6. Polymorphism
    ­čô║┬áLecture (19:30) ­čôâ┬áSlides ­čôŁ┬áNotes
  7. Friends
    ­čôŁ┬áNotes - Classes
  8. Copy Constructors
    ­čôŁ┬áNotes - Classes
    ­čô║┬áCoding practice video (5:45) ├ş┬╝┬ő├ş┬╗┬áView code
  9. Static Members
    ­čôŁ┬áNotes - Classes
    ­čô║┬áCoding practice video (27:25) ├ş┬╝┬ő├ş┬╗┬áView code

Arrays, Pointers, and Memory Management

  1. Arrays
    ­čô║┬áLecture (27:28) ­čôâ┬áSlides ­čôŁ┬áNotes - Arrays
  2. Pointers
    ­čô║┬áLecture (22:47) ­čôâ┬áSlides ­čôŁ┬áNotes - Pointers
  3. Memory Management
    ­čô║┬áLecture (4:10) ­čôâ┬áSlides ­čôŁ┬áNotes - Pointers
  4. Dynamic Arrays
    ­čô║┬áLecture (20:10) ­čôâ┬áSlides ­čôŁ┬áNotes - Pointers

Additional

  1. Exceptions
    ­čô║┬áLecture (11:54) ­čôâ┬áSlides ­čôŁ┬áNotes
  2. Strings
    ­čô║┬áLecture (3:46) ­čôâ┬áSlides
  3. File I/O
    ­čô║┬áLecture (3:48) ­čôâ┬áSlides ­čôŁ┬áNotes
  4. Operator Overloading
    ­čô║┬áLecture (28:14) ­čôâ┬áSlides ­čôŁ┬áNotes - Classes
  5. Searching and Sorting
    ­čôŁ┬áNotes
  6. The Standard Template Library
    ­čô║┬áLecture (7:14) ­čôâ┬áSlides

Reference


Tech Literacy

Non-programming topics related to software and tech.

  1. How the C++ compiler and linker works
  2. History of Free/Open Source Software