Git Product home page Git Product logo

cms-380-simulation's Introduction

CMS 380 โ€“ Simulation and Stochastic Modeling

Fall 2020 Syllabus

Who? Where?

Dan S. Myers (Dr. Myers)
Bush 263
[email protected]
407-646-2151

Office Hours

To better manage student interactions during the pandemic, I'm not planning to hold regular in-person office hours during the fall semester. While I'm on campus, my office will be the primary space where I can work without a mask, record videos, eat, etc. Therefore, I think it's wise to limit the number of students coming in and out of my office each day, at least at the beginning of the semester while we're all adjusting to new patterns of working and interacting.

Most informal class-related questions will be handled over Slack. I'll send out details for how to join our class workspace in the first week of the semester. I will also handle most casual advising questions over Slack.

If you'd like to chat in person, we can talk (in a socially-distanced way) at the beginning or end of class. You can also make an appointment to chat via WebEx if you have questions that are too in-depth to handle over Slack.

I will plan to be generally available for WebEx appointments on

  • Mondays, Wednesdays, and Fridays from 2:30 to 3:30
  • Tuesdays and Thursdays from 10:00 to 12:00

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 Mimir for programming. It is free for the 2020-21 academic year.

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.

Scrumage

What?

This course will be different from other courses you've taken. We'll be using a new course management framework called Scrumage ("Scrum for Agile Education"), originally developed by Dr. Shannon Duvall at Elon University. Scrumage is based on the Scrum project management framework, which you may have used for team-based projects in some of your other courses.

How Does It Work?

Here are the main features of Scrumage:

  1. The course is structured as a series of sprints, each lasting two weeks. Each sprint covers one unit of material. There will be six sprints in our course.

  2. At the beginning of each sprint, you'll be given a list of learning topics for the sprint, a curated list of resources (videos, readings, worked examples, etc.), and a set of required deliverables due at the end of the two-week period.

  3. Working with a team, you'll have broad freedom to decide how to use the available resources to learn the required material and complete the sprint deliverables. You can decide on your own meeting schedule, what resources to use, and your own plan for finishing the projects. Scrumage gives you options and the freedom to determine your own best learning approach.

  4. As your professor, I'll be in the room each day to meet with your teams, answer your questions, and check your work-in-progress. You can make an expert request to ask for a short lecture, worked example, or other help with a particular topic.

  5. Each sprint ends with an individual quiz. You can receive bonus points if your entire team does well on the quiz or if your individual performance improves.

  6. You'll complete a brief reflection at the end of each sprint, which will help you understand your own learning process and make improvements before the next sprint.

That Sounds Hard. Why Are We Doing This?

Scrumage is based on student choice, flexibility, and reflection.

In a traditional course, the professor is in charge of every aspect of the class. I get to decide what we learn, in what order, what readings or resoures we use, and how your learning will be assessed. If my choices don't work for you, well, that's tough.

In this class, you'll have freedom to take ownership of your own learning. You'll have the broad ability to make your own schedule, choose your own combination of resources (lectures, readings, videos, examples, etc.), and generally pick the best individualized strategies that help you master the course material.

Scrumage will let you learn computer science concepts by working like a computer scientist. Scrum is an industry-standard framework, so you'll be building facility with real software development techniques as you work through this course.

Finally, Scrumage supports learning how to learn, the single most important skill you can acquire in college. By taking ownership of your own learning, you'll be able to identify the resources, plans, and strategies that work best for you and build skills that you can take forward into other classes or your professional career.

More Details

Some of you have already taken one or more Scrumage courses with me or Dr. Summet. If this is your second or third Scrumage experience, you'll find the rhythms of this course to be similar to your previous courses. If this is your first time, don't worry: the course format may feel a little unusual at first, but you'll adapt to it quickly.

I'm using Scrumage for all of my classes this semester because it performed well during our emergency transition to remote learning in the spring. Scrumage gives us a lot of features that are useful for hybrid courses:

  • You're automatically connected to other students in the class, so you have allies already in place if we need to change formats.

  • It keeps the course on an overall schedule, but gives you flexibility for how to manage your time within each sprint. Flexibility emerged as an important theme in feedback from the spring semester.

  • It gives me lots of options for how to adjust the schedule if we need to. The sprint-based structure means that we're never more than two weeks from a reset point, and I can adjust the content and deliverables for each sprint in response to changing conditions.

FAQs

How big are the teams? In previous classes, most teams have been four or five students. For this semester, I think smaller is better, so most teams will be threes, with a few twos and fours.

How are the teams created? I have let previous classes choose their initial teams for the first sprint. Almost all teams form at the beginning of the semester and stay together through the end.

What if I don't want to be on a team? Working by yourself is allowed, although you should check with me first.

Does my grade depend on my team? I approach the deliverables for each sprint as individual assignments that can be completed with the help of your teammates, rather than (shudder) "team projects". Most Scrumage teams operate more like collaborative study groups rather than divide-and-conquer project teams that you might have used in other classes.

What if I can't work with my teammates? Do I have to stay in the same team? You're allowed to change teams at the start of each sprint. One goal of Scrumage is to help you think about the kind of collaboration that works best for your learning. It's okay to recognize that some people in the class are your friends, but that you'd be better off working with a different group that's a better fit for your style.

