Simulation and Modeling
CSCI 3010U
Winter 2024
Faisal Qureshi
faisal.qureshi@ontariotechu.net

News

Feb 1, 2024
Midterm 1 will take place in class on Feb 7.
Jan 1, 2024
Course website is now up.

Course Info

Syllabus

Lectures

Communication

https://piazza.com/uoit.ca/winter2024/csci3010u72853/home

Office hours

Lab times and locations are available here.

Canvas (requires login)

Labs and inclass exercises will be submitted through course canvas site.

Course notes

Check out these course notes here.

Labs

Lab handouts are available through course canvas site.

Description

This is a survey course on simulation methodologies, techniques, and applications.

Constructing computer simulations is perhaps one of the funnest things one can do with a computer. Imagine the thrill of simulating an entire planet inhabited with life-like beings going about their business, pondering life’s big questions? Ok, we aren’t quite there yet, but already we have access to countless games that simulate one phenomenon or another for the purposes of entertainment. Think SimCity that simulates a metropolis, or Factorio that simulates, what can only be described as, a logistics nightmare. We have games that simulate driving cars, flying airplanes, playing soccer, hunting big game, and fighting in wars, etc. Similarly we have games that simulate entire worlds populated with dinosaurs and robots and everything in-between: Xenoblade, any one.

Within this context, this course aims to introduce students to computer simulations. We will not be using simulation packages rather we will explore the mathematical models and programming practices that underpin systems that can be used to create computer simulations.

Entertainment and games are not the primary use of computer simulations however. Designers and engineers rely heavily on simulations when designing and implementing complex systems, e.g., airplanes, bridges, highways, drugs, nuclear reactors, etc. Simulations enable us to ask the what if question, which is especially useful when we do not have the access to the actual system or when it is simply too dangerous to run the experiments on the actual system. E.g., how many cars before a bridge collapses? Clearly, we cannot pile cars on a bridge and wait for it to collapse! Many a times simulation is the only mechanism through which we can study a phenomenon.

Another use of simulations is in education and training sphere where it is sometimes easier, cheaper, less dangerous to use a simulation for training. Think how pilots are routinely trained on high-fidelity flight simulators.

Within this context, we will discuss the mathematics, physics, and statistics theory plus programming practices that underpin modern computer simulations. The focus is not to use existing computer simulation tools rather the course aims at developing competency needed to implement computer simulations. By necessity we will focus on setting up simulations for toy problems, such as a ball bouncing on an inclined plane, a factory floor, nuclear decay, random walks, etc.

Grading

A student must get 50% in the midterm examinations to pass the course.

Important dates

Ontario Tech University’s academic calendar that lists important dates (and deadlines) is available at here.

Course Calendar

Week 1

Topics

Notes

Lab

Labs start from the second week. Labs will be available on the course canvas.

Week 2

Topics

Notes

Code examples

Activity

Lab

Week 3

Topics

Notes

Code examples

Activity

Lab

Week 4

Topics

Notes

Code examples

Activity

Lab

Week 5

Midterm 1

Topics

Notes

Lab

Week 6

Topics

Notes

Code examples

Activity

Lab

Week 7

Topics

Notes

Code examples

Random processes

Activity

Lab

Week 8

Topics

Notes

Activity

Week 9

Topics

Notes

Lab

Week 10

Midterm 2

Topics

Activity

Week 11

Topics

Notes

Activity

Week 12

Topics

Notes

Course project (Slides)

The course project is an independent exploration of a specific problem within the context of this course. The topic of the project will be decided in consultation with the instructor.

Project grade will depend on the ideas, how well you present them in the report, how well you position your work in the related literature, how thorough are your experiments and how thoughtful are your conclusions.

Teams of up to two students are allowed.

Please use the VCLab Course Project Template available at Overleaf for your project report. It is expected that the project report is between 4 to 8 pages long.

Additionally, you may submit a 3 minutes video for your project.

Below, you will find a list of projects that students have done in the previous iterations of this course:

Final report and a three-minutes video

For your final project write-up you must use the VCLab course project template available at Overleaf. Project report is expected to be between 4 to 8 pages.

Additionally, you may submit a 3 minutes video for your project.

Resources

Reading material

No single textbook covers all the material that we will discuss in this course. Still the following two books are useful for a deeper study of most of the topics that we will cover in this course.

Students are strongly encouraged to take their own notes during lectures.

Programming resources

Course labs will use Python3.

In the past, we have also used the OSP Java Package and Arena Simulation Software.