diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ffa871c46fb581092f0d0347ff8c2c36a4305003 --- /dev/null +++ b/README.md @@ -0,0 +1,110 @@ + +# GitLab Repository for Worksheet Implementations + +## Overview +This repository contains solutions to the tasks provided in Worksheet 1 and Worksheet 2 of the advanced software development module. +The tasks explore advanced C++ concepts, such as memory management, template adaptation, and unit testing. + +--- + +## Repository Structure +``` +/ +├── worksheet_one/ +│ ├── task 1/ # Implements [description of Task 1] +│ ├── task 2/ # Implements [description of Task 2] +│ ├── task 3/ # Implements [description of Task 3] +│ ├── task 4/ # Implements [description of Task 4] +│ ├── tasks 2 + 3/ # Combines tasks 2 and 3 using templates +│ └── .vscode/ # IDE configuration files +│ +├── worksheet_two/ +│ ├── task 1 (bump allocator)/ # Implements a custom memory allocator +│ ├── task 2 (unit tests)/ # Unit tests for validation +│ ├── task 3/ # Extends features from prior tasks +│ ├── simpletest/ # Testing framework for Worksheet Two +│ └── .vscode/ # IDE configuration files +│ +├── worksheet 1.pdf # Specifications for Worksheet 1 +├── worksheet 2.pdf # Specifications for Worksheet 2 +└── worksheet_zero/ # Ignored in the assessment +``` + +--- + +## Getting Started +### Prerequisites +- **C++ Compiler**: Ensure you have a C++17 compatible compiler (e.g., GCC or Clang). +- **CMake**: To build and run the project. +- **Testing Framework**: SimpleTest (provided in Worksheet Two). + +### Clone the Repository +```bash +git clone <repository-link> +cd GitLab_repo +``` + +--- + +## Worksheet One +### Task Highlights +1. **Task 1**: Implements [details]. +2. **Task 2**: Implements [details]. +3. **Task 3**: Explores [details]. +4. **Task 4**: Integrates [details]. +5. **Tasks 2 + 3 (Template Adaptation)**: Combines tasks 2 and 3 into a reusable, template-based solution. + +--- + +## Worksheet Two +### Task Highlights +1. **Task 1 (Bump Allocator)**: + - Description: Implements a custom memory allocator for efficient memory use. + - Demonstration: Run using the following commands: + ```bash + cd worksheet_two/task 1 (bump allocator) + make + ./run_allocator + ``` +2. **Task 2 (Unit Tests)**: + - Description: Verifies functionality and robustness of implemented modules. + - Demonstration: + ```bash + cd worksheet_two/task 2 (unit tests) + make test + ``` +3. **Task 3**: + - Description: Extends functionality with [specific feature or goal]. + - Demonstration: Run using: + ```bash + cd worksheet_two/task 3 + make + ./run_task3 + ``` + +--- + +## Demonstration +### Running the Code +- Navigate to the desired task directory. +- Use the provided Makefile or build instructions: + ```bash + make + ./run_task + ``` + +### Example Output +```plaintext +[Insert example output or screenshots here showing successful runs.] +``` + +--- + +## Additional Notes +- Ensure all dependencies and frameworks are correctly installed. +- For troubleshooting, review the specifications in `worksheet 1.pdf` and `worksheet 2.pdf`. + +--- + +## Contact +For any issues, please create a GitLab issue or contact the repository maintainer.