
5.1. 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.

- Enduring Understanding DAT-2: Programs can be used to process data, which allows users to discover information and create new knowledge.

- Enduring Understanding 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.
- Enduring Understanding AAP-3: Programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence.
- Enduring Understanding 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.

- Enduring Understanding CSN-2: Parallel and distributed computing leverage multiple computers to more quickly solve complex problems or process large data sets.

- Enduring Understanding IOC-2: The use of computing innovations may involve risks to your personal safety and identity.
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 |
5.1.1. 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.
5.1.2. 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.