Coursera - Rice University - Algorithmic Thinking
The goal of this Module is to get you started with simple, yet central, concepts in graph theory, simple principles of discrete probability, and a light version of hypothesis testing.
You should attempt the components in order. The Homework component is a Coursera-style quiz; the Project component consists of machine-graded code; and, the Application component is peer evaluated.
#### Module 2 - BFS and Connected Components
The goal of this Module is for you to learn about graph exploration, how to use it to compute the connected components of graphs, and how to use the latter structure to reason about the resilience of networks. The module emphasizes the efficiency of algorithms, asymptotics, and the significance of efficient implementations. You will be exposed again to random graphs, graph properties, and the use of data structures like queues.
You should attempt the components in order. The Homework component is a Coursera-style quiz; the Project component consists of machine-graded code; and, the Application component is peer evaluated.
The goal of this Module is for you to learn about the closest pair problem, how to solve it using the divide-and-conquer algorithmic strategy, and how to use the solution in algorithms for data clustering, which is a very powerful tool in the toolkit of any data scientist. You will also use the programs you write to cluster cancer data collected from many counties across the United States. The module emphasizes divide-and-conquer algorithms, their recursive implementations, and how to analyze the running times of such algorithms.
.