Skip to content

dansmyers/Simulation

Repository files navigation

CMS 380 – Simulation and Stochastic Modeling

Spring 2025 Syllabus

Who? Where?

Dan S. Myers (Dr. Myers)
Bush 263
dmyers@rollins.edu
407-646-2151

Office Hours

  • Tuesday and Thursday from 10:00 to 11:00 AM
  • Friday from 1:30 to 2:30

Official Course Description

CMS 380 Simulation and Stochastic Modeling: Explores the use of probability theory and statistical methods in the development of computer simulations used to study and model real-world phenomenon. Topics include an overview of probability theory, a survey of common statistical distributions, random number generation, and common techniques for creating models that incorporate randomness, such as queueing networks and Markov chains. Prerequisite: CMS 170.

Textbook and Resources

There is no required textbook. Our material will come from several online resources, plus my own notes.

We will use GitHub Codespaces for programming.

Learning Outcomes

At the end of this course, you will be able to:

  1. Write programs that use randomness to model complex systems.

  2. Discuss some of the most common discrete and continuous probability distributions and apply them to modeling problems.

  3. Implement a complex discrete-time event-driven simulation model.

  4. Use Markov chains and related mathematical techniques to model systems that change over time.

  5. Intelligently evaluate system performance using analytical and simulated models and discuss design tradeoffs.

Schedule

Planned List of Topics

This is tentative and will probably change a bit as we move through the semester.

Week of Topic
1/13 Return to Python and GitHub Codespaces
1/20 Descriptive statistics, Normal distribution
1/27 Hypothesis testing, t-distribution, Central Limit Theorem
2/3 Intro to probability: expected values, variance, conditional probability
2/10 Discrete distributions
2/17 Monte Carlo techniques, calculating error bounds
2/24 Random number generation
3/3 Continuous distributions: The exponential distribution, MIDTERM EXAM
3/10 SPRING BREAK
3/17 Intro to queueing theory
3/24 Little's Law, Poisson arrivals
3/31 The M/M/1 queue
4/7 Markov chains
4/14 Markov chains and queues
4/21 Dr. Myers' choice
4/28 End of semester

Other Important Dates

  • First day of class: January 15
  • Last day of class: April 28
  • Spring break: March 10 to March 14
  • Last day to drop the class: January 28
  • Last day to withdraw without penalty: March 28
  • Midterm exam: March 7

The All-Important Grading Section

Specs Grading

Grading for this course will be different from your previous classes.

Rather than calculating your score as number of points on a 0-100 scale, your grade will be based on attaining satisfactory performance on a bundle of assignments. This approach is called Specifications Grading or Contract Grading and it has several advantages over the traditional 0-100 based points system.

Labs

You must be registered for a section of CMS 120L. You'll receive the same grade for both CMS 120 and CMS 120L.

Assignments

We'll have two kinds of assignments in this class:

  1. Approximately six out-of-class assignments. These will require implementing simulation models and solving analytical questions. You should be prepared to devote substantial effort to completing these projects.

  2. Written midterm and final exams. The midterm will be given in-class on the day specified on the calendar and the final will be given at the time scheduled by the college. The final is not cumulative, but unavoidably builds upon the techniques that we cover in the first part of the class. The focus of both exams will be reading and understanding program code.

Satisfactory Credit

I will grade most of the items you turn in on a two-level scale: your work will be either satisfactory or receive no credit. "Satisfactory" means that the work is:

  1. Substantially complete and correct (there may be a few issues, but only minor ones).
  2. Shows real understanding and application of the course material.
  3. Completed on time in the required format.

For programming assignments, you must make a fair attempt on every problem.

Letter Grades

To earn an A, you must meet the following criteria:

  1. Satisfactory completion of the major assignments.
  2. Earn a score of at least 80% on both the midterm and final exams.

If you fail to complete the requirements for an A, your grade will be adjusted downwards according to the following table:

