We may earn an affiliate commission when you visit our partners.
Course image
Alexander S. Kulikov

We invite you to a fascinating journey into Graph Theory — an area which connects the elegance of painting and the rigor of mathematics; is simple, but not unsophisticated. Graph Theory gives us, both an easy way to pictorially represent many major mathematical results, and insights into the deep theories behind them.

Read more

We invite you to a fascinating journey into Graph Theory — an area which connects the elegance of painting and the rigor of mathematics; is simple, but not unsophisticated. Graph Theory gives us, both an easy way to pictorially represent many major mathematical results, and insights into the deep theories behind them.

In this online course, among other intriguing applications, we will see how GPS systems find shortest routes, how engineers design integrated circuits, how biologists assemble genomes, why a political map can always be colored using a few colors. We will study Ramsey Theory which proves that in a large system, complete disorder is impossible!

By the end of the course, we will implement an algorithm which finds an optimal assignment of students to schools. This algorithm, developed by David Gale and Lloyd S. Shapley, was later recognized by the conferral of Nobel Prize in Economics.

As prerequisites we assume only basic math (e.g., we expect you to know what is a square or how to add fractions), basic programming in python (functions, loops, recursion), common sense and curiosity. Our intended audience are all people that work or plan to work in IT, starting from motivated high school students.

Enroll now

What's inside

Syllabus

What is a Graph?
What are graphs? What do we need them for? This week we'll see that a graph is a simple pictorial way to represent almost any relations between objects. We'll see that we use graph applications daily! We'll learn what graphs are, when and how to use them, how to draw graphs, and we'll also see the most important graph classes. We start off with two interactive puzzles. While they may be hard, they demonstrate the power of graph theory very well! If you don't find these puzzles easy, please see the videos and reading materials after them.
Read more
Cycles
We’ll consider connected components of a graph and how they can be used to implement a simple program for solving the Guarini puzzle and for proving optimality of a certain protocol. We’ll see how to find a valid ordering of a to-do list or project dependency graph. Finally, we’ll figure out the dramatic difference between seemingly similar Eulerian cycles and Hamiltonian cycles, and we’ll see how they are used in genome assembly!
Graph Classes
This week we will study three main graph classes: trees, bipartite graphs, and planar graphs. We'll define minimum spanning trees, and then develop an algorithm which finds the cheapest way to connect arbitrary cities. We'll study matchings in bipartite graphs, and see when a set of jobs can be filled by applicants. We'll also learn what planar graphs are, and see when subway stations can be connected without intersections. Stay tuned for more interactive puzzles!
Graph Parameters
We'll focus on the graph parameters and related problems. First, we'll define graph colorings, and see why political maps can be colored in just four colors. Then we will see how cliques and independent sets are related in graphs. Using these notions, we'll prove Ramsey Theorem which states that in a large system, complete disorder is impossible! Finally, we'll study vertex covers, and learn how to find the minimum number of computers which control all network connections.
Flows and Matchings
This week we'll develop an algorithm that finds the maximum amount of water which can be routed in a given water supply network. This algorithm is also used in practice for optimization of road traffic and airline scheduling. We'll see how flows in networks are related to matchings in bipartite graphs. We'll then develop an algorithm which finds stable matchings in bipartite graphs. This algorithm solves the problem of matching students with schools, doctors with hospitals, and organ donors with patients. By the end of this week, we'll implement an algorithm which won the Nobel Prize in Economics!

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Builds a strong foundation for beginners in the field of Graph Theory
Taught by instructors who are recognized for their work in Graph Theory
Examines real-world applications of Graph Theory, making it highly relevant to students in various fields
No explicit prerequisites, making it accessible to students with diverse backgrounds
Develops problem-solving skills and logical reasoning through hands-on implementation of algorithms
Provides foundational knowledge and skills in Graph Theory, which is a core component in many fields today

Save this course

Save Introduction to Graph Theory to your list so you can find it easily later:
Save

Reviews summary

Accessible introduction to graph theory topics

