This repository contains all the solutions of all assignments, starter files and other materials related to this specialization.
Data Structures & Algorithms
Course 1 implemented using both C++ & Java. Others are implemented in Java. I will add C++ codes for other courses when my C++ implementation will be completed.
Course 1 ( Algorithmic Toolbox )
- Week 1 - Programming Challenges
- Week 2 - Algorithmic Warm-up
- Week 3 - Greedy Algorithms
- Week 4 - Divide-and-Conquer
- Week 5 - Dynamic Programming 1
- Week 6 - Dynamic Programming 2
Course 2 ( Data Structures )
- Week 1 - Basic Data Structures
- Week 2 - Dynamic Arrays and Amortized Analysis
- Week 3 - Priority Queues and Disjoint Sets
- Week 4 - Hash Tables
- Week 5 - Binary Search Trees
- Week 6 - Binary Search Trees 2
Course 3 ( Algorithms On Graphs)
- Week 1 - Decomposition of Graphs 1
- Week 2 - Decomposition of Graphs 2
- Week 3 - Paths in Graphs 1
- Week 4 - Paths in Graphs 2
- Week 5 - Minimum Spanning Trees
- Week 6 - Advanced Shortest Paths Project (Optional)
Course 4 ( Algorithms On Strings )
- Week 1 - Suffix Trees
- Week 2 - Burrows-Wheeler Transform and Suffix Arrays
- Week 3 - Knuth–Morris–Pratt Algorithm
- Week 4 - Constructing Suffix Arrays and Suffix Trees
Course 5 ( Advanced Algorithms & Complexity )
- Week 1 - Flows In Networks
- Week 2 - Linear Programming
- Week 3 - NP-Complete Problems
- Week 4 - Coping With NP Completeness
- Week 5 - Streaming Algorithms(Optional)
Course 6 ( Genome Assembly Programming Challenge )
- Week 1 - The 2011 European E. coli Outbreak
- Week 2 - Assembling Genomes Using de Bruijn Graphs
- Week 3 - Genome Assembly Faces Real Sequencing Data