{"id":51369816,"url":"https://github.com/knapeczadam/dae-programming-4","last_synced_at":"2026-07-03T05:07:26.653Z","repository":{"id":344441004,"uuid":"1076522967","full_name":"knapeczadam/dae-programming-4","owner":"knapeczadam","description":"🦖 A collection of Programming 4 lab projects from the fourth semester at Howest DAE (2024). Focused on software and game programming patterns, modular code architecture, and advanced C++ memory and design practices — bridging the gap between academic projects and professional game development.","archived":false,"fork":false,"pushed_at":"2026-03-14T17:32:21.000Z","size":12733,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-15T03:53:47.787Z","etag":null,"topics":["2024","belgium","c-plus-plus","coding-practice","cpp","dae","digital-arts-and-entertainment","game-dev","game-development","game-programming","howest","howest-dae","kortrijk","lab-exercises","laboratory-exercises","prog4","programming","programming-4","programming-labs","university"],"latest_commit_sha":null,"homepage":"https://www.digitalartsandentertainment.be/page/51/Programming+4","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/knapeczadam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-15T01:36:53.000Z","updated_at":"2026-03-14T17:32:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/knapeczadam/dae-programming-4","commit_stats":null,"previous_names":["knapeczadam/dae-programming-4"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/knapeczadam/dae-programming-4","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knapeczadam%2Fdae-programming-4","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knapeczadam%2Fdae-programming-4/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knapeczadam%2Fdae-programming-4/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knapeczadam%2Fdae-programming-4/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/knapeczadam","download_url":"https://codeload.github.com/knapeczadam/dae-programming-4/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knapeczadam%2Fdae-programming-4/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35072872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-03T02:00:05.635Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2024","belgium","c-plus-plus","coding-practice","cpp","dae","digital-arts-and-entertainment","game-dev","game-development","game-programming","howest","howest-dae","kortrijk","lab-exercises","laboratory-exercises","prog4","programming","programming-4","programming-labs","university"],"created_at":"2026-07-03T05:07:26.010Z","updated_at":"2026-07-03T05:07:26.645Z","avatar_url":"https://github.com/knapeczadam.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🦖 Programming 4  \r\n\r\nHey there, fellow DAE developer, future engine programmer, or just a curious explorer 👋  \r\nWelcome to my **Programming 4** repository — the final chapter in the DAE programming series.  \r\nThis semester focused on **software architecture**, **design patterns**, and **efficient C++ engineering**, setting the stage for larger-scale game projects and engine development.\r\n\r\n---\r\n\r\n## 🗄️ About this repository\r\n\r\nThis repo contains all **lab exercises** and **weekly projects** from the **Programming 4** course at **DAE**.  \r\nLike earlier semesters, each week’s work is preserved for **archival and learning purposes** — showing progression in problem-solving, software design, and engine-level thinking.\r\n\r\n\u003e ⚠️ These projects were made in an academic setting.  \r\n\u003e Expect incomplete features, testing code, and exploratory experiments.  \r\n\u003e It’s not a finished framework — it’s a **development journey snapshot**.\r\n\r\n---\r\n\r\n## 🔎 Course Information\r\n\r\n**📚 Course:** Programming 4  \r\n**🏫 University:** Howest University of Applied Sciences - Digital Arts and Entertainment  \r\n**📍 Location:** Kortrijk, Belgium  \r\n**🗓️ Acamedic year:** 2023–24 | Fourth semester  \r\n**🎓 Study load:** 6 credits  \r\n**⏱️ Total study time:** 180 hours  \r\n\r\n---\r\n\r\n## 👨‍🏫 Teaching Staff\r\n\r\n- **Co-ordinator:** Alex Vanden Abeele\r\n- **Other teaching staff:** Tom Tesch\r\n\r\n---\r\n\r\n## 🎯 Learning Goals\r\n\r\n- Manage stress and workload under tight deadlines  \r\n- Organize and maintain a clean game project file structure  \r\n- Monitor project progress and request feedback when needed  \r\n- Research and apply relevant technical and theoretical sources  \r\n- Select and use appropriate software patterns for project structure  \r\n- Justify design and implementation choices using established principles  \r\n- Review and evaluate own and peers’ work critically  \r\n- Identify and fix errors within the game project  \r\n- Plan and assess the technical feasibility of concepts  \r\n- Develop and integrate graphical content considering technical limits  \r\n- Work independently and efficiently on real-time applications  \r\n- Write optimized, structured, and maintainable code  \r\n- Solve problems using proper programming languages and techniques  \r\n- Utilize game engines, frameworks, and tools effectively  \r\n\r\n---\r\n\r\n## 🧩 Course Content\r\n\r\n- Software Design Patterns  \r\n- Game Programming Patterns  \r\n- Error Handling  \r\n- Namespaces \u0026 Modules  \r\n- **PIMPL (Pointer to Implementation) Principle**  \r\n- **CRTP (Curiously Recurring Template Pattern)**  \r\n- Advanced Memory Management  \r\n\r\n---\r\n\r\n## 📂 Repository Structure\r\n\r\n- Each **week** has its own **branch**, e.g.  \r\n  - `03` → Week 3  \r\n  - `10` → Week 10  \r\n- Each branch focuses on a specific programming or design pattern topic.  \r\n\r\n---\r\n\r\n## 🚀 Releases\r\n\r\nWeekly compiled builds are archived in the [📦 Releases](../../releases) section.  \r\nExample:\r\n\r\n`programming_4-10-1.0.0-windows-x64.zip`\r\n\r\nEach release represents a stable snapshot of the week’s lab assignment or pattern implementation.\r\n\r\n---\r\n\r\n## 🧠 Final Thoughts\r\n\r\n**Programming 4** was all about thinking **beyond syntax** — understanding how to build maintainable systems, structure reusable components, and manage complexity at scale.  \r\nIt marks the transition from “writing code” to **designing software**, bridging the academic foundation with the mindset required for professional game and engine development.\r\n\r\nIf you’re currently at this point in DAE: learn the patterns, experiment with architecture, and remember — **elegant design always outlasts clever hacks** 🧠💡\r\n\r\n---\r\n\r\n### ⚖️ License\r\nThis repository is licensed under the **MIT License** — explore, adapt, and learn freely.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknapeczadam%2Fdae-programming-4","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fknapeczadam%2Fdae-programming-4","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknapeczadam%2Fdae-programming-4/lists"}