Students say this well-received course is an accessible introduction to graph theory, great for beginners, but difficult in parts. Learners praise engaging puzzles, but some note difficulty understanding some instructors' non-native English. Topics include graph terminology, graph representations, graph isomorphism, and graph algorithms. The course includes interactive exercises, quizzes, and a discussion forum.
The course is designed to be accessible to beginners but provides enough depth for more advanced learners.
"The course is designed to be accessible to anyone with a basic understanding of high school mathematics, but it also offers enough depth to satisfy those with a more advanced mathematical background."
Students enjoy interactive puzzles throughout the course, which help solidify learning.
"The course started with a puzzle which stunned me. I wasn't expecting a puzzle to be a part of course as we all have seen those non interactive assignments."
"I never encountered an assignment as fun as in this course."
"This course is built to be as interactive and problem solving skills as possible."
"I found this course amazing and worth learning."
Instructors clearly introduce graph theory concepts. The course provides many visual aids and real-world examples to support learning.
"The course is taught by a team of experienced instructors who take a step-by-step approach to introducing students to the concepts and applications of graph theory."
"The instructors present the material clearly and concisely, and the use of visual aids and real-world examples helps to reinforce the concepts being taught."
Some students find difficulty with certain sections of the course, particularly in the latter weeks.
"Things got a little bit messy in Week 5 of the course."
"The lecturer is very charming, but also seems like a hurricane of information at times."
"A few more illustrations or computing examples could help this."
"E.g., a step by step explanation of the Ford-Fulkerson algorithm would have helped me out a lot."
Students report difficulty understanding some instructors due to their non-native English.
"The instructors are Russian except one who is French."
"As a native English speaker, I had no major issues understanding any of them."
"Indeed, the Russians speak surprisingly clear and proper English the vast majority of the time."
"My only significant complaint about this course is that I've come away feeling like I still have only a tenuous, at best, understanding of "Networks, Flows and Cuts.""

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Introduction to Graph Theory with these activities:
Review Python loops
Review Python loops to ensure you have a strong foundation for the course's programming assignments.
Browse courses on Programming Fundamentals
Show steps
  • Review the syntax of for loops, while loops, and do-while loops.
  • Practice writing loops to iterate over lists, tuples, and dictionaries.
  • Create a simple program that uses loops to perform a task, such as calculating the sum of a list of numbers.
Read Introduction to Graph Theory by Douglas B. West
This book provides a comprehensive introduction to Graph Theory concepts and applications, complementing the course material.
Show steps
  • Read the assigned chapters for each course module.
  • Take notes and highlight key concepts.
  • Complete the practice exercises at the end of each chapter to test your understanding.
Summarize course materials
Regularly summarizing course materials will enhance your retention and recall of key concepts.
Show steps
  • After each lecture or reading assignment, take some time to summarize the main points.
  • Use a concise and organized format, such as bullet points or mind maps.
  • Review your summaries regularly, especially before exams.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Discuss Graph Theory concepts with classmates
Discussing Graph Theory concepts with classmates will help you clarify your understanding and gain different perspectives.
Browse courses on Collaborative Learning
Show steps
  • Form a study group with classmates.
  • Choose a topic to discuss.
  • Meet regularly to discuss the topic, share ideas, and solve problems together.
Solve Graph Theory practice problems
Solving practice problems will help you develop your problem-solving skills and deepen your understanding of Graph Theory concepts.
Browse courses on Graph Algorithms
Show steps
  • Find online or textbook resources that provide Graph Theory practice problems.
  • Attempt to solve the problems on your own.
  • Check your solutions against provided answer keys or discuss them with classmates or the instructor.
Create a visual representation of a graph
Creating a visual representation of a graph will help you visualize and understand the relationships between objects in the graph.
Browse courses on Data Visualization
Show steps
  • Choose a graph to represent.
  • Select an appropriate visualization technique, such as a node-link diagram or adjacency matrix.
  • Use software or online tools to create the visual representation.
  • Analyze the visual representation to identify patterns and insights.
Develop a graph-based application
Developing a graph-based application will allow you to apply your Graph Theory knowledge to a practical problem and create a valuable portfolio piece.
Browse courses on Software Development
Show steps
  • Identify a problem that can be solved using a graph-based approach.
  • Design the graph data structure and algorithms to be used.
  • Implement the application using an appropriate programming language.
  • Test and debug the application.
  • Deploy and share the application.

Career center

