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.
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.
Students will learn the main components that make up a computer system, and how they fit together.
Communication and the internet
Students will learn what the internet is and the principles underlying how data is exchanged via the internet.
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 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”.