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

  1. Complexity Analysis
  2. Abstract Data Types
  3. Arrays
  4. Linked Lists
  5. Trees
  6. Recursion
  7. Heaps
  8. Binary Search Trees
  9. Self-Balancing Trees
  10. Searching
  11. Sorting
Search UMBC Training Centers