CS 235: Object-Oriented Programming with C++

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

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)


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
    📺 Debugging Tools (6:40)

Object-Oriented Programming

  1. Exceptions
    📺 Lecture (11:54) 📃 Slides 📝 Notes - Exception Handling
  2. Inheritance
    📺 Lecture (19:55) 📃 Slides 📝 Notes - Inheritance
  3. Polymorphism
    📺 Lecture (19:30) 📝 Notes - Polymorphism
  4. Templates
    📺 Lecture (5:42) 📃 Slides 📝 Notes - Templates
  5. Recursion
    📺 Video (2:59) 📝 Notes
  6. Operator Overloading
    📺 Lecture (28:14) 📃 Slides 📝 Notes - Classes
  7. Friends
    📝 Notes - Classes
  8. Static Members
    📝 Notes - Classes
    📺 Coding practice video (27:25) 💻 View code
  9. Copy Constructors
    📝 Notes - Classes
    📺 Coding practice video (5:45) 💻 View code

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) 📝 Notes - Polymorphism

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. Testing Unit 2
    📋 Documentation 💾 Starter code
  4. Debugging Unit 3
    📋 Documentation 💾 Starter code
  5. Static members Unit 4
    📋 Documentation 💾 Starter code
  6. Copy constructors Unit 4
    📋 Documentation 💾 Starter code
  7. Friends Unit 5
    📋 Documentation 💾 Starter code
  8. Overloaded Operators Unit 5
    📋 Documentation 💾 Starter code
  9. Recursion Unit 6
    📋 Documentation 💾 Starter code
  10. Pointer Review Unit 7
    📋 Documentation 💾 Starter code
  11. Exception Handling Unit 9
    📋 Documentation 💾 Starter code
  12. Virtual Functions & Polymorphism Unit 10
    📋 Documentation 💾 Starter code
  13. Dynamic Arrays Review Unit 11
  14. Templates Unit 12
  15. The Standard Template Library Unit 13
  16. Linked Structures Unit 14

Reference


Tech Literacy

Non-programming topics related to software and tech.

  1. Hardware and Software working together
  2. Types of software development

Programming Projects

Larger programming projects, combining multiple topics into one.

Fall 2020

  1. Project 1: Image Manipulation
    📋 Documentation 💾 Starter code
  2. Project 2: Quizzer
    📋 Documentation 💾 Starter code