Unicamp logo Institute of Computing - logo

MO412 / MC908 - Graph Algorithms

Instructor: Joao Meidanis, meidanis at unicamp dot br

Tuesdays and Thursdays, 7-9pm. Check Graduate Schedule (in Portuguese)

First Semester, 2022

Overview

This is a course on Graph Algorithms, with emphasis in Network Science. We will cover a few celebrated graph algorithms interspersed with chapters from Barabási's book.

After two remote years, we will have regular lectures this term. In a typical class, the instructor will start by showing a short presentation on the topic of the day, followed by discussions, and usually a review of related exercises from various sources. Students are encouraged to share their views and impressions. Some classes will have special events, such as student presentations, hands-on classes, exams, etc.

We have a lot of ground to cover in one semester. We know that Unicamp students have to deal with a heavy class load. To be able to fulfill our commitments, it is essential to be thoroughly organized. We estimate that a student will have to devote around 12 hours per week to this course, including time for reading, attending classes, and doing assignments. We took the liberty of suggesting a schedule for our students, shown below. There, you will find the topics to be covered in each class, and suggestions on how to spend about two hours daily, Monday through Saturday, to follow our course. We may have to change class topics occasionally, due to unforeseen circumstances, but we expect the course to follow this schedule for the most part.

Office hours

By appointment only.

Schedule


MO412A Graph Algorithms / Network Science 1st. Term

MC908A Special Topics: Computer Theory 2022


Instructor: João Meidanis



PRELIMINARY SCHEDULE






Day Date Activity Book Chapter
Mon Mar 14


Tue Mar 15 Class: Course Outline WEBPAGE
Wed Mar 16 Read BARABASI 1
Thu Mar 17 Class: Introduction BARABASI 1
Fri Mar 18 Assignment

Sat Mar 19 Read BARABASI 2
Mon Mar 21 Read BARABASI 2
Tue Mar 22 Class: Graph Theory BARABASI 2
Wed Mar 23 Project

Thu Mar 24 Class: Graph Theory BARABASI 2
Fri Mar 25 Create Quiz Question

Sat Mar 26 Assignment

Mon Mar 28 Read BARABASI 2
Tue Mar 29 Class: Graph Theory BARABASI 2
Wed Mar 30 Read SLIDES DFS
Thu Mar 31 Class: Depth-First Search SLIDES DFS
Fri Apr 01 Create Quiz Question

Sat Apr 02 Assignment

Mon Apr 04 Read BARABASI 3
Tue Apr 05 Class: Random Graphs BARABASI 3
Wed Apr 06 Project

Thu Apr 07 Class: Random Graphs BARABASI 3
Fri Apr 08 Create Quiz Question

Sat Apr 09 Assignment

Mon Apr 11 Read SLIDES
Tue Apr 12 Class: Calculus, Differential Equations SLIDES
Wed Apr 13 Project

Thu Apr 14 Holiday

Fri Apr 15 Holiday

Sat Apr 16 Holiday

Mon Apr 18 Read BARABASI 3
Tue Apr 19 Class: Breadth-First Search BARABASI 3
Wed Apr 20 Project

Thu Apr 21 Holiday

Fri Apr 22 Holiday

Sat Apr 23 Holiday

Mon Apr 25 Read BARABASI 4
Tue Apr 26 Class: Scale-free Property BARABASI 4
Wed Apr 27 Project

Thu Apr 28 Class: Scale-free Property BARABASI 4
Fri Apr 29 Create Quiz Question

Sat Apr 30 Assignment

Mon May 02 Read Python, Gephi
Tue May 03 Class: Hands-on Python, Gephi
Wed May 04 Project

Thu May 05 Class: Graph Decomposition SCC
Fri May 06 Create Quiz Question

Sat May 07 Assignment

Mon May 09 Project

Tue May 10 Class: Preliminary Presentations

Wed May 11 Project

Thu May 12 Class: Preliminary Presentations

Fri May 13 Project

Sat May 14 Project

Mon May 16 Read BARABASI 5
Tue May 17 Class: Barabasi-Albert Model BARABASI 5
Wed May 18 Project

Thu May 19 Class: Barabasi-Albert Model BARABASI 5
Fri May 20 Create Quiz Question

Sat May 21 Assignment

Mon May 23 Read CORMEN 26
Tue May 24 Class: Network Flow CORMEN 26
Wed May 25 Read BARABASI 6
Thu May 26 Class: Evolving Networks BARABASI 6
Fri May 27 Create Quiz Question

Sat May 28 Assignment

