Flash Master Class: Building Equipment Simulators

   
Registration:

CONTACT US for information

   
Course Description:

Computerized, interactive device simulators, such as flight simulators, enable learning when it is impractical or inconvenient to use the real device. The array of multimedia tools available today makes the production of simulators accessible to a wider audience of designers and programmers. These tools facilitate the process of creating simulators such that the challenge of producing them is less about how to program the specific elements involved, and more about how to manage the complexities of developing a simulator. In other words, you need good methodologies for planning, organizing, designing, and implementing an interactive device simulator. That is where this class comes in.

Over the eight weeks of this course, students learn the fundamentals of creating Flash-based interactive simulators, in the context of creating their own simulation projects. The class teaches programmers practical applications of state machines (finite state automata and statecharts) in the design and use of product simulators, as well as how to use and build components. Students are introduced to the principles and processes, as well as their implementation in ActionScript 2.0 (Macromedia Flash Professional 8).

The class format is a mix of pre-recorded material, several (depending on class size) weekly live "office hour" sessions (delivered via ASAP, by Convoq), and asynchronous discussion (board) interaction. Before the class begins, students receive all the printed and electronic materials, and therefore can proceed at their own pace. The class is designed, however, to fit a eight week schedule in which each week is devoted to a different topic. We expect students should devote at least 8-10 hours per week to the class--approximately 2-3 hours of recorded lectures, and the remaining time on application to their simulation projects. Separate discussion boards are set up for each weekly topic, however the priority during office hours will be for topics related to the current week.

We understand that high priority work may spring up during the class and we don't want you to feel you will miss out on the material. That's why once you join the class, you become part of the community. That means you have access to the private discussion boards and future class office hours (space permitting). This class is like joining a focused group of talented developers who need to address the same issues as you and want to help one another!

MakingThings box
MakingThings:
Connecting the Physical and Software Worlds in Flash

While learning principles of good simulator design should be strong motivation in itself, we want to make this even more enticing. In cooperation with the folks at MakingThings, we have some great prizes for the best simulators built, in a couple of categories. Whether for work or play, this means you can bring your simulations into the real world with their products--a line of modular and networkable hardware components that control and manage a wide variety of input and output devices (e.g., sensors, motors, LEDs, and more).

Important: prize(s) are offered depending on the number of students that register for each class. Small classes limit the number and size of prizes we offer.

   
Prerequisites: Students should have experience with object-oriented programming in ActionScript or a related language (Java, C++, etc.). Experience with Flash 8 is highly recommended.
   
 

What are students saying from prior classes?

The class definitely met my expectations. As a self taught developer I needed to be exposed to effective structures for planning and building simulations. This course offers, and presents, structures that can be applied to simulation projects.

I would recommend this class to anyone planning and developing complex simulations requiring logical assembly and extensibility....For me, the strength of the course was the underlying logical structures that have been clearly refined over the years. It was good to get perspectives and understanding from someone who has 'done the hard yards' so that I don't have to.

I just wanted to thank you for the time you took teaching us this method of designing simulations in Flash. I've seen Flash sims done both ways and what you have provided here is a virtual lifesaver as far as communication, development time, troubleshooting and documentation are concerned. I can foresee us using this method extensively here...

I bought the book a little while before the class was announced and the class really helped to clarify the concepts in the book.

...Your RTVis, XML2Code, and components are worth the price of admission, by themselves...

Snapshots of the prize-winning entries from recent classes:

March Class - First Place. Ron Starck. Home Range/Stove.
 
March Class - Second Place. Darvin Fitzgerald: MP3 Player
 
Jan Class - First Place. Tim Seeley: Home Generator.
 
Jan Class - Second Place. Craig Clark: Home Heater.
 
 

Jan Class - Third Place. Grant Sherson: IV Infusion Pump.

The key role of this simulation is as a realistic input device for training and evaluating students understanding of drug dosage. The IV simulation will be incorporated within a training package that will enable student input of 'rate' and 'volume' data in response to practice exercises. The training package will be used within the nursing courses offered at UCOL – Universal College of Learning (www.ucol.ac.nz) and is being developed in-house by Grant Sherson (www.ucol.ac.nz/~g.sherson).

   
Course Schedule:

