Data Structures and Algorithms

1. Introduction
2. Arrays, Lists and Vectors
3. Stacks and Queues
4. Trees and Graphs
5. Hash Tables
6. Sorting Data
7. Practical Use

Welcome to this learning project about Data Structures and Algorithms!

## Learning Project Summary

[edit | edit source]

* Project code:
* Suggested Prerequisites:
* Introduction to Programming
* ...
* Time investment:
* Assessment suggestions:
* Portal:
* Engineering and Technology
* Computer Science
* School: Computer Science
* Department: Computer Programming
* Stream
* Level: U1

## Content summary

[edit | edit source]

This learning project introduces how to encapsulate and order data in a computer program along with efficient methods of accessing the data using appropriate algorithms. Examples and exercises are provided in Java, C and C++.

## Goals

[edit | edit source]

This learning project aims to cover the basic data structures used in software development, along with algorithms for inserting, sorting and accessing data. At the end of the learning project the student will be familiar with how to create and use the data structures covered and will have learned which situations are best for each, depending on the type of data to be stored and the running time (computational complexity) of algorithms for insertion, sorting and retrieval.

A secondary aim is to improve programming skills in the student's primary language and to introduce the APIs for existing data structures available in the student's chosen computer language.

## Contents

[edit | edit source]

### Learning materials

[edit | edit source]

Add learning materials here - see also the box below

### Readings and other resources

[edit | edit source]

Each project/lesson/activity may have a suggested reading selection, eg:

* Wikipedia article:
* Wikibooks textbook:
* etc.

### Lessons

[edit | edit source]

* Lesson 1: Introduction
* Lesson 2: Arrays, Lists and Vectors
* Lesson 3: Stacks and Queues
* Lesson 4: Trees and Graphs
* Lesson 5: Hash Tables
* Lesson 6: Sorting Data
* Lesson 7: Practical Use

### Activities

[edit | edit source]

* Caching data in arrays
* Creating linked lists
* Creating vectors
* ...

### Assignments

[edit | edit source]

Data structures and algorithms are vital elements in many computing applications. When programmers design and build applications, they need to model the application data. What this data consists of depends on the purpose and context of the application. However, it is generally a requirement for any application to insert, edit and query a data store. Data structures offer different ways to store data items, while the algorithms provide techniques for managing this data.

### Tests and Quizzes

[edit | edit source]

* Quiz 1
* Quiz 2
* Test 1
* etc...

## See Also

[edit | edit source]

Learn more about Data Structures and Algorithms

|

* Topic: Data structures