Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Northeastern University

Program Structure and Algorithms Part 1

Northeastern University via Coursera

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
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.

Syllabus

  • Module 1: Introduction to Algorithms
    • 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.
  • Module 2: Stable Matching and the Gale-Shapley Algorithm
    • 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.
  • Module 3: Sorting and Caching
    • 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.
  • Module 4: Algorithm Analysis
    • 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.
  • Module 5: Graphs and Graph Search Algorithms
    • 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).
  • Module 6: Greedy Algorithms
    • 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.
  • Module 7: Divide and Conquer Strategies
    • 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.

Taught by

Nicholas Brown

Reviews

Start your review of Program Structure and Algorithms Part 1

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.