Data Structures: An Active Learning Approach

Data Structures: An Active Learning Approach

Archived
МООК
en
Английский
60 h
This content is rated 0 out of 5

You can't access an archived course

Conditions
  • Self-paced
  • Free Access
  • Fee-based Certificate
More info
  • 10 Sequences
  • Intermediate Level

You can't access an archived course

Their employees are learning daily with Edflex

  • Safran
  • Air France
  • TotalEnergies
  • Generali
Learn more

Course details

Syllabus

Module 1: Introduction and Review
  • 1.1 Welcome to Data Structures!
  • 1.2 Tick Tock, Tick Tock
  • 1.3 Classes of Computational Complexity
  • 1.4 The Fuss of C++
  • 1.5 Random Numbers
  • 1.6 Bit-by-Bit
  • 1.7 The Terminal-ator
  • 1.8 Git: the "Undo" Button of Software Development

Module 2: Introductory Data Structures
  • 2.1 Array Lists
  • 2.2 Linked Lists
  • 2.3 Skip Lists
  • 2.4 Circular Arrays
  • 2.5 Abstract Data Types
  • 2.6 Deques
  • 2.7 Queues
  • 2.8 Stacks
  • 2.9 And the Iterators Gonna Iterate-ate-ate

Module 3: Tree Structures
  • 3.1 Lost in a Forest of Trees
  • 3.2 Heaps
  • 3.3 Binary Search Trees
  • 3.4 BST Average-Case Time Complexity
  • 3.5 Randomized Search Trees
  • 3.6 AVL Trees
  • 3.7 Red-Black Trees
  • 3.8 B- Trees
  • 3.9 B+ Trees

Module 4: Introduction to Graphs
  • 4.1 Introduction to Graphs
  • 4.2 Graph Representations
  • 4.3 Algorithms on Graphs: Breadth-First Search
  • 4.4 Algorithms on Graphs: Depth-First Search
  • 4.5 Dijkstra's Algorithm
  • 4.6 Minimum Spanning Trees: Prim's and Kruskal's Algorithms
  • 4.7 Disjoint Sets

Module 5: Hashing
  • 5.1 The Unquenched Need for Speed
  • 5.2 Hash Functions
  • 5.3 Introduction to Hash Tables
  • 5.4 Probability of Collisions
  • 5.5 Collision Resolution: Open Addressing
  • 5.6 Collision Resolution: Closed Addressing (Separate Chaining)
  • 5.7 Collision Resolution: Cuckoo Hashing
  • 5.8 Hash Maps

Module 6: Implementing a Lexicon
  • 6.1 Creating a Lexicon
  • 6.2 Using Linked Lists
  • 6.3 Using Arrays
  • 6.4 Using Binary Search Trees
  • 6.5 Using Hash Tables and Hash Maps
  • 6.6 Using Multiway Tries
  • 6.7 Using Ternary Search Trees

Module 7: Coding and Information Compression
  • 7.1 Return of the (Coding) Trees
  • 7.2 Entropy and Information Theory
  • 7.3 Honey, I Shrunk the File
  • 7.4 Bitwise I/O

Module 8: Conclusions
  • 8.1 Summaries of Data Structures

Prerequisite

  • Reading and understanding pseudocode
  • Performing time-complexity analysis using Big-O notation
  • Working with basic probabilities
  • Following formal mathematical proofs
  • Programming in either C++ or Python

Instructors

Niema Moshiri
Ph. D. Student
The University of California, San Diego

Christine Alvarado
Associate Teaching Professor, Computer Science and Engineering
The University of California, San Diego

Liz Izhikevich
M.S. Student, Computer Science and Engineering
The University of California, San Diego

Editor

The University of California, San Diego

Platform

EdX est une plateforme d'apprentissage en ligne (dite FLOT ou MOOC). Elle héberge et met gratuitement à disposition des cours en ligne de niveau universitaire à travers le monde entier. Elle mène également des recherches sur l'apprentissage en ligne et la façon dont les utilisateurs utilisent celle-ci. Elle est à but non lucratif et la plateforme utilise un logiciel open source.

EdX a été fondée par le Massachusetts Institute of Technology et par l'université Harvard en mai 2012. En 2014, environ 50 écoles, associations et organisations internationales offrent ou projettent d'offrir des cours sur EdX. En juillet 2014, elle avait plus de 2,5 millions d'utilisateurs suivant plus de 200 cours en ligne.

Les deux universités américaines qui financent la plateforme ont investi 60 millions USD dans son développement. La plateforme France Université Numérique utilise la technologie openedX, supportée par Google.

This content is rated 4.5 out of 5
(no review)
This content is rated 4.5 out of 5
(no review)
Complete this resource to write a review