Stanford - coursera: Algorithms Part 1

Introduction

When you are developping software every day, knowing about existing algorithms as well as discovering new ways to solve problems can greatly enhance your productivity. Though I already had some knowledge - from what I learnt at school as well as my experience - I decided to follow this free coursera course about algorithms.

Syllabus

This is a 6 weeks course. As most coursera classes, it is composed of videos, quizzes and programming assignments (automatically checked online). Completing all this took me around 4 hours a week ; about 1 hour and a half watching videos, and 2 hours and half answering quizzes and programming assignments.

Week 1

  1. Introduction
  2. Merge Sort
  3. Asymptotic Notation
  4. Guiding Principles of Algorithm Analysis
  5. Divide & Conquer Algorithms

Week 2

  1. Master Method
  2. QuickSort

Week 3

  1. Final Thoughts on Sorting & Searching
  2. Introduction to Graph Algorithms: Graph Representation & Minimum Cuts in Fraphs

Week 4

  1. Graph Search: Breadth-First Search, Depth-First Search
  2. Applications: Topological Sort, Connected Components

Week 5

  1. Dijkstra's Shortest-Path Algorithm
  2. Data structures and how to use them
  3. Heaps
  4. Binary Search Trees
  5. Balanced BSTs

Week 6

  1. Hash Tables: Applications and Implementation
  2. Bloom Filters

Feedback

Though I already had a background in this area, I don't regret taking this course. I discovered some concepts that I put into practice on programming exercices. This training was interesting both for real life programming and TopCoder competitions.

algocertificate

comments powered by Disqus