This course will guide you through the essential principles of algorithms and their significance in computational problem-solving. You'll begin by exploring what an algorithm is, its core characteristics, and how it applies to real-world scenarios—from simple everyday tasks to complex computing challenges. As you progress, you will learn about the critical role algorithms play in improving efficiency and scalability across various fields. We’ll break down key concepts such as algorithmic complexity, helping you evaluate the efficiency of different approaches, which will ultimately guide your decision-making.

Program Structure and Algorithms Part 1

Details to know

Add to your LinkedIn profile
35 assignments
See how employees at top companies are mastering in-demand skills

There are 7 modules in this course
In this module, you will be introduced to the foundational concept of algorithms, including their characteristics and how they are integral to solving computational problems. You’ll explore the basics of algorithmic complexity and efficiency, providing a strong foundation for the advanced topics in subsequent modules.
What's included
2 videos10 readings2 assignments
2 videos• Total 3 minutes
- Course Overview• 1 minute
- Meet Your Faculty: Nik Bear Brown• 1 minute
10 readings• Total 158 minutes
- Course Introduction• 2 minutes
- Course Syllabus - Program Structure and Algorithms Part 1• 10 minutes
- Academic Integrity• 1 minute
- Module 1: Introduction to Algorithms • 2 minutes
- Questions to Consider• 5 minutes
- Lesson Resources• 30 minutes
- What is an Algorithm?• 8 minutes
- Lesson Resources• 30 minutes
- The Role of Algorithms in Computing• 10 minutes
- Additional Resources• 60 minutes
2 assignments• Total 6 minutes
- Assess Your Learning: What is an Algorithm? • 3 minutes
- Assess Your Learning: The Role of Algorithms in Computing• 3 minutes
In this module, you will explore the powerful and elegant Gale-Shapley algorithm, originally developed to solve the stable marriage problem. This algorithm, widely used in real-world applications such as college admissions and job matching, ensures that individuals are paired in a way that avoids instability—where two participants could form a better match with someone else. By understanding the principles behind stable matching and the mechanics of this algorithm, you'll gain insight into one of the most influential solutions in game theory, optimization, and computer science.
What's included
1 video13 readings5 assignments
1 video• Total 4 minutes
- Stable Matching and the Gale-Shapley Algorithm• 4 minutes
13 readings• Total 273 minutes
- Module 2: Stable Matching and the Gale-Shapley Algorithm• 3 minutes
- Questions to Consider• 10 minutes
- Lesson Resources• 30 minutes
- Understanding Stable Matching• 10 minutes
- Lesson Resources• 30 minutes
- The Gale-Shapley Algorithm - Theory• 10 minutes
- Lesson Resources• 30 minutes
- Implementing the Gale-Shapley Algorithm in Python• 10 minutes
- Lesson Resources• 60 minutes
- Analyzing and Optimizing the Gale-Shapley Algorithm• 10 minutes
- Lesson Resources• 30 minutes
- Real-World Applications of the Gale-Shapley Algorithm• 10 minutes
- Additional Resources• 30 minutes
5 assignments• Total 10 minutes
- Assess Your Learning: Understanding Stable Matching• 2 minutes
- Assess Your Learning: The Gale-Shapley Algorithm - Theory• 2 minutes
- Assess Your Learning: Implementing the Gale-Shapley Algorithm in Python• 2 minutes
- Assess Your Learning: Analyzing and Optimizing the Gale-Shapley Algorithm• 2 minutes
- Assess Your Learning: Real-World Applications of the Gale-Shapley Algorithm• 2 minutes
In this module, you'll explore the fundamental principles of sorting algorithms and understand how caching plays a key role in optimizing data retrieval. You'll learn to code basic algorithms like bubble sort and selection sort and more advanced ones like mergesort and quicksort. Along the way, you'll evaluate the efficiency of these algorithms through complexity analysis, helping you grasp their real-world performance.
What's included
1 video14 readings5 assignments
1 video• Total 5 minutes
- Sorting and Caching• 5 minutes
14 readings• Total 288 minutes
- Module 3: Sorting and Caching• 3 minutes
- Questions to Consider• 5 minutes
- Lesson Resources• 30 minutes
- Basics of Sorting Algorithms• 10 minutes
- Lesson Resources• 60 minutes
- Advanced Sorting Algorithms• 10 minutes
- Lesson Resources• 30 minutes
- Introduction to Caching• 10 minutes
- Lesson Resources• 30 minutes
- Caching Strategies• 10 minutes
- Lesson Resources• 45 minutes
- Practical Applications• 10 minutes
- Industry Example of Sorting and Caching• 10 minutes
- Additional Resources• 25 minutes
5 assignments• Total 10 minutes
- Assess Your Learning: Basics of Sorting Algorithms• 2 minutes
- Assess Your Learning: Advanced Sorting Algorithms• 2 minutes
- Assess Your Learning: Introduction to Caching• 2 minutes
- Assess Your Learning: Caching Strategies• 2 minutes
- Assess Your Learning: Practical Applications• 2 minutes
In this module, you'll begin by summarizing key concepts like computational tractability, asymptotic growth, and the notations used to evaluate algorithm efficiency. You'll then dive into time complexity, learning how to optimize algorithms for different scenarios and classify them into appropriate complexity classes. By the end, you'll be able to apply these analysis techniques to real-world problems, optimizing solutions while considering the implications and limitations of algorithm analysis.
What's included
1 video15 readings6 assignments
1 video• Total 6 minutes
- Algorithm Analysis• 6 minutes
15 readings• Total 323 minutes
- Module 4: Algorithm Analysis• 3 minutes
- Questions to Consider• 5 minutes
- Lesson Resources• 45 minutes
- Introduction to Algorithm Analysis• 10 minutes
- Lesson Resources• 60 minutes
- Understanding Complexity Classes• 10 minutes
- Lesson Resources• 30 minutes
- Big-O, Big-Omega, and Big-Theta Notations• 15 minutes
- Lesson Resources• 30 minutes
- Advanced Algorithm Analysis Techniques• 15 minutes
- Lesson Resources• 30 minutes
- Practical Applications of Algorithm Analysis• 10 minutes
- Lesson Resources• 30 minutes
- Challenges and Limitations• 15 minutes
- Additional Resources• 15 minutes
6 assignments• Total 12 minutes
- Assess Your Learning: Introduction to Algorithm Analysis• 2 minutes
- Assess Your Learning: Understanding Complexity Classes• 2 minutes
- Assess Your Learning: Big-Oh, Big-Omega, and Big-Theta Notations• 2 minutes
- Assess Your Learning: Advanced Algorithm Analysis Techniques• 2 minutes
- Assess Your Learning: Practical Applications of Algorithm Analysis• 2 minutes
- Assess Your Learning: Challenges and Limitations• 2 minutes
In this module, you'll explore the key concepts and significance of graph theory across various domains. You'll master DFS and BFS for traversal, cycle detection, and connectivity analysis and implement algorithms for topological sorting, bipartiteness testing, and analyzing Directed Acyclic Graphs (DAGs).
What's included
1 video17 readings7 assignments
1 video• Total 4 minutes
- Graphs and Graph Search Algorithms• 4 minutes
17 readings• Total 343 minutes
- Module 5: Graphs and Graph Search Algorithms• 3 minutes
- Questions to Consider• 5 minutes
- Lesson Resources• 30 minutes
- Introduction to Graph Theory• 15 minutes
- Lesson Resources• 30 minutes
- Graph Representation• 15 minutes
- Lesson Resources• 30 minutes
- Graph Traversal Techniques• 15 minutes
- Lesson Resources• 30 minutes
- Cycle Detection and Graph Connectivity• 15 minutes
- Lesson Resources• 30 minutes
- Bipartiteness in Graphs• 20 minutes
- Lesson Resources• 30 minutes
- Directed Acyclic Graphs (DAGs) and Topological Sorting• 20 minutes
- Lesson Resources• 30 minutes
- Real-World Applications of Graph Theory• 10 minutes
- Additional Resources• 15 minutes
7 assignments• Total 14 minutes
- Assess Your Learning: Introduction to Graph Theory• 2 minutes
- Assess Your Learning: Graph Representation• 2 minutes
- Assess Your Learning: Graph Traversal Techniques• 2 minutes
- Assess Your Learning: Cycle Detection and Graph Connectivity• 2 minutes
- Assess Your Learning: Bipartiteness in Graphs• 2 minutes
- Assess Your Learning: Directed Acyclic Graphs (DAGs) and Topological Sorting• 2 minutes
- Assess Your Learning: Real-World Applications of Graph Theory• 2 minutes
In this module, you will explore key algorithms used in optimization and network design. You will see how to apply greedy strategies to solve problems like interval scheduling, how to implement Dijkstra's algorithm for shortest pathfinding in weighted graphs, and how Huffman coding can be used for efficient data compression.
What's included
3 videos13 readings5 assignments
3 videos• Total 8 minutes
- Kruskal's Algorithm • 3 minutes
- Prim's Algorithm• 2 minutes
- Dijkstra's Algorithm• 3 minutes
13 readings• Total 248 minutes
- Module 6: Greedy Algorithms • 3 minutes
- Questions to Consider• 5 minutes
- Lesson Resources• 30 minutes
- Greedy Algorithms for Optimization• 15 minutes
- Lesson Resources• 30 minutes
- Minimum Spanning Trees• 10 minutes
- Lesson Resources• 30 minutes
- Understanding Dijkstra's Algorithm• 10 minutes
- Lesson Resources• 30 minutes
- Interval Scheduling• 15 minutes
- Lesson Resources• 30 minutes
- Huffman Coding• 10 minutes
- Additional Resources• 30 minutes
5 assignments• Total 10 minutes
- Assess Your Learning: Greedy Algorithms for Optimization• 2 minutes
- Assess Your Learning: Minimum Spanning Trees• 2 minutes
- Assess Your Learning: Understanding Dijkstra's Algorithm• 2 minutes
- Assess Your Learning: Interval Scheduling• 2 minutes
- Assess Your Learning: Huffman Coding• 2 minutes
In this module you will learn to implement and analyze key divide-and-conquer strategies in algorithm design. You will learn how these techniques can be applied through algorithms like merge sort, quicksort, and Karatsuba's algorithm for faster multiplication. Additionally, you will examine Strassen's algorithm for efficient matrix multiplication. Finally, you will consider the complexities of these methods.
What's included
1 video14 readings5 assignments
1 video• Total 11 minutes
- Divide and Conquer Fundamentals• 11 minutes
14 readings• Total 210 minutes
- Module 7: Divide-and-Conquer Strategies• 3 minutes
- Questions to Consider• 5 minutes
- Lesson Resources• 30 minutes
- Introduction to Divide-and-Conquer• 10 minutes
- Lesson Resources• 15 minutes
- Mastering Merge Sort• 15 minutes
- Lesson Resources• 15 minutes
- Advanced Multiplication Techniques• 10 minutes
- Lesson Resources• 30 minutes
- Matrix Operations• 15 minutes
- Lesson Resources• 15 minutes
- Quicksort Algorithms• 15 minutes
- Additional Resources• 30 minutes
- Congratulations! • 2 minutes
5 assignments• Total 10 minutes
- Assess Your Learning: Divide and Conquer Fundamentals• 2 minutes
- Assess Your Learning: Mastering Merge Sort• 2 minutes
- Assess Your Learning: Advanced Multiplication Techniques• 2 minutes
- Assess Your Learning: Matrix Operations• 2 minutes
- Assess Your Learning: QuickSort Algorithms• 2 minutes
Instructor

Offered by

Offered by

Founded in 1898, Northeastern is a global research university with a distinctive, experience-driven approach to education and discovery. The university is a leader in experiential learning, powered by the world’s most far-reaching cooperative education program. The spirit of collaboration guides a use-inspired research enterprise focused on solving global challenges in health, security, and sustainability.
Why people choose Coursera for their career

Felipe M.

Jennifer J.

Larry W.

Chaitanya A.
Explore more from Data Science
NNortheastern University
Course
NNortheastern University
Course
PPrinceton University
Course
UUniversity of London
Course