GTx: Data Structures & Algorithms III: AVL and 2-4 Trees, Divide and Conquer Algorithms

GTx: Data Structures & Algorithms III: AVL and 2-4 Trees, Divide and Conquer Algorithms

by The Georgia Institute of Technology

Data Structures & Algorithms Course

Course Description

This Data Structures & Algorithms course is an intermediate-level offering from GTx that builds upon foundational knowledge of Java programming and linear and nonlinear data structures. The course delves deep into advanced data structures like AVL and (2-4) trees, and introduces a variety of sorting algorithms, from basic iterative methods to more complex divide-and-conquer approaches. Throughout the course, there's a strong emphasis on time complexity analysis, ensuring students develop a keen understanding of algorithmic efficiency.

What students will learn

  • Advanced data structures: AVL and (2-4) trees
  • Self-balancing techniques for tree structures
  • Various sorting algorithms: Bubble, Selection, Insertion, Merge, Quick, and LSD Radix sort
  • Time complexity analysis for all covered data structures and algorithms
  • Optimization techniques for sorting algorithms
  • Implementation of data structures and algorithms in Java
  • Analysis of algorithm stability, memory usage, and adaptiveness

Prerequisites

  • Basic knowledge of Java programming language
  • Understanding of object-oriented programming principles
  • Familiarity with abstract data types: Binary Search Trees, Heaps, and Hashmaps
  • Prior knowledge of linear and nonlinear data structures

Course Coverage

  • AVL Trees: properties, self-balancing techniques, and rotations
  • (2-4) Trees: structure, operations, and handling overflow/underflow situations
  • Iterative sorting algorithms: Bubble, Selection, Insertion, and Cocktail Shaker sort
  • Divide & Conquer sorting algorithms: Merge and Quick sort
  • Non-comparison sorting: LSD Radix sort
  • Time complexity analysis for all covered topics
  • Java implementation of data structures and algorithms

Target Audience

This course is ideal for computer science students, software developers, and programming enthusiasts who want to deepen their understanding of advanced data structures and algorithms. It's particularly suitable for those looking to improve their problem-solving skills, optimize code efficiency, and prepare for technical interviews in the software industry.

Real-world Application

  • Develop more efficient software applications
  • Optimize database operations and search algorithms
  • Improve performance in large-scale systems and applications
  • Enhance problem-solving skills for complex computational challenges
  • Excel in technical interviews for software engineering positions
  • Contribute to open-source projects requiring advanced data structure knowledge
  • Analyze and improve existing algorithms in various domains

Syllabus

Module 0: Introduction and Review
Module 8: AVL Trees
Module 9: (2-4) Trees
Module 10: Iterative Sorting Algorithms
Module 11: Divide & Conquer Sorting Algorithms

Each module consists of short instructional videos, textual content, exploratory labs with visualization tools, comprehension questions, and Java coding assignments. The course concludes with a final exam. Grading is based on comprehension questions (10%), coding assignments (60%), and the final exam (30%).

Similar Courses
Course Page   GTx: Data Structures & Algorithms III: AVL and 2-4 Trees, Divide and Conquer Algorithms