Online Courses and Tutorials provides you with the latest online courses information by assisting over 45,000 courses and 1 million students.

Learn programming, marketing, data science and more.

Get started today

Skip to main content

Data Analysis and Interpretation

About This Specialization Learn SAS or Python programming, expand your knowledge of analytical methods and applications, and conduct original research to inform complex decisions. The Data Analysis and Interpretation Specialization takes you from data novice to data expert in just four project-based courses. You will apply basic data science tools, including data management and visualization, modeling, and machine learning using your choice of either SAS or Python, including pandas and Scikit-learn. Throughout the Specialization, you will analyze a research question of your choice and summarize your insights. In the Capstone Project, you will use real data to address an important issue in society, and report your findings in a professional-quality report. You will have the opportunity to work with our industry partners, DRIVENDATA and The Connection. Help DRIVENDATA solve some of the world's biggest social challenges by joining one of their competitions, or help The Connection be…

Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming

Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming

About this course: 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).

Who is this class for: Learners with at least a little bit of programming experience who want to learn the essentials of algorithms. In a University computer science curriculum, this course is typically taken in the third year.

Created by:   Stanford University

Basic Info
Course 3 of 4 in the Algorithms Specialization.
Commitment4 weeks of study, 4-8 hours/week
How To PassPass all graded assignments to complete the course.
User Ratings
Average User Rating 4.9See what learners said
Week 1
Two motivating applications; selected review; introduction to greedy algorithms; a scheduling application; Prim's MST algorithm. 

16 videos4 readings
  1. Reading: Week 1 Overview
  2. Reading: Overview, Resources, and Policies
  3. Reading: Lecture slides
  4. Video: Application: Internet Routing
  5. Video: Application: Sequence Alignment
  6. Video: Introduction to Greedy Algorithms
  7. Video: Application: Optimal Caching
  8. Video: Problem Definition
  9. Video: A Greedy Algorithm
  10. Video: Correctness Proof - Part I
  11. Video: Correctness Proof - Part II
  12. Video: Handling Ties [Advanced - Optional]
  13. Video: MST Problem Definition
  14. Video: Prim's MST Algorithm
  15. Video: Correctness Proof I
  16. Video: Correctness Proof II
  17. Video: Proof of Cut Property [Advanced - Optional]
  18. Video: Fast Implementation I
  19. Video: Fast Implementation II
  20. Reading: Optional Theory Problems (Week 1)
Graded: Problem Set #1
Graded: Programming Assignment #1
Week 2
Kruskal's MST algorithm and applications to clustering; advanced union-find (optional).  

16 videos2 readings
  1. Reading: Week 2 Overview
  2. Video: Kruskal's MST Algorithm
  3. Video: Correctness of Kruskal's Algorithm
  4. Video: Implementing Kruskal's Algorithm via Union-Find I
  5. Video: Implementing Kruskal's Algorithm via Union-Find II
  6. Video: MSTs: State-of-the-Art and Open Questions [Advanced - Optional]
  7. Video: Application to Clustering
  8. Video: Correctness of Clustering Algorithm
  9. Video: Lazy Unions [Advanced - Optional]
  10. Video: Union-by-Rank [Advanced - Optional]
  11. Video: Analysis of Union-by-Rank [Advanced - Optional]
  12. Video: Path Compression [Advanced - Optional]
  13. Video: Path Compression: The Hopcroft-Ullman Analysis I [Advanced - Optional]
  14. Video: Path Compression: The Hopcroft-Ullman Analysis II [Advanced - Optional]
  15. Video: The Ackermann Function [Advanced - Optional]
  16. Video: Path Compression: Tarjan's Analysis I [Advanced - Optional]
  17. Video: Path Compression: Tarjan's Analysis II [Advanced - Optional]
  18. Reading: Optional Theory Problems (Week 2)
Graded: Problem Set #2
Graded: Programming Assignment #2
Week 3
Huffman codes; introduction to dynamic programming. 

11 videos1 reading
  1. Reading: Week 3 Overview
  2. Video: Introduction and Motivation
  3. Video: Problem Definition
  4. Video: A Greedy Algorithm
  5. Video: A More Complex Example
  6. Video: Correctness Proof I
  7. Video: Correctness Proof II
  8. Video: Introduction: Weighted Independent Sets in Path Graphs
  9. Video: WIS in Path Graphs: Optimal Substructure
  10. Video: WIS in Path Graphs: A Linear-Time Algorithm
  11. Video: WIS in Path Graphs: A Reconstruction Algorithm
  12. Video: Principles of Dynamic Programming
Graded: Problem Set #3
Graded: Programming Assignment #3
Week 4
Advanced dynamic programming: the knapsack problem, sequence alignment, and optimal binary search trees. 

10 videos3 readings
  1. Reading: Week 4 Overview
  2. Video: The Knapsack Problem
  3. Video: A Dynamic Programming Algorithm
  4. Video: Example [Review - Optional]
  5. Video: Optimal Substructure
  6. Video: A Dynamic Programming Algorithm
  7. Video: Problem Definition
  8. Video: Optimal Substructure
  9. Video: Proof of Optimal Substructure
  10. Video: A Dynamic Programming Algorithm I
  11. Video: A Dynamic Programming Algorithm II
  12. Reading: Optional Theory Problems (Week 4)
  13. Reading: Info and FAQ for final exam
Graded: Problem Set #4
Graded: Programming Assignment #4
Graded: Final Exam
How It Works
Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.
Help from Your Peers
Help from Your Peers
Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.
Earn official recognition for your work, and share your success with friends, colleagues, and employers.
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.


Popular posts from this blog

An Introduction to Interactive Programming in Python (Part 1)

About this course: This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple. These applications will involve windows whose contents are graphical and respond to buttons, the keyboard and the mouse. In part 1 of this course, we will introduce the basic elements of programming (such as expressions, conditionals, and functions) and then use these elements to create simple interactive applications such as a digital stopwatch. Part 1 of this class will culminate in building a version of the classic arcade game "Pong".
Who is this class for: Recommended Background - A knowledge o…

Introduction to Data Science in Python

About this course: This course will introduce the learner to the basics of the python programming environment, including how to download and install python, expected fundamental python programming techniques, and how to find help with python programming questions. The course will also introduce data manipulation and cleaning techniques using the popular python pandas data science library and introduce the abstraction of the DataFrame as the central data structure for data analysis. The course will end with a statistics primer, showing how various statistical measures can be applied to pandas DataFrames. By the end of the course, students will be able to take tabular data, clean it,  manipulate it, and run basic inferential statistical analyses. This course should be taken before any of the other Applied Data Science with Python courses: Applied Plotting, Charting & Data Representation in Python, Applied Machine Learning in Python, Applied Text Mining in Python, Applied Social Ne…

Learn to Program and Analyze Data with Python

About This Specialization This Specialization builds on the success of the Python for Everybody course and will introduce fundamental programming concepts including data structures, networked application program interfaces, and databases, using the Python programming language. In the Capstone Project, you’ll use the technologies learned throughout the Specialization to design and create your own applications for data retrieval, processing, and visualization. Created by: 5 courses Follow the suggested order or choose your own. Projects Designed to help you practice and apply the skills you learn. Certificates Highlight your new skills on your resume or LinkedIn. Courses