Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
Advanced systems programming project one
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
fork proxy
Advanced systems programming project one
Commits
b1f0cf3d
Commit
b1f0cf3d
authored
6 months ago
by
j2-pelczar
Browse files
Options
Downloads
Patches
Plain Diff
Upload New File
parent
334ba79f
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
README.md
+166
-0
166 additions, 0 deletions
README.md
with
166 additions
and
0 deletions
README.md
0 → 100644
+
166
−
0
View file @
b1f0cf3d
# 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.
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment