Instructor: Joao Meidanis, meidanis at unicamp dot br
Tuesdays and Thursdays, 7-9pm. Check Graduate Schedule (in Portuguese)
First Semester, 2022
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.
By appointment only.
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 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:
Quiz | 30% |
Homework | 35% |
Final Project | 35% |
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.5 | B |
5 to 7 | C |
0 to 5 | D |
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.
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.
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.
Network Icon from PNGFLY.