diff --git a/README.md b/README.md index 1913985..f7182b9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# C++ Basic Programming – TA Team Initiative +# C++ Basic Programming Welcome to the **C++ Basic Programming Course Repository** — a comprehensive, community-driven learning resource. @@ -31,25 +31,22 @@ All sections are written in **Markdown**, making them easy to read, modify, and Our approach combines **theoretical coverage, active practice, and close mentorship**: -1. **Weekly Lectures** - - - Delivered by the professor. +1. **Weekly Lectures** + - Delivered by the professor. - Introduce core programming concepts in C++. -2. **Workshops** - - - Designed and run by TAs. - - Translate concepts into hands-on coding experiences. +2. **Workshops** + - Designed and run by TAs. + - Translate concepts into hands-on coding experiences. - Encourage collaboration and experimentation. -3. **Assignments** - - - Weekly exercises that challenge students to apply what they’ve learned. +3. **Assignments** + - Weekly exercises that challenge students to apply what they’ve learned. - Reviewed and discussed with mentors. -4. **Mentorship** - - Each TA mentors a small group of students. - - Provides personalized support, code reviews, and guidance. +4. **Mentorship** + - Each TA mentors a small group of students. + - Provides personalized support, code reviews, and guidance. - Builds a feedback loop between students, TAs, and the professor. --- @@ -70,67 +67,65 @@ We’re documenting everything we do for three major reasons: --- ## Course Topics Overview +| Week | Topic | Description | Overview | Workshop | Assignment | +| ---- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ---------------------------------------------------------------- | +| 1 | **Algorithmic Thinking & Problem-Solving** | Develop foundational skills in algorithm design: representing problems with flowcharts and pseudocode, and reasoning about step-by-step solutions. | [Overview](src/content/01-topics/01-problem-solving/0-Overview.md) | - | [Assignment](src/content01-topics/01-problem-solving/2-Assignment.md) | +| 2 | **Introduction to C++ & Basic Programming Constructs & Data Types** | Get started with C++: setting up the IDE, basic syntax, compiling and linking, and simple programs. Understand fundamental data types, expressions and operations | [Overview](src/content01-topics/02-basics-and-data-types/0-Overview.md) | [Workshop](src/content01-topics/02-basics-and-data-types/1-Workshop.md) | [Assignment](src/content01-topics/02-basics-and-data-types/2-Assignment.md) | +| 3 | **Control Structures** | Move into control flow with logical operators, `if/else`, `switch`, loops, iteration and avoiding infinite loops. | [Overview](src/content01-topics/03-conditions-loops/0-Overview.md) | [Workshop](src/content01-topics/03-conditions-loops/1-Workshop.md) | [Assignment](src/content01-topics/03-conditions-loops/2-Assignment.md) | +| 4 | **Functions & Modular Design** | Learn how to design and call functions in C++, including `void` vs return-type, parameter passing, overloading, and thinking in modular pieces. | [Overview](src/content01-topics/04-function-1/0-Overview.md) | [Workshop](src/content01-topics/04-function-1/1-Workshop.md) | [Assignment](src/content01-topics/04-function-1/2-Assignment.md) | +| 5 | **Arrays, Strings & Multidimensional Data** | Explore static arrays, C++ strings and multidimensional data structures. Incorporate memory-thinking in simple data manipulations. | [Overview](src/content01-topics/05-arrays/0-Overview.md) | [Workshop](src/content01-topics/05-arrays/1-Workshop.md) | [Assignment](src/content01-topics/05-arrays/2-Assignment.md) | +| 6 | **Advanced Functions & Recursion** | Deepen function usage with recursion, higher-level thinking about how functions call themselves, and problem-solving patterns that leverage recursion. | [Overview](src/content01-topics/06-functions-2/0-Overview.md) | [Workshop](src/content01-topics/06-functions-2/1-Workshop.md) | [Assignment](src/content01-topics/06-functions-2/2-Assignment.md) | +| 7 | **Pointers & Dynamic Memory** | Dive into pointers, dynamic memory allocation/deallocation (e.g., `new`, `delete`), pointer arithmetic, and how memory model impacts correct usage of arrays/strings. | [Overview](src/content01-topics/07-pointers/0-Overview.md) | - | [Assignment](src/content01-topics/07-pointers/2-Assignment.md) | +| 8 | **File I/O, Structs & A Very Brief Introduction to Object-Oriented Concepts** | Work with file input/output streams, define and use `struct`s, and get a first glance at OOP mindset | [Overview](src/content01-topics/08-file-struct/0-Overview.md) | [Workshop](src/content01-topics/08-file-struct/1-Workshop.md) | | +| 9 | **Mini Project** | Integrate the learned topics into a hands-on project: design, implement, test a moderately sized application showcasing applied algorithms, data structures and modular code. | [Overview](src/content01-topics/08-file-struct/0-Overview.md) | - | - | +| 10 | **Project 101** | An introduction to terminal games: designing game loops, FPS and how to implement it in code, header files and some tips on clean code | [Overview](src/content01-topics/10-project-overview/0-Overview.md) | - | | +| 11 | **Final Project & Wrap-up** | Launch the final project with full guidelines: design documentation, coding standards, testing, and presentation. Wrap up with reflections and next steps in C++ or software development. | [Overview](src/content01-topics/11-final-project/0-Overview.md) | - | - | -| Week | Topic | Description | Overview | Workshop | Assignment | -| ---- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ---------------------------------------------------------------------------- | -| 1 | **Algorithmic Thinking & Problem-Solving** | Develop foundational skills in algorithm design: representing problems with flowcharts and pseudocode, and reasoning about step-by-step solutions. | [Overview](src/content/01-topics/01-problem-solving/0-Overview.md) | - | [Assignment](src/content/01-topics/01-problem-solving/2-Assignment.md) | -| 2 | **Introduction to C++ & Basic Programming Constructs & Data Types** | Get started with C++: setting up the IDE, basic syntax, compiling and linking, and simple programs. Understand fundamental data types, expressions and operations | [Overview](src/content/01-topics/02-basics-and-data-types/0-Overview.md) | [Workshop](src/content/01-topics/02-basics-and-data-types/1-Workshop.md) | [Assignment](src/content/01-topics/02-basics-and-data-types/2-Assignment.md) | -| 3 | **Control Structures** | Move into control flow with logical operators, `if/else`, `switch`, loops, iteration and avoiding infinite loops. | [Overview](src/content/01-topics/03-conditions-loops/0-Overview.md) | [Workshop](src/content/01-topics/03-conditions-loops/1-Workshop.md) | [Assignment](src/content/01-topics/03-conditions-loops/2-Assignment.md) | -| 4 | **Functions & Modular Design** | Learn how to design and call functions in C++, including `void` vs return-type, parameter passing, overloading, and thinking in modular pieces. | [Overview](src/content/01-topics/04-function-1/0-Overview.md) | [Workshop](src/content/01-topics/04-function-1/1-Workshop.md) | [Assignment](src/content/01-topics/04-function-1/2-Assignment.md) | -| 5 | **Arrays, Strings & Multidimensional Data** | Explore static arrays, C++ strings and multidimensional data structures. Incorporate memory-thinking in simple data manipulations. | | | | -| 6 | **Advanced Functions & Recursion** | Deepen function usage with recursion, higher-level thinking about how functions call themselves, and problem-solving patterns that leverage recursion. | | | | -| 7 | **Pointers & Dynamic Memory** | Dive into pointers, dynamic memory allocation/deallocation (e.g., `new`, `delete`), pointer arithmetic, and how memory model impacts correct usage of arrays/strings. | | | | -| 8 | **File I/O, Structs & A Very Brief Introduction to Object-Oriented Concepts** | Work with file input/output streams, define and use `struct`s, and get a first glance at OOP mindset | | | | -| 9 | **Mini Project** | Integrate the learned topics into a hands-on project: design, implement, test a moderately sized application showcasing applied algorithms, data structures and modular code. | | | | -| 10 | **Final Project & Wrap-up** | Launch the final project with full guidelines: design documentation, coding standards, testing, and presentation. Wrap up with reflections and next steps in C++ or software development. | | | | --- ## Long-Term Goals -- Create a **sustainable, evolving educational model** that balances theory and practice. -- Encourage **open-source education** — anyone can learn from or contribute to our materials. +- Create a **sustainable, evolving educational model** that balances theory and practice. +- Encourage **open-source education** — anyone can learn from or contribute to our materials. - Serve as a **baseline for future educators** in teaching programming effectively. --- ## The Team - - **Professor**: [Dr. Saeed Reza Kheradpisheh](https://github.com/SRKH) - **Head Teaching Assistant:**[ Mehrdad Shirvani](https://github.com/MehrdadShirvani) - **Teaching Assistants (Alphabetical by Last Name):** - - [Aeen Bolandian](https://github.com/aeen-bolandian/) - - [Ali Ghaedrahmat](https://github.com/aliGhaedrahmat/) - - [Aryan Ghasemi](https://github.com/aryanGh-imp) - - [Mahdi Hoseinpoor](https://github.com/MahdiHoseinpoor) - - [Mohammad Hossein Jaafari](https://github.com/MMDHosain) - - [Raha Rokni](https://github.com/raharokni) - - [Partow Roshani](https://github.com/PartowRoshani) - - [Soroush Saberi](https://github.com/Soroushsbr) - - [MohammadFazel Sadeghizad](https://github.com/Sadeghizad) - - [Sadra Seyedtabaei](https://github.com/Sadra3st) + - [Aeen Bolandian](https://github.com/aeen-bolandian/) + - [Ali Ghaedrahmat](https://github.com/aliGhaedrahmat/) + - [Aryan Ghasemi](https://github.com/aryanGh-imp) + - [Mahdi Hoseinpoor](https://github.com/MahdiHoseinpoor) + - [Mohammad Hossein Jaafari](https://github.com/MMDHosain) + - [Raha Rokni](https://github.com/raharokni) + - [Partow Roshani](https://github.com/PartowRoshani) + - [Soroush Saberi](https://github.com/Soroushsbr) + - [MohammadFazel Sadeghizad](https://github.com/Sadeghizad) + - [Sadra Seyedtabaei](https://github.com/Sadra3st) ## Contributing We welcome contributions — whether you’re a TA, a student, or an educator from another institution. If you’d like to: - -- Improve explanations or examples -- Add new workshop exercises -- Suggest assignment ideas -- Translate materials +- Improve explanations or examples +- Add new workshop exercises +- Suggest assignment ideas +- Translate materials Please open a **pull request** or contact us. --- -## Tech Stack +## Tech Stack If this repository includes interactive code or materials, consider mentioning: - -- **Markdown** for documentation -- **C++** for code examples +- **Markdown** for documentation +- **C++** for code examples - **GitHub Pages / Quartz** for deploying the website - **VS Code** for coding environment @@ -143,4 +138,8 @@ You’re free to learn, adapt, and build upon our content — just credit the au --- -> — _C++ SBU CS TA Team, 2025_ +> — *C++ SBU CS BP TA Team, 2026* + + + + diff --git a/src/content/index.md b/src/content/index.md index 77d3748..f03a0b6 100644 --- a/src/content/index.md +++ b/src/content/index.md @@ -80,8 +80,9 @@ We’re documenting everything we do for three major reasons: | 6 | **Advanced Functions & Recursion** | Deepen function usage with recursion, higher-level thinking about how functions call themselves, and problem-solving patterns that leverage recursion. | [Overview](01-topics/06-functions-2/0-Overview.md) | [Workshop](01-topics/06-functions-2/1-Workshop.md) | [Assignment](01-topics/06-functions-2/2-Assignment.md) | | 7 | **Pointers & Dynamic Memory** | Dive into pointers, dynamic memory allocation/deallocation (e.g., `new`, `delete`), pointer arithmetic, and how memory model impacts correct usage of arrays/strings. | [Overview](01-topics/07-pointers/0-Overview.md) | - | [Assignment](01-topics/07-pointers/2-Assignment.md) | | 8 | **File I/O, Structs & A Very Brief Introduction to Object-Oriented Concepts** | Work with file input/output streams, define and use `struct`s, and get a first glance at OOP mindset | [Overview](01-topics/08-file-struct/0-Overview.md) | [Workshop](01-topics/08-file-struct/1-Workshop.md) | | -| 9 | **Mini Project** | Integrate the learned topics into a hands-on project: design, implement, test a moderately sized application showcasing applied algorithms, data structures and modular code. | | - | - | -| 10 | **Final Project & Wrap-up** | Launch the final project with full guidelines: design documentation, coding standards, testing, and presentation. Wrap up with reflections and next steps in C++ or software development. | | - | - | +| 9 | **Mini Project** | Integrate the learned topics into a hands-on project: design, implement, test a moderately sized application showcasing applied algorithms, data structures and modular code. | [Overview](01-topics/08-file-struct/0-Overview.md) | - | - | +| 10 | **Project 101** | An introduction to terminal games: designing game loops, FPS and how to implement it in code, header files and some tips on clean code | [Overview](01-topics/10-project-overview/0-Overview.md) | - | | +| 11 | **Final Project & Wrap-up** | Launch the final project with full guidelines: design documentation, coding standards, testing, and presentation. Wrap up with reflections and next steps in C++ or software development. | [Overview](01-topics/11-final-project/0-Overview.md) | - | - | --- @@ -140,7 +141,7 @@ You’re free to learn, adapt, and build upon our content — just credit the au --- -> — *C++ SBU CS TA Team, 2025* +> — *C++ SBU CS BP TA Team, 2026*