YoVDO

Data Structures and Algorithms

Offered By: Georgia Institute of Technology via edX

Tags

Algorithms and Data Structures Courses Algorithms Courses Data Structures Courses Stacks Courses Queues Courses Breadth-First Search Courses Depth-First Search Courses Abstract Data Types Courses Heaps Courses Linked Lists Courses

Course Description

Overview

Great code has its foundation built upon data structures and algorithms. One must have a deep understanding of how data structures operate and designing efficient algorithms. Implementing algorithmic techniques that efficiently manipulate data structures is the essence of this program.

The Data Structures and Algorithms Professional Certificate from GTx is a four-course series covering the foundations of data structures, and designing efficient algorithms. The learner will examine and implement the principles of data storage in low-level data structures such as LinkedLists, Stacks and Queues. The learner will understand the significance of Abstract Data Types (ADTs). The fundamentals of recursion, edge cases, and algorithmic efficiency are emphasized throughout the four-course series. The series transitions from linear data structures to nonlinear data structures. The learner will explore Binary Search Trees (BSTs), HashMaps and Heaps. Implementations of the depth-first search (dfs) and breadth-first search (bfs) traversal algorithms are presented. Higher order data structures, like AVL and 2-4 trees, delves into self-balancing algorithmic techniques. Computer scientists must have a thorough understanding of time complexity in order to write efficient algorithms. The 3rd & 4th courses focus on efficiency by first reviewing iterative sorting algorithms, bubble sort, and then implementing optimizations applied the sorting algorithm which improves performance. Divide and conquer algorithms, such as merge sort, quicksort and radix sort, are explained. The series wraps up with the graph ADT that utilizes many lower level data structures as auxiliary data storage in order to implement Dijkstra’s shortest path and Minimum Spanning Tree (MST) algorithms.

Georgia Tech’s undergraduate computer science program is ranked #5 in U.S. The Professional Certificate for this program uses the same instructional materials and assessments as this on-campus accredited CS 1332 course, giving you a Georgia Tech-caliber learning experience with data structures & algorithms in computing. The Data Structures and Algorithms series of courses uses the Java object-oriented programming language which remains one of the most popular languages among software developers. Short (3-5 minute) videos and visualization exploratory labs are just part of the instructional tools used to deliver the content in this program. Students completing this program exit with the same learning outcomes as the traditional Georgia Tech on-campus course.


Syllabus

Courses under this program:
Course 1: Data Structures & Algorithms I: ArrayLists, LinkedLists, Stacks and Queues

Work with the principles of data storage in Arrays, ArrayLists & LinkedList nodes. Understand their operations and performance with visualizations. Implement low-level linear, linked data structures with recursive methods, and explore their edge cases. Extend these structures to the Abstract Data Types, Stacks, Queues and Deques.



Course 2: Data Structures & Algorithms II: Binary Trees, Heaps, SkipLists and HashMaps

Become familiar with nonlinear and hierarchical data structures. Study various tree structures: Binary Trees, BSTs and Heaps. Understand tree operations and algorithms. Learn and implement HashMaps that utilize key-value pairs to store data. Explore probabilistic data structures like SkipLists. Course tools help visualize the structures and performance.



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

Learn more complex tree data structures, AVL and (2-4) trees. Investigate the balancing techniques found in both tree types. Implement these techniques in AVL operations. Explore sorting algorithms with simple iterative sorts, followed by Divide and Conquer algorithms. Use the course visualizations to understand the performance.



Course 4: Data Structures & Algorithms IV: Pattern Matching, Dijkstra’s, MST, and Dynamic Programming Algorithms

Delve into Pattern Matching algorithms from KMP to Rabin-Karp. Tackle essential algorithms that traverse the graph data structure like Dijkstra’s Shortest Path. Study algorithms that construct a Minimum Spanning Tree (MST) from a graph. Explore Dynamic Programming algorithms. Use the course visualization tool to understand the algorithms and their performance.




