Available material

A series of workshops were presented in 2008 at Statistics Canada. Material from these workshops is made available as reference material. Please note that some of the information in these workshops may be out of date.

Download a copy of the workshop presentations (EXE, 20.21 MB)

Summary of training workshops

Overview material

  • Introduction to Modgen (1_IntroductionToModgen.ppt and 1_IntroductionToModgen.doc): an overview of Modgen’s component products and major model elements, as well as a summary of the steps that take place when a model is executed.
  • Modgen--an overview (8_WorkShopIMA2009_Part1.ppt): an outline of Modgen's powerful model generation features (common interface, event queue maintenance, on-the-fly tabulation, automatically-generated model documentation, etc.) and companion tools, plus a description of each known model created using Modgen since the product's release in 1994, thus demonstrating the wide diversity of models that Modgen has produced and is capable of producing
  • A look inside Modgen models (8_WorkShopIMA2009_Part2.ppt): a breakdown of the different entities or building blocks (actors, states, events, parameters, tables, etc.) necessary and/or available to build a model, plus a description of the sequence of steps or phases that occur during the course of a model simulation run

Programming in Modgen

  • Basic Modgen syntax (6c_Basic Modgen syntax.ppt): an overview of the syntax required to declare and/or define the major Modgen symbols (types, parameters, actors, states, events, tables, etc.), with a companion document summarizing this syntax (Modgen syntax cheatsheet.doc)
  • Building the model "RiskPaths" (8_WorkShopIMA2009_Part3.ppt and 8_WorkShopIMA2009_Part4.ppt): an introduction to the teaching model RiskPaths, including a background to the model's contents, its user interface, and code samples for creating events and generating tables, plus an additional section containing an itemized list of the steps required to add an event to the original model, with instructions on how to implement each step
  • The art of debugging  (7_The art of debugging.ppt): an overview of three major categories of bugs (compile-time bugs, run-time errors, unexpected results), with examples of bugs from each category and methods via which developers can try to find and remedy such bugs, plus a companion folder, Debugging, with many code examples used in this presentation
  • Modgen model coding conventions  (1_ModgenModelsConventions.ppt and 1_Conventions_EN.doc): an outline of different coding conventions (symbol naming, code layout, etc.)  that can be used in Modgen models to promote a better understanding of model code and to minimize the risk of generating certain types of bugs
  • Tracking  (3_Tracking.ppt and 3_Tracking.doc): an outline of how to define tracking for an actor and activate the tracking for a particular scenario, plus a discussion of the potential costs associated with tracking

Development environment

  • C++ for model developers (6b_C++ for model developers.ppt): a brief overview of the C++ programming language, concentrating on concepts that tend to be more useful when building Modgen models, including a companion document, C++Cheatsheet.doc, that summarizes these C++ commands
  • Visual Studio 2008 for model developers (6a_Visual Studio 2005.ppt): a brief overview of the Visual Studio 2008 development environment as it pertains to building Modgen models, including a companion document, VS2008CheatSheet.doc, that summarizes the environment

Building blocks for Modgen models

  • Table Workshop (3_Tables.ppt): an introduction to the event-based tabulation techniques used in Modgen tables, plus a companion document, MyTables.mpp, with the corresponding examples of Modgen table definition code
  • Derived states (4_DerivedStates.ppt): an overview of the different categories of derived states available to developers of Modgen models, including the syntax, description, and result type for each derived state, along with an example of how to use each state; a companion presentation, 4_Examples.ppt, provides an interactive quiz on determining which derived states to use in various situations
  • Continuously updated states (5_Continuously updated states.ppt): an introduction to continuously updated states, reviewing their strengths and weaknesses, and including a discussion of both appropriate and inappropriate uses of such states
  • The progression of time in a Modgen model (5_Timeprogression.ppt): the means or methods by which time advances in either case-based (non-interacting-populations) or time-based (interacting populations) Modgen models, featuring several code samples

Releasing a model

  • Dissemination of a Modgen model (2_Dissemination of a Modgen model.ppt): an outline of the various considerations (license issues, release notes, setup programs, contents of public versions, etc.) that must be incorporated before disseminating a Modgen model to others
  • Model Management (2_Model Management.doc): a description of the various techniques that can be used to effectively manage Modgen model code and releases

Model documentation

  • Documentation of a Modgen model (2_Documentation of a Modgen model.ppt and 2_Documentation of a Modgen model.doc): a discussion of the aspects of a model that must be documented, differentiating between that which is automatically generated by Modgen and that which the developer must focus on (including specific items to document and how to do so), plus an overview of language translation issues
  • Modgen Translation Assistant (2_ModgenTranslationAssistant.doc): a description of the Translation Assistant utility which facilitates the process of creating multilingual models, either whether the model has never been translated before or whether it has been previously translated

Theoretical background

  • Obtaining event times from hazards (6_Obtaining event times from hazards.ppt): a technical presentation showing the calculations behind how event times are obtained or derived from constant or piecewise constant hazards
Date modified: