The educator guides students through expressing procedures as algorithms and then implementing, testing, and comparing algorithmic approaches.
An algorithm is a description of how to do something in a precise and repeatable way. Algorithms do not need to be “high tech”—they can be written as a series of clearly defined steps just as they can be written as computer code. A recipe is an everyday example of an algorithm: it is a clearly defined set of steps that reliably delivers the expected result. In the same way, a bad recipe is an example of a bad algorithm: it leaves out important steps or assumes too much about its reader, and it doesn’t reliably lead to the intended dish. In either case—whether it’s a recipe for a cook or an algorithm for a computer—the same principles of precision and repeatability apply.
There are several educational reasons for thinking about procedures as algorithms. One advantage is that “teaching” a computer how to perform complicated procedures can be a powerful way for students to develop and demonstrate their understanding of the procedures. For example, programming a computer to find the average of a list of numbers is an excellent way for students to develop an understanding of how to calculate averages.
Another reason to think about procedures as algorithms is that they can help students notice similarities between different situations. When problems from different content areas are described in the same way, the same algorithms can be used to solve them. For example, sorting events by date to create a timeline in a history class and sorting substances by pH in a science class might use the same algorithm.
There are usually many different ways to go about solving a problem. When these different procedures are expressed as algorithms, students can use computers to compare the solutions to see which are more efficient, which are more robust, which can handle extreme situations, which can solve other similar problems, and which are simply incorrect. When students test and compare different algorithmic solutions to a problem, they also develop richer understandings of the underlying problem. Computational tools are well-suited to testing and comparing algorithms, as they can provide immediate feedback regarding the effectiveness of a possible solution. However, non-computational environments such as board games, flowcharts, and in-person simulations can also be effective.
To earn the micro-credential, you must earn a “passing” evaluation for Parts 1 and 3, and a “Yes” for each component of Part 2. In the assessment of this micro-credential, an educator will plan and teach a lesson in which students explore an open-ended problem by testing and comparing algorithmic solutions. Students may implement algorithms with a computational tool or within an alternate environment such as a board game or an in-person simulation. The educator will analyze student learning in the lesson and reflect on the lesson’s successes and limitations. The three parts of the assessment should fit together as evidence of professional reflective practice.
(300-word limit total)
Please answer the following questions:
To earn this micro-credential, please submit the following:
1) Student artifacts
Submit artifacts from two different students (at least two artifacts per student), showing their algorithmic solutions (at multiple points along the way if possible), and evidence of testing and comparing different solutions. These may include code, screenshots, students’ notes and reflections, the teacher’s or another colleague’s observation notes, an interview, or other artifacts.
2) Analysis of student artifacts
(600-word limit total)
As you answer the following questions, refer to specific evidence from the artifacts submitted.
Note: If students worked in groups, you may choose to analyze one student’s learning within each group or the learning of the groups as wholes.
Reflecting on the lesson, what might you change that would support one or more students (not necessarily the students whose work was considered in Part 2) to more effectively understand the problem by implementing, testing, and comparing algorithms?