Data and Network Visualization

Graduate Program (& Advanced Certificate) Status

Course Level: 
Course Open to: 
Students on-site
Remote students
Academic Year: 
US Credits: 
ECTS Credits: 
Course Code: 
DNDS 6002
Course Description: 

Prerequisites: You need to be proficient with Python to take this course – read the “to satisfy the prerequisites” section below.

Brief introduction to the course

The Internet and modern computers have given us vast amounts of data, so it is more important than ever to understand and analyze large amounts of information. As additional tools to statistics and analytical computations, visualizations allow us to harness our inherent cognitive skills to detect and understand patterns in complex data, as well as to summarize and communicate new discoveries in an intuitive manner.

The goals of the course

The major goals of this course are to understand how visual representations can help in the analysis and understanding of complex data, how to distinguish a good from a bad visualization, how to design effective visualizations, and how to create your own visualizations using programming skills and visualization software. We will achieve these goals by evaluating existing visualizations, teaching general theoretical principles of information design, and by walking students through the analysis and visualization of real world datasets during hands-on classes.

Course organization

Lectures: 12 classes of 100min. For most classes, we will spend the first 30 minutes introducing the day's concepts, and spend the rest of the class doing the lab exercises or evaluating visualizations. Therefore, use of a computer will be required during some lectures. Students can form groups and use their own laptops.


  • Basics of human perception and cognition of visualization
  • Meaningful visualization for research
  • Data “munging” or cleaning to process and visualize data
  • Visualization of static data with Matplotlib, using Python
  • Principles of Network visualizations (layouts, information reduction)
  • Network visualization using Gephi

  • Basic interactive visualizations using Plotly


Further information, such as the course website, assessment deadlines, office hours, contact details etc. will be given during the course.

The instructor reserves the right to modify this syllabus as deemed necessary any time during the term. Any modifications to the syllabus will be discussed with students during a class period. Students are responsible for information given in class.


In short: don't do it! You may work with friends to help guide problem solving or consult stack overflow (or similar) to work out a solution, but copying—from friends, previous students, or the Internet—is strictly prohibited. NEVER copy blindly blocks of code – we can tell immediately.

If caught cheating, you will fail this course. Ask questions in recitation and at office hours. If you're really stuck and can't get help, write as much code as you can and write comments within your code explaining where you're stuck

Learning activities and teaching methods

Lectures: 12 classes of 100min. For most classes, we will spend the first 30 minutes introducing the day's concepts, and spend the rest of the class doing the lab exercises or evaluating visualizations. Therefore, use of a computer will be required during some lectures. Students can form groups and use their own laptops.  

Learning Outcomes: 

By the end of the course, students will have acquired the following skills:

  • Apply methods for visualization of data from a variety of fields;
  • Write code to create scientifically reproducible figures;
  • Distinguish good from bad visualizations;
  • Use basic principles of human perception and cognition in visualization;
  • Create some basic web-based interactive visualizations;
  • Learning to layout and visualize network data.

Students are expected to attend lectures and hands-on sessions, to hand in one assignment during the course and to develop a project during the entire term.


  • Attendance of the classes and hands-on sessions: 30% of the final grade
  • Assignment(s): 30% of the final grade
  • Final project: 40% of the final grade

Final Project

For the final project, students will have to apply and show proficiency with the principles and tools used during the course. A few options for projects will be suggested in class.


To satisfy the prerequisites

This course has a focus on data visualization for research. As such, we mostly use a programming language, Python, to create reproducible figures and interactive plots. With one exception (Gephi), we make no use of programs with a Graphical User Interface, like those available with spreadsheets. Since we need to pick one programming language for the course, we require students to prove proficiency with Python before the course starts, in one of the following ways:

a) Take for grade or audit the course DNDS 6288 Scientific Python, given in the fall term. Please note that space is limited in the course and you might not be able to enter the regular list. In this case please consider option b.

b) Take a MOOC course on programming with Python and show the certificate.

c) Show and discuss a project you developed in Python. Projects from someone else (web, friend, previous students) are not considered.

If you use options b) or c): if there is a waiting list for the course, the certificate or the project must be shown before the beginning of the term to hold a place among the regular attendees. If there is no waiting list, it is fine to provide the certificate or show your previous project before the course begins (January 10, 2020). However, the instructor holds no responsibility in case you do not satisfy the prerequisite and need to drop the course.