Course Description

This course introduces students to the fundamentals of computer simulations in the context of interactive media. Students are exposed to tools and techniques for modeling physics, agents (behaviors) and visual effects, in order to design expressive interactive media. This course also covers the foundations of game ​design, including history, technology and theories that drive the process of making ​interactive ​games​. Moreover, students learn programming in Lua with LOVE2D, which is a game engine used for all the homework assignments.

This is a studio based course, so students are expected to produce a working prototype (with graphics, sound and controls) for each topic covered in class in addition to a final project. The final project is a creative interactive simulation fully designed and implemented by them. Students are encouraged to work in groups so they can simulate a creative working environment (like a game studio), where they share knowledge and develop their communication skills. At the end of the course, each student play/experience all the final projects and provide feedback.


CSIM was designed for students with no prior experience in programming. However, due to time constraints, there are only two lectures focusing specially on this topic. Thus, it is very helpful if students have some notions of computer programming.

This course has substantial elements of physics and mathematics, so students should be prepared to review Classical Mechanics and Trigonometry on their own if it is not fresh in their heads.

Programming Language

Programming assignments are done in LOVE2D, which is a framework for making games in Lua.


This course includes eleven programming projects and one creative project. Assigments are expected to be completed in 3h.


No textbook is required for this course. However the material presented here heavily references the following: