# Core Concepts

### Abstraction: modeling, decomposition, and generalizing

A key challenge that is addressed in computational thinking is the scale and complexity of a problem.  The main technique used to manage this complexity is abstraction.  Complexity is dealt with by hiding complicated details behind a simple abstraction, or model, of the situation.  For example, a map of a train system is a simple model of a complex reality — but it is a model that contains precisely the information necessary to plan a route from one station to another.

### Programming

A computational thinker is not synonymous with a Computer Programmer but programming encourages creativity, logical thought, precision and problem-solving, and helps foster the personal, learning and thinking skills required in the modern school curriculum. Programming gives concrete, tangible form to the idea of “abstraction”, and repeatedly shows how useful it is in any discipline.

### Computers

Students will learn the main components that make up a computer system, and how they fit together.
Students will learn what the internet is and the principles underlying how data is exchanged via the internet.

### Data Structures

Data Structures are ways of storing “stuff”.  Just as we can put “stuff” in stacks, queues (piles), heaps and buckets – you can do the same thing with data (information). One common example of a data structure, in the real world, is the Pez Dispenser.  Pez uses ‘stacks’ to store and dispense candy. Without structure to all the “stuff” we can’t use it as information to solve other issues.

### Sorting

Sorting and sorting algorithms are an important part of managing data.  Sorting is, put simply, arranging things in a logical order, no matter what the object is.  Maybe you would sort a deck of cards or sort your groceries.  The students will learn tangible methods of sorting and will learn to apply these techniques to things that are not tangible.  Here is an example of children learning “Quick Sort”.

### Algorithms

We will design Algorithms:

Algorithms are recipes or instructions.  The quick start guide for your coffee maker is an algorithm to make coffee:

1. Turn on Coffee Maker
2. Grind Coffee Beans
3. Put in filter and place coffee in filter
5. Start brewing process
6. Drink coffee

To learn more about the importance of Algorithms in our world, we encourage you to watch Kevin Slavin’s presentation at TEDGlobal on “How Algorithms Shape Our World” , where he argues that we’re living in a world designed for and increasingly controlled by — algorithms.