๐ต๐ฑ Polski | ๐ฌ๐ง English
Project description in English goes here.
The project should align with the course scope. Example categories include:
- ๐ฎ games (e.g., Snake, 2048, Connect Four)
- ๐ system applications (file manager, resource monitor)
- ๐ data processing applications
- โ๏ธ embedded / sensor-based systems
๐ The final topic must be approved by the instructor.
- Course: Low-Level Programming in C
- Instructor: Dr. Eng. Serhii Baraban
- Academic Year: 2025/2026
- Format: Individual or pair project
An interactive, low-level programming project implemented entirely in C, featuring modular architecture, dynamic memory management, robust error handling, and a graphical user interface (GUI). This project complies with the specific academic requirements for a grade of 5.0, including structured and clear coding practices, effective use of pointers, structures, dynamic data structures, and file-based operations.
- Start Date: March 17, 2026
- End Date: June 15, 2026
The project should:
- provide user interaction (keyboard or GUI)
- validate input data
- handle errors robustly
- support saving and loading data from files
The program must implement:
- saving application/game state
- logging or configuration files
- reading data from files
The code should be modular and organized into components:
main.cโ entry pointlogic.cโ core logicio.cโ file operationsui.cโ user interface
Required elements:
- structures (
struct) - pointers
- dynamic memory allocation
- well-structured, readable functions
Due Date: April 07, 2026
- Define detailed project specification and functional requirements (#Issue 1)
- Set up repository structure and initial modular framework in C (#Issue 2)
- Configure Makefile and compilation settings (#Issue 3)
- Design and implement initial data structures (structs, pointers) (#Issue 4)
Due Date: May 05, 2026
- Implement the main game logic (move validation, game rules enforcement) (#Issue 5)
- Integrate dynamic memory management (linked lists, dynamic arrays, trees) for game state handling (#Issue 6)
- Develop file operations for game states, logs, and player statistics (saving/loading mechanisms) (#Issue 7)
- Perform rigorous debugging, memory-leak checking (valgrind), and preliminary testing (#Issue 8)
Due Date: June 11, 2026
- Implement graphical user interface using libraries like Allegro, SFML, or SDL (#Issue 9)
- Introduce cursor-based interaction and graphical constraints on valid moves (#Issue 10)
- Comprehensive error handling (input validation, memory safety, exception handling) (#Issue 11)
- Integration, functional, and usability testing of GUI and core gameplay mechanics (#Issue 12)
Due Date: June 15, 2026
- Refactor, finalize codebase for readability, maintainability, and efficiency (#Issue 13)
- Finalize documentation, commenting, and README updates (#Issue 14)
- Project submission via ekursy platform (#Issue 15)
your_project/
โโโ assets/
โ โโโ images/
โโโ docs/
โ โโโ project_specification.md
โ โโโ user_manual.md
โโโ include/
โ โโโ game_logic.h
โ โโโ gui.h
โ โโโ file_operations.h
โโโ src/
โ โโโ game_logic.c
โ โโโ gui.c
โ โโโ file_operations.c
โ โโโ main.c
โโโ logs/
โโโ saves/
โโโ tests/
โ โโโ test_logic.c
โ โโโ test_gui.c
โโโ Makefile
โโโ .gitignore
โโโ README.md
Clearly defined issues for efficient project tracking:
- Specification and Requirements Documentation
- Repository and Modular Architecture Setup
- Makefile and Compilation Configuration
- Initial Dynamic Structures (e.g., structs, pointers)
- Implementation of Game Logic and Rule Enforcement
- Dynamic Data Structures for Game State Management
- File Operations (Saving/Loading, Logging)
- Debugging and Memory Management Validation (valgrind)
- GUI Implementation using Allegro/SFML/SDL
- Cursor and Gameplay Interaction Improvements
- Robust Error Handling and Input Validation
- GUI and Core Integration Tests
- Final Code Refactoring and Optimization
- Final Documentation and README Preparation
- Submission
This project explicitly aligns with requirements for obtaining a 5.0 grade:
- Logical modularity for ease of maintenance and scalability.
- Advanced use of pointers and dynamic structures to manage memory explicitly and efficiently.
- Robust file-based functionality to store game state and logs.
- Comprehensive GUI ensuring intuitive, interactive gameplay.
- Detailed error handling to produce resilient, secure software.
- Clear and descriptive variable/function naming for readability.
- Modular implementation: each C file represents a specific module.
- Regular commits and pull requests, referencing specific issues (e.g.,
#3 Modular architecture implemented). - Thorough documentation and inline comments.
The project should include:
- test scenarios
- manual testing
- handling of edge/error cases
Located in the docs/ directory:
project_description.mdarchitecture.mduser_manual.md
Required:
- use of GitHub Issues
- task decomposition
- meaningful commit messages