FSU Seal - 1851

    COP 4380 Reactive Systems Programming
    Summer Semester 2016


This class has students attending in two distinct modes:

  1. Mixed Mode - recitation several times during the semester
  2. Distance Mode - all interaction is asynchronous on-line

The content, objectives, assignments, assessments, and grading are the same for all students. Obviously, however, mixed-mode and distance students sometimes participate in different ways.

For all students: Regular participation via the campus.fsu.edu [Blackboard] course interface is required. Official course announcements, lecture materials, assignments, and help archives will all be on-line at this site. Note that all registered students should have the course web site listed on their campus.fsu.edu portal page. Be sure to test this and resolve any difficulties no later than the first week of classes.

For mixed-mode students: Class (recitation) will be met for some weeks, as announced weekly. However, mixed-mode students should treat recitation meetings as supplementary to the primary on-line mode of participation. It is the students responsibility to remain current with the class using on-line resources. All exams must be taken either in class during the exam window or at a proctored exam site administered by FSU testing. (See Exam Schedule below.)

For on-line/distance students: All exams must be proctored and taken during the exam window. It is the student's responsibility to arrange for proctored exams in compliance with the FSU standards. (See COURSE POLICIES for details.) All exams must be taken by appointment at your pre-approved proctored testing site during the online exam window. (See Exam Schedule below.)

Note that students may be required to identify themselves with official FSU ID to sit an exam.


Instructor: Chris Lacher
Office:  A2110 Academic Center / Panama City Campus 
Office Phone (during PC office hours):  850-770-2256 (local direct line)
Mobile Phone & Voice Mail (24/7): 850-510-5575 
Email:  lacher[at]cs[dot]fsu[dot]edu
Mail & Delivery: Florida State University
4750 Collegiate Drive
Panama City, FL 32405-1099
Lacher Schedule
Mentor / TA: Brandon Sheffield
Email:  sheffiel[at]cs[dot]fsu[dot]edu


Hierarchical state machines (finite state machines with a behavioral inheritance hierarchy) provide a theoretically sound methodology for modelling event-driven/reactive systems. Quantum programming provides a framework for lightweight implemention of these HSM models using statecharts in C/C++. The results are sufficiently reliable and lightweight to be suitable for embedded and real-time systems.

COURSE OBJECTIVES: Upon successful completion of the course the student should be able to:

  1. Recognize situations where reactive systems provide appropriate technological solutions
  2. Model a reactive system using finite state machines (FSM) and hierarchical state machines (HSM)
  3. Construct HSM models of reactive systems from requirements using statecharts
  4. Implement statechart-based HSM models in a time- and space-efficient manner
  5. Apply the quantum programming framework to implement embedded/real-time systems applications
  6. Model and implement multiple-thread reactive systems with multiple HSM components
  7. Describe and discuss current practice as established in professional literature

COURSE RESOURCES (subject to expansion and/or revision):

  • Primary References
    1. [PSC++] Practical Statecharts in C/C++(2nd ed)
      Miro Samek
      Elsevier/Newnes, San Francisco, 2009 [ISBN: 978-0-7506-8706-5]
    2. [G4] Design Patterns: elements of reusable object-oriented software
      Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
      Addison-Wesley, 1995
    3. [UML] Unified Modeling Language Reference Manual
      James Rumbaugh, Ivar Jacobson, Grady Booch
      Addision-Wesley, 1998
  • Contacting Instructor: Schedule and Contact Info


Topic    Reference
1. Review of Classic Multi-Threading Threads in C++ ISO_11
2. Introduction to State MachinesCh 1 of [PSC++]
3. Software Design Patterns[G4] - all references to "state"
3. FSM, Statecharts, ModelsCh 2 of [PSC++]
4. UML StatechartsCh 6 and pp 438-448 of [UML]
5. State Machine ImplementationsCh 3 of [PSC++]
6. Behavioral InheritanceCh 4 of [PSC++]
7. State PatternsCh 5 of [PSC++]
8. State Model InheritanceCh 6 of [PSC++]
9. Introduction to Quantam FrameworkCh 7 of [PSC++]
10.Design of Quantum FrameworkCh 8 of [PSC++]
11.Implementation of Quantum FrameworkCh 9 of [PSC++]
12.Building Applications using the Quantum FrameworkCh 10 of [PSC++]
13.ProjectPhilosophers Banquet


Course grade components are detailed in Table 1. The assignment of letter grades is given in Table 2.

Table 1: Course Components
Item Points
Class Participation, Quizzes, Assignments    30%
Term Exam    30%
Major Deliverable    30%
Engagement 10%
 Table 2: Letter Grade Map 
 Percent   Grade 
 93 - 100   A 
 90 - 92   A- 
 88 - 89   B+ 
 83 - 87   B 
 80 - 82   B- 
 78 - 79   C+ 
 73 - 77   C 
 70 - 72   C- 
 68 - 69   D+ 
 63 - 67   D 
 60 - 62   D- 
 0 - 59   F 
The participation grade is based entirely on your contributions to the graded discussion forums. These posts will be assessed based on originality, creativity, and displayed understanding of the topic at hand. Posts that repeat statements already made by other students and non-substantive contibutions will not receive much credit. The engagement grade is a subjective impression of the level with which you are consistently active in the course, related to but not equal to your Blackboard use statistics.


First Day Attendance Policy: Official university policy is that any student not attending the first class meeting will be automatically dropped from the class. For ALL STUDENTS: This policy is implemented using the FDA Quiz in Blackboard. Answering in the affirmative by the posted deadline is interpreted as first day attendance.

