Factory Simulation Project – Statistics in Action

Over the summer, I had an idea for a project that uses a simulator of a factory to explore concepts in logistics and statistics. I got inspiration, in part, from my time spent as an engineering intern at Procter & Gamble in college. I taught this as one of four project units in a semester-long engineering class this fall and it was a lot of fun, both for myself and for my students. There are links and descriptions to tons of resources below. I've been meaning to type this up for a while – I'm excited to share this with others and to get feedback!


Click here to see an active1 demo factory


alertOrange.pngDisclaimer: This project is a work in progress. I was able to use it successfully in my class, but it required a good amount of manual tweaks during the unit. There's a list of things I want to fix or re-do in order to feel good about sharing the code base with other teachers to use. In the mean time, contact me if you are interested in using this project in your own classroom and I'm happy to see if I can work with you individually.

In the first part of the unit, students learned about our model factory, which we created as an air filter factory helping to supply the diesel-engine company Cummins (a friend of mine works as a logistics engineer there – she served as a remote project mentor for my students). Along the way, students learned some specific math skills that helped them to run their factories including calculating discrete expected values, standard deviation, measures of center and spread, and more.

In the second part of the unit, students got into teams of four and got a chance to manage their own factory over a long term simulation. The factories were created on the project website and students could log in any time with their district Google accounts to make changes to their factories. To make things more interesting, we went through a series of "disruptive events" that happened to all factories in a class at the same time. These gave students a chance to respond to changes in the environment (e.g. a flood that shuts down half of the warehouse) and in the factory (e.g. labor strikes). Check out the sections below for more details:

Simulation Handbook

This is the handbook I used with students this fall. It contains all of the information about how the factories work and provides details that helped students make informed decisions. The handbook is a bit dense (and needs some revision in certain areas) but keep in mind that we spent time in class going through each part of the factory (the warehouse, the production floor, and the HR office) so this served primarily as a reference for students throughout the project.

return to top

Web-Application Features

The web-application (factorysim.appspot.com) was the main portal for students to explore and access their factories. In class, I was able to check out a portable cart of iPads so that students could all have real-time access to their factories and their reports.

I developed the web-application using Google App Engine using a Java/JSP backend. The app is entirely server-side, meaning that students can access and view the application from any device at any time (the app doesn't currently have a mobile version, but renders fine on most devices). Here are a few highlights of the application:


Factory Dashboard: Students' primary view of their factory is the dashboard, which uses Google Charts to dynamically display current information about the factory. This mirrors real dashboards that engineers working in industry often work from.


Historical View and Reports: Students quickly learn that the day-to-day variation in the simulation motivates a longer-time lens for analysis. the application provides a flexible historical view that can be customized to analyze any range of time in the factory's history. The historical view shows graphs that track how things like warehouse inventory and employee turnover change over time. Summary reports provide students with details on individual parts of the factory as well as overall profit.


Student Control over Parameters: Students have access to see and change the settings that affect their factory, like how much to pay their employees or which supplier to choose for their raw material. Currently, students are prompted to put their initials and to type a brief justification for all changes made during the simulation. This lets the team track changes and help hold all members accountable. Permissions allow students to only change certain parameters, since some settings are controlled for all factories by the simulation admin.


Google Account Integration: As a system admin, I created factories for students and linked their district Google email addresses for authentication. When students are logged in, they can view and change all the details of their factories and can only view summary information from other team's factories. Google account authentication keeps the factories private to just the class of students.


Admin Panel: Simulation administrators can log in to gain special access online to create and monitor factories, pause or resume the simulation, and implement disruptive events that affect all factories within a certain class of students. In addition, simulation administrators can set the simulation speed. The application automatically simulates one day in each factory as a discrete event based on settings the administrator provides. I had my students' factories taking simulating one day every 10 minutes of actual time.

return to top

Classroom Materials

This link will take you to the OneDrive folder containing all of the classroom materials I made for the project. The unit plan is embedded below. As always, please share and use freely for non-commercial purposes.

In addition to the student materials, I have some rough drafts of some teacher notes, in which I analyze the optimal choices for some different simulation situations. There's some serious opportunity for higher level classes to incorporate some of this in more student-facing ways. For example, the probability of an employee quitting on any given day can be modeled as a Poisson distribution, which provides a platform for in-depth analysis of the labor model in the simulation.

I spent some time geeking out in MATLAB making a 3D surface plot of the relative benefits of different choices in the HR office, specifically the choice of hourly wage and weekly work hours for employees.


If you're comfortable sifting through some MATLAB code, reach out to me and I'm happy to send some things your way.

return to top

Reflection and Next Steps

I collected some feedback from students after they finished this project and I'm hoping to dive in for another cycle of changes to both the application and the curriculum. I get a chance to teach this to a fresh batch of engineering students in February.

Students largely said that they enjoyed the project and that the web-application made the experience fun, competitive, and interesting. Many shared that their favorite part of the unit was handling the disruptive events. I realized through teaching it that the "steady state" simulation is actually kind of boring once you figure out how the settings impact the factory. The details are complicated enough to be daunting to someone at first glance, but since we spent about 2 weeks in class diving deep into each part of the factory, students were relatively prepared to take over their own factory when the time came.

I realized that while this simulation contains a good deal of randomness on a day-to-day basis, the simulation is still extremely predictable over a long period of time. This is kind of the point (and much of the work that logistics engineers do), but it also makes things kind of boring.
One other element I'm thinking about for next time is how to better structure group work during the project in class. Most days went well, but I want to think carefully about how to better scaffold and delegate individual responsibilities within factory teams. Some groups did a good job of working together and taking individual ownership, but other teams had more dysfunctional groups. This is the ever-present struggle with group work in general. I want to use some of my experience using Complex Instruction in math to be more intentional in certain structures next time around.

Please share feedback, ideas, and questions! I'm happy to share this project with others and I hope someone else finds a way to incorporate this into their classroom.

1 The factory simulates one day automatically every 10 minutes. Check back often!

comments powered by Disqus