- Level Professional
- Duration 54 hours
- Course by Princeton University
-
Offered by
About
This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms. All the features of this course are available for free. It does not offer a certificate upon completion.Modules
Course Introduction
- Hello, World
1
Videos
- Course Introduction
2
Readings
- Welcome to Algorithms, Part I
- Lecture Slides
Union−Find
- Percolation
1
Assignment
- Interview Questions: Union–Find (ungraded)
5
Videos
- Dynamic Connectivity
- Quick Find
- Quick Union
- Quick-Union Improvements
- Union−Find Applications
2
Readings
- Overview
- Lecture Slides
Analysis of Algorithms
1
Assignment
- Interview Questions: Analysis of Algorithms (ungraded)
6
Videos
- Analysis of Algorithms Introduction
- Observations
- Mathematical Models
- Order-of-Growth Classifications
- Theory of Algorithms
- Memory
1
Readings
- Lecture Slides
Stacks and Queues
- Deques and Randomized Queues
1
Assignment
- Interview Questions: Stacks and Queues (ungraded)
6
Videos
- Stacks
- Resizing Arrays
- Queues
- Generics
- Iterators
- Stack and Queue Applications (optional)
2
Readings
- Overview
- Lecture Slides
Elementary Sorts
1
Assignment
- Interview Questions: Elementary Sorts (ungraded)
6
Videos
- Sorting Introduction
- Selection Sort
- Insertion Sort
- Shellsort
- Shuffling
- Convex Hull
1
Readings
- Lecture Slides
Mergesort
- Collinear Points
1
Assignment
- Interview Questions: Mergesort (ungraded)
5
Videos
- Mergesort
- Bottom-up Mergesort
- Sorting Complexity
- Comparators
- Stability
2
Readings
- Overview
- Lecture Slides
Quicksort
1
Assignment
- Interview Questions: Quicksort (ungraded)
4
Videos
- Quicksort
- Selection
- Duplicate Keys
- System Sorts
1
Readings
- Lecture Slides
Priority Queues
- 8 Puzzle
1
Assignment
- Interview Questions: Priority Queues (ungraded)
4
Videos
- APIs and Elementary Implementations
- Binary Heaps
- Heapsort
- Event-Driven Simulation (optional)
2
Readings
- Overview
- Lecture Slides
Elementary Symbol Tables
1
Assignment
- Interview Questions: Elementary Symbol Tables (ungraded)
6
Videos
- Symbol Table API
- Elementary Implementations
- Ordered Operations
- Binary Search Trees
- Ordered Operations in BSTs
- Deletion in BSTs
1
Readings
- Lecture Slides
Balanced Search Trees
1
Assignment
- Interview Questions: Balanced Search Trees (ungraded)
3
Videos
- 2−3 Search Trees
- Red-Black BSTs
- B-Trees (optional)
2
Readings
- Overview
- Lecture Slides
Geometric Applications of BSTs
- Kd-Trees
5
Videos
- 1d Range Search
- Line Segment Intersection
- Kd-Trees
- Interval Search Trees
- Rectangle Intersection
1
Readings
- Lecture Slides
Hash Tables
1
Assignment
- Interview Questions: Hash Tables (ungraded)
4
Videos
- Hash Tables
- Separate Chaining
- Linear Probing
- Hash Table Context
2
Readings
- Overview
- Lecture Slides
Symbol Table Applications
4
Videos
- Symbol Table Applications: Sets (optional)
- Symbol Table Applications: Dictionary Clients (optional)
- Symbol Table Applications: Indexing Clients (optional)
- Symbol Table Applications: Sparse Vectors (optional)
1
Readings
- Lecture Slides
Auto Summary
"Algorithms, Part I" is an essential course for serious programmers eager to master algorithms and data structures, with a special focus on their applications and the scientific performance analysis of Java implementations. This first part of the course delves into elementary data structures, sorting, and searching algorithms, laying a solid foundation for more advanced study in graph- and string-processing algorithms covered in Part II. Offered by Coursera, this professional-level course provides all its features for free, though learners can enhance their understanding by referencing the textbook "Algorithms, Fourth Edition" or exploring additional resources on algs4.cs.princeton.edu. While the course does not provide a completion certificate, it offers substantial, high-quality content over a duration of 3240 minutes, making it a valuable pursuit for dedicated learners. Subscription options include Starter and Professional, catering to different levels of engagement and learning needs. Ideal for programmers and data science enthusiasts, this course supports the development of crucial skills in algorithm design and analysis, essential for advancing in the fields of Data Science and AI.

Kevin Wayne

Robert Sedgewick