I/O-efficient algorithms

  • 4.6
Approx. 10 hours to complete

Course Summary

Learn about I/O-efficient algorithms in this advanced course that covers topics such as external memory models, sorting, searching, graph algorithms, and more.

Key Learning Points

  • Gain an understanding of I/O-efficient algorithms and their applications
  • Learn about external memory models and how to design algorithms for them
  • Explore different sorting and searching techniques for large datasets
  • Study graph algorithms and other advanced topics

Related Topics for further study


Learning Outcomes

  • Design and implement I/O-efficient algorithms
  • Analyze and optimize algorithms for external memory models
  • Apply advanced sorting, searching, and graph algorithms to large datasets

Prerequisites or good to have knowledge before taking this course

  • Basic knowledge of algorithms and data structures
  • Familiarity with programming in a high-level language such as Python, Java, or C++

Course Difficulty Level

Advanced

Course Format

  • Online
  • Self-paced

Similar Courses

  • Advanced Data Structures
  • Algorithms on Strings
  • Graph Algorithms

Related Education Paths


Notable People in This Field

  • Jeff Erickson
  • Erik Demaine

Related Books

Description

Operations on data become more expensive when the data item is located higher in the memory hierarchy. An operation on data in CPU registers is roughly a million times faster than an operation on a data item that is located in external memory that needs to be fetched first. These data fetches are also called I/O operations and need to be taken into account during the design of an algorithm. The goal of this course is to become familiar with important algorithmic concepts and techniques needed to effectively deal with such problems. We will work with a simplified memory hierarchy, but the notions extend naturally to more realistic models.

Outline

  • Introduction
  • Why I/O-efficient Algorithms
  • The basic I/O-model
  • Analyzing algorithms in the I/O-model
  • Analyzing algorithms in the I/O-model, II
  • Cache-aware versus cache-oblivious algorithms
  • Course notes 1.1 and 1.2
  • Introduction
  • Designing cache-aware and cache-oblivious algorithms
  • The matrix-transposition problem
  • A cache-aware algorithm for matrix transposition
  • A cache-oblivious algorithm for matrix transposition
  • Course notes 1.3
  • Designing cache-aware and cache-oblivious algorithms
  • Replacement Policies
  • Replacement Policies
  • Course notes 1.4
  • Replacement policies
  • I/O-efficient sorting
  • I/O-Efficient sorting, I
  • I/O-Efficient sorting, II
  • Course notes chapter 2
  • I/O-efficient sorting
  • I/O-efficient data structures
  • Efficient searching I: B-Trees
  • Efficient searching II: Buffer Trees
  • I/O-Efficient Priority queues
  • Course notes 3.1
  • I/O-Efficient Data Structures
  • Time-Forward Processing
  • Evaluating local functions on a DAG
  • Evaluating local function on a DAG: I/O-analysis
  • Time-forward processing
  • Computing maximal independent sets
  • Course notes 3.2
  • I/O-EFFICIENT FUNCTION EVALUATION ON A DAG

Summary of User Reviews

This course on I/O Efficient Algorithms has received great reviews from learners, with many praising its practical approach and clear explanations. Learners have also found the course to be a valuable resource for understanding fundamental concepts and improving their coding skills.

Key Aspect Users Liked About This Course

The course is highly practical and provides clear explanations of complex concepts.

Pros from User Reviews

  • Great practical approach to learning I/O efficient algorithms
  • Clear and concise explanations of complex concepts
  • Valuable resource for improving coding skills

Cons from User Reviews

  • Some learners may find the pace of the course to be too slow
  • Not suitable for beginners with no prior knowledge of algorithms
  • Could benefit from more interactive activities or exercises
English
Available now
Approx. 10 hours to complete
Mark de Berg
EIT Digital
Coursera

Instructor

Mark de Berg

  • 4.6 Raiting
Share
Saved Course list
Cancel
Get Course Update
Computer Courses