CPSC 531: Systems Modelling and Simulation
(Mahanti:L01, Fall 2005)

Systems modelling and simulation techniques find application in fields as diverse as physics, chemistry, biology, economics, medicine, computer science, and engineering. The purpose of this course is to introduce fundamental principles and concepts in the general area of systems modelling and simulation. Topics to be covered in this course include basics of discrete-event system simulation, mathematical and statistical models, simulation design, experiment design, and modelling of simulation data. Further details regarding this course can be found by following the links given below:


09/12/05: Some of you reported problems with downloading the solution keys. These problems have been resolved. If you are still unable to download the solution keys, please email me.
08/12/05: Extended office hours: December 9 through December 14, from 09:30 hours - 12:00 hours (approximately).
08/12/05: Solution key to assignment 4 released. Please note that the solution keys are accessible only from computers in the ucalgary.ca domain. If you experience difficulties in obtaining the solution keys, please send me an email.
08/12/05: We now have grades for all assignments and the midterm. You can find your grades for this course here. Most problems pertaining to your grades are now resolved. However, if your reported grade still does not match that assigned grade, please send me an email with your correct grade; copy your email to the concerned TA so that we may rectify the error. Thanks!
08/12/05: Your teaching assistants have finished grading assignment 4. Please contact him to obtain your graded assignment.
05/12/05: The final exam review session will be on Thursday, December 8, 2005. Attend if you can.
05/12/05: Lecture notes for the Output Data Analysis topic released. We will cover this topic tomorrow (Tuesday).

Administrative Information

Here you will find administrative information for the Fall 2005 offering of CPSC 531. There are two tutorial sessions for this course. The Teaching Assistants (TAs) will discuss material referred to as "self study" in the lectures, introduce the CSIM simulation software, and provide help with assignments. The tutorials are organized for your benefit and you are strongly encouraged to attend them. Details pertaining to your tutorial sessions are given below:


The recommended textbooks for this course are: It is recommended that you purchase one of the above-mentioned textbooks. Note that lectures will be drawn from the above textbooks as well as other sources (e.g., books, research literature, etc). Other textbooks that I will be referring to include:

CSIM Simulation Toolkit

Assignments will involve programming using the CSIM simulation tool. CSIM is an extension to C++ that includes several features that aid in writing simulation programs. For example, CSIM includes buffer and queue management functions, tools for generating random variables, and modules for gathering statistics. CSIM is available on all departmental Linux servers accessible to undergraduate students. CSIM documentation can be found here.

Outline (tentative)

  1. Introduction (1 week) What is simulation, when to use simulation, simulation terminology, application areas, model classification, types of simulation, steps in a simulation study, advantages/disadvantages of a simulation study
    Lecture slides: Introduction (PPT, PDF)
    Readings: Chapter 1 (omit Sections 1.3-1.5) from [LK00] or [BCNN05]
  2. General Principles and Examples (1.5 weeks) Concepts of discrete-event simulation, list processing, examples: single-server queueing simulation, time-shared computer model, multi-teller bank with jokeying, job-shop model
    Lecture slides: Discrete-event simulation (PPT, PDF), single-server simulation (PPT, PDF), time-shared computer model, multi-teller bank (PPT, PDF)
    Readings: Section 1.3, Section 1.4, and Chapter 2 from [LK00] or Chapters 2 and 3 from [BCNN05]
  3. Statistical Models (1.5 weeks) Review of basic probability and statistics, discrete distributions, continuous distributions, empirical distributions
    Lecture slides: Probability review part I (PPT, PDF), probability review part II (PPT, PDF), discrete and continuous distributions (PPT, PDF)
    Readings: Chapter 4, Sections 6.1, 6.2, 6.12 from [LK00] or Chapter 5 from [BCNN05]
  4. Queueing Models (2 weeks) Queueing systems, important random processes, birth-death queueing systems, Markovian queues in equilibrium
    Lecture slides: Introduction to Queueing Systems (PPT, PDF)
    Readings: Our discussion on the Operational Laws is based on Chapter 33 of [Jain91] and Chapter 3 of [LZGS84]. The second text is available online. Please follow this link.
  5. Generating Random-Numbers (1 week) Properties of random numbers, techniques for generating random numbers, testing random number generators
    Lecture slides: Random-Number Generation (PPT, PDF)
    Readings: Chapter 7 from [LK00] or [BCNN05]
  6. Generating Random-Variates (1 week) Inverse-transform technique, acceptance-rejection technique, composition, convolution
    Lecture slides: Random-Variate Generation (PPT, PDF)
    Readings: Sections 8.1,8.2, and 8.3 from [LK00]; Cahpet 8 from [BCNN05]
  7. Input Modelling (1 week) Data collection, assessing sample independence, hypothesizing distribution family with data, parameter estimation, goodness-of-fit tests, selecting input models in absence of data, models of arrival processes
    Lecture slides: Input modeling (PPT, PDF)
    Readings: Sections 6.4-6.6, 6.11, and 6.12 from [LK00] or Sections 9.1-9.4, and 9.6 from [BCNN05]
  8. Output Data Analysis (1 week) Transient and steady-state behaviour of a stochastic process, types of simulations with regard to output analysis, statistical analysis for steady-state parameters
    Lecture slides: Input modeling (PPT, PDF)
    Readings: Sections 9.1-9.5 from [LK00] or Chapter 11 from [BCNN05]
  9. Experiment Design and Sensitivity Analysis (1.5 weeks) Common mistakes in experimentation, types of experiment design, 2^k factorial designs, coping with many factors
    Lecture slides: Experiment design, performance evaluation, graphing tips etc. (PPT, PDF)
    NOTE: The example used in the lecture notes is derived from the paper Locality Characteristics of Web Streams Revisited by Aniket Mahanti, Anirban Mahanti, and Carey Williamson. This paper appeared in the Proceedings of the SCS Symposium on Performance Evaluation of Computer and Telecommunication Systems (SPECTS), Philadelphia, PA, July 2005.
    Readings: Sections 12.1-12.3 from [LK00]; additional material will be drawn from [Jain91].



The evaluation will consist of three components namely, assignments, a midterm examination, and a final examination. Each of the these components will be given a letter grade using the official University. The final grade will be calculated using the grade point equivalents weighted by the percentages given above and then reconverted to a final letter grade (using the official University grade point equivalents).
  1. Assignments (30%)
    There will be four assignments in this course. The assignments will consist of a mix of paper & pencil questions, and programming projects.
  2. Midterm Examination (30%)
    A 75-minute "closed-book" (no books, no notes) in-class midterm examination will be held on Thursday November 3, 2005. Exam and Solution Key
  3. Final Examination (40%)
    This course will have a 120-minute closed-book final examination, scheduled by the Registrar's office. Thursday December 15, from 3:30-5:30 PM at ST 141.
Special regulation affecting calculation of final grades: Students need to pass the assignment component and the final exam component of the course to obtain a passing grade in this course.