Modules

Source code for the following modules are available upon request.

Introductory Course

  • Trial and Error
    Target Course(s): Introduction to Computer Science
    Provides learning experience on the concepts of the “trial and error” method, embedded control using computer programs, and solution evaluation to a technical problem
  • Binary Search
    Target Course(s): Introduction to Computer Science
    Provides learning experience on “binary search”, the concept of algorithm efficiency, embedded control using computer programs, and solution evaluation to a technical problem.
  • Simple Model
    Target Course(s): Introduction to Computer Science
    Besides embedded control using computer programs and solution evaluation to a technical problem, the module provides experience on constructing a mathematical model using experimental data and applying the model to solve a simple robotic control problem.
    Print your own gridded paper for graphing mathematical functions.
  • Timing
    Target Course(s): Introduction to Computer Science
    increase the complexity of this course module by adding a timing constraint to the problem itself. This addition significantly increases the complexity of the problem.

Model and Verification

  • Module 0: Security Access Device
    Provides introductory content for the other modules, preparing students to interact with Ptolemy II for modeling and the Android Development Kit for implementation.
  • Module 0A: Security Access Device Using Arduino
    Target Course(s): Introductory Programming
    Provides introductory content about Finite State Machines (FSMs), implementing FSMs using C++, and using the Arduino platform in combination with TinkerKit.
  • Module 1: Human Activity Classification
    Target Course(s): Operating Systems, Embedded Systems
    Introduction to signal processing, using Ptolemy II for application modeling and Android for implementation.
  • Module 2: Baby Toy
    Target Course(s): ?
    Introduction to (discrete) timed FSM and their translation into Android code.
  • Module 3: Campus Parking
    Target Course(s): Operating Systems
    Introduction to concurrency in the context of Android applications, which is modeled via concurrent state machines.
  • Module 4: Sound Beacon
    Target Course(s): Networking
    Introduces basics of network communication and contention using sound as the medium.

Networks

  • Module N1: Net Design
    Target Course(s): Networking
    Introduces basics of network protocol design using Mealy Machines, an extension of Finite State Machines.