Western University
Department of Modern Languages and Literatures
Digital Humanities – DH 3501

Instructor: David Brown
E-mail: dbrow52@uwo.ca
Office: AHB 1R14


This course introduces students to the ubiquitous and rapidly growing fields of graph theory and network analysis. Using a wide variety of real world examples from current events and empirical research, students will obtain a broad knowledge of the theory behind network analysis and its application to understanding human behaviour and cultural systems. This knowledge will then be applied hands on as students process network data using a variety of up-to-date graph storage, analysis, and visualization software. Based around a solid core of reading, discussion, and Python programming, students will extend their knowledge into the realm of graph databases and the application frameworks used for storing and processing the "big data" produced by social networking sites like Facebook and Twitter. Finally, this course provides an introduction to advanced topics in graph theory such as dynamics, random models, strategy and interaction, and diffusion that can serve as a springboard for future work in this exciting new field.


  • CS2120/DH2120, or demonstrated programming ability and knowledge of--or the ability to quickly learn--the Python programming language (subject to instructor approval).

  • Recommended: CS2121 and/or DH2304

Course Aims

This course aims to provide students with:

  • A broad introduction to the theory of graphy theory and network analysis that can serve as a basis for continued/more advanced studies in the field.
  • The necessary skills to acquire, process, and analyze real world network data.
  • Knowledge of the panaroma of software available for the the storage and analysis of network data.
  • An ability to indentify and learn/use the appropriate software for the task at hand.
  • Improved Python programming skills; specifically in the context of creative problem solving with programming.

Learning Outcomes

After taking this course, students will be able to effectively:

  • Read and write formal graph notation.
  • Read and understand an empirical research paper involving graph theory and network analysis.
  • Describe and analyze a network using the appropriate metrics and methodology.
  • Use the Python library NetworkX for comprehensive network analysis procedures.
  • Use Gephi to analyze and visualize networks.
  • Use the Neo4j graph database to model and store network data.
  • Write queries in Neo4j's query language Cypher that effectively manipulate the state of the database.
  • Design and execute a network data analysis pipeline: Acquisiton->Processing->Storage->Analysis.


  • Easley, D., & Kleinberg, J. (2010). Networks, crowds, and markets. Cambridge University.

  • Jackson, M. O. (2010). Social and economic networks. Princeton University Press.

  • Robinson, I., Webber, J., & Eifrem, E. (2013). Graph databases. O'Reilly Media, Inc.

  • Tsvetovat, M., & Kouznetsov, A. (2011). Social network analysis for startups: Finding connections on the social web. O'Reilly Media, Inc.


  • 30% - Final Project
    • 5% - Presentation
    • 10% - Write-up
    • 15% - Database/code
  • 30% - Midterm
  • 25% - Homework
    • 10% Assignment 1
    • 15% Assignment 2
  • 15% - Notebooks
  • Final Project 30% - Students will acquire, process, store, and analyze a large network dataset. They will present their project during the last week of class, and are expected to turn in both a written report, and organized copies of all code/data used in the project. Details can be found here.
  • Midterm 30% - An in-class midterm will include all of the material covered in Unit 2. Midterm will include true/false, multiple choice, and lots of short answer questions. Expect to calculate various graph metrics for small example graphs and explain many of the fundamental concepts from graph theory and network analysis.
  • Homework 30%
    • Assignment 1 10% - Hands on problem solving and network analysis with Python, NetworkX, and Gephi. Details can be found here.
    • Assignment 2 10% - Hands on problem solving and data storage and retrieval with Python and Neo4j. Details can be found here.
  • Notebooks 15% - Students are expected to download the course notebooks, run code example, and complete exercises and coding challenges. Notebooks will be turned in twice during the course, once before midterms, and then again in the last week. Notebooks will not be critiqued for solution correctness or elegance. Instead, they should demonstrate your active particpation in the learning process.


Plagiarism is a major academic offence (see Scholastic Offense Policy in the Western Academic Calendar). Plagiarism is the inclusion of someone else’s verbatim or paraphrased text in one’s own written work without immediate reference. Verbatim text must be surrounded by quotation marks or identified if it is no longer that four lines. A reference must follow right after borrowed material (usually the author’s name and page number). Without immediate reference to borrowed material, a list of courses at the end of a written assignment does not protect a writer against the possible charge of plagiarism. Western University Ontario uses a plagiarism-checking service called Turnitin.


Students seeking academic accommodation on medical grounds for any missed tests, exams, participation components and/or assignments must apply to the Academic Counselling office of their home faculty and provide documentation. Academic accommodation cannot be granted by the instructor or department.

Accessibility Statement

Please contact the course instructor if you require material in an alternate format or if you require any other arrangements to make this course more accessible to you. You may also wish to contact Services for Students with Disabilities (SSD) at 661-2111 x 82147 for any specific question regarding an accommodation


For the class/reading schedule, assignment deadlines, etc., see the official course calendar.