CS572 Modeling and Simulation of Systems (Spring 2025)

Elective course for UG and PG students (credits: 3)

About This Course

Simulation plays a critical role in the design, analysis and optimization of complex systems in most engineering disciplines. This course focuses on the simulation of Discrete-event systems (that is, systems in which the state is assumed to change at discrete time-instants only, as opposed to a system where the state evolves continuously in time). Computer networks, manufacturing systems, clocked digital circuits and inventory systems are some examples where discrete-event simulation is widely used.

The objectives of this course are to help the student build a strong intuition of how discrete-event simulation works, and to develop the ability to model and simulate a given system effectively and interpret the results correctly. Programming-based assignments will form a significant component of the course. The course will make use of Python's SimPy library.

Topics:

  • Introduction to models and simulation, types of simulation.

  • Approaches to discrete-event simulation.

  • Introduction to Python's SimPy library using examples. (programming assignments)

  • How SimPy works, understanding SimPy's basic constructs and its design

  • A review of basic probability theory and Markov chains (optional: discussion of basic queueing models)

  • How do we generate Random Numbers and Random Variates for simulation

  • Input modeling (representing observed data using random variates and fitting distributions)

  • Simulation-based estimation of performance measures

  • Discussion of some examples and use-cases in modeling and simulation (computer networks, manufacturing systems etc).

  • (Optional, if time permits) Approaches for parallel and distributed simulation.

Prerequisites

Basic probability theory, Familiarity with Python programming

References

  • Probability, Markov Chains, Queues, and Simulation, by William J. Stewart

  • SimPy Documentation

  • Discrete-Event System Simulation, 5th Edition, By: Jerry Banks, John S. Carson II, Barry L. Nelson, David M. Nicol

  • Parallel and Distributed Simulation Systems, by Richard Fujimoto

Lecture Timings

  • Tuesdays 11am-12noon (LT2)

  • Wednesdays 10am-11am (LT2)

  • Thursdays 8am-9am (LT2 by default, CC lab for announced quizzes and exams)

All class notifications and resources will be uploaded on Google classroom. Login using your IIT Goa account.

Evaluation components (3 credits)

  • Programming-based Assignments, Quizzes and Project: 50%

  • Mid-semester Exam: 20%

  • End-semester Exam: 30%

Course Calendar

Link to course calendar