Computer Science (COMP) 272

Data Structures and Algorithms (Revision 7)

COMP 272

View previous revision

Delivery Mode: Individualized study online

Credits: 3

Area of Study: Science

Prerequisite: COMP 268 or COMP 206. Familiarity with the fundamentals of Java and/or C++ is a prerequisite to this course. Candidates with considerable programming skills in Java, C, C++, or other languages may be admitted upon approval from the course professor. Knowledge of high school mathematics (MATH 30 level) is assumed.

Faculty: Faculty of Science and Technology

Centre: School of Computing and Information Systems

COMP 272 has a Challenge for Credit option.

Check availability

**Note: Students who are concerned about not meeting the prerequisites for this course are encouraged to contact the course coordinator before registering


COMP 272 covers analysis and design of fundamental data structures and engages learners to use data structures as tools to algorithmically design efficient computer programs that will cope with the complexity of actual applications.

The course focuses on basic and essential topics in data structures, including array-based lists, linked lists, skiplists, hash tables, recursion, binary trees, scapegoat trees, red–black trees, heaps, sorting algorithms, graphs, and binary trie.


  • Unit 0: Orientation
  • Unit 1: Introduction
  • Unit 2: Array-Based Lists
  • Unit 3: Linked Lists
  • Unit 4: Skiplists
  • Unit 5: Hash Tables
  • Unit 6: Recursion
  • Unit 7: Binary Trees
  • Unit 8: Scapegoat Trees
  • Unit 9: Red–Black Trees
  • Unit 10: Heaps
  • Unit 11:Sorting Algorithms
  • Unit 12: Graphs
  • Unit 13: Binary Trie

Learning Outcomes

Upon successful completion of this course, you should be able to

  • explain the systematic methods of efficiently organizing and accessing data in data structures and algorithms.
  • identify the properties and structural patterns in data structures.
  • apply abstract data types to the design of data structures.
  • analyze algorithms using a mathematical notation and experimental studies.
  • perform comparative analysis of the typical data structures and algorithms.
  • design and analyze recursive algorithms in data structures.
  • write code in pseudocode and high-level programming languages for the implementation of various data structures and algorithms.


To receive credit for COMP 272, you must achieve a course composite grade of at least D (50 percent) and a grade of at least 50 percent on the final examination. The weighting of the composite grade is as follows:

Activity Weighting
Assignment 1 (Unit 1-4) 20%
Assignment 2 (Unit 5-8) 20%
Assignment 3 (Unit 9-13) 20%
Final Exam 40%
Total 100%

The final examination for this course must be taken online with an AU-approved exam invigilator at an approved invigilation centre. It is your responsibility to ensure your chosen invigilation centre can accommodate online exams. For a list of invigilators who can accommodate online exams, visit the Exam Invigilation Network.

To learn more about assignments and examinations, please refer to Athabasca University's online Calendar.

Course Materials


The main text for this course is Pat Morin’s online book titled Open Data Structures. You can choose to complete this course using either Java or using C++, or both. The main text can be accessed at You may choose Java edition, C++ edition, or pseudo-code edition for the textbook at http:/ as well.

Other Materials

  • Units 0 through 13 of the study guide
  • descriptions of the requirements for the individual assignments
  • sample exam

Additional supporting materials of interest to students may occasionally be made available electronically.

Special Course Features

Computer science courses at Athabasca University require that students use computer-mediated communications. We expect students to have access to computer equipment with certain requirements.

Students are required to have access to the Internet.

The course work in COMP 272 requires students to have an appropriate programming environment or tool for Java or C++ programming in their local computer(s). More information about programming environment and tools needed to implement any assignment are detailed in the course package.

Challenge for Credit Overview

The Challenge for Credit process allows you to demonstrate that you have acquired a command of the general subject matter, knowledge, intellectual and/or other skills that would normally be found in a university-level course.

Full information about Challenge for Credit can be found in the Undergraduate Calendar.

Challenge Evaluation

To receive credit for the COMP 272 challenge registration, you must achieve a grade of at least 75 per cent on the assignment and B (75 percent) on the final examination. The weighting of the composite grade is as follows:

Activity Weighting
Assignment 50%
Final Examination 50%
Total 100%

Undergraduate Challenge for Credit Course Registration Form

Athabasca University reserves the right to amend course outlines occasionally and without notice. Courses offered by other delivery methods may vary from their individualized-study counterparts.

Revision 7, May 22, 2014.

View previous revision