|Course number||CS 308-767A|
|Course title||Multi-formalism Modelling and Simulation|
|Prerequisites||Set theory, numerical analysis, object-oriented programming.|
|Compilers background is appreciated but not necessary.|
|Do not take 767A in conjunction with more than one other ``project'' course.|
|Course venue||McConnel Engineering room 320|
|Monday and Wednesday, 13:00 - 14:30 (starting Wed 6 September)|
|Instructor||Prof. Hans Vangheluwe|
|McConnell Engineering room 328|
|tel.: +1 (514) 398 44 46|
|Office hours||Monday 14:30 - 18:30 (formulate questions via e-mail first)|
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 using a variety (and combination) of formalisms. You should be able to build, from scratch, modelling and simulation systems (during the course only two are used, others are built). This will give you ample background to understand and use existing modelling and simulation tools. The course wants to you for the application of general modelling and simulation principles to concrete problems. Through the assignments (building prototype modelling and simulation tools), some experience in structured, object-oriented design and implementation should be acquired.
The course's main focus is not:
In the course, a bird's eye view of the state-of-the-art in modelling and simulation (and possibly a hint of the future) 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, multi-formalism models can 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, and Bond Graphs, 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 -possibly distributed- 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.
An overview of topics covered is presented with the
schedule of classes.
As the course progresses, this overview will be filled in with links to presentation material, online articles, assignments, etc.
Ex cathedra lectures, with (hopefully) frequent interaction from the audience.
Each group of new topics will be implemented in an assignment using the ``executable pseudocode'' scripting language Python.
There are no required texts. Before/during each lecture, both notes and articles will be made available, in electronic form whenever possible.
The most relevant books are:
With the exception of Cellier's book (to be ordered), the above are available at the Physical Sciences and Engineering Library (PSEL).
A list of (suggested) references to articles and websites is found on each lecture's page.
Some assignments and the project may be worked on in teams (of 2 or 3 members), though this is not necessary. Individual work must be indicated.
Assignments and projects will be judged on:
Grades will be distributed over assignments and project/exam:
It is expected that all students understand University policies on academic honesty.