refactor: clean up and update course info
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
# **References & Inspirations**
|
||||
|
||||
This site’s structure, teaching approach, and visual design are informed by several high-quality textbooks, programming resources, and open-source Quartz-based projects. These references guided both the educational philosophy of the course and the layout of this website.
|
||||
|
||||
---
|
||||
## **C++ Programming References**
|
||||
- **Big C++** by _Cay Horstmann_
|
||||
A clear and beginner-friendly textbook that emphasizes practical examples and step-by-step explanations. Several parts of the course’s teaching flow and examples are inspired by this book.
|
||||
- **C++ How to Program** by _Deitel & Deitel_
|
||||
A widely used introductory textbook known for its detailed explanations, example-driven learning, and large collection of practice problems. Its structured progression influenced how topics are introduced throughout this course.
|
||||
- **C++ Documentation & Online Tutorials**
|
||||
Supplemental references for syntax details, library functions, and language fundamentals.
|
||||
|
||||
---
|
||||
## **Website & Style Inspirations**
|
||||
|
||||
The styling of this site are inspired by Quartz and several publicly available Quartz-based notes.
|
||||
- **Quartz Test Site by _fanteastick_**
|
||||
[https://github.com/fanteastick/quartz-test](https://github.com/fanteastick/quartz-test)
|
||||
- **Quartz Setup by _bfahrenfort_**
|
||||
[https://github.com/bfahrenfort/quartz](https://github.com/bfahrenfort/quartz)
|
||||
- **Quartz Documentation**
|
||||
Used extensively for structure, navigation, and customization of the site.
|
||||
|
||||
These projects helped shape the clean, minimal, and highly navigable design used here.
|
||||
@@ -1,54 +0,0 @@
|
||||
# Syllabus
|
||||
|
||||
# **Course Objectives**
|
||||
|
||||
## Short Description
|
||||
|
||||
## Key Elements
|
||||
|
||||
## Upon successful completion of this course, the student will be able to:
|
||||
## Final Project
|
||||
|
||||
|
||||
## **Assignments**
|
||||
|
||||
|
||||
|
||||
## **Final Exam**
|
||||
|
||||
|
||||
## **Attendance and Participation**
|
||||
|
||||
|
||||
**Attendance is required**, and exceeding four absences may result in a penalty of up to 2 points off your total grade. Active participation in both in-class activities and the online message board is highly encouraged.
|
||||
|
||||
# **Grading**
|
||||
|
||||
-
|
||||
|
||||
## **Seeking Assistance**
|
||||
|
||||
Here are the available help resources, organized by the urgency of your issue:
|
||||
|
||||
### **Messaging**
|
||||
|
||||
Our course will utilize a Telegram group (link to be provided in class) as the primary communication platform for announcements and discussions. This is an ideal space for asking questions that can be answered by anyone. It’s best to use this resource for non-urgent inquiries.
|
||||
|
||||
### **Talk with the Instructor**
|
||||
|
||||
For any issues at all, please reach out to the instructor:
|
||||
|
||||
- Speak with me before class
|
||||
- Raise your hand or speak up during class
|
||||
|
||||
## **Required Tools and Accounts**
|
||||
|
||||
## **Collaboration Policy**
|
||||
|
||||
### **📜 [View Generative AI Usage Guidelines](https://dbcs.ir/AI_Guidelines/)↵**
|
||||
|
||||
## **Related Courses**
|
||||
|
||||
### Other courses
|
||||
|
||||
## **A note on self care.**
|
||||
@@ -1,4 +0,0 @@
|
||||
|
||||
|
||||
https://github.com/fanteastick/quartz-test
|
||||
https://github.com/bfahrenfort/quartz
|
||||
@@ -0,0 +1,113 @@
|
||||
|
||||
# **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.
|
||||
|
||||
---
|
||||
## **Key Elements**
|
||||
|
||||
- **Ten Core Sessions:** Each session (approx. 3 hours) builds on the previous one, covering essential C++ programming topics in a structured, accessible way.
|
||||
- **Optional Enrichment Sessions:** Extra workshops on topics such as AI literacy for programmers, debugging techniques, tools, and practical tips for becoming a better developer.
|
||||
- **Hands-on Learning:** Students write and run code throughout every session, supported by live examples, mini-challenges, and TA feedback.
|
||||
- **Fundamental Concepts:** Variables, data types, conditionals, loops, functions, arrays, pointers, and an introduction to basic object-oriented thinking.
|
||||
- **Algorithmic Thinking:** Problem decomposition, tracing, and designing solutions step by step.
|
||||
- **Debugging Skills:** Understanding compiler errors, runtime issues, and basic debugging tools and strategies.
|
||||
- **Clean Coding Practices:** Naming, structure, modularity, and writing readable code.
|
||||
- **Student-Centered Instruction:** Clear explanations, practical exercises, and real-time assistance to address common misunderstandings.
|
||||
|
||||
---
|
||||
## **Upon successful completion of this course, the student will be able to:**
|
||||
|
||||
- Write simple and correct C++ programs using fundamental constructs.
|
||||
- Use loops, conditionals, and functions to solve computational problems.
|
||||
- Work with arrays and pointer basics to store and manipulate data.
|
||||
- Trace and debug code effectively.
|
||||
- Apply algorithmic reasoning to break down and implement solutions.
|
||||
- Structure programs cleanly and write readable, maintainable C++ code.
|
||||
- Use the C++ standard library for basic input/output and utility operations.
|
||||
- Build a small terminal-based application that integrates multiple concepts.
|
||||
|
||||
---
|
||||
## **Assignments & Workshops**
|
||||
Each week, students will complete **hands-on programming assignments** based on the topics covered in that week’s workshop(s). These topics include problem solving, data types, control structures, functions, and other fundamental programming concepts.
|
||||
|
||||
All assignments will be uploaded to **Quera.org**, and every student must have an active account.
|
||||
The assessment process includes:
|
||||
|
||||
- **Automatic evaluation** by Quera’s online judge
|
||||
- **Manual review** by the student’s mentor to ensure
|
||||
- Clean and readable code
|
||||
- Absence of AI-generated or AI-misused content
|
||||
- Proper problem-solving approach
|
||||
- Adherence to course standards
|
||||
|
||||
Students will be informed of their scores after review.
|
||||
Some assignments may include **optional bonus problems**, which are more challenging and provide extra credit but are not required.
|
||||
|
||||
### **In-Workshop Problems**
|
||||
|
||||
During each workshop, students will be given approximately **three hands-on coding questions**.
|
||||
These will be:
|
||||
1. Uploaded to Quera during the workshop
|
||||
2. Attempted in class while TAs are available for help
|
||||
3. Submitted by the end of the day if not finished during class
|
||||
|
||||
These in-workshop tasks help students reinforce the material immediately and get real-time feedback from TAs.
|
||||
|
||||
---
|
||||
|
||||
## **Final Exam**
|
||||
|
||||
The final exam evaluates the student’s understanding of the fundamental concepts taught throughout the semester.
|
||||
It will include questions on:
|
||||
- Algorithms
|
||||
- Data types
|
||||
- Control structures
|
||||
- Functions
|
||||
- Arrays
|
||||
- Pointers
|
||||
- Files
|
||||
- Structs
|
||||
- Material covered in the professor’s lectures and slides
|
||||
|
||||
Students are expected to demonstrate a clear understanding of how these concepts work and provide correct, well-reasoned solutions to the exam questions.
|
||||
|
||||
---
|
||||
|
||||
## **Final Project**
|
||||
|
||||
The course culminates in the creation of a **terminal-based game**, optionally using **Unicode characters** to enhance the visual experience. Students work **in groups of two**, applying the full range of skills they’ve learned to design and implement a playable, interactive project.
|
||||
|
||||
Previous final projects have included:
|
||||
- **Pacman**
|
||||
- **Tetris**
|
||||
- **Space Invaders**
|
||||
|
||||
**Requirements typically include:**
|
||||
|
||||
- Clear input/output and user interaction
|
||||
- Use of loops, conditionals, and functions
|
||||
- Arrays and/or pointers for game state management
|
||||
- Modular and well-structured code
|
||||
- Consistent gameplay logic and proper handling of game rules
|
||||
|
||||
**Students submit:**
|
||||
- The complete source code
|
||||
- A short project description
|
||||
- Sample runs or screenshots
|
||||
## **Grading**
|
||||
The course grade will be based on three components:
|
||||
- **10 points** — Assignments & Workshops (combined)
|
||||
- **5 points** — Final Project
|
||||
- **5 points** — Final Exam
|
||||
|
||||
---
|
||||
|
||||
## **Required Tools and Accounts**
|
||||
|
||||
To fully participate in the course, students must have access to the following:
|
||||
- **A C++ compiler** — preferably **g++** from the GNU Compiler Collection
|
||||
- **A code editor or IDE** — VS Code with the official _C/C++_ extension is recommended
|
||||
- **A Quera.org account** — required for submitting and completing programming assignments and workshop problems
|
||||
- **A Telegram account** — students must join the course’s official Telegram group for announcements, coordination, and Q&A
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -34,37 +34,3 @@
|
||||
├─ assets/
|
||||
│
|
||||
└─ README.md
|
||||
|
||||
|
||||
|
||||
- general
|
||||
- course-info
|
||||
- syllabus.md
|
||||
- references.md
|
||||
- generative-ai-usage-guidelines.md
|
||||
- templates
|
||||
- topic-overview-template.md
|
||||
- workshop-template.md
|
||||
- topics
|
||||
- problem-solving
|
||||
- overview
|
||||
- workshop
|
||||
- assignment
|
||||
- Q & A
|
||||
- basics and data types
|
||||
- overview
|
||||
- workshop
|
||||
- assignment
|
||||
- Q & A
|
||||
- conditions and loops
|
||||
- function-basics
|
||||
- arrays
|
||||
- advanced-functions
|
||||
- pointers
|
||||
- file-struct
|
||||
- mini-project
|
||||
- final-project
|
||||
- extras
|
||||
- debugging
|
||||
- git
|
||||
- assets
|
||||
Reference in New Issue
Block a user