The class is conducted over an eight week period, with an average of 1-2 hours of recorded audio/video lecture per week typically, as well as a minimum of two hours of office hours (via ASAP, by Convoq), and 24/7 asynchronous discussion boards. A limited amount of further chat and email time with the instructor is free, but available by appointment.

Some dates may change due to unforeseen scheduling conflicts that arise.

   
Cost: Corporate Developer US $500
  Member of local Macromedia Users Group US $450
  Non-Profit / Educational / Government US $350
       
  Students who work together on a project can qualify for an overall discounted rate of $200 for each additional student (the additional student rate for non-profit developers is $150).
   
   
Required Text/ Materials:

Kaye, J. and D. Castillo, Flash MX for Interactive Simulation: How to Construct and Use Device Simulations. Delmar Thomson Learning, November, 2002.

When you register for the class, you will receive

 

Optional texts:
   
Instructor: Jonathan Kaye, PhD
   
Contact: jmk-at-FlashSim.com
   
Office Hours:

Via ASAP. Held:

  • Tuesdays from 3:00PM - 4:00PM EST
  • Fridays from 12:00PM - 1:00PM EST
  • or by appointment.

Important: due to the instructor's summer schedule, there will be no office hours during the week of June 26. Also, some office hours will have to be changed during the course due to other scheduling conflicts that may arise.

Depending on geographic distribution of class, we may add more office hours to suit various time zones around the world.

   
Discussion Boards: Private discussion boards off of the main FlashSim boards.
   
Objectives:    

Upon completion of this course, students will be able to:

  1. Use the event/listener mechanism to program Macromedia v2 components, and use and skin FlashSim equipment interface components
  2. (optional) Build and install (MXP) a simple Flash 8 component
  3. Design and implement simulated equipment using hierarchical state machines (statecharts) and the UCM design pattern; and,
  4. Articulate how multiple simulators and didactic material can be integrated within a realistic training context.
   
Topical Outline:
  Each class will focus on the following particular concepts:
 

 

Weeks 1&2. Fundamentals of Simulator Design and Organization
   

Videos:

 

00.HiItsMe

Short introductory video

00 OPTIONAL SmartMedTech

Optional: A 20 minute overview on designing simulators for performance improvement, geared to medical device simulation (a remote talk given at a NASA conference)

01. Installing FlashSim MXPs

How to install the components needed for the class.

02. Tech Overview Part 1

Technical overview of the critical simulator development methodologies. Recorded from Breeze seminars in April 2004.

03. Tech Overview Part 2

Optional: A 1-hour video on how to build a traffic light system. Recorded from Breeze seminars in April 2004.

04. Using FlashSim Components

How to use events and listeners, as well as skinning, for the FlashSim components.

Suggested Reading:

Chapters 1, 4, 11-13, 19.

Assignment:

Determine scope of class project and sketch performance objectives. This should be completed within the first two weeks of the class. The office hours and discussion board can help you to focus your problem and perhaps find other classmates who want to work on the project with you.

Important: You do not need to complete the project within the class time--please read the section on "Project", below, for more information.

OPTIONAL
 

05. How to Build Components

Step-by-step instructions on how to build a component in the v2 framework. This 2-hour video is optional.

Creating a Flash MX 2004 Component - A Walkthrough

