Unordered Data Structures

  • 4.7
Approx. 21 hours to complete

Course Summary

This course covers the fundamental concepts of computer science including algorithms, data structures, and complexity analysis. Students will learn how to apply these concepts to solve real-world problems.

Key Learning Points

  • Gain a strong foundation in computer science
  • Learn to apply key concepts to solve real-world problems
  • Develop critical thinking and problem-solving skills

Related Topics for further study


Learning Outcomes

  • Develop a strong foundation in computer science concepts
  • Learn to apply these concepts to solve real-world problems
  • Improve critical thinking and problem-solving skills

Prerequisites or good to have knowledge before taking this course

  • Basic knowledge of programming concepts
  • Familiarity with a programming language such as Python or Java

Course Difficulty Level

Intermediate

Course Format

  • Online
  • Self-paced

Similar Courses

  • Algorithms, Part I
  • Python Data Structures
  • Data Structures and Algorithms Specialization

Related Education Paths


Related Books

Description

The Unordered Data Structures course covers the data structures and algorithms needed to implement hash tables, disjoint sets and graphs. These fundamental data structures are useful for unordered data. For example, a hash table provides immediate access to data indexed by an arbitrary key value, that could be a number (such as a memory address for cached memory), a URL (such as for a web cache) or a dictionary. Graphs are used to represent relationships between items, and this course covers several different data structures for representing graphs and several different algorithms for traversing graphs, including finding the shortest route from one node to another node. These graph algorithms will also depend on another concept called disjoint sets, so this course will also cover its data structure and associated algorithms.

Outline

  • Orientation; Hashing
  • Lesson 1.1.1 Hashing Introduction
  • Lesson 1.1.2 Hashing - Hash Function
  • Lesson 1.1.3 Hashing - Hash Function Examples
  • Lesson 1.1.4 Collision Handling I: Separate Chaining
  • Lesson 1.1.5 Collision Handling II: Probing and Double Hashing
  • Lesson 1.1.6 Hashing Analysis
  • Lesson 1.1.7 Hash Tables in C++
  • Syllabus
  • Additional References for C++
  • Week 1 Overview
  • Important Tips and Notes for All Challenge Problems
  • Guidelines for Asking for Help With Code
  • Orientation Quiz
  • Week 1 Quiz
  • Week 1 Challenge Problem
  • Disjoint Sets
  • 2.1.1 Disjoint Sets: Introduction
  • 2.1.2 Disjoint Sets: Naive Implementation
  • 2.1.3 Disjoint Sets: UpTrees - A Better Implementation
  • 2.1.4 UpTrees: Simple Running Time
  • 2.1.5A UpTrees: Smart Union & Path Compression I
  • 2.1.5B UpTrees: Smart Union & Path Compression II
  • Week 2 Overview
  • Terminology Note: "Disjoint Sets" and "Union-Find"
  • Week 2 Quiz
  • Week 2 Challenge Problem
  • Graph Data Structures
  • 3.1.1 Graphs: Introduction
  • 3.1.2 Graphs: Vocabulary
  • 3.1.3 Graphs: Edge List Implementation
  • 3.1.4 Graphs: Adjacency Matrix Implementation
  • 3.1.5 Graphs: Adjacency List Implementation
  • Week 3 Overview
  • Week 3 Quiz
  • Week 3 Challenge Problem
  • Graph Algorithms
  • 4.1.1 Graphs: BFS Traversal
  • 4.1.2 Graphs: BFS Analysis
  • 4.1.3 Graphs: DFS Traversal
  • 4.2.1 Minimum Spanning Trees (MST) Introduction
  • 4.2.2 MST: Kruskal's Algorithm I
  • 4.2.3 MST: Kruskal's Algorithm II
  • 4.2.4 MST: Prim's Algorithm
  • 4.3.1 Graphs: Dijkstra's Algorithm
  • 4.3.2 Graphs: Dijkstra's Edge Cases
  • 4.3.3 Graphs: Dijkstra's Running Time
  • 4.3.4 Graphs: Landmark Path Problem
  • Week 4 Overview
  • Week 4 Quiz
  • Week 4 Challenge Problem

Summary of User Reviews

Learn computer science fundamentals with this course. Students highly recommend it for its comprehensive coverage and practical exercises. One key aspect that many users thought was good is the clear explanations of complex concepts.

Pros from User Reviews

  • Comprehensive coverage of computer science fundamentals
  • Practical exercises reinforce learning
  • Clear explanations of complex concepts
  • Great for beginners
  • Engaging and interactive course material

Cons from User Reviews

  • Limited programming assignments
  • Some users found the course too basic
  • Lack of interaction with instructors
  • Slow pace in some sections
  • Not enough practice problems
English
Available now
Approx. 21 hours to complete
Wade Fagen-Ulmschneider
University of Illinois at Urbana-Champaign
Coursera

Instructor

Share
Saved Course list
Cancel
Get Course Update
Computer Courses