[PDF version of this document]| [HV Home]

Modelling and Simulation

Modelling and Simulation

 

Fall Term 2001


General Information

Course title Modelling and Simulation
Course number CS 308-522A
Prerequisites CS 308-251 (data structures and algorithms),
CS 308-302 (programming languages and paradigms),
CS 308-350 (numerical computing).
Some experience with object-oriented design and programming.
If you do not have the pre-requisites for the course, the course will be
deleted from your record by the Faculty of Science.
This is a ``project'' course which means you will learn to build and use
full modelling and simulation tools in the numerous assignments.
You are advised to not take more than one other ``project'' course.
Course venue Leacock 14 (check infomcgill).
Monday and Wednesday, 14:30 - 16:00 (starting Wednesday 5 September)
Tentative Schedule
Enrollment Cap Enrollment is limited to 45 students.
Instructor Prof. Hans Vangheluwe
McConnell Engineering room 328
tel.: +1 (514) 398 44 46
e-mail: hv@cs.mcgill.ca
Office hours Monday 16:00 - 18:00 (formulate questions via e-mail first !)
TA Dr. Juan de Lara
TA Office hours Wednesday 16:00 - 18:00
McConnell Engineering room 202 (Modelling, Simulation and Design Lab)

Course Goals

Objectives

The course aims to teach the generic (i.e., tool and application domain independent) concepts of modelling and simulation. By the end of this course, you should have a deep understanding of the concepts of modelling and simulation of dynamic systems using a variety of formalisms. You should be able to build modelling and simulation systems (during the course only two are used, others are built from scratch). This will give you ample background to understand and use existing modelling and simulation systems. The course presents general modelling and simulation principles by applying them to concrete problems. Through the assignments (building prototype modelling and simulation tools), some experience in structured, object-oriented design and implementation will also be acquired.

Prototype modelling tools and simulators are constructed based on the theory. This is preferred to using commercial simulation tools as it leads to much better insight.

Applications (software process modelling and simulation, reactive systems design, population dynamics analysis, traffic analysis, supermarket queueing, etc. ) are used to illustrate the different modelling formalisms and serve as case studies for the tools built in the assignments.

Rationale and Content

In the course, a bird's eye view of the state-of-the-art in modelling and simulation is presented. Hereby, the close relationship between modelling and simulation on the one hand and the analysis and design of complex (software and hardware) systems is highlighted. A formal specification of modelling and simulation formalisms and processes reveals the need for a host of computer science techniques such as graph algorithms, compilers, computer algebra, software engineering, and graphical user interfaces. By means of these techniques, modelling and simulation tools are developed.

The modelling and simulation formalisms and tools supporting their use are themselves highly useful for the analysis, design, and implementation of complex, often embedded software systems, interacting with the physical world.

The complexity of current and future systems is not only due to a large number of components (tackled by hierarchical decomposition), but is also caused by the increasing diversity of components and problem aspects. A photocopier for example combines software, analog electronic, digital electronic, electrostatic, thermodynamic, hydraulic, ... aspects and components. To easily express the structure and behaviour of such systems, multiple formalisms must be used. Such models are a basis for documentation, analysis, formal proof, simulation what-if analysis, optimization and (embedded) application code generation.

The course presents a holistic view of the modelling and simulation enterprise. Rather than focusing on particular applications, or on specific tools, it starts from a general methodology which stresses the generic, application-independent aspects of modelling formalisms and their implementation. The main aim of the course is to provide the theoretical background, methods, techniques and tools for complex problem solving, with emphasis on the software aspects.

The formalisms covered range from Causal Block Diagrams, Differential Algebraic Equations, Forrester System Dynamics, to Finite State Automata, State Charts, Petri Nets, DEVS, and the different Discrete Event World Views. More importantly, the relationships between these, how to meaningfully couple them, as well as their relative merits and disadvantages, are investigated. For each formalism, the design and implementation of a solver or simulation kernel is presented.

From the practitioner's point of view, the course describes different modelling formalisms, existing languages and to a lesser extent, tools. From the computer scientist's point of view, the course describes the techniques and standards employed in the construction of modelling environments and simulators.

Each of the topics is introduced by means of an example, followed by a theoretical presentation, followed by a more in-depth example.

Method of Instruction

Ex cathedra lectures.

Each group of new topics will be implemented in an assignment using the ``executable pseudocode'' scripting language Python.

Course Materials

A course pack will be made available providing a selection of book chapters and articles.

Assignments and Evaluations

Assignments and Projects:

Structure:

Grading

Grades will be distributed over assignments, project and exam:

If a student fails to achieve a passing mark, he/she has the option of taking a supplemental exam, which will again count for 25% of the marks. Additional work may assigned to improve assignment/project grades.

Assignments and projects will be judged on:

Original Work

You are encouraged to help each other formulate the ideas behind assignment problems, but each student is required to submit his or her own original work. Handing in work that is not your own, original work as if it is your own is plagiarism. See section 15 of Student Rights and Responsibilities Handbook for more details. In-class presentations will check thorough understanding of assignment results. The assignment/project presentations count for 10% of the total marks.

References

Some of the main components of the course pack are:

With the exception of Cellier's book (to be ordered), the above are available at the PSE library.




Translated from TEX by TTH, version 2.89 (minor customizations by HV). On 4 Nov 2001, 16:53.