This course is running at Penn during Fall of 2021. This course is structured around recorded video lectures that students are expected to watch on Mondays followed by discussion sessions on Wednesdays and Fridays. Most video lectures last between 40 and 60 minutes, although some are a little longer. Follow this link to access lecture recordings and materials.

If you haven’t already realized this, please be aware that learning from a video is tough. This is why we have the discussion sessions but I also want you to make the most of the recorded lectures. To that end, you will see that individual lectures have been separated in modules that last between 3 and 10 minutes and that modules are aggregated in a playlist. This is intended for you to look at them separately or all together. Most people find that watching videos in short chunks is best.

Whatever your watching preferences, be aware that it is very easy to watch a video and not get anything out of it. To help you with that, in addition to recordings, you will see that each lecture comes with a handout and a script. If you put together the handout and the script, that’s the lecture for you. My idea is that you will be able to download the handout and the script and have them by your side as you watch the lecture. I am a big believer in associating space and concepts. I am hoping that the printed handout and script help you with that

Interactive Meetings

We meet on Wednesdays and Fridays at 10:15am EST. Meetings are dual mode in that you can attend live or remotely. If you choose to attend live, the meetings are in the active learning classroom in the 4th floor of Walnut 3401. If you choose to attend remotely, please access the ESE514 zoom room. To access these meetings you need to have a password that has been provided by your instructor. These meetings are reserved for interactions. Come prepared to talk. Be ready to ask questions. Be ready to answer questions.

Please reserve 90 minutes of your time for these meetings. That is, reserve Wednesdays and Fridays from 10:15am 11:45am EST. However, I will try to keep the discussion sessions to 60 minutes instead of 90. Don’t get me wrong here. I love talking. I am simply aware that people don’t like listening for that long. Indeed, just can’t. But we will see how this goes.

On the same Monday when we start work on a set of lectures, we also start work on a set of questions associated to a set of names. If your name is associated to a question you will be required to prepare a slide with your response to the question as well as a speech lasting about 4 minutes. During the interactive session you will share the slide and speech with the rest of the class. You can prepare your response using whatever software you choose. If you are a latex person, you can download a Penn-branded template.

The responses you will give during the interactive session are zero-stakes. Do your best and don’t stress. You are free to remember that I failed Programming 101 and Electronics 101 when I was in college.

Lab Assignments

In the Mondays of Weeks 2, 4, 6, 8, and 11 we will release Lab assignments. These assignments will be due on the Fridays of Weeks 3, 5, 7, 10, and 12. This means you have two weeks to complete each assignment except for the one we will release on Week 8, which you will have to complete in 3 weeks. Follow this link to access lab assignments.

You will work in groups of three. We will send information about pairings, and you will keep these pairings throughout the term. The labs are designed to be worked on your own. The purpose of having teams is to give you a sounding board. If you are stuck on a question, chances are your partners are not. If the three of you are stuck on a questions, it may be a good idea to submit a question to the discussion board for the TAs to answer.

Each of your lab groups is paired with an individual TA. This is your main point of reference when you need help. The TAs are also going to arrange two two-hour blocks per week where you can meet with them. Take advantage of these meetings. You don’t know your TAs yet, but I do. I can vouch that they are knowledgeable and hard working. They are also good people and will help you out as much as you need.

When you complete the assignment, you will have to submit a report for the group by having one group member submitting the report to Canvas. The labs will contain very concrete instructions on how to write the reports. I am interpreting the lab reports under the language of the Paperwork Reduction Act. They are intended for you to complete in less than one hour after you finish your work. No need for florid language, showing work, or code submission. For each question we will ask for a short deliverable. The goal is simply to check that your answers are correct. If you answers are note correct, we will get back to you to offer you a chance for corrections. As long as you implement these corrections, you will get full marks for the assignment. There will be a Canvas page for submitting responses.

The labs are designed to illustrate points I will be making in lectures. For example, Lab 1 will be about understanding the importance of choosing appropriate parametrizations when we are we solve a problem using learning techniques. I am telling you this because labs also have a heavy development component. You will have to write some code that is not difficult but not easy either. I don’t want you to loose focus on the fact that the objective of the lab is not to get the code working. Rather, the focus of the lab is to understand why your code works.

The labs will use the Python programming language, the PyTorch library for machine learning, and the Alelab Graph Neural Network library. In Lab 3 we are going to explain how to use the Alelab GNN library. However, we will assume from the start that you are familiar with Python and that you have succeeded at installing Pytorch. You don’t need to be familiar with Pytorch. We will go over the use of this library in Labs 1 and 2. For those of you that are not familiar with Python, and need to install Python and Pytorch, please refer to this guide that we have put together.

Discussion Forum

We are running a discussion Forum on Piazza. To access the discussion forum you need a passcode that has been provided by your instructor. Please be engaged. Submit questions. Answer questions. Offer comments. Offer help.

Teaching Assistants

Juan Cervino is the head TA for this course. Juan is starting the 3rd year of his doctoral studies at Penn. His main research interests are in the intersections between optimization, control, and machine learning. Juan’s work has taken to investigate cross learning problems in which several related but different tasks are cross fertilized during the learning process. You can reach him at jcervino@seas.upenn.edu and you can learn more about his research by visiting his webpage or asking him.

Zhiyang Wang is happy to be TA for this course. She is a 3rd year PhD student at Penn. Her research interests include wireless communication networks and machine learning. In the last year Zhiyang has been working on the use of graph neural networks to design algorithms for distributed allocation of resources in wireless communication networks. More recently, she has worked on beautiful analyses of the limits of graph neural networks when graphs are sampled from manifolds. Her email address is zhiyangw@seas.upenn.edu and you can learn more about her research by visiting her webpage.

Samar Hadou is also happy to be a TA for this course. She is a second-year PhD student at Penn. Her research interests focus on the theories of machine learning and signal processing. She is currently working on the stability analysis of GNNs advocated for time-varying graph signals along with its applications in distributed control systems. Feel free to reach out to her at selaraby (at) seas.upenn.edu to discuss her work and general ideas about GNNs.  You also can visit her webpage.

Landon Butler is yet another TA for this course. He is a senior studying Systems Engineering and Data Science. His research interests are at the intersection of network science and machine learning, where he works to develop and apply learning algorithms to dynamical systems situated on networks. Landon’s current emphasis is on extending the GNN framework to graph generalizations, including multigraphs and hypergraphs. You can reach him at landonb3@seas.upenn.edu.

Enzo Bergamo is one of the TAs for this course. He’s currently a junior studying Systems Science and Engineering at Penn. During the past summer, he worked with Dr. Ribeiro’s group exploring the topics of graph neural networks and machine learning as well as some of the many applications of these topics. Most recently, he has worked with constrained reinforcement learning in the context of graph neural networks. Feel free to contact him if you have any questions at ebergamo@seas.upenn.edu.


There are 5 labs in this course, and each of them counts for 20 points. If all of the answers you submit are correct, you get 20 points for the lab. If some of your answers are incorrect, you get a chance to submit corrections. After submitting your corrections, we will give you 18 points for the lab. If you choose not to submit corrections, you get 10 points for the lab.

This grading rubric is designed so that if you submit all of your corrections, you get an A- for the course. You get an A for the course if at least 3 of your original reports are correct on the first submission. If you choose not to submit corrections, your grade goes downhill quite quickly. If you don’t submit corrections for any of the labs, you will fail the course.

Some of you are not getting credit for this course. I am inspired by your willingness to learn, but please keep me inspired. I just ask that you take the class as seriously as students that are officially registered. That is, watch the videos, show up to the interactive sessions, and complete the assignments.

Professor Alejandro Ribeiro

This class is been taught by me, Alejandro Ribeiro. I am very happy to have a captive audience to listen attentively while I talk about my research. I have been working on graph neural networks for the last 3 years and in graph signal processing, which is a precursor, for the last 6. If you want to get a better sense of my research and teaching activities please visit my lab’s website which has descriptions of my research vision and provides access to the sites for the courses I teach, including this one.

I have had and continue to have the honor of working with remarkable doctoral students. Their papers have received a number of awards which I am happy to claim as my own. These awards are the 2014 O. Hugo Schuck best paper award and paper awards at ICASSP 2020, EUSIPCO 2019, CDC 2017, SSP Workshop 2016, SAM Workshop 2016, Asilomar SSC Conference 2015, ACC 2013, ICASSP 2006, and ICASSP 2005. I received a 2019 Outstanding Researcher Award from Intel, the 2017 Lindback award for distinguished teaching and the 2012 S. Reid Warren, Jr. Award presented by Penn’s undergraduate student body for outstanding teaching. I am a Fulbright scholar class of 2003 and a PennFellow class of 2015.