Mon May 30 Read BARABASI 6
Tue May 31 Class: Evolving Networks BARABASI 6
Wed Jun 01 Project

Thu Jun 02 Class: Traveling Salesman Problem

Fri Jun 03 Create Quiz Question

Sat Jun 04 Assignment

Mon Jun 06 Read BARABASI 7
Tue Jun 07 Class: Degree Correlations BARABASI 7
Wed Jun 08 Project

Thu Jun 09 Class: Degree Correlations BARABASI 7
Fri Jun 10 Create Quiz Question

Sat Jun 11 Assignment

Mon Jun 13 Read

Tue Jun 14 Class: Planarity

Wed Jun 15 Project

Thu Jun 16 Holiday

Fri Jun 17 Holiday

Sat Jun 18 Holiday

Mon Jun 20 Read BARABASI 8
Tue Jun 21 Class: Planar Embedding

Wed Jun 22 Project

Thu Jun 23 Class: Network Robustness BARABASI 8
Fri Jun 24 Create Quiz Question

Sat Jun 25 Assignment

Mon Jun 27 Read BARABASI 8
Tue Jun 28 Class: Network Robustness BARABASI 8
Wed Jun 29 Read BARABASI 9
Thu Jun 30 Class: Communities BARABASI 9
Fri Jul 01 Create Quiz Question

Sat Jul 02 Assignment

Mon Jul 04 Read BARABASI 9
Tue Jul 05 Class: Communities BARABASI 9
Wed Jul 06 Project

Thu Jul 07 Class: Final Presentations

Fri Jul 08 Project

Sat Jul 09 Project

Mon Jul 11 Project

Tue Jul 12 Class: Final Presentations

Wed Jul 13 Read QUIZ BLOG
Thu Jul 14 Class: Quiz

Fri Jul 15


Sat Jul 16


Mon Jul 18 Read

Tue Jul 19 Study Week

Wed Jul 20 Read

Thu Jul 21 Study Week

Fri Jul 22 Read

Sat Jul 23 Read

Mon Jul 25 Read

Tue Jul 26 Class: Exam

Grading

Grading will be based on a number of Assignments, contributions to the Quiz Blog, a Quiz, and a Final Project. The Assignments and the Quiz are individual, but the Final Project is to be carried out by a group of 2 students, preferably with different backgrounds. If the number of students in the class is odd, we will allow one group with 3 members. In the Final Project, each group will select a network of interest, map it out, and analyze it.

The Quiz will be an exam with multiple choice questions created by MO412 students, including students from this offering, some of them edited by the instructor, collected in our Official Quiz Blog. Almost every week (see schedule), people have to submit a quiz question on the week's topics, always on Saturday. People who successfully contribute to the Blog will earn extra points. People who fail to submit a question will be penalized.

The Assignments are homework problems assigned weekly by the instructor. These will sometimes be programming exercises. They are typically assigned on a Thursday after class and are due on the following Tuesday by midnight.

For the Final Project, the groups must present their work as a 10-minute presentation, describing the data, how it was collected, basic characteristics of the network, and insights gained by doing the analysis. There will be midterm Preliminary Project Presentations to help groups refine their projects. Groups must prepare 5-minute presentations, based on no more than 5 slides. Further guidelines about the Assignments / Final Project will be given during the course.

Each type of assignment will give rise to a numeric grade in the range 0 to 10. The contributions of each assignment type to the final grade are as follows:

Quiz30%
Homework35%
Final Project35%
Quiz questions    Extra points: 0.1 per accepted question
Quiz questions    Penalty: 0.1 per unsubmitted question

Numeric grades will be converted to letter grades accorging to the following scheme:

8.5 to 10  A
7 to 8.5B
5 to 7C
0 to 5D

Late penalties

For any of the Assignments, there will be penalties for late work. People who do not hand in their solutions on time will incur a late penalty of 20% of the grade per day, computed proportionally with the granularity of 1 minute. So you are 1 day late your penalty is 20%; 2 days late, 40%; 1 hour late, 0.833%; and so on.

Fraud

Any attempt at fraud in this course will entail final grade equal to zero for all involved, with possible additional sanctions, as deemed necessary by the University administration.

References

Network Science. Albert-László Barabási. Cambridge University Press, 2016.

Introduction to Algorithms, 3rd Edition. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. The MIT Press, 2009.

Algorithms, 4th Edition. Robert Sedgewick, Kevin Wayne. Addison-Wesley Professional, 2011.

Credits

Network Icon from PNGFLY.