diff --git a/README.md b/README.md index f1664f4..1913985 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ This project is more than a collection of materials โ€” itโ€™s a living document --- -## ๐ŸŽฏ Purpose and Vision +## 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.** @@ -15,7 +15,7 @@ To achieve that, we combine theory from lectures with practice, mentorship, and --- -## ๐Ÿงฉ What This Repository Contains +## What This Repository Contains | Section | Description | | ----------------- | ------------------------------------------------------------------------------------------- | @@ -27,7 +27,7 @@ All sections are written in **Markdown**, making them easy to read, modify, and --- -## ๐Ÿ‘ฉโ€๐Ÿซ Our Teaching Model +## Our Teaching Model Our approach combines **theoretical coverage, active practice, and close mentorship**: @@ -54,7 +54,7 @@ Our approach combines **theoretical coverage, active practice, and close mentors --- -## ๐Ÿงญ Why We Document This +## Why We Document This Weโ€™re documenting everything we do for three major reasons: @@ -69,24 +69,24 @@ Weโ€™re documenting everything we do for three major reasons: --- -## ๐Ÿง  Course Topics Overview +## 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) | - | [Assignment](01-topics/01-problem-solving/2-Assignment) | -| 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) | [Workshop](01-topics/02-basics-and-data-types/1-Workshop) | [Assignment](01-topics/02-basics-and-data-types/2-Assignment) | -| 3 | **Control Structures** | Move into control flow with logical operators, `if/else`, `switch`, loops, iteration and avoiding infinite loops. | | | | -| 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. | | | | -| 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. | | | | +| 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 +## 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. @@ -94,7 +94,7 @@ Weโ€™re documenting everything we do for three major reasons: --- -## ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ The Team +## The Team - **Professor**: [Dr. Saeed Reza Kheradpisheh](https://github.com/SRKH) - **Head Teaching Assistant:**[ Mehrdad Shirvani](https://github.com/MehrdadShirvani) @@ -110,7 +110,7 @@ Weโ€™re documenting everything we do for three major reasons: - [MohammadFazel Sadeghizad](https://github.com/Sadeghizad) - [Sadra Seyedtabaei](https://github.com/Sadra3st) -## ๐Ÿค Contributing +## Contributing We welcome contributions โ€” whether youโ€™re a TA, a student, or an educator from another institution. @@ -125,7 +125,7 @@ Please open a **pull request** or contact us. --- -## ๐Ÿ—๏ธ Tech Stack +## Tech Stack If this repository includes interactive code or materials, consider mentioning: @@ -136,7 +136,7 @@ If this repository includes interactive code or materials, consider mentioning: --- -## ๐Ÿ“œ License +## 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. diff --git a/src/content/00-course-info/syllabus.md b/src/content/00-course-info/syllabus.md index a54bea5..5e76a83 100644 --- a/src/content/00-course-info/syllabus.md +++ b/src/content/00-course-info/syllabus.md @@ -1,4 +1,3 @@ - # **Course Objectives** The C++ Basic Programming Course introduces students to the foundations of programming through a practical and example-driven approach. With an emphasis on hands-on learning, this course helps students develop algorithmic thinking, write clean and correct C++ programs, and build confidence through structured practice. diff --git a/src/content/01-topics/03-conditions-loops/5-TASlides.md b/src/content/01-topics/03-conditions-loops/5-TASlides.md index 0973fd7..8f556c3 100644 --- a/src/content/01-topics/03-conditions-loops/5-TASlides.md +++ b/src/content/01-topics/03-conditions-loops/5-TASlides.md @@ -1,6 +1,12 @@ + ## ๐Ÿ”— Download -- [Download PDF](https://drive.google.com/file/d/1_e2c5by8f2r-sWSpjnioXWm16mUZFTtp/view?usp=sharing) +- [Download PDF Part 1: Conditions](https://drive.usercontent.google.com/u/0/uc?id=1vfnQ_laMKsEC_zmaivymk1TVNjUbFUcF&export=download) +- [Download PDF Part 2: Loops](https://drive.usercontent.google.com/u/0/uc?id=1Je2HwQPD0UoEc9Z7vMaTNuz1vqpsBhw3&export=download) + ## View PDF Online - +### Conditions + +### Loops + diff --git a/src/content/01-topics/04-function-1/5-TASlides.md b/src/content/01-topics/04-function-1/5-TASlides.md new file mode 100644 index 0000000..777e11c --- /dev/null +++ b/src/content/01-topics/04-function-1/5-TASlides.md @@ -0,0 +1,7 @@ + +## ๐Ÿ”— Download +- [Download PDF - Functions Part 1](https://drive.usercontent.google.com/u/0/uc?id=13seRj2kiH-IvU8PcU-18t9O4nDKsNpW5&export=download) +## View PDF Online +### Functions Part 1 + + \ No newline at end of file diff --git a/src/content/index.md b/src/content/index.md index d6207f3..6624daf 100644 --- a/src/content/index.md +++ b/src/content/index.md @@ -9,7 +9,7 @@ This project is more than a collection of materials โ€” itโ€™s a living document --- -## ๐ŸŽฏ Purpose and Vision +## 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.** @@ -18,7 +18,7 @@ To achieve that, we combine theory from lectures with practice, mentorship, and --- -## ๐Ÿงฉ What This Repository Contains +## What This Repository Contains | Section | Description | | ----------------- | ------------------------------------------------------------------------------------------- | @@ -30,7 +30,7 @@ All sections are written in **Markdown**, making them easy to read, modify, and --- -## ๐Ÿ‘ฉโ€๐Ÿซ Our Teaching Model +## Our Teaching Model Our approach combines **theoretical coverage, active practice, and close mentorship**: @@ -54,7 +54,7 @@ Our approach combines **theoretical coverage, active practice, and close mentors --- -## ๐Ÿงญ Why We Document This +## Why We Document This Weโ€™re documenting everything we do for three major reasons: @@ -69,23 +69,23 @@ 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](01-topics/01-problem-solving/0-Overview) | - | [Assignment](01-topics/01-problem-solving/2-Assignment) | -| 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) | [Workshop](01-topics/02-basics-and-data-types/1-Workshop) | [Assignment](01-topics/02-basics-and-data-types/2-Assignment) | -| 3 | **Control Structures** | Move into control flow with logical operators, `if/else`, `switch`, loops, iteration and avoiding infinite loops. | | | | -| 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. | | | | -| 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. | | | | +## 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 +## 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. @@ -93,7 +93,7 @@ Weโ€™re documenting everything we do for three major reasons: --- -## ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ The Team +## 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):** @@ -108,7 +108,7 @@ Weโ€™re documenting everything we do for three major reasons: - [MohammadFazel Sadeghizad](https://github.com/Sadeghizad) - [Sadra Seyedtabaei](https://github.com/Sadra3st) -## ๐Ÿค Contributing +## Contributing We welcome contributions โ€” whether youโ€™re a TA, a student, or an educator from another institution. @@ -122,7 +122,7 @@ 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 @@ -132,7 +132,7 @@ If this repository includes interactive code or materials, consider mentioning: --- -## ๐Ÿ“œ License +## 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.