About this Specialization

Algorithms are the heart of computer science, and the subject has countless practical applications as well as intellectual depth. This specialization is an introduction to algorithms for learners with at least a little programming experience. The specialization is rigorous but emphasizes the big picture and conceptual understanding over low-level implementation and mathematical details. After completing this specialization, you will be well-positioned to ace your technical interviews and speak fluently about algorithms with other programmers and computer scientists.

About the instructor: Tim Roughgarden has been a professor in the Computer Science Department at Stanford University since 2004. He has taught and published extensively on the subject of algorithms and their applications.

...
Globe

100% online courses

Start instantly and learn at your own schedule.
Calendar

Flexible Schedule

Set and maintain flexible deadlines.
Intermediate Level

Intermediate Level

Clock

Approx. 4 months to complete

Suggested 7 hours/week
Comment Dots

English

Subtitles: English

Skills you will gain

AlgorithmsDynamic ProgrammingGreedy AlgorithmDivide And Conquer Algorithms
Globe

100% online courses

Start instantly and learn at your own schedule.
Calendar

Flexible Schedule

Set and maintain flexible deadlines.
Intermediate Level

Intermediate Level

Clock

Approx. 4 months to complete

Suggested 7 hours/week
Comment Dots

English

Subtitles: English

How the Specialization Works

Take Courses

A Coursera Specialization is a series of courses that helps you master a skill. To begin, enroll in the Specialization directly, or review its courses and choose the one you'd like to start with. When you subscribe to a course that is part of a Specialization, you’re automatically subscribed to the full Specialization. It’s okay to complete just one course — you can pause your learning or end your subscription at any time. Visit your learner dashboard to track your course enrollments and your progress.

Hands-on Project

Every Specialization includes a hands-on project. You'll need to successfully finish the project(s) to complete the Specialization and earn your certificate. If the Specialization includes a separate course for the hands-on project, you'll need to finish each of the other courses before you can start it.

Earn a Certificate

When you finish every course and complete the hands-on project, you'll earn a Certificate that you can share with prospective employers and your professional network.

how it works

There are 4 Courses in this Specialization

1Course

Divide and Conquer, Sorting and Searching, and Randomized Algorithms

4.8
2,015 ratings
397 reviews
The primary topics in this part of the specialization are: asymptotic ("Big-oh") notation, sorting and searching, divide and conquer (master method, integer and matrix multiplication, closest pair), and randomized algorithms (QuickSort, contraction algorithm for min cuts)....
2Course

Graph Search, Shortest Paths, and Data Structures

4.8
886 ratings
106 reviews
The primary topics in this part of the specialization are: data structures (heaps, balanced search trees, hash tables, bloom filters), graph primitives (applications of breadth-first and depth-first search, connectivity, shortest paths), and their applications (ranging from deduplication to social network analysis)....
3Course

Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming

4.8
559 ratings
65 reviews
The primary topics in this part of the specialization are: greedy algorithms (scheduling, minimum spanning trees, clustering, Huffman codes) and dynamic programming (knapsack, sequence alignment, optimal search trees)....
4Course

Shortest Paths Revisited, NP-Complete Problems and What To Do About Them

4.8
343 ratings
41 reviews
The primary topics in this part of the specialization are: shortest paths (Bellman-Ford, Floyd-Warshall, Johnson), NP-completeness and what it means for the algorithm designer, and strategies for coping with computationally intractable problems (analysis of heuristics, local search)....

Instructor

Tim Roughgarden

Professor
Computer Science

About Stanford University

The Leland Stanford Junior University, commonly referred to as Stanford University or Stanford, is an American private research university located in Stanford, California on an 8,180-acre (3,310 ha) campus near Palo Alto, California, United States....

Frequently Asked Questions

  • Yes! To get started, click the course card that interests you and enroll. You can enroll and complete the course to earn a shareable certificate, or you can audit it to view the course materials for free. When you subscribe to a course that is part of a Specialization, you’re automatically subscribed to the full Specialization. Visit your learner dashboard to track your progress.

  • This course is completely online, so there’s no need to show up to a classroom in person. You can access your lectures, readings and assignments anytime and anywhere via the web or your mobile device.

  • This Specialization doesn't carry university credit, but some universities may choose to accept Specialization Certificates for credit. Check with your institution to learn more.

  • The Specialization has four four-week courses, for a total of sixteen weeks.

  • Learners should know how to program in at least one programming language (like C, Java, or Python); some familiarity with proofs, including proofs by induction and by contradiction; and some discrete probability, like how to compute the probability that a poker hand is a full house. At Stanford, a version of this course is taken by sophomore, junior, and senior-level computer science majors.

  • For best results, the courses should be taken in order.

  • Having taken your programming and thinking skills to the next level, you will be well positioned to ace your technical interviews, pursue serious software engineering, and study advanced topics in algorithms.

More questions? Visit the Learner Help Center.