Big Idea #4

Algorithms are used to develop and express solutions to computational problems.

Learning Objectives:

4.1.1 Develop an algorithm for implementation in a program. [P2]
4.1.2 Express an algorithm in a language. [P5]
4.2.1 Explain the difference between algorithms that run in a reasonable time and those that do not run in a reasonable time. [P1]
4.2.2 Explain the difference between solvable and unsolvable problems in computer science. [P1]
4.2.3 Explain the existence of undecidable problems in computer science. [P1]
4.2.4 Evaluate algorithms analytically and empirically for efficiency, correctness, and clarity. [P4]



Everyone's Got Algorithms
Trash or Treasure?

(group work) Experiencing Algorithms

Improving Our Number Finder
Too Many Blocks!

Algorithmic Complexity
How Moore's Law Works
The Free Lunch is Over


A (non-video) Game
Competing with Young Gauss

Timing Experiments

Time is of the Es-sense
Do You Have Time to Add?
All the Numbers, All the Time
Searching Through Time
Timing Sum-thing's Up
Constant versus Linear
A Distinct Difference
Evil Hangman

Learning objectives © 2014 The College Board. All rights reserved. Computer Science: Principles is a pilot course under development. It is not an official Advanced Placement course currently being offered by the College Board. This document is based upon work supported by the National Science Foundation, grant CNS‐0938336. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.