---
title: Home
---
# C++ Basic Programming – TA Team Initiative

Welcome to the **C++ Basic Programming Course Repository** — a comprehensive, community-driven learning resource.

This project is more than a collection of materials — it’s a living documentation of how our teaching team collaborates, mentors, and builds a hands-on learning experience for students.

---

## Purpose and Vision

Our mission is to ensure that every student not only understands C++ concepts but can also **apply them confidently through coding, problem-solving, and projects.**

We believe that **learning to code** should be an active, guided process — not a passive one.  
To achieve that, we combine theory from lectures with practice, mentorship, and structured documentation.

---

## What This Repository Contains

| Section           | Description                                                                                 |
| ----------------- | ------------------------------------------------------------------------------------------- |
| **/overview/**    | Conceptual overviews for each lecture week — theory summaries, examples, and key takeaways. |
| **/workshops/**   | Hands-on guided activities for each topic, designed to help students learn by doing.        |
| **/assignments/** | Weekly assignments that reinforce lecture material and build problem-solving skills.        |

All sections are written in **Markdown**, making them easy to read, modify, and publish (e.g., on GitHub Pages or Quartz).

---

## Our Teaching Model

Our approach combines **theoretical coverage, active practice, and close mentorship**:

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.  
   - Encourage collaboration and experimentation.

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.  
   - Builds a feedback loop between students, TAs, and the professor.

---

## Why We Document This

We’re documenting everything we do for three major reasons:

1. **Comprehensiveness for Learners**  
   Provide a high-quality, public resource for current students and self-learners outside the university.

2. **Pedagogical Transparency**  
   Allow educators and future TA teams to see and improve upon our structure, methods, and materials.

3. **Continuity and Growth**  
   Leave behind a foundation that future teaching teams or other institutions can build upon, adapt, and evolve.

---

## 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](01-topics/01-problem-solving/0-Overview.md)       | -                                                            | [Assignment](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](01-topics/02-basics-and-data-types/0-Overview.md) | [Workshop](01-topics/02-basics-and-data-types/1-Workshop.md) | [Assignment](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](01-topics/03-conditions-loops/0-Overview.md)      | [Workshop](01-topics/03-conditions-loops/1-Workshop.md)      | [Assignment](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](01-topics/04-function-1/0-Overview.md)            | [Workshop](01-topics/04-function-1/1-Workshop.md)            | [Assignment](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.  
- 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)

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

Please open a **pull request** or contact us.

---

## Tech Stack 

If this repository includes interactive code or materials, consider mentioning:
- **Markdown** for documentation  
- **C++** for code examples  
- **GitHub Pages / Quartz** for deploying the website
- **VS Code** for coding environment

---

## License

All materials are shared under the **Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)** license.  
You’re free to learn, adapt, and build upon our content — just credit the authors and share alike.

---

> — *C++ SBU CS TA Team, 2025*




