Syllabus — COMP 2450

(Draft — to be filled in with official department language, office hours, academic integrity policies, etc.)

Course description

Data Structures & Algorithms in C++. Students implement and use abstract data types (lists, stacks, queues, trees, heaps, hash tables), analyze algorithmic efficiency (Big-O), and develop recursive and iterative algorithms — all in the context of a semester-long text-based dungeon crawler project.

Prerequisites

Prior experience with C++ covering: data types, conditions/loops, functions, vectors, multi-dimensional arrays, classes, pointers, dynamic memory, and files.

Learning outcomes

By the end of this course, students will be able to:

  1. Reason about abstract data types independently of their implementation.
  2. Analyze the time and space complexity of algorithms using Big-O, Ω, and Θ notation.
  3. Implement common data structures from scratch: arrays, linked lists, stacks, queues, trees, BSTs, heaps, hash tables.
  4. Use the C++ Standard Library’s containers, iterators, and algorithms effectively.
  5. Apply recursion, divide-and-conquer, and iteration to problem-solving.
  6. Design and build a multi-module C++ program using templates, memory management, and exceptions.

Required materials

Grading (placeholder — adjust to your policy)

Component Weight
ZyBook participation & challenge activities 10%
Labs (weekly) 20%
Semester project (dungeon crawler, incremental) 25%
Four midterm exams (boss fights) 30%
Final exam 15%

Schedule

See the dungeon map for the week-by-week floor plan.

Meeting pattern

MWF, 50 minutes per session.

Policies

(To be filled in: attendance, late work, academic integrity, accommodations, Harding-specific language.)