A series of guided walkthroughs demonstrating how to build a component in the v2 framework, by Flash expert Jesse Warden (http://www.jessewarden.com/), aka JesterXL.
   
Weeks 3&4. Statecharts

Videos:

 

06. BuildSimsOverview

Overview of the two central methodologies for designing simulators, statecharts and the UCM pattern.

07. Statecharts

 Main lecture on the principles and elements of statecharts.

09. Example StatechartStart

 Supplementary lesson on common state patterns and how to approach their design.

10. Using the FlashSim Tools

Introductory video on the tools that accompany our state engine, to make production and testing quicker.

11. PlumbCodeFStEngv15

Explanation of the "plumbing code" required to program statecharts with our FStEng implementation.

12. Programming Statecharts

Detailed walk-through of how to code all elements of the statechart design, from states to actions and transitions, as well as laying out your simulator FLA.

Suggested Reading:

Chapters 7-9, 15-18

Assignment:

Sketch preliminary statecharts for your project; Develop XML representation; Generate working infrastructure code.
   
Week 5. The UCM Design Pattern

Videos:

 

13. UCM

Describes how to divide-and-conquer by separating system into different, loosely-coupled layers.

Suggested Reading:

Chapter 6.

Assignment:

Determine levels of your system and sketch their roles and communication; Document the messages they will pass between them.
   
Week 6. Integrating a Simulator with a Presentation

Videos:

 

13. Sim And Outside World

How to place your simulator in the context of other presentations and interacting devices.

Suggested Reading:

Chapters 14, 20, 21, 24.

Assignment:

Articulate the API that the outside world will use to communicate with your simulator; Demonstrate successful integration.
   
Week 7. Advanced Concepts

Videos:

 

14. AdvancedConcepts

A collection of odds-and-ends techniques going beyond the basic use of the implementation, including event recording/playback, an explanation of how event handling is implemented, and more.

15. FinalAdieu

What do you expect this one to be?

Suggested Reading:

Chapter 27.

Assignment:

Complete your work on your class project.
   
   

 

Class Materials:

Videos (MOV and AVI format), PDF files, printed slides, and Flash materials will be sent to students before the beginning of the class. To minimize the number of disks, the DVD containing all electronic materials will contain the videos in a ZIP file.

All materials are copyrighted by Jonathan Kaye and Equipment Simulations LLC. You are granted a royalty-free license to use the state engines and components in your commercial and non-commercial work, but you may not distribute them or the class materials without prior written consent.

   
Assessment and Grading Policy: A PASS or FAIL assessment will be made by the instructor, based on student projects and class participation. PASS requires a grade of 70% or above. Students who PASS will receive a certificate of completion.
         
    Project   90%  
      How would you measure success with your presentation/simulator? 5%
      How could this be used? 5%
      Design: Clear documents, appropriate complexity, met project goals 45%
      Implementation: works as charts say it does; efficiency 45%
         
    Discussion Board Participation  10%  
         
   
 

Project: Since the goal of the class is to enable students to design and build equipment simulations, each student will choose a project to develop. Students may work together on projects. A good project is not necessarily a completely-working system, as few complex systems can be built in such a short time while learning the concepts. Rather, the goal is to find a well-defined, "proof-of-concept" project that you can see will contribute to your work goals. You will need to declare your project within the first two weeks, and the instructor and classmates can help focus what you would like to accomplish for the project.

At the completion of the course, projects and designs will be displayed to the public on the Flash MX for Interactive Simulation web site (www.FlashSim.com), unless a student specifically requests not to publish the work.

Participation: The online discussion board is provided for your benefit and those of your classmates, to help evoke, think out, and solve common issues. The online discussion board will give you the opportunity to help one another on project work. A part of your grade will be based on your participation.

Discussion Board: The discussion board URL will be sent to students at the beginning of the course.

 

  

Instructor Profile:

Jonathan is the president and co-founder of Equipment Simulations LLC, an interactive design and engineering firm that specializes in the development of interactive device simulations for training and promotional presentations, particularly, but not limited to, the medical device industry. He is the lead author of the book, “Flash MX for Interactive Simulation: How to Construct and Use Device Simulations,” (www.FlashSim.com) published by Delmar Thomson Learning, November, 2002.

At Equipment Simulations, Jonathan is the chief programmer, and has coordinated and developed Amethyst's most successful products. He has taught audiences at various skill levels, from management overviews, to technical lectures on introductory computer science classes or advanced programming topics. His academic and technical articles have appeared in several major journals, magazines, and web sites. He is an invited speaker at Flash, simulation, e-Learning, and medical conferences, including Macromedia DevCon, AAMI, SIGGRAPH, Online Learning, and Flash Forward, among others. Jonathan also leads customized workshops to teach how to develop simulations for training and rapid prototyping.

Jonathan graduated from Cornell University with a B.A. in Computer Science, and from the University of Pennsylvania with a Ph.D. in Computer Science (1996). His award-winning doctoral research simulated cardiopulmonary interactions and its disruption by penetrating trauma.

   
   

 

The instructor reserves the right to make changes to this syllabus if circumstances warrant such change. All changes will be provided to students by email.

Course L