Computational Geometry (Coursera)

Computational Geometry (Coursera)

This course represents an introduction to computational geometry – a branch of algorithm theory that aims at solving problems about geometric objects. Its application areas include computer graphics, computer-aided design and geographic information systems, robotics, and many others. You will learn to apply to this end various algorithmic approaches, and asses their strong and weak points in a particular context, thus gaining an ability to choose the most appropriate method for a concrete problem.

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

We will cover a number of core computational geometry tasks, such as testing point inclusion in a polygon, computing the convex hull of a point set, intersecting line segments, triangulating a polygon, and processing orthogonal range queries. Special attention will be paid to a proper representation of geometric primitives and evaluation of geometric predicates, which are crucial for an efficient implementation of an algorithm.
Each module includes a selection of programming tasks that will help you both to strengthen the newly acquired knowledge and improve your competitive coding skills.

Syllabus

WEEK 1
Point inclusion in a polygon
How can it be determined whether you have selected a particular region on an interactive map? This problem is an excellent starting point to get introduced to computational geometry and a variety of its applications!

WEEK 2
Convex hulls
Algorithmic processing of finely shaped objects may be computationally expensive. Can they be reasonably approximated, so as to decrease the handling costs? Convex hulls will come at hand!

WEEK 3
Intersections
Geographic information systems typically store a vast amount of data in the form of various maps. How can be those efficiently combined to provide an adequate response to our requests? Get acquainted with the key algorithmic aspects underlying map overlay!

WEEK 4
Polygon triangulation
In computer graphics, 3D-scenes are commonly represented by complex polygonal models. Do you wonder how those can be processed efficiently? Triangulation stays behind!

WEEK 5
Orthogonal range search
How can computational geometry assist us in querying a database? You are about to learn the answer!

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

Related Courses

Mastering the Software Engineering Interview (Coursera) Coursera
University of California, San Diego

Mastering the Software Engineering Interview (Coursera)

You’ve hit a major milestone as a computer scientist and are becoming a capable programmer. You now know how to solve problems, write algorithms, and analyze solutions; and you have a wealth of tools (like data structures) at your disposal. You may now be ready for an internship or (possibly) an entry-level software engineering job. But can you land the internship/job? It depends in part on how well you can solve new technical problems and communicate during interviews. How can you get better at this? Practice!

Jun 15th 2026
4 Weeks
Programming Foundations with JavaScript, HTML and CSS (Coursera) Coursera
Duke University

Programming Foundations with JavaScript, HTML and CSS (Coursera)

Learn foundational programming concepts (e.g., functions, for loops, conditional statements) and how to solve problems like a programmer. In addition, learn basic web development as you build web pages using HTML, CSS, JavaScript. By the end of the course, will create a web page where others can upload their images and apply image filters that you create.

Jun 15th 2026
4 Weeks
Data Structures and Performance (Coursera) Coursera
University of California, San Diego

Data Structures and Performance (Coursera)

How do Java programs deal with vast quantities of data? Many of the data structures and algorithms that work with introductory toy examples break when applications process real, large data sets. Efficiency is critical, but how do we achieve it, and how do we even measure it? This is an intermediate Java course. We recommend this course to learners who have previous experience in software development or a background in computer science, and in particular, we recommend that you have taken the first course in this specialization (which also requires some previous experience with Java).

Jun 15th 2026
5-12 Weeks
Advanced Algorithms and Complexity (Coursera) Coursera
University of California, San Diego,Higher School of Economics - HSE University

Advanced Algorithms and Complexity (Coursera)

You've learned the basic algorithms now and are ready to step into the area of more complex problems and algorithms to solve them. Advanced algorithms build upon basic ones and use new ideas. We will start with networks flows which are used in more typical applications such as optimal matchings, finding disjoint paths and flight scheduling as well as more surprising ones like image segmentation in computer vision.

Jun 15th 2026
5-12 Weeks
Java Programming: Solving Problems with Software (Coursera) Coursera
Duke University

Java Programming: Solving Problems with Software (Coursera)

Learn to code in Java and improve your programming and problem-solving skills. You will learn to design algorithms as well as develop and debug programs. Using custom open-source classes, you will write programs that access and transform images, websites, and other types of data. At the end of the course you will build a program that determines the popularity of different baby names in the US over time by analyzing comma separated value (CSV) files.

Jun 15th 2026
4 Weeks
Data Structures (Coursera) Coursera
University of California, San Diego,Higher School of Economics - HSE University

Data Structures (Coursera)

A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this course, we consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in different programming languages and will practice implementing them in our programming assignments.

Jun 15th 2026
5-12 Weeks
Shortest Paths Revisited, NP-Complete Problems and What To Do About Them (Coursera) Coursera
Stanford University

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

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).

Jun 15th 2026
4 Weeks
Algorithms on Graphs (Coursera) Coursera
University of California, San Diego,Higher School of Economics - HSE University

Algorithms on Graphs (Coursera)

If you have ever used a navigation service to find optimal route and estimate time to destination, you've used algorithms on graphs. Graphs arise in various real-world situations as there are road networks, computer networks and, most recently, social networks! If you're looking for the fastest time to get to work, cheapest way to connect set of computers into a network or efficient algorithm to automatically find communities and opinion leaders in Facebook, you're going to work with graphs and algorithms on graphs.

Jun 15th 2026
5-12 Weeks
计算导论与C语言基础 (Coursera) Coursera
Peking University

计算导论与C语言基础 (Coursera)

你有没有好奇过:计算机为什么能够进行计算?计算机程序是怎样运行的?你是否想知道:计算机未来可能的发展趋势有哪些?程序是如何编写出来的?如何学习程序设计语言?程序设计语言的基本成分有哪些?《计算导论》这门课将帮助你解决这些疑惑。

Jun 15th 2026
5-12 Weeks
Programming Fundamentals (Coursera) Coursera
Duke University

Programming Fundamentals (Coursera)

Programming is an increasingly important skill, whether you aspire to a career in software development, or in other fields. This course is the first in the specialization Introduction to Programming in C, but its lessons extend to any language you might want to learn. This is because programming is fundamentally about figuring out how to solve a class of problems and writing the algorithm, a clear set of steps to solve any problem in its class.

Jun 15th 2026
4 Weeks