Print

Designing Custom Abstract Data Types Without AI Tools

Example developed based on CLOs from: CS 261 – Introduction to Data Structures.

Purpose

This assignment challenges students to design and implement custom abstract data types (ADTs) without relying on AI tools or libraries. By engaging deeply with the mechanics of ADTs, students develop critical thinking, creativity, and a nuanced understanding of data structure design. Through hands-on implementation and testing, students refine their problem-solving skills and build confidence in their ability to develop efficient, functional solutions.

This is a human-centric assignment as it emphasizes higher-order cognitive skills outlined in Bloom’s Taxonomy, such as creating and evaluating. Students manually explore and solve challenges related to ADT design, fostering an in-depth comprehension of computational principles. This approach highlights the uniquely human capacity for synthesis, iterative refinement, and effective communication—skills that are essential for tackling complex problems in real-world software development.

Learning Outcomes

  • Design and implement custom abstract data types to meet specified requirements.
  • Test and evaluate the functionality and performance of custom data types.
  • Reflect on the challenges and insights gained through the design and testing process.

Instructions

Format (Final Deliverable)

  1. Custom ADT Design
    • Design a custom abstract data type to solve a specified problem (e.g., a priority queue or a specialized collection).
    • Document the properties, methods, and intended use cases of your ADT.
  2. Implementation and Testing
    • Implement your custom ADT in Python without using pre-built libraries or AI tools.
    • Develop test cases to validate your ADT’s functionality, including edge cases.
    • Document your testing process and results.
  3. Reflection
    • Write a 300-word reflection addressing:
      • The challenges faced during the design and implementation process.
      • Insights gained about the functionality and limitations of your ADT.
      • How manual implementation deepened your understanding of data structures.

Grading Criteria

  • Completeness and functionality of the custom ADT (40%)
  • Quality and clarity of documentation and test cases (30%)
  • Depth of analysis in evaluating ADT performance (20%)
  • Insightfulness of reflection (10%)

Resources

  • Writing Center consultations for organizing and refining reflections.
  • Instructor-provided examples of ADT designs.
  • Python resources, such as GeeksforGeeks Abstract Data Types Guide, for additional reference.
Scroll to Top