Available courses

The following lessons introduce the topic of data structures by comparing how data is actually stored in a computer with the abstract structures that programmers use. To illustrate this comparison, several basic data structures such as lists, stacks, and queues are described. Each lesson includes a set of review questions which test the important concepts from the lesson and provide practice problems.

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


LO1.   Design, implement, test and debug a program, based on a given specification, that uses and implements abstract data types (stacks queues, priority queues, sets, maps)

LO2.   Argue strength and weaknesses among multiple implementations for a problem (i.e., on the aspects of iterative vs. recursive solutions and on the aspects of abstraction, encapsulation, and information hiding)

LO3.   Develop knowledge of basic data structures for storage and retrieval of ordered or unordered data. Data structures include: arrays, linked lists, binary trees, heaps, and hash tables.  

LO4.   Develop knowledge of applications of data structures including the ability to implement algorithms for the creation, insertion, deletion, searching, and sorting of each data structure.

LO5.   Learn to analyze and compare algorithms for efficiency using Big-O notation.

LO6.   Implement projects requiring the implementation of the above data structures.