COMP 2231
Data Structures and Algorithms

3.0 Credits


This course introduces students to new types of data structures such as trees (including binary and multiway trees), heaps, stacks and queues. Students will also learn how to design new algorithms for each new data structure studied, create and perform simple operations on graph data structures, describe and implement common algorithms for working with advanced data structures and recognize which data structure is the best to use to solve a particular problem.

Delivery Method



Completion of COMP 1231 or equivalent is strongly recommended.


After you have completed the work in this course, you will be able to:

  • Work with procedural and object-oriented aspects of the Java language.
  • Develop sound techniques on designing, developing, and documenting well-structured programs using proper software engineering principles.
  • Continue to apply problem solving skills and provide a foundation for advanced programming courses using an OOP (object-oriented programming) methodology.
  • Describe and implement common data structures--lists, stacks, queues, graphs, and trees--for solving complex programming problems.
  • Use mathematical techniques to analyse the efficiency of the various algorithms presented, as well as the common operations on the data structures discussed.

Course Outline

The chapter titles in the textbook are a good indicator of the topics covered in this course:

  • Module 1:
    • Analysis of Algorithms, Chapter 11 (Weeks 1, 2)
  • Module 2:
    • Stacks, Chapters 12, 13 (Weeks 3, 4)
    • Queues, Chapter 14 (week 5)
  • Module 3:
    • Lists, Chapter 15 (Week 6)
    • Iterators, Chapter 16 (Week 7)
  • Module 4:
    • Trees, Chapter 19 (Weeks 8, 9)
    • Binary Search Trees, Chapter 20 (Week 10)
  • Module 5:
    • Heaps and Priority Queues, Chapter 21 (Week 11)
    • Graphs, Chapter 24 (Week 12)
    • Hashing, Appendix I (Week 12)

Maximum Completion

30 weeks.

Required Text and Materials

Lewis, J., DePasquale, P., & Chase, J. Java foundations: Introduction to program design & data structures. (3rd ed.) Boston: Addison-Wesley.
ISBN-13 978-0-13-337046-1

This is a companion course to COMP 1131, therefore, the textbook listed above would have been provided to you in COMP 1131.

If you did not take COMP 1131 and don't already own this textbook, please be aware that you will need to purchase it. To do so, contact or phone 1.800.663.9711 (toll free in Canada) or 250.852.7000 (local & international).

Additional Requirements

For details about the computer equipment and resources you will need for this course, see "Course Delivery Formats," "Equipment," and "Web-based Courses Delivered by TRU-OL" at

No software needs to be purchased for this course; however, some software packages must be downloaded and installed to your computer.

The Java 2 Software Development Kit (J2SDK) and a text editor such as Textpad are both required. Refer to Assignment 1 for details.

Open Learning Faculty Member Information

An Open Learning Faculty Member is available to assist students. Primary communication is through Blackboard's "Mail" tool or by phone. You will receive the necessary contact information when you start your course.


In order to successfully complete this course, you must complete the mandatory coursework (assignments and final exam) and obtain at least 50 per cent overall. If you do not complete a component of the coursework, you will be assigned a mark of zero (0) for that assignment. You should be aware that the best way to achieve the learning outcomes of the course and to prepare for the final exam is by completing all coursework.

Quiz 1 2%
Assignment 1: Analysis of Algorithms 8%
Quiz 2 2%
Assignment 2 : Stacks and Queues 8%
Quiz 3 2%
Assignment 3: Lists and Iterators 8%
Quiz 4 2%
Assignment 4: Trees and Binary Search Trees 8%
Quiz 5 2%
Assignment 5: Heaps, Priority Queues, Graphs and Hashing 8%
Final Exam 50%