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.

Textbooks

📝 Rachel's Core Computer Science Notes (View / Download)

📝 Rachel's Data Structures Notes (View / Download)


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
  8. 2020-11-09, Week 12
    🎥 Recursion

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
    📋 Documentation 💾 Starter code
  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
  3. Project 3: Binary Search Tree
    📋 Documentation 💾 Starter code

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

Algorithm Efficiency and Big-O Notation

  1. Introduction to Algorithm Efficiency
    📝 Notes - Intro to Algorithm Efficiency

Data Structures

  1. Introduction to Data Structures
    📝 Notes - Intro to Data Structures
  2. Linked Structures and Linked Lists
    📝 Notes - Linked Lists
  3. Queues
    📝 Notes - Queues
  4. Stacks
    📝 Notes - Stacks
  5. Trees
    📝 Notes - Trees
  6. Binary Search Trees
    📝 Notes - Binary Search Trees (WIP)

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