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

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

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

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. Pointer & Dynamic Array Review Unit 5
  8. Wrapping a Dynamic Array Unit 6
  9. Linked List Unit 7
  10. Stacks Unit 8
  11. Queues Unit 8
  12. Recursion Review Unit 10
  13. Binary Search Tree Unit 11
  14. Hash Tables Unit 12
  15. Heaps Unit 13
  16. Balanced Search Trees Unit 13
  17. Function Pointers Unit 14
  18. Iterators Unit 14

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

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