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

News

Feb 16, 2025
No classes during reading week. Regular programming will resume on Monday, Feb 24.
Feb 12, 2025
Feb 12 in-class notes are now uploaded.
Feb 3, 2025
First midterm will take place on Wednesday, February 5. The midterm will start at 11:10. The duration is 80 minutes. The midterm will cover everything that we will have covered thus far. It is a paper based midterms. No aids are allowed. It is okay, however, to bring a basic calculator, in case you need it.
Jan 30, 2025
Jan 29 in-class notes are now uploaded.
Jan 29, 2025
Please complete this Survey.
Jan 29, 2025
Jan 29, 2025
Considering honors thesis or graduate studies? I have made a short video that describes visual computing lab.
Jan 27, 2025
Lab 3 on earth and moon is now available on Canvas.
Jan 23, 2025
Jan 22 in-class notes are now uploaded.
Jan 18, 2025
Lab 2 on projectile motion is now available on Canvas.
Jan 16, 2025
Jan 15 in-class notes are now uploaded.
Jan 8, 2025
Clockwork Universe by Edward Dolnick is the book that I mentioned yesterday. It is a fun read about the history of science.
Jan 8, 2025
Labs will start from the week of Jan 13.
Jan 1, 2025
Course website is now up.

Course Info

Syllabus

Lectures

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 exams 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

Activity

Lab

Week 6

Topics

Notes

Code examples

Activity

Lab

Reading week break

Week 7

Topics

Notes

Lab

Week 8

Topics

Notes

Code examples

Activity

Week 9

Topics

Activity

Week 10

Midterm 2

Topics

Notes

Lab

Week 11

Topics

Activity

Week 12

Topics

Notes

Activity

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.

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.