This course is running online at Penn during Fall of 2020. We will be releasing between 40 and 60 minutes of prerecorded lectures each Monday morning. It is expected that students will watch these lectures on the Monday in which they are released. Follow this link to access lecture recordings and materials.

If you haven’t already realized this, please be aware that online learning is tough. Much tougher than learning in person. 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. Just be aware that it is very easy to watch a video and not get anything out of it.

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 in the ESE680 zoom room. To access these meetings you need to have a password that has been provided by your instructor. These meetings will be reserved for interactions. Come prepared to talk. Be ready to ask questions. Be ready to answer questions. I have to disclose that I am recording these meetings and uploading them to the meetings section of the class site. In case there is something you want to re-check at the end of a session.

Please reserve 1 hour of your time for these meetings. That is, reserve Wednesdays and Fridays from 9am to 10am EST. However, I think that a full hour of videoconference is beyond the reach of the attention span of most humans. I therefore intend to run these meetings in the 30-to-40 minute range. 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 release lectures, we will release 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 3 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 1, 3, 4, 6, 8, and 10 we will release Lab assignments. These assignments will be due on the Fridays of Weeks 2, 4, 5, 7, 9, and 11. This means you have two weeks to complete each assignment except for the one we will release on Week 3, which you will have to complete in 1 week. 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.

When you complete the assignment, you will have to submit a report for the group. 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

Luana Ruiz is the head TA for this course. Luana is starting the 4th year of her doctoral studies at Penn. Her main research interests are in the areas of signal processing and machine learning. She brings a lot of experience on Graph Neural Network research. Several of the results we will cover in this course are hers. She is particularly well known for her work on graphon signal processing and its implications in the transferability properties of graph neural networks. You can reach her at rubruiz@seas.upenn.edu and you can learn more about her research by visiting her webpage. Luana is the main driving force behind the lab assignments and their solutions.

Juan Cervino is very happy to be a TA for this course. Juan is starting the 2nd 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. Juan is the only member of the team without direct research experience on GNNs. But do not hold that against him. What he doesn’t know he makes up by learning quickly and working harder. He is the main driver behind Lab 1

Zhiyang Wang is equally happy to be TA for this course. She is a 2nd 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. She doesn’t have a webpage but is happy to tell you about her research if you ask. Zhiyang is the main driver behind lab 3.

Zhan Gao is, what else, very happy to be a TA for this course. Zhan is starting his 3rd year of doctoral studies at Penn. His main research interests are in the intersections between optimization, machine learning and wireless networks. Zhan has been working on distributed learning with graph neural networks and its applications in wireless networks. You can reach him at gaozhan@seas.upenn.edu if you have any questions about the course.


Just watch the videos, show up to the interactive sessions, and complete the assignments. You do that and you get an A.

A lot 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.