Performance Your grade will be adjusted downwards by
Partially complete major assignment Fraction of a letter grade (e.g., A to A-)
Unsatisfactory or missed major assignemnt One full letter grade (e.g., A to B)
Score between 60% and 80% on an exam Fraction of a letter grade
Score of less than 60% on an exam One full letter grade

These penalties are cumulative. For example, if you failed to satisfactorily complete two major projects, your base grade would be lowered by 2 letters, from A to C.

Why Are You Doing This To Us?

  1. In a traditional system, your grade is ultimately determined by my judgment of your work. My judgment is pretty good, but specs grading gives you more clarity about where you stand and guidance for how to achieve the grade you want

  2. Your grade is directly tied to the learning that you demonstrate. The satisfactory work sets a baseline, but to earn a higher grade, you must demonstrate a higher level of engagement with the course material.

  3. It's relatively easy to get a B if you do the required work, but hard to get an A. This preserves the integrity of the course, while still making it possible for everyone to succeed.

  4. If you only need a B or a C, you can adjust your effort accordingly: the standards are transparent. You don't have to spend time on the most difficult assignments if you don't need them to get the result you want.

  5. It reflects how you'll be evaluated in your career. Work assignments aren't graded out of 100% and your boss won't give partial credit for incomplete work. So, basically, I'm setting you up for massive career success.

I Feel Decidedly Uncomfortable

This is probably a new approach to grading for you. In particular, students new to specs grading often have anxiety about the lack of partial credit in the system.

Here are a few things to keep in mind:

  1. You don't have to be perfect. The "substantially complete and correct" standard allows for imperfections in your answers and you only need 90% for the reading and most assignments, so you don't have to correctly answer, or even attempt, every problem, so long as your cumulative work meets the required standard.

  2. You do need to be consistent. The system rewards you for putting forward good, consistent effort.

  3. Attend the labs. The lab sessions are your main place to practice programming skills. Make sure you attend every lab session.

  4. You will get lots of feedback. I will be there with you in lab to check on your work. The major projects will have clear standards describing what's required to receive full credit.

Course Policies

Attendance The only way to be consistently successful in your academic career is to regularly attend class meetings and participate in in-class activities. Therefore, while I do not mandate attendance at every single class, I expect full attendance every time we meet.

Laptops If you have a laptop, please bring it to class.

Phones Unlike laptops, I see few advantages to using phones during class. Please silence your phones at the beginning of class. Holding text conversations during class is both distracting and disrespectful and will not be tolerated.

Late Submissions Assignments are due on the stated day at the stated time. Speak to me in well in advance of the due date if you need an extension.

Please speak to me if there are any issues making it difficult for you to succeed in class. We can always work out a plan to deal with illness, work, or family responsibilities.

Recording No audio or video recording is permitted without prior permission.

Canvas and GitHub Most of the course material will be distributed through GitHub. We'll use Canvas to keep track of grades, announcements, and a few other things.

Late Work

Late work is only accepted in the case of unusual extenuating circumstances, such as a sudden illness. Work for other classes or part-time jobs does not count as extenuating. You are responsible for submitting work on time, in the required format, and using the correct submission procedure.

Please speak with me as soon as possible if you have concerns about your ability to meet a deadline so we can discuss options.

Necessary and Proper Clause

I will make every effort to adhere to the topics and schedule described in this syllabus. However, I reserve the right to make changes for the good of the course.

Credit Hour Statement

This course is a four-credit-hour course that meets three hours per week. The value of four credit hours results, in part, from work expected of enrolled students both inside and outside the classroom.  Rollins faculty require that students average at least 2 ½ hours of outside work for every hour of scheduled class time.  In this course, the additional outside-of-class expectations are substantial time spent on self-directed learning, team colalboration, and completion of programming assignemnts.

Official Syllabus Statements

Links to the full list of syllabus policy statements are available here.

About

CMS 380 - Simulation and Stochastic Modeling

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages