Software Development
Data Structures and Algorithms I
Overview
This course introduces students to standard data structures and algorithms. It is suitable for students who have some knowledge of C syntax, yet have little or no training in software architecture and development. The course prepares students to design and implement software modules.
Who Should Take This Course
Prerequisites
Competency with the C programming language is required. Students should have a mathematical background at least to the high school level.
Why You Should Take This Course
Upon completion of this course, students will be able to:
- Upon completion of the course, the student will be able to:
- Explain what is meant by Big-O Complexity
- Classify simple algorithms by their Big-O Complexity
- Explain the difference between an ADT and a Data Structure
- Implement a Linked List from scratch
- Given a Linked List implementation, implement a Stack
- Given a Linked List implementation, implement a Queue
- Describe the difference between a Heap and a Tree
- Implement a simple Binary Tree from scratch
- Implement a Binary Search
- Implement a Sorting Algorithm
Course Outline
Data Structures and Algorithms I
- Complexity Analysis
- Abstract Data Types
- Arrays
- Linked Lists
- Trees
- Recursion
- Heaps
- Binary Search Trees
- Self-Balancing Trees
- Searching
- Sorting