This unit will deal with some very important concepts in Computer Science, namely Abstraction, Decomoposition, Algorithms, Pseudocode and Flowcharts. Big words, I know! The following presentation contains all the theory you need on this topic along with some example questions, used with permission from OCR, at the end! The presentation can be used up to A Level standard so some of the concepts in it may be quite advanced.
Go through it carefully, and then move on to Lesson 1! (You can also refer back to this when needed)
#1 - Introduction to the concept of Abstraction
1. Read through the additional theory below on Abstraction, and after watching the video and doing any other research, see if you could sum up the term "Abstraction" in TWO SENTENCES. Write them down and share them with a partner or with the class.
1. How is the timetable below an example of abstraction? Discuss your answer and be prepared to fill in the worksheet in Task 2 below.
2. Read through the below theory on Abstraction and then complete the worksheet below.
For American computer scientist Jeanette Wing, credited with coining the term, abstraction lies at the heart of computational thinking:
The abstraction process – deciding what details we need to highlight and what details we can ignore – underlies computational thinking.’ Computational thinking and thinking about computing (The Royal Society, 2008)
Abstraction is about simplifying things; identifying what is important without worrying too much about the detail. Abstraction allows us to manage complexity.
We use abstractions to manage the complexity of life in schools. For example, the school timetable is an abstraction of what happens in a typical week: it captures key information such as who is taught what subject where and by whom, but leaves to one side further layers of complexity, such as the learning objectives and activities planned in any individual lesson.
Abstractions are sometimes represented as layers or hierarchies, allowing us to view things at different degrees of detail. The nature of being able to hide complexity within boxes within boxes makes abstraction a powerful tool as we do not need to worry about the technical detail of what goes on inside each box.
In computer science, abstraction is used to manage the complexity of much of what is designed and created. Computer hardware is seen as components or black boxes. Software is built of layers each hiding the complexity of the next successive layer.
#2 Watch the following video (you can skip through some of the intiial introduction and get to the bits on abstraction!)
*Contains public sector information licensed under the Open Government Licence v2.0
What is Decomposition
Discuss the following question in groups and be prepared to share with the class!
1. Based on the video you have just watched, explain the term 'decomposition' in your own words, using just 7 words (a short sentence or a list of key words)
1. Here are two additional examples of Decomposition. The first involves BREAKING DOWN the task of MAKING BREAKFAST! The second is about understanding a flowering plant. We break down the parts and learn more as we do so! Can you think of a few examples? Discuss and then be prepared to write them down in the worksheet to follow
2. Scenario: You have to create a very complex quizzing application (quizzing app) for your Science teacher. Remember, Science is broken down into Biology, Physics and Chemistry, so questions for each of these sub-subjects would need to be created. The different parts of the quiz would also need to be created and programmed for use. Explain, in your own words how decomposition would be important in the creation of this quizzing app. Refer to the diagram before in your answer.
3. Complete the following worksheet
Consolidate your skills by watching the following video on decomposition
1. Write down three things you have learned from today's lesson*Contains public sector information licensed under the Open Government Licence v2.0
What is an algorithm?
1. Teacher will demonstrate creating a simple sequence of instructions to program UNIT THE ROBOT in performing his desired task: http://primary.naace.co.uk/startower/unit/
2. Watch the following TED video on Algorithms.
Watch the video below (it's a challenge) and discuss. Your teacher will need to pause before the answer (key) is given!
After watching the videos and read through the Theory and notes section below, complete the following worksheet:
An algorithm is a sequence of instructions or a set of rules to get something done.
You probably know the fastest route from school to home, for example, turn left, drive for five miles, turn right. You can think of this as an ‘algorithm’ – as a sequence of instructions to get you to your chosen destination. There are plenty of algorithms (i.e. routes) that will accomplish the same goal; in this case, there are even algorithms (such as in your satnav) for working out the shortest or fastest route.
Algorithms are written for a human, rather than for a computer to understand. In this way algorithms differ from programs.
Computer scientists strive to find the most effective and efficient algorithms, that is those that solve a problem in the quickest time, using the least resources (memory or time) or in the most effective way (getting the correct or closest to the correct answer).
Search engines such as Bing or Google use algorithms to put a set of search results into order, so that more often than not, the result we’re looking for is at the top of the front page. Your Facebook news feed is derived from your friends’ status updates and other activity, but it only shows that activity which the algorithm (EdgeRank) thinks you’ll be most interested in seeing.
The recommendations you get from Amazon, Netflix and eBay are algorithmically generated, based in part on what other people are interested in.
Here's an algorithm for HOW TO PLANT A SEED!
Go to the following site: http://primary.naace.co.uk/startower/unit/
You need to program the ROBOT with a simple sequence of instructions (an algorithm) to make it do the desired task. All the best!
Algorithms in Pseudocode and Flowcharts
1. If you were given a game to create, would you prefer to just start coding, or do you think DESIGNING it first (using tools like Pseudocode and Flowcharts) would be a better approach? Discuss your thoughts with your partner.
You could also watch the following video which goes over the main concepts:
1. Have you ever cooked dinner for your family or friends? Imagine the dish you were cooking is Chicken Curry. Create a simple flow chart to show the steps involved! Share it with your partner
2. Complete the following worksheet
Watch the following video to consolidate your skills on the writing of Pseudocode
You can create flowcharts here:
You may also want to visit www.teachyourselfpython.com - go to lessons and the challenges section, to attempt designing a challenge (pseudocode and algorithms, CODING it, and then testing it). It's great practice!
How to write Pseudocode: http://www.wikihow.com/Write-Pseudocode
How to design a good flowchart: https://www.edrawsoft.com/flow-chart-design.php
1. Create an A4 poster in which ALL the following concepts are explained (in the same poster) very briefly. Use illustrations and diagrams where appropriate:
2. Please submit all your worksheets for the relevant topics in this unit for assessment.
If you've managed to get up to Lesson 5&6, you would have noted the personaity predictor task at the very end. Your end of topic task is to create your own version of this app and submit it to your teacher (screenshot and write about it in the powerpoint template you can download from the link above).
Create a personality predictor app. The user enters a month (e.g. Jan, Feb etc) and the app returns a paragraph that tells them what they're like. This is absolute rubbish of course, but it's a bit of a fun! You could also change it to be a favourite colour or movie, if you prefer.
Skills we are looking for:
1. Visual Design - Creativity and Aesthetic appeal
2. Use of sequence, selection (if and else statements)
3. Extension: Add additional unique features and coding to the app
4. Screenshot your app and write about it in detail. Evaluate and Peer review it too (fill in the appropriate sections in the powerpoint)
All the best!