Learners who complete Introduction to Graph Theory will develop knowledge and skills that may be useful to these careers:
Data Analyst
As a Data Analyst, you will gather and interpret vast amounts of raw data to draw meaningful conclusions. This course introduces the fundamentals of graph theory, which underlies many data analysis techniques. By understanding how to represent and analyze data using graphs, you can effectively identify patterns, trends, and relationships within complex datasets, enhancing your data analysis capabilities.
Software Engineer
As a Software Engineer, you will design, develop, and maintain software systems. This course provides a solid foundation in graph theory, which is essential for understanding the structure and behavior of complex software systems. By gaining proficiency in graph algorithms and data structures, you can effectively model, analyze, and optimize software architectures, improving the reliability, performance, and scalability of your applications.
Quantitative Analyst
As a Quantitative Analyst, you will apply mathematical and statistical models to financial data to assess risks and make investment decisions. This course introduces the principles of graph theory, which provide a powerful framework for modeling complex financial systems. By understanding how to represent financial networks and analyze their properties, you can enhance your ability to identify market inefficiencies, evaluate investment opportunities, and manage financial risks effectively.
Operations Research Analyst
As an Operations Research Analyst, you will use mathematical and analytical techniques to solve complex business problems and improve operational efficiency. This course provides a foundation in graph theory, which is widely used in operations research to model and optimize systems. By understanding graph algorithms and optimization techniques, you can effectively analyze supply chains, scheduling problems, and resource allocation, leading to improved decision-making and enhanced operational performance.
Data Scientist
As a Data Scientist, you will extract knowledge and insights from large volumes of data to solve business problems. This course introduces the fundamentals of graph theory, which provides a powerful framework for representing and analyzing complex relationships within data. By understanding how to leverage graph algorithms and techniques, you can effectively identify patterns, detect anomalies, and make predictions, enhancing your ability to derive meaningful insights from data.
Machine Learning Engineer
As a Machine Learning Engineer, you will design and develop machine learning models to solve complex problems. This course provides a foundation in graph theory, which is increasingly used in machine learning to represent and analyze data, model relationships, and perform inference. By understanding graph algorithms and techniques, you can effectively build and optimize machine learning models for tasks such as natural language processing, computer vision, and recommender systems.
Systems Analyst
As a Systems Analyst, you will analyze and design complex systems to meet business needs. This course provides a foundation in graph theory, which is essential for understanding the structure and behavior of systems. By gaining proficiency in graph modeling and analysis techniques, you can effectively capture system requirements, identify potential issues, and develop efficient and reliable system designs.
Network Engineer
As a Network Engineer, you will design, implement, and manage computer networks. This course provides a foundation in graph theory, which is essential for understanding the structure and behavior of networks. By gaining proficiency in graph algorithms and network analysis techniques, you can effectively optimize network performance, troubleshoot network issues, and ensure reliable and efficient network operations.
Computer Scientist
As a Computer Scientist, you will research and develop new computing technologies and applications. This course provides a foundation in graph theory, which is a fundamental concept in computer science. By understanding graph algorithms and data structures, you can effectively design and implement efficient algorithms for a wide range of problems, from social network analysis to computational biology.
Mathematician
As a Mathematician, you will conduct research in various areas of mathematics, including graph theory. This course provides a comprehensive introduction to graph theory, covering fundamental concepts, algorithms, and applications. By gaining a deep understanding of graph theory, you can contribute to the advancement of mathematical knowledge and solve complex problems in fields such as computer science, operations research, and social network analysis.
Statistician
As a Statistician, you will collect, analyze, and interpret data to draw meaningful conclusions. This course provides a foundation in graph theory, which is increasingly used in statistics to model complex relationships and perform statistical inference. By understanding graph algorithms and techniques, you can effectively analyze data, identify patterns, and make informed decisions based on statistical evidence.
Economist
As an Economist, you will analyze economic data and develop models to understand economic behavior and make predictions. This course provides a foundation in graph theory, which is used in economics to model economic networks, analyze market structures, and study the spread of information. By understanding graph algorithms and techniques, you can effectively analyze economic data, identify market inefficiencies, and develop economic policies.
Biologist
As a Biologist, you will study living organisms and their interactions with each other and their environment. This course provides a foundation in graph theory, which is increasingly used in biology to model biological networks, analyze ecological systems, and study the spread of diseases. By understanding graph algorithms and techniques, you can effectively analyze biological data, identify patterns, and make informed decisions based on scientific evidence.
Chemist
As a Chemist, you will study the composition, structure, properties, and reactions of matter. This course provides a foundation in graph theory, which is used in chemistry to model molecular structures, analyze chemical reactions, and study the behavior of complex systems. By understanding graph algorithms and techniques, you can effectively analyze chemical data, identify patterns, and make informed decisions based on scientific evidence.
Physicist
As a Physicist, you will study the fundamental laws of nature and the interactions between matter and energy. This course provides a foundation in graph theory, which is used in physics to model physical systems, analyze complex networks, and study the behavior of particles. By understanding graph algorithms and techniques, you can effectively analyze physical data, identify patterns, and make informed decisions based on scientific evidence.

Reading list

We've selected 13 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Introduction to Graph Theory.
Provides a solid theoretical foundation that complements the more hands-on approach of the course.
Covers advanced topics in graph theory, providing a deeper understanding of the algorithms and techniques used in the course.
Provides a comprehensive overview of algorithms and data structures, including graph algorithms covered in the course.
Provides a comprehensive exploration of graph theory, covering both theoretical foundations and practical applications.
Provides an in-depth look at algorithms specifically designed for graphs, offering advanced insights into the course material.
Focuses on graph coloring, a central topic in the course, providing a comprehensive treatment of the subject.
Offers a comprehensive and up-to-date overview of graph theory, providing additional breadth to the course material.
Offers a more general introduction to combinatorics, providing a foundation for the graph theory topics covered in the course.
Provides a comprehensive overview of discrete mathematics, including graph theory, for students of computer science.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser