Social Modelling, Agent-Based Simulation, and Complexity

Main content

Spring Semester 2017


NEW ROOM:  NOW IN EFV E 41 (Across from Notfall Eingang at the Hospital - MAP HERE)

Office Hours:

  • Monday 10am-2pm (by appointment)
  • Tuesday-Friday 1pm-5pm (walk-in)
  • others all by appointment

This is the website for the course entitled "Social Modelling, Agent-Based Simulation, and Complexity" which commences in the spring semester of 2017. The lectures take place every Monday from 17:00 to 19:00 in room LFV E41. An abbreviation of the course syllabus is published below.  The current and printable syllabus can be found here.  Notes for each lecture will be posted in advance of that particular class meeting.  More detailed information is available from the lecturer at any time.  Additional material can be found here.

A final exam will take place in room EFV E41 during the last scheduled class meeting.

Course material is intended for personal use in the context of this course only; redistributing, citing or publishing any of the material is strictly prohibited. If prompted, please enter your ETH username and password to download course materials.


This course teaches how to construct computer models of mathematically complex social behavior. Students learn how to use the technology of agent-based modeling (with empirical data, spatial/GIS, and social network inputs) to produce validated, emergent results. Involves lecture, theory, and coding. Study begins with well-known formal models of human cognition, social-behavior and -processes.


This course aims itself towards ETH students/staff that are either: 1) computer scientists or traditional engineers who have interests in developing a skill for constructing abstract models of social behavior and or large scale models of complicated social interactions, or 2) the social scientist (anthropologist, psychologist, or sociologist, for example) who has significant coding skills but wants more training merging the two divergent specialties.  Whether computer scientist, engineer, or social scientist this course will ask the student to learn how to recognize key components in a social situation or problem, develop a mental model of the social process, then become "fluent" in translating those social constructs into computer code for execution and post-processing analysis.


The course consists of two overlapping parts and a final deliverable.  The two parts involve learning how to make (to code) a discrete-event, multi-agent system known as an agent-based model (ABM) then to construct an ABM and analyze the resulting simulation.  The main deliverables are a running ABM and an essay suitable for a short conference or journal submission.

For this class an ABM is a simulation built of computer code.  Such simulations are often used to explain and to demonstrate at a theoretic level the operation(s) and interaction(s) of individual actors in a complex system; in this case social actors in a complex social system.  The course will expose the student to selected, straight-forward techniques for the analysis of complex systems, and an extensive and associated vocabulary.  Requires coding ability in a modern, high-level, object-oriented language like: Java, Python, C++/C#, or similar. (Highly proficient students with only Matlab backgrounds may be successful.)

Part I will show the student simple "teaching models" of complex social processes using precoded instances of those models. Each class session will focus on one or more societal process or issue and will pair it with a precoded instance or in-class discussion of how one might translate such a process into a coded simulation.  In-class and out-of-class assistance and will be offered to the student to assist them in developing their skills in translating social processes into computer code.  The student will be encouraged to bring to the classroom their own interests (academic and professional) that can be studied in the context of creating system models. It is expected that Social Science topics will range from cognitive agent models to spatial agent models and everything in between.

Part II will ask the students to form small teams of 1-3 people.  Each team will work together on a team-unique project due at the end of the semester. This part of the class will involve the team members identifying an issue of interest to Social Science and its environmental setting, gathering empirical data that describes the issue quantitatively and qualitatively, constructing a positive mental model of the issue that can be translated (instantiated) as an original computer simulation, running the code (in a class demonstration), analyzing their coded results, and comparing the results to the original empirical data.

The course deliverable will be a short, in-class project presentation at the end of the term presented by PowerPoint (or similar) with a short video "run" of the team's project simulation.  Each team will write a short paper describing the Social Science issue, their work, their code, and their findings. The papers should be suitable for submission to a conference or a journal selected by the team. As such, papers will likely require a brief literature review and supporting graphs/mathematics, and references.

Course Outline

Date Lecturer Topic
20.02.17 O. Rouly Agent-based models in Computational Social Science
27.02.17 O. Rouly

Social Networks

(Informal Ideas for ABM Projects)

06.03.17 O. Rouly

Disease Propagation

(Concepts & Vocabulary Supplement)

13.03.17 O. Rouly Cognitive Agents
20.03.17 O. Rouly Social Norms and Opinion Formation
27.03.17 O. Rouly Crowds, Crowd Dynamics, and Crowd Disasters
03.04.17 O. Rouly Complexity, Social Complexity, and Review
10.04.17 O. Rouly mid-term presentations/quiz
17.04.17 holiday no class
24.04.17 holiday no class
01.05.17 holiday no class
08.05.17 S. Wise (UCL) Urban Spatial Models
15.05.17 E. Pournaras Network Optimization with I-EPOS
22.05.17 O. Rouly Final presentations
29.05.17 O. Rouly Final presentations / Final exam
Page URL:
© 2017 Eidgenössische Technische Hochschule Zürich