CS371p: Object-Oriented Programming



Project #3: Allocator


Specification


  • Write a program, ideally with a partner, to solve Allocator [C++20 (g++ 14.2.0, 2 sec, 512 MB, source 50 KB)].
  • You must do at least one of your projects with a partner.
  • You may not use new, delete, malloc() or free(). You may use the STL.

Analysis


Submission


  • fork the public code repo (https://gitlab.com/gpdowning-ut/cs371p-allocator/) to become your private code repo (https://gitlab.com/GitLabID/cs371p-allocator/)
  • enable issues here: Settings -> General -> Visibility, project features, permissions -> Issues
  • create the following issue labels here: Manage -> Labels (labels are case sensitive):
    • correctness (Crimson)
    • build_files (Blue-gray)
    • issues (Dark coral)
    • unit_tests (Green-cyan)
    • acceptance_tests (Dark sea green)
    • continuous_integration (Carrot orange)
    • code (Titanium Yellow)
    • documentation (Lavender)
    • ai_report (Deep violet)
  • import the issues: Issues -> Import issues -> Import CSV
  • close all issues
  • add and close new issues as you debug and optimize your solution
  • provide your GitLab URL on the Canvas assignment

AI Report


  • Summary of AI Interactions
    • List the tools used (e.g., ChatGPT, Copilot, etc.).
    • Debugging help (error explanation, bug location, runtime issue)
    • Conceptual clarification (CS concept, syntax, algorithm idea)
    • Code improvement (style, efficiency, readability, testing)
    • Alternative approaches (asking “is there a simpler way?”)
    • Other (describe)
  • Reflection on Use
    • What specific improvements to your code or understanding came from this AI interaction?
    • How did you decide what to keep or ignore from the AI’s suggestions?
    • Did the AI ever produce an incorrect or misleading suggestion? How did you detect that?
  • Evidence of Independent Work
    • Paste a before-and-after snippet (3–5 lines max) showing where you changed your own code in response to AI guidance.
    • In 2–3 sentences, explain what you learned by making this change.
  • Integrity Statement
    • "I confirm that the AI was used only as a helper (explainer, debugger, reviewer) and not as a code generator. All code submitted is my own work."

Repos


Rubrics


Assets Location
1. Correctness
  • 5 tests
  • at least 3 tests to be eligible to resubmit
  • hr_Allocator.cpp (combine Allocator.hpp and run_Allocator.cpp)
2. Build Files
3. Issues
  • 28 issues
  • add at least 5 more issues for bugs and optimizations
4. Unit Tests
5. Acceptance Tests
  • between 20 and 30 tests
  • run checktestdata
  • do not run gcov
  • do not run valgrind
6. Continuous Integration
7. Code
8. Documentation
  • create inline comments
  • specify the complexity of every function/method and the entire program
  • explain the why
  • run doxygen on Allocator.hpp
  • run git log
  • Allocator.html
  • Allocator.log.txt
9. AI Report
  • summary, reflection, evidence, integrity
  • Allocator.ai.md

Copyright © Glenn P. Downing, 1995-2025
Updated 7 Oct 2025