Elevator Challenge
Time 6.7 hrs

Difficulty Intermediate
Prerequisites Everyday Algorithms
Pathfinding
Departments Science
Authors Sandra Kuipers
Groupings Individual
Minimum Year Group None

### Blurb

Can you grok the logic?

#### License

This work is shared under the following license: Creative Commons BY-SA-NC

### Outline

 Learner OutcomesStudents will: ... Competency Focus ... Interdisciplinary Connections ... ReflectionWhat was successful? What needs changing? Alternative Assessments and Lesson Ideas? What other Differentiation Ideas/Plans could be used? ... CreditsAny CC attribution, thanks, credit, etc.

This page requires you to be logged in to access it. Please login and try again.
5 mins
Summative Project
Introduction
• So-far, we've explored concepts like physics, algorithms, components, and pathfinding in Unity.
• Now it's time to start putting to the pieces together into a project.

How it Works:

• This project is broken down into 3 steps:
• Design: Create a flowchart for your algorithm.
• Build: Code your elevator system.
• Test: Test and refine your algorithm.

5 mins
Elevator Challenge
Project Overview
• Your challenge in this project is:

You have just been hired as a junior elevator programmer. The company's current elevator code is slow and buggy. Your first task is to design a new algorithm for their elevator system. To do this, you'll use Unity 3D to create a simulation of an elevator to test and demonstrate the algorithm you create.

• Your company is using an Agile development practice. They have given you the requirements of the elevator as a set of four User Stories
• User stories are short, simple descriptions of a feature told from the perspective of the person who desires the new capability, usually a user or customer of the system.
• Take a moment to read each of the stories so you understand your design parameters:

User Story 1:

• As a building manager, I want an elevator system that can manage at least two elevator shafts.

User Story 2:

• As a person waiting for an elevator, I want to see which floor it is on so that I know it is coming to pick me up.

User Story 3:

• As a person using the elevator, I want to be able to decide which direction to go so that I can go up or down.

User Story 4:

• As a person waiting for an elevator, I want it to stop and pick me up if it is going past my floor.

• Consider how you would build your algorithm to meet these requirements.
80 mins
Design
Project Step 1

• Before diving right in and coding your elevator system, you need to design the algorithm.
• Remember: an algorithm is basically a set of steps and procedures to follow.
• To design your algorithm for this project, you'll be creating a flowchart.
• How do you make a flowchart? You have many options:

• When creating your algorithm flowchart, start with:
• The sources of input (a button press?)
• Consider the processing steps (what decisions does the system need to make?)
• Add branches for the different output (does a car begin to move? if so, where?)
• Try to decompose your algorithm into small steps: think of each symbol on your flowchart as a method call.
• For example, rather than a complex step called "move elevator", you might need smaller steps for "is elevator already moving?", "get closest car", "get distance between floors"
230 mins
Build
Project Step 2

• Using Unity, setup a simulation for your elevator algorithm.
• As a simulation, the code and the algorithm are the most important part. Your elevator system does not need need to be complex:
• You do not necessarily need a player controller; the camera can be fixed.
• You don't need buttons inside the elevator car.
• You don't need any fancy graphics or 3D models.
80 mins
Test
Project Step 3

• There are many ways to test a piece of code.
• For this project, we're going to use a method called Acceptance Testing.
• Acceptance Testing is a level of software testing where a system is tested for acceptability.
• The purpose of this test is to evaluate the system’s compliance with the business requirements and assess whether it is acceptable for delivery.
• For your hypothetical career as an elevator programmer: Would your boss accept your solution?

• Look back at the User Stories described in the project overview.
• Ask yourself: Would this user accept my elevator algorithm as a solution to their problem?
• User Story 1: Does my system manage at least two elevator shafts?
• User Story 2: Can my users see which floor the elevator is on?
• User Story 3: Do my elevators allow users to go up or down?
• User Story 4: Will my system stop and pick up passengers along the way?

• There are many other types of software testing, such as unit testing, end-to-end testing, and usability testing.
• We're using acceptance testing to ensure we've met the needs in our user stories.
• Once you've tested your elevator against each of these user stories, you're ready to submit!
Submit
Evidence
• Once you've designed, built and tested your elevator system, please:
• Save your Unity project.
• Zip the folder containing your project.
• Add your name to the filename.
• Upload it to Google Drive.
• Create a Google Doc for your project submission:
• Add your name and a brief description of your project.
• Include any instructions for how to run your elevator simulation.
• Include an image or link to your algorithm flow chart in your submission.
• Include a link to your Google Drive file (double-check sharing settings).
• Also submit a link to your doc to complete this unit in Free Learning.

## Images

There are no records to display.
Powered by Gibbon v28.0.00dev

Founded by Ross Parker at ICHK Secondary | Built by Ross Parker, Sandra Kuipers and the Gibbon community
Copyright © Gibbon Foundation 2010-2024 | Gibbon™ of Gibbon Education Ltd. (Hong Kong)
Created under the GNU GPL | Credits | Translators | Support