Will we be able to meet in person? That's still an open question at this point. It might be possible for small groups to meet in some (socially-distanced) spaces on campus. Even if that is possible, you should plan on a significant amount of remote collaboration. In addition to WebEx, we'll be using collaborative tools like Slack and GitHub that are widely used in industry. I'd also emphasize that remote work is a skill, and it's likely that many tech companies will continue to be mostly remote for at least the next year and others will choose to make a large-scale transition to a remote-first working philosophy.

What if I'm participating virtually? To the greatest extent possible, we'll build virtual-only teams to avoid hybrid mixtures of in-person and virtual students.

Schedule

Sprints

Sprint Topic Start End Deliverable
1 Python and Descriptive Statistics 9/14 9/30 Campus Connections
2 Probability 9/30 10/14 Hermione Granger and the Distributions of Probability
3 Monte Carlo 10/14 10/28 Casino Royale
4 Continuous Distributions 10/28 11/11 Queueing Simulators
5 Discrete Event Simulation 11/11 12/2 Happiest Place on Earth?
6 Markov Chains 12/2 12/18 Predictive Text Generation

Other Important Dates

  • Last day of class: December 18
  • Last day to drop the class: September 25
  • Last day to withdraw without penalty: November 6

The All-Important Grading Section

Specs Grading

Grading for this course will also 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.

If you achieve satisfactory performance on enough assigments, described in more detail below, you'll receive a baseline grade of B for the course. This demonstrates that you have engaged with the material and met the basic learning outcomes for the class. To get a higher grade, you can do more work that shows greater mastery of the course learning outcomes.

Assignments and Scoring

Each sprint will have two graded assessments: the deliverable assignment and an individal quiz. You will also complete a short reflective self-assessment at the end of each sprint.

In addition to the quizzes and deliverables, there will be additional challenge assignments that you can complete to increase your grade above a B, or to make up for any work that failed to meet specifications. More information on the challenge projects is below.

The sprint deliverables will be graded on a binary scale: you'll receive either one full point or zero points. To receive credit for a sprint deliverable, the work you submit must be:

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

Each quiz will be worth one point.

  • You will receive the full point for a quiz if you give satisfactory answers to N - 1 quiz questions.
  • You will receive a half point if you give satisfactory answers to at least half of the quiz questions.
  • The typical quiz will have four questions, so you would need to answer three out of four for full credit and two out of four for half credit.
  • The quizzes will be taken online and are open notes and open book.
  • Individual questions will be marked as satisfactory or unsatisfactory using the same "substantially complete and correct" standard as the projects.

Midterm and Final Exams

There will be no exams due to our compressed schedule.

Final Letter Grades

Using this system, you can earn a total of 12 points across all six sprints: six points from the deliverable assignments and a maximum of six points from all of the quizzes. To earn a B for the course, you must earn at least 11 out of 12 points. This is equivalent to allowing you to automatically drop your lowest grade.

If you fail to achieve at least 11 points, your score will be adjusted downwards by a fraction of a letter grade per point, as shown in the following table:

Points Letter Grade
11 B
10 B-
9 C+
8 C
7 C-
6 D+
5 D
4 D-
Less than 4 F

Fractional numbers of points fit into the appropriate spot on the table. For example, if you earned 10.5 points over the entire course, your letter grade would be a B-, because you've earned more than 10 points but fewer than 11 points.

To raise your grade above a B, you can complete challenge projects. My goal is to offer four challenge projects if the schedule allows, but there will be at least three. Satisfactory completion of each one will raise your final grade by a fraction of a letter. If you lose points for any reason, you can complete a challenge project to make up for what you've lost.

Here is the complete points table, including the challenge projects.

Points Letter Grade
14 or more A
13 A-
12 B+
11 B
10 B-
9 C+
8 C
7 C-
6 D+
5 D
4 D-
Less than 4 F

If you earn 11 points from the regular coursework, you would need to complete three challenge projects to earn an A.

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. Points-out-of-100 based systems place a lot of value on small differences in your scores. What, really, is the meaningful difference between an 89 and a 91, even if we say one of those grades is a B+ and the other is an A-? Under specs grading, you're incentivized to focus on doing good work, not arguing for more points or partial credit after the fact.

  3. 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, and I give you choices for how to demonstrate that increased engagement.

  4. Earning a B is straightforward if you do the required work, but it's hard to get an A. This preserves the integrity of the course, while still making it possible for everyone to succeed. Failure is pretty much impossible unless you abandon the course.

  5. 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.

  6. 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.

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.

Policies for Virtual Attendance

When meeting virtually, it's important to maintain an atmosphere that's conducive to learning and comparable to an in-person class. In that spirit, I respectfully request the following:

  • Please wear regular clothes, of the kind that would be appropriate for in-person class.

  • Please don't relax in your bed (sitting in your bedroom or on your bed is perfectly fine, but don't bury yourself under the blankets).

  • Please don't eat, like, an entire three-course meal during class.

  • Please keep your webcams on as much as possible; it helps when I can see everyone.

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.

Official Syllabus Statements

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.