Unit 6 - Algorithms
Unit Overview
Students learn to design and analyze algorithms to understand how they work and why some algorithms are considered more efficient than others. This short unit is entirely unplugged, and features hands-on activities that help students get an intuitive sense of how quickly different algorithms run and the pros and cons of different algorithms. Later in the unit, students explore concepts like undecidable problems and parallel and distributed computing.
Teaching Tip
Modifications for Virtual and Socially-Distanced Classrooms
Are you teaching in a virtual setting or in a socially-distanced classroom? Check out this document for ideas and resources to help you tailor common practices like Think Pair Share or Peer Feedback to your learning environment.
For lesson-specific modifications, check out the Lesson Modifications section within Lesson Plans.
Learn more about how to use these resources here.
Unit Philosophy and Pedagogy
-
A Break from Programming: This unit is intentionally designed as a short respite from programming. After three units and a major hackathon project, it's a great opportunity to get away from screens for a while before the final programming push that leads to the Create PT.
-
Just Enough Math: This unit includes some mathematical concepts which enrich students' understanding of how algorithms are analyzed, which might at first be a little intimidating to some students (and teachers!). The mathematical topics included in this unit are only those necessary to provide a solid foundation in algorithmic analysis to the depth described in the CS Principles framework. If you're a teacher with a strong mathematical background, check carefully that you don't needlessly add complexity to a unit which might already prove challenging for some students. All teachers should keep an eye out for the ways visuals, hands-on examples, and patterns in presentation style are used to ensure a consistent presentation of these mathematical topics.
Major Assessment and Projects
This unit does not conclude with a major project. Students will complete an end-of-unit assessment that is aligned with CS Principles framework objectives covered in this unit.
AP Connections
This unit helps build towards the enduring understandings listed below. For a detailed mapping of units to Learning Objectives and EKs please see the "Standards" page for this unit.
- AAP-2: The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.
- AAP-4: There exist problems that computers cannot solve, and even when a computer can solve a problem, it may not be able to do so in a reasonable amount of time.
- CSN-2: Parallel and distributed computing leverage multiple computers to more quickly solve complex problems or process large data sets.
This unit includes content from the following topics from the AP CS Principles Framework. For more detailed information on topic coverage in the course review Code.org CSP Topic Coverage.
- 3.9 Developing Algorithms
- 3.11 Binary Search
- 3.17 Algorithmic Efficiency
- 3.18 Undecidable Problems
- 4.3 Parallel and Distributed Computing
Week 1
Lesson 1: Algorithms Solve Problems
- Lesson Modifications
- Warm Up (5 mins)
- Activity (30 mins)
- Wrap Up (10 mins)
Learn how computer scientists think about problems and the way different algorithms can be designed to solve them.
Teacher Links: Presentation
Lesson 2: Algorithm Efficiency
- Lesson Modifications
- Warm Up (5 mins)
- Activity (30 mins)
- Wrap Up (10 mins)
Learn how computers describe how fast different algorithms are and the fact that different algorithms that solve the same problem may be faster than others.
Teacher Links: Presentation
Lesson 3: Unreasonable Time
- Lesson Modifications
- Warm Up (5 mins)
- Activity (30 mins)
- Wrap Up (10 mins)
Explore two different types of algorithms that seem similar but take fundamentally different amounts of computing power to run.
Teacher Links: Presentation Students Links: Activity Guide
Lesson 4: The Limits of Algorithms
Widget
- Lesson Modifications
- Warm Up (5 mins)
- Activity (30 mins)
- Wrap Up (10 mins)
Explore two different kinds of problems at the limits of what a computer is capable of solving and learn the difference in how computer scientists respond.
Teacher Links: Presentation
Lesson 5: Parallel and Distributed Algorithms
- Lesson Modifications
- Warm Up (5 mins)
- Activity (30 mins)
- Wrap Up (10 mins)
Learn how algorithms are designed to run on many computers and the benefits and challenges that result.
Teacher Links: Presentation Students Links: Video
Week 2
Lesson 6: Assessment Day
Project
- Lesson Modifications
- Assessment (25 mins)
- Assessment Review (20 mins)
Assessment day to conclude the unit.