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.
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.