From b1f0cf3d81fc66a258148b1b3d767e3435a6f970 Mon Sep 17 00:00:00 2001
From: j2-pelczar <jakub2.pelczar@live.uwe.ac.uk>
Date: Wed, 4 Dec 2024 21:02:50 +0000
Subject: [PATCH] Upload New File

---
 README.md | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 166 insertions(+)
 create mode 100644 README.md

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..00af4f2
--- /dev/null
+++ b/README.md
@@ -0,0 +1,166 @@
+
+# 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. Each worksheet demonstrates 
+the practical application of these concepts through structured tasks and accompanying documentation.
+
+---
+
+## Repository Structure
+
+```
+/
+├── worksheet_one/
+│   ├── .vscode/                 # IDE configuration files
+│   ├── docs/                    # Documentation for Worksheet 1
+│   ├── task_1/                  # Implements Task 1: File parsing and validation
+│   ├── task_2/                  # Implements Task 2: Data processing using templates
+│   ├── task_3/                  # Implements Task 3: Advanced data manipulation
+│   ├── task_4/                  # Integrates features from previous tasks
+│   ├── tasks_revisited/         # Combines tasks 2 and 3 using templates for reusability
+│
+├── worksheet_two/
+│   ├── .vscode/                 # IDE configuration files
+│   ├── docs/                    # Documentation for Worksheet 2
+│   ├── simpletest/              # Testing framework for Worksheet Two
+│   ├── task_1_bump_allocator/   # Implements a custom memory allocator
+│   ├── task_2_unit_tests/       # Unit tests for validating functionality
+│   ├── task_3/                  # Extends features with advanced functionality
+│
+├── worksheet_zero/
+│   ├── TicTacToe/               # Simple implementation of the TicTacToe game
+│   └── hello_world.cpp          # Basic "Hello, World!" example in C++
+```
+
+---
+
+## Getting Started
+
+### Prerequisites
+- **C++ Compiler**: Ensure you have a C++17 or later compatible compiler (e.g., GCC or Clang).
+- **CMake**: To build and manage 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**: File Parsing and Validation
+   - Parses input files to extract relevant data.
+   - Validates the data against predefined criteria.
+   - Documentation: See `worksheet_one/docs/task_1.md` for detailed instructions.
+
+2. **Task 2**: Data Processing Using Templates
+   - Implements template-based functions for processing and transforming data.
+   - Focuses on code reusability and modularity.
+   - Documentation: See `worksheet_one/docs/task_2.md` for design details.
+
+3. **Task 3**: Advanced Data Manipulation
+   - Applies advanced techniques to manipulate and process complex datasets.
+   - Introduces optimization strategies for efficient computation.
+   - Documentation: Refer to `worksheet_one/docs/task_3.md` for methodology.
+
+4. **Task 4**: Integration of Features
+   - Combines features from previous tasks into a cohesive solution.
+   - Focuses on system design and integration testing.
+   - Documentation: See `worksheet_one/docs/task_4.md`.
+
+5. **Tasks Revisited**: Template Adaptation
+   - Revisits Tasks 2 and 3 to create a reusable, template-based solution.
+   - Documentation: See `worksheet_one/docs/template_adaptation.md`.
+
+---
+
+## Worksheet Two
+
+### Task Highlights
+1. **Task 1 (Bump Allocator)**:
+   - Implements a custom memory allocator using the bump allocation strategy.
+   - Optimizes memory allocation and deallocation for specific use cases.
+   - Documentation: See `worksheet_two/docs/task_1_bump_allocator.md`.
+
+2. **Task 2 (Unit Tests)**:
+   - Develops unit tests to validate functionality and catch edge cases.
+   - Focuses on verifying the robustness and reliability of the code.
+   - Documentation: See `worksheet_two/docs/task_2_unit_tests.md`.
+
+3. **Task 3**:
+   - Extends features by integrating additional functionality.
+   - Explores advanced techniques to enhance the solution.
+   - Documentation: Refer to `worksheet_two/docs/task_3.md`.
+
+4. **Testing Framework**: SimpleTest
+   - Used for validating the outputs of the tasks.
+   - Instructions: See `worksheet_two/docs/simpletest.md` for usage.
+
+---
+
+## Demonstration
+
+### Running the Code
+- Navigate to the desired task directory.
+- Use the provided Makefile or follow the build instructions:
+  ```bash
+  make
+  ./run_task
+  ```
+
+### Example Demonstrations
+1. **Worksheet One - Task 1**:
+   ```bash
+   cd worksheet_one/task_1
+   make
+   ./run_task1 input_file.txt
+   ```
+   Example Output:
+   ```plaintext
+   Successfully parsed 50 records.
+   Validation complete: 48 valid, 2 invalid.
+   ```
+
+2. **Worksheet Two - Task 1 (Bump Allocator)**:
+   ```bash
+   cd worksheet_two/task_1_bump_allocator
+   make
+   ./run_allocator
+   ```
+   Example Output:
+   ```plaintext
+   Allocated 1024 bytes of memory successfully.
+   Memory deallocation completed.
+   ```
+
+3. **Unit Tests**:
+   ```bash
+   cd worksheet_two/task_2_unit_tests
+   make test
+   ```
+   Example Output:
+   ```plaintext
+   Running all test cases...
+   Test 1: Passed.
+   Test 2: Passed.
+   All tests completed successfully.
+   ```
+
+---
+
+## Additional Notes
+
+- Ensure all dependencies are installed before running the tasks.
+- Refer to the `docs/` folder for detailed instructions and design documents.
+- For troubleshooting, consult the specifications in `worksheet 1.pdf` and `worksheet 2.pdf`.
+
+---
+
+## Contact
+For any issues, please create a GitLab issue or contact the repository maintainer.
-- 
GitLab