Advanced C++

Mastering Data Structures

This course includes C++ fundamentals, basic data structures, file and error handling, STL containers, recursion, pointers, linked lists, and graphs. Each module has examples and assignments. A final project integrates multiple data structures to solve a real-world problem. The course prepares students for complex programming challenges in academic and professional settings.
6:30 – 7:30 on Wednesdays
Oct 3, 24 to Jun 4, 25
Algorithm Architects
Grades: 9th to 12th

Module 1: C++ Basics

  • Topics:
    • Basic C++ syntax and program structure
    • User input and output
    • Variables
    • Conditional statements
    • Loops
    • Functions
  • Example Assignments:
    • Create a Haiku: Learn basic output by writing a haiku.
    • Loose Change: Find the least number of coins needed to make a change.
    • Choose Your Own Adventure: Write a story with 8 possible endings based on user input.
    • Hacker Speak: Use a loop to turn a string into h4ck3r sp34k.
    • Caesar Cipher Encryption: Create a basic Caesar cipher encryption program.
  • Project: Code Verification: Compare an employee key generator to a company key generator and determine matches.

Module 2: Going Beyond the Basics

  • Topics:
    • Vectors
    • Function default values
    • Structs
    • File handling
    • Error handling
  • Example Assignments:
    • Final Grade Calculator: Calculate the average needed for the remainder of the year.
    • Appointment Follow Up: Select the follow-up day based on the appointment day and doctor type.
    • Movies Part 1: Create a searchable movie database by importing data from IMDB.
    • Sum From a File: Read values from a file and calculate the sum.
    • Next Birthday: Implement error processing to ensure quality input values.
  • Project: Karel Internship: Find a bug in a new program designed to teach dogs tricks.

Module 3: Libraries

  • Topics:
    • Header files and implementation files
    • Using libraries
  • Example Assignments:
    • Basic Math Library: Create a header and implementation file for basic math operations.
    • Patient Records: Use libraries to determine which patients are eligible to visit the mall.
  • Project: The Game of Pig: Recreate a game of chance involving dice rolls.

Module 4: 2D Vectors, Stacks, and Queues

  • Topics:
    • 2D vectors
    • Stacks
    • Queues
  • Example Assignments:
    • Magic Square Tester: Test a square of numbers to determine if it is a magic square.
    • Browser History: Create a backward and forward feature to view browser history using stacks.
    • Line Simulator: Explore the best way to handle a grocery store queue using queues.
  • Projects:
    • The Game of Life: Recreate John Conway's Game of Life.
    • RPN Calculator: Create a Reverse Polish Notation calculator.
    • Karaoke Night: Create an application for a DJ to manage karaoke night.

Module 5: Sets and Maps

  • Topics:
    • Sets
    • Maps
    • Iterating through data structures
  • Example Assignments:
    • Pairs and Iterators: Create and use pairs and iterators.
  • Projects:
    • Bingo: Create a multiplayer bingo game using sets.
    • FRC Scoring System: Create a scoring system for a First Robotics Competition.

Module 6: Recursion

  • Topics:
    • Functional recursion
    • Procedural recursion
    • Recursive backtracking
  • Example Assignments:
    • Basic Functional Recursive: Define base cases and recursive calls.
    • Procedural Recursion: Write procedural recursion to solve problems.
  • Projects:
    • Air Freight: Solve a knapsack problem variant using backtracking.
    • Sudoku Solver: Solve Sudoku puzzles with recursive backtracking.

Module 7: Pointers, Linked Lists, and Graphs (4-5 weeks)

  • Topics:
    • Pointer values
    • Singly linked lists
    • Doubly linked lists
    • Graphs
  • Example Assignments:
    • Pointer Values: Create and dereference pointers, pass pointers to functions.
  • Projects:
    • Team Roster: Use pointers to manage team information.
    • Mail Forwarding: Use linked lists to manage an email forwarding list for the graduating class.

Module 8: Final Project (1-2 weeks)

  • Objective: Apply multiple data structures to a real-world problem.
  • Project: Virtual Lines: Develop a complex application involving various data structures.