Throughout the OTL502-1 course, I developed a lesson plan based on the 2-AP-12 CSTA standard, "Design and iteratively develop programs that combine control structures, including nested loops and compound conditionals" (CSTA, 2019). The final project is centered on creating a simulation based on an historical event called "The Siege of Masada" (credit for this idea belongs to my AP Summer Institute instructor). Though many of the 12 Touchstones have been used leading up to this point, this particular project relies heavily on 11th Touchstone, "I Coach My Students to Mastery" (Goodwin & Hubbell, 2013, p. 153-166).
This week-long project is the culmination of coding concepts making use of inputs, variables, conditional statements, loops, and arrays/lists. Each of these concepts were guided with deliberate practice using in-class assignments and providing code review back either in class or in the form of video responses (see example here). At the point of this project, all students have shown working knowledge of the concepts through their submissions and through in-class pulse checks.
For the Masada project, students are to envision themselves as being held in the fortress under siege by the Roman army. According to a limited historical information, it is surmised that the people of the fortress would rather die than be taken prisoner by the encroaching army. So the populace chooses to cast lots to see the order of who will die with the last remaining person to tell the tale of their heroic deaths. The role of the student then is to see what number they would need to be in order to survive as that last person, something a computer program can determine with the right programming.
This lesson is intended to be a struggle to accomplish and that is exactly what took place. Throughout the week, I kept daily tabs on several indicators of my actions in the classroom as well as students actions broken down into six categories:
My observations of the students through this project indicated they struggled to map out logically the flow of their program. Students were able to successfully diagram the physical nature of the program with a population of people and a system from counting through the people, but they were not able to create an effective flow chart of their code. Most of the students asked for help throughout the project, however two students were content to silently work on their code. My own interventions through observation still made time to assist them, but I suspect the students would have continued to remain quiet otherwise.
For the students that did ask for specific assistance, I had prepared counter-questions to make them think about what it was they actually wanted their code to do. In most cases, these prompts were successful as students would realize one of the previous concepts that would help them accomplish their objective. Nearly all of the students supported one another throughout the project, with exception of one who was content to work on his own. Working or supporting one another was not a requirement of the assignment, but it was encouraging to see their cooperation, a likely by-product of the paired-programming conducted in previous assignments.
Four of the six students were more than happy to share their feedback mid-week regarding their thoughts on the project itself, some believing the project not possible to complete. However, of those four students, three completed the project by the end of the week and took great pride in their work. As for my own feedback, I successfully provided feedback for all students every day.
One thing I think I would have done is shown them a video regarding the historical event on the first day of the project. The video was saved for day 2 because of logistical reasons, but it is clear that video helped with their understanding of what we were trying to accomplish.
The performance expectations of this program were very basic, that the program provided the proper input and output. However in the next iteration of this lesson, I believe it would be beneficial for students to diagram the flow of the code before they attempted to code it. Had this been a requirement, it would have likely helped with the logic of the code as well.
As half the class was able to complete the project before their Fall Break, I believe the allotted time for the project was appropriate. However, students were not motivated to work on the project outside of class. One thing I am considering is providing milestones for them to complete by certain points in the project with guided hints on what to do at home if not finished by that point in the day.
Overall I consider the project and the lesson to be a success and continue to use it again in future years.