Regular Attendance Policy: The university requires attendance in all classes. Attendance in distance classes shall mean regular access to the course web site via campus.fsu.edu and regular participation in the class discussion forums. Here, "regular" shall mean a substantial amount of time on a weekly basis. Note that individual access statistics are maintained by Blackboard.

Proctored Exam Policy: All exams must be proctored and taken at an approved testing site during the exam window. It is the student's responsibility to arrange for proctored exams in compliance with the FSU standards. Go to the FSU ODL Student Testing Responsibilities for complete information on setting up a proctored exam site. Please note also that students taking exams on main campus in Tallahassee are now required to sign up for a time slot at the site.

Exam Makeup Policy: An exam missed without an acceptable excuse will be recorded as a grade of zero (0). The following are the only acceptable excuses:

  • If submitted prior to the day of the scheduled exam:
    • A written and signed explanation as to why the exam will missed. Illness or required professional travel are acceptable, while discretionary or personal travel are not. In any case the explanation should be accompanied by corroborating documentation, including names and contact information, and the explanation must be accepted by the instructor prior to missing the exam.
    • Evidence from a university official that you will miss the exam due to university sanctioned travel or extracurricular activity.
  • If submitted on or after the day of the scheduled exam:
    • A note from a physician, university dean, spouse, parent, or yourself indicating an illness or other extraordinary circumstance that prevented you from taking the exam and could not be planned for in advance. Again, corroborating information should be supplied.

All excuses must be submitted in writing, must be signed by the excusing authority, and must include complete contact information for the authority, including telephone numbers and address.

Missed exams with acceptable excuse will be made up or assigned the average grade of all other exams, at the option of the course instructor.

Missed, and acceptably excused, final exams will result in the course grade of 'I' and must be made up in the first two weeks of the following semester.

Grade of 'I' Policy: The grade of 'I' will be assigned only under the following exceptional circumstances:

  • The final exam is missed with an accepted excuse for the absence. In this case, the final exam must be made up during the first two weeks of the following semester.
  • Due to an extended illness or other extraordinary circumstance, with appropriate documentation, the student is unable to participate in class for an extended period. In this case, arrangements must be made to make up the missed portion of the course prior to the end of the next semester.

Completion of Work Policy: To be eligible for the grade of A or A-, working versions of all programming assignments must be submitted.


Excused absences include documented illness, deaths in the family and other documented crises, call to active military duty or jury duty, religious holy days, and official University activities. These absences will be accommodated in a way that does not arbitrarily penalize students who have a valid excuse. Consideration will also be given to students whose dependent children experience serious illness.


The Florida State University Academic Honor Policy outlines the University's expectations for the integrity of students' academic work, the procedures for resolving alleged violations of those expectations, and the rights and responsibilities of students and faculty members throughout the process. Students are responsible for reading the Academic Honor Policy and for living up to their pledge to "...be honest and truthful and...[to] strive for personal and institutional integrity at Florida State University." (Florida State University Academic Honor Policy, found at http://fda.fsu.edu/Academics/Academic-Honor-Policy.)

All students are expected to uphold the Academic Honor Policy. Please note the following items are defined and made violations by the policy:

  1. Plagiarism
  2. Cheating
  3. Unauthorized Group Work
  4. Fabrication, Falsification, and Misrepresentation
  5. Multiple Submission
  6. Abuse of Academic Materials
  7. Complicity in Academic Dishonesty
  8. Attempted ...

Violations of the academic honor policy may result in failing grades and/or dismissal from the university. All students are expected to read and understand the policy.

Checking for Plagiarism: FSU subscribes several databases of papers and computer source code that have been previously published or turned in for credit in university courses worldwide. Student work may be checked in one or more of these databases for originality. Note that turning in work that contains uncited quoted material from any source is considered plagiarism and a violation of the FSU honor code.

(This syllabus and other class materials are available in alternative format upon request.)

Student Help Policy: Students in this class are encouraged to help each other within the official course Blackboard site. Instruction staff will also help there and be able to monitor student interaction to assure correctness and guide the nature of the help when appropriate.

It is a violation of the course code of ethics for students to receive help in a medium outside the visibility of the course, such as in a third party discussion board, chat room, or via email. The only help that is condoned is that obtained from any instructor or from discussions on the Blackboard course site. If help outside the course environment is discovered, both the giver and receiver of help will be given a failing grade.


Students with disabilities needing academic accommodation should: (1) register with and provide documentation to the Student Disability Resource Center; and (2) bring a letter to the instructor indicating the need for accommodation and what type. This should be done during the first week of class. This syllabus and other class materials are available in alternative format upon request. For more information about services available to FSU students with disabilities, contact the: Student Disability Resource Center 874 Traditions Way 108 Student Services Building Florida State University Tallahassee, FL 32306-4167 (850) 644-9566 (voice) (850) 644-8504 (TDD) sdrc@admin.fsu.edu http://www.disabilitycenter.fsu.edu


Information regarding the status of FSU in an emergency situation may be obtained from the following sources:

  • For information specific to the Panama City Campus go to the FSUPC web page at http://www.pc.fsu.edu/ or call the Campus Hotline number 850-770-2000
  • For information related to FSU in general and the Tallahassee Campus go to the FSU alerts web page at http://www.fsu.edu/~alerts/
  • For state-wide and national information, go to the Florida Division of Emergency Management information pages at http://www.floridadisaster.org/

Any specific information related to this class will be posted on the course web site or sent via email to your fsu email address.


Except for changes that substantially affect implementation of the evaluation (grading) statement, this syllabus is a guide for the course and is subject to change with advance notice. Such notice will be in the form of a posting to the course web site on campus.fsu.edu.