C++ Course Resources
This directory contains reference materials, books, cheat sheets, and external learning resources for the C++ course.
Contents
Books (books/)
A Complete Guide to Standard C++ Algorithms (v1.0.1)
File: a_complete_guide_to_standard_cpp_algorithms_v1_0_1.pdf
Description: Comprehensive guide to the C++ Standard Library algorithms, including:
- Iterator-based algorithms
- Range-based algorithms (C++20)
- Algorithm complexity analysis
- Practical examples and use cases
Best for: Intermediate to advanced C++ students working with STL
Cheat Sheets
C++ Cheat Sheet (Markdown)
File: cheatsheet.md
Description: Quick reference guide in markdown format covering:
- Basic syntax
- Data types and operators
- Control structures
- Functions and classes
- STL containers and algorithms
- Common patterns and idioms
Use: Keep open while coding for quick reference
C++ Cheat Sheet (PDF)
File: cheatsheet.pdf
Description: Printable PDF version of the C++ cheat sheet
Use: Print for offline reference or quick lookup during exams (if permitted)
Recommended Books
For Beginners
- “C++ Primer” by Stanley Lippman
- Comprehensive introduction to C++
- Good for learning fundamentals
- “Programming: Principles and Practice Using C++” by Bjarne Stroustrup
- Written by the creator of C++
- Focus on practical programming
For Intermediate
- “Effective C++” by Scott Meyers
- 55 specific ways to improve your programs
- Best practices and common pitfalls
- “More Effective C++” by Scott Meyers
- 35 additional ways to improve your designs
- Advanced techniques
For Advanced
- “Effective Modern C++” by Scott Meyers
- C++11 and C++14 features
- Modern C++ best practices
- “The C++ Programming Language” by Bjarne Stroustrup
- Comprehensive reference
- Written by C++’s creator
- “C++ Concurrency in Action” by Anthony Williams
- Multithreading and concurrent programming
- Advanced topics
Online Learning Resources
Video Courses
Official Course Playlists
- C++ Programming Playlist
- Course lecture recordings
- Follow along with class material
- Mike Shah’s C++ Course
- Comprehensive C++ tutorials
- Beginner to intermediate level
- Additional C++ Resources
- Supplementary video materials
- Various C++ topics
Documentation & References
- cppreference.com
- Complete C++ language reference
- STL documentation
- Code examples
- C++ Core Guidelines
- Modern C++ best practices
- Maintained by Bjarne Stroustrup and Herb Sutter
- Google C++ Style Guide
- Industry coding standards
- Professional C++ practices
Interactive Learning
- Python Tutor (C++ mode)
- Visualize code execution
- Step through programs line by line
- Compiler Explorer (Godbolt)
- See compiler output
- Compare different compilers
- C++ Insights
- See what the compiler does with your code
- Understand template instantiation and more
Practice Platforms
- LeetCode
- Coding interview problems
- Algorithm practice
- HackerRank C++
- C++-specific challenges
- Structured learning path
- Codeforces
- Competitive programming
- Regular contests
External Code Repositories
Course-Related Projects
- Sudoku Solver
- Example of backtracking algorithm
- Complete working project
- BMP Image Processing Quickstart
- Starter code for Assignment 2
- BMP file format handling
- SimdJson Quickstart
- JSON parsing in C++
- High-performance library example
- C++ Unit Testing
- Unit testing framework examples
- Test-driven development
- CPP-LRU
- LRU cache project and data-structure practice
- CPP-XML
- XML parsing and data representation practice
- CPP-S26-Vector
- Vector implementation and container internals
- CPP-S26-Pointers
- Pointer exercises and memory-model practice
- cpp-cheatsheet
- Quick syntax and STL reference companion
- CppProjectTemplate
- Starter template for C++ project structure
How to Use These Resources
For Daily Study
- Keep the cheat sheet handy while coding
- Reference cppreference.com for detailed documentation
- Watch video lectures for new topics
- Practice on LeetCode/HackerRank regularly
For Assignments
- Review relevant book sections
- Check code examples in course repositories
- Use Compiler Explorer to understand compiler behavior
- Refer to STL algorithms guide for efficient solutions
For Exam Preparation
- Review all cheat sheets
- Practice with LeetCode problems
- Re-watch key lecture videos
- Read through C++ Core Guidelines
Contributing
If you find helpful resources, share them with the class through:
- Course discussion forum
- Office hours
- Email to instructor
License & Usage
- Course materials: For educational use only
- External resources: Check individual licenses
- Books: Purchase required for full access
Need More Help?
- Office Hours: Check course schedule
- Discussion Forum: Ask questions and help classmates
- Email: Contact instructor for additional resources