Algorithmic Thinking (Part 1) (Coursera)

Offered by Rice University,
Algorithmic Thinking (Part 1) (Coursera)

Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This two-part class is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to computational problems.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

In part 1 of this course, we will study the notion of algorithmic efficiency and consider its application to several problems from graph theory. As the central part of the course, students will implement several important graph algorithms in Python and then use these algorithms to analyze two large real-world data sets. The main focus of these tasks is to understand interaction between the algorithms and the structure of the data sets being analyzed by these algorithms.
Recommended Background - Students should be comfortable writing intermediate size (300+ line) programs in Python and have a basic understanding of searching, sorting, and recursion. Students should also have a solid math background that includes algebra, pre-calculus and a familiarity with the math concepts covered in "Principles of Computing".
Course 5 of 7 in the Fundamentals of Computing Specialization.

Syllabus

WEEK 1
Module 1 - Core Materials
What is Algorithmic Thinking?, class structure, graphs, brute-force algorithms

WEEK 2
Modules 1 - Project and Application
Graph representations, plotting, analysis of citation graphs

WEEK 3
Module 2 - Core Materials
Asymptotic analysis, "big O" notation, pseudocode, breadth-first search

WEEK 4
Module 2 - Project and Application
Connected components, graph resilience, and analysis of computer networks

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

Related Courses

Introduction to Software Product Management (Coursera) Coursera
University of Alberta

Introduction to Software Product Management (Coursera)

This course highlights the importance and role of software product management. It also provides an overview of the specialization, as well as its goals, structure, and expectations. The course explains the value of process, requirements, planning, and monitoring in producing better software. Upon successful completion of this course, you will be able to: relate software product management to better software products; recognize the role of a software product manager; reflect on how Agile principles will improve your own projects.

Aug 31st 2026
2 Weeks
操作系统原理 (Operating Systems) (Coursera) Coursera
Peking University

操作系统原理 (Operating Systems) (Coursera)

操作系统原理》是针对计算机科学技术专业三年级本科生开设的一门专业基础课程。本课程着重学生系统观的培养,通过重点讲述操作系统的内部结构、工作原理及典型技术的实现,使学生建立起对操作系统的整体及各个功能模块的认识,从而系统掌握计算机的专业知识,进一步提升学生的软件开发能力乃至系统软件开发能力。

Aug 31st 2026
13-24 Weeks
Programming with Scratch (Coursera) Coursera
The Hong Kong University of Science and Technology - HKUST

Programming with Scratch (Coursera)

Learning coding is not only about understanding the programming language being used, but also developing important computational thinking skills, which are useful for problem solving across many disciplinary areas. In this course, students will learn basic programming skills by creating interactive storybooks, animations, and games with Scratch, which is a block-based visual programming language for anyone new to coding.

Aug 31st 2026
5-12 Weeks
Introduction to Technology-Assisted Decision-Making (Coursera) Coursera
University of Leeds

Introduction to Technology-Assisted Decision-Making (Coursera)

Technology-assisted decision-making is increasingly important to modern businesses in a wide variety of fields, including finance, healthcare, marketing, and logistics, among others. It introduces speed and efficiency because substantial amounts of data can be processed efficiently to enable faster, objective, contextual decisions. This online course will introduce you to the fundamental concepts of technology-assisted decision-making and its diverse applications in resource allocation, production planning, transportation, scheduling, and network optimisation.

Aug 31st 2026
2 Weeks
Approximation Algorithms Part I (Coursera) Coursera
École normale supérieure

Approximation Algorithms Part I (Coursera)

How efficiently can you pack objects into a minimum number of boxes? How well can you cluster nodes so as to cheaply separate a network into components around a few centers? These are examples of NP-hard combinatorial optimization problems. It is most likely impossible to solve such problems efficiently, so our aim is to give an approximate solution that can be computed in polynomial time and that at the same time has provable guarantees on its cost relative to the optimum.

Aug 31st 2026
5-12 Weeks
Probabilistic Graphical Models 3: Learning (Coursera) Coursera
Stanford University

Probabilistic Graphical Models 3: Learning (Coursera)

Probabilistic graphical models (PGMs) are a rich framework for encoding probability distributions over complex domains: joint (multivariate) distributions over large numbers of random variables that interact with each other. These representations sit at the intersection of statistics and computer science, relying on concepts from probability theory, graph algorithms, machine learning, and more. They are the basis for the state-of-the-art methods in a wide variety of applications, such as medical diagnosis, image understanding, speech recognition, natural language processing, and many, many more. They are also a foundational tool in formulating many machine learning problems.

Aug 31st 2026
5-12 Weeks
Practical Python for AI Coding 2 (Coursera) Coursera
Korea Advanced Institute of Science and Technology - KAIST

Practical Python for AI Coding 2 (Coursera)

This course is for a complete novice of Python coding, so no prior knowledge or experience in software coding is required. This course selects, introduces and explains Python syntaxes, functions and libraries that were frequently used in AI coding. In addition, this course introduces vital syntaxes, and functions often used in AI coding and explains the complementary relationship among NumPy, Pandas and TensorFlow, so this course is helpful for even seasoned python users.

Aug 31st 2026
5-12 Weeks
Client Needs and Software Requirements (Coursera) Coursera
University of Alberta

Client Needs and Software Requirements (Coursera)

This course covers practical techniques to elicit and express software requirements from client interactions. Upon successful completion of this course, you will be able to: Create clear requirements to drive effective software development; visualize client needs using low-fidelity prototypes; maximize the effectiveness of client interactions - adapt to changing product requirements.

Aug 31st 2026
4 Weeks
Avatar Psychology for Designers (Coursera) Coursera
Michigan State University

Avatar Psychology for Designers (Coursera)

This course covers the latest and greatest psychological research on avatars and is relevant to current and future designers of any medium that includes user self-representations (e.g., video games, virtual worlds, robots, automobiles, social media, etc.). By taking this course, you will be able to define digital and non-digital avatars and identify how they are applicable in everyday life.

Aug 31st 2026
4 Weeks