Courses

  • 7 reviews

    5 weeks, 9-10 hours a week, 9-10 hours a week

    View details

    This Data Structures & Algorithms course extends beyond linear data structures in CS1332xI to the nonlinear and hierarchical data structures here in CS1332xII. A short Java review is presented on topics relevant to new data structures covered in this course. The course does require prior knowledge of Java, object-oriented programming and linear data structures. Time complexity is threaded throughout the course within all the nonlinear data structures and algorithms.

    You will explore the hierarchical data structure of trees. Trees have important properties such as shape and order which are used to categorize trees into different groups and define their functionality. The course begins by explaining Binary Trees and two subgroups: Binary Search Trees (BSTs) and Binary Heaps. You will program BSTs, their operations and traversal algorithms. BSTs are an important structure when wanting to access information quickly. Heaps approach access differently and prioritize what data is accessed. Heaps also employ the concept of up-heap and down-heap operations not found in other structures.

    HashMaps and SkipLists are the last data structures discussed in the course. The HashMap ADT is a collection of key-value pairs. The key-value pairs are stored in an unordered manner based on hash codes and compression functions that translate keys into integers. You will investigate different collision strategies and implement one. SkipLists are a probabilistic data structures where data is placed in the structure based on a randomization procedure.

    The course design has several components and is built around modules. A module consists of a series of short (3-5 minute) instructional videos. In between the videos, there are textual frames with additional content information for clarification, as well as video errata dropdown boxes. All modules include an Exploratory Lab that incorporates a Visualization Tool specifically designed for this course. The lab includes discovery questions that lead you towards delving deeper into the efficiency of the data structures and examining the edge cases. This is followed by a set of comprehension questions on topics covered in the module that count for 10% of your grade. The modules end with Java coding assignments which are 60% of your grade. Lastly, you'll complete a course exam, which counts for the remaining 30% of your grade.

  • 25 reviews

    5 weeks, 9-10 hours a week, 9-10 hours a week

    View details

    The Data Structures & Algorithms course begins with a review of some important Java techniques and nuances in programming. The course requires some prior knowledge of Java and object-oriented programming, but not in data structures or algorithms. This course introduces you to time complexity, and threads this concept throughout all data structures and algorithms presented in the course. You will work with the principles of data storage in Arrays and LinkedList nodes. You will program the low-level data structures: Singly, Circular and Doubly LinkedLists; and explore edge cases and efficiencies. LinkedLists and Arrays are used to implement Abstract Data Types, ADTs: Stacks, Queues and Deques. Harnessing the power of recursion to move through these data structures is necessary. As the size changes in your data structures, it becomes important to examine amortized analysis of the operations.

    The course design has several components and is built around modules. A module consists of a series of short (3-5 minute) instructional videos. In between the videos, there are textual frames with additional content information for clarification, as well as video errata dropdown boxes. All modules include an Exploratory Lab that incorporates a Visualization Tool specifically designed for this course. The lab includes discovery questions that lead you towards delving deeper into the efficiency of the data structures and examining the edge cases. This is followed by a set of comprehension questions on topics covered in the module that count for 10% of your grade. The modules end with Java coding assignments which are 60% of your grade. Lastly, you'll complete a course exam, which counts for the remaining 30% of your grade.

    This is a great course that has been derived from the on-campus version of CS1332 at the Georgia Institute of Technology, and is backed with an impressive reputation.

  • 5 reviews

    5 weeks, 9-10 hours a week, 9-10 hours a week

    View details

    This Data Structures & Algorithms course completes the data structures portion presented in the sequence of courses with self-balancing AVL and (2-4) trees. It also begins the algorithm portion in the sequence of courses. A short Java review is presented on topics relevant to new data structures covered in this course. The course does require prior knowledge of Java, object-oriented programming, and linear and nonlinear data structures. Time complexity is threaded throughout the course within all the data structures and algorithms.

    You will investigate and explore the two more complex data structures: AVL and (2-4) trees. Both of these data structures focus on self-balancing techniques that will ensure all operations are O(log n). AVL trees are a subgroup of BSTs and thus inherit all the properties and constraints from BSTs. Additionally, AVLs incorporate rotations that are triggered when the tree is mutated and becomes out of balance. (2-4) trees are a subgroup of B-Trees and are non-binary trees with more than 2 children. 2-4 defines the range of children that exists in the trees. However, these trees are extremely flexible and allow the nodes to shrink and grow as needed to store more data. With this flexibility comes more issues to handle, like overflow and underflow which require more intense techniques to resolve the issues.

    As you enter the algorithm portion of the course, you begin with a couple of familiar iterative sorting algorithms: Bubble and Selection. There are optimizations that can be included in the standard Bubble sort to make it more adaptive in sorting. There is also a derivation of bubble sort, called Cocktail Shaker sort, that puts new a spin on the basic algorithm. Insertion sort is the last iterative sort that is investigated in this group of sort algorithms. Divide & Conquer sorting algorithms are examined and are broken into two groups: comparison sorts and non-comparison sorts. The two comparison sorts are Merge and In-place Quick sort. Both are recursive and focus on subdividing the array into smaller portions. LSD Radix sort is the non-comparison sort that deconstructs an integer number and examines the digits. All algorithms are analyzed for stability, memory storage, adaptiveness, and time complexity.

    The course design has several components and is built around modules. A module consists of a series of short (3-5 minute) instructional videos. In between the videos, there are textual frames with additional content information for clarification, as well as video errata dropdown boxes. All modules include an Exploratory Lab that incorporates a Visualization Tool specifically designed for this course. The lab includes discovery questions that lead you towards delving deeper into the efficiency of the data structures and examining the edge cases. This is followed by a set of comprehension questions on topics covered in the module that count for 10% of your grade. The modules end with Java coding assignments which are 60% of your grade. Lastly, you'll complete a course exam, which counts for the remaining 30% of your grade.


Taught by

Mary Hudachek-Buswell

Tags

Related Courses

Applying Data Structures to Manipulate Cleansed UN Data
Coursera Project Network via Coursera
Data Structures & Algorithms I: ArrayLists, LinkedLists, Stacks and Queues
Georgia Institute of Technology via edX
Java Built in Data Structures
Coursera Project Network via Coursera
C#: Collections
LinkedIn Learning
Introduction to Data Structures & Algorithms in Java
LinkedIn Learning