# Unit Overview¶

This unit examines algorithms and procedures in more detail. The Logo apps, started in Unit 4 and continued in Unit 5, introduce the concept of **procedural abstraction **and you will learn to define and use **procedures** -- named blocks of code that perform a specific task -- as well as when and how to use **procedures with parameters**. By encapsulating the algorithms into named procedures and introducing parameters to help generalize the algorithms, you will be able to see the advantages of procedural abstraction. In addition to designing and testing your own algorithms, you will be introduced to the **analysis of algorithms**. You will compare various **searching** and **sorting** algorithms, including examining the efficiency of each. For the searching and sorting algorithms, you will analyze them both experimentally and through mathematical concepts such as functions and graph. The impact section of this unit provides another opportunity for you to explore a computing innovation and the effects it has on society.

### Technical Terms

Below is a table of all of the technical terms that you'll learn in this unit. You will find a vocabulary section similar to this at the end of each lesson. Hover over the terms to review the definitions. You'll be able to practice your knowledge of the vocabulary with a quizlet at the end of the unit.MIT App Inventor | ||
---|---|---|

append |
arguments |
index |

insert |
length |
parallel lists |

parameters |

Computer Science Principles | ||
---|---|---|

binary search |
decidable problems |
decision problem |

distributed computing |
efficiency |
heuristic algorithm |

instance of a problem |
linear or sequential search |
optimization problem |

parallel computing |
reasonable time |
sequential computing |

sorting algorithm |
speedup |
undecidable problems |

unreasonable time |

General Computing | ||
---|---|---|

brute force |
intractable |
intractable problems |

more efficient |
The Halting Problem |
The Traveling Salesman Problem |

## Self-Check¶

Q-1: Identify 1-2 vocabulary terms from the table above that you know and define them in your own words. If you don’t know any of these words yet, that’s ok! Instead, write 1-2 sentences on how you plan to practice learning the vocabulary for this unit.

Q-2: Identify 1-2 vocabulary terms from the table above that you have heard before but don’t know the definition for.

Q-3: Identify 1-2 vocabulary terms from the table above that you don’t know but want to learn in this unit.

## Reflection: For Your Portfolio¶

Answer the following portfolio reflection questions as directed by your instructor. Questions are also available in this Google Doc - you will be prompted to make your own editable copy.