Student Work | Mass STEM Hub
High School | CS | CSE | Activity: Zombie Apocalypse | Top Computer Science Project
December 06, 2021
Check out the student work submitted for real-world industry feedback! Learn more about submitting student work to receive real-world feedback here!
Grade: High School
PLTW Course: Computer Science Essentials
Submission type: Activity: Zombie Apocalypse
Project overview: In Computer Science Essentials, students experience the major topics, big ideas, and computational thinking practices used by computing professionals to solve problems and create value. Students are introduced to coding fundamentals through the block-based programming of apps. They then sharpen their computational thinking skills by transitioning into text-based programming side-by-side with blocks, and finally into text-based programming in the Python® programming language
For the Zombie Apocalypse activity students were tasked to design and create a program focusing on surviving a Zombie Apocalypse using the development design process with about one month of classes and their knowledge to date.
Selected student submission materials:
Link to full project: click here
Select Judge Feedback: “I work for Smith + Nephew for the Sports Medicine franchise leading systems engineering where I help make medical devices to help surgeons with soft tissue repair from sports injuries. The teams I lead have activities that include the development computer applications to run on surgical devices or support the surgeons as a part of their workflow.
The summary set of slides provided are creative, simple and clear on the complete set of options that are provided to the user (especially the pseudo-code). With all applications, it is always important to have a ‘Mission Statement’ and lay out the desired behavior of the application.
I also appreciate the slides highlighting thoughts on what can be done to enhance the code next. Both in Academia and Industry, the question you will always get is “so, now that you delivered that, what’s next?” So, it is important to be thinking about ways to enhance or improve – both the application but also your own process.
Additional text would be beneficial in the application to make it more intuitive as a stand-alone interaction for the user. They may not have access to the summary slides provided, so the additional context added to the application can be helpful. For example, how should they know that hunter type requires typing ‘Hunter’? I like the fact that you took care of variability in what the user can enter (e.g. ‘Hunter’ or ‘Hunt’ or ‘H’. But you may consider prompting the user with the appropriate inputs as part of the directions provided. You may also consider an error handling in the application, such as if the user types ‘h’.
As a systems engineer, we are constantly thinking about the users of the system and the different ‘use cases’ in which they use the system. A ‘use case’ is simply an activity that the system is used to perform (e.g. a use case for your cell phone is to make a mobile phone call to contact in your contact list).
Working with your application highlighted how important it is to understand who the user of the system will be and how much additional information or context they would need. Users of the system may also risk understanding it incorrectly or make a mistake while using your system, which it is important for you as a designer to address as a part of your application.
For example, the program does not have error handling if they misspell or mistype their Character, which may mean the user enters incorrect data. This commonly referred to as a ‘use error’ and is something we focus a lot on in medical devices.
I encourage you to think about the different use cases and use errors to ensure your applications (this one and your future efforts) are robust!”
-Director of Sports Medicine Systems Engineering and Advanced Technology Development, Smith + Nephew
“I am a MathWorks Application Engineering Team Lead. MathWorks is a software company that creates different products to help individuals in various industries with analysis for many applications. For example, I have used the software from MathWorks to view images of and analyze the human brain, identified objects in different regions using satellite images, and created a natural language processing system to recognize content from tweets. In my role, I work with customers of MathWorks to help them incorporate AI in their various applications and I lead a team of engineers who do similar tasks.
One of the major themes that occurs with a variety of projects is trying to determine what actions will occur regarding a project. This one topic can be very difficult for many projects however, on the slide with the title: My deliverables information was provided that helped clearly identify various activities regarding this project. Based on reading the My deliverables slide I could understand what the expected inputs from the users were supposed to be and what tasks the program was supposed to implement. The words were important but the style of presenting this information was very helpful and powerful. The usage of using a list of bulleted items can help others reading through this presentation clearly and quickly see plus understand the deliverables. This usage of the list of bulleted items has also helped me with projects to be able to communicate important concepts to project team members very quickly.
When writing pseudo code capturing as many concepts as possible regarding the pseudo code can help with writing the actual code later. The reason why I mention this information is because the content on the pseudo code slide accounted for scenarios where a user may not enter specific information and/or other values. In my role, I need to write similar code where this is called exception handling. This was one of the first Zombie Apocalypse projects where I have noticed that exception handling was considered in the pseudo code. The ability to capture scenarios in code where individuals may not enter the expected information is helpful because it can help us prepare to write more robust code.
Identifying the challenges that were faced and what to do if the code is inherited is vital information for the next team who may continue working on this project. The reason why these topics are important is because these individuals get to learn based on your experience and to hopefully not experience the same issues that were previously identified. When I had provided colleagues with access to my code from previous projects, I have followed many of the same steps as you in terms of documenting information and communication that information for the next project team members. I typically have documented this information in the code and in separate documents as well.
This project seems to have a focus on both the end users as well as future project team members. The reason for this feedback is to highlight that these considerations are very favorable for the project. The way that the focus was identified is because clear documentation was provided for both groups. In many cases projects tend to initial focus on one group or another but you focused on both. Thinking about the end users there could be even more considerations added for this project. I also think regarding the end users we can build on the considerations that were provided for them by maybe including even more parameters to consider what could occur in other scenarios. For example, could we customize what other information we could obtain from the end users to assist with other calculations.
The information that I reviewed from this project makes me very excited to see a final version of the Zombie Apocalypse UI. The planning documents are very clear, provide relevant information, and highlight a lot of thinking regarding the experiences of end users plus other project team members. I think that the incorporation of other parameters for consideration may make this UI even more interesting. Overall, great job on this project and I think that this work is outstanding!”
-Application Engineering Team Lead, MathWorks
Industry Award: Top Computer Science Project
School: Clinton High School
Teacher: Kathryn Curry