Assignments for Coursera Algorithms: Part 1 & Part 2 and exercises from the textbook "Algorithms 4ed".
A Java program which estimates the value of the percolation threshold via Monte Carlo simulation.
Score: 100/100.
A Java program with a generic data type for a deque and a randomized queue. The goal of this assignment was to implement elementary data structures using arrays and linked lists, and to introduce you to generics and iterators.
Score: 100/100. There is also a small performance bug.
Remark: "performance" means "timing".
A Java program which recognizes line patterns in a given set of points.
Score: 88/100. There are 3 correctness bugs and 1 performance bug.
Remark: see the "issues" section for more detailed information on bugs.
A Java program to solve the 8-puzzle problem (and its natural generalizations) using the A* search algorithm.
Score: 100/100.
A Java program which has two data types to represent a set of points in the unit square (all points have x- and y-coordinates between 0 and 1):
- PointSet - brute-force implementation which uses an ordered set data type
- KdTree which uses a 2d-tree to support efficient range search and nearest-neighbor search.
2d-trees have numerous applications, ranging from classifying astronomical objects to computer animation to speeding up neural networks to mining data to image retrieval.
Score: 100/100.
Solutions to the most interesting exercises from the book "Algorithms: 4 edition".
Solutions to the most interesting (not all) exercises from "Algorithms: part 1" and "Algorithms: part 2" courses on Coursera.
Questions/answers that arise during/after the lectures. I chose only the hardest ones.
Lecture presentations in .pdf format. The presentations belong to the authors of this course and were added solely for educational purposes and for quick access.
My own solutions I created while taking the course in 2016. I use them just to compare my progress over the years.