~ Welcome to Secondary Level Computing



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)

Starter

#1 - Introduction to the concept of Abstraction

Discussion 

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.

Main Tasks

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.

 

Worksheet on Abstraction

Theory and Notes

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.

Why Abstraction is so important

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.

abstraction_11_computer_system

The abstraction above represents a computer. It shows the names of the components and how they interact with each other but hides the complexity of each type of component.

Simulations and models are abstractions: these are used across the curriculum to explain ideas. For example, science simulations might help to teach about gravity, history simulations about the Roman invasion of Britain, physical geography models give insights about how fossilization occurs, art simulations might show how to work with clay, data handling models allow exploration of what if scenarios and so on. Also beyond the curriculum simulations and models are the basis of most computer games.

Plenary

#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

Starter

What is Decomposition

Discussion

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)

Main tasks

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

Breakfast-image

Plant-Labelled-Diagram-Image

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.

making_a_quiz_001

 

3. Complete the following worksheet

Worksheet on Decomposition

 Plenary

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

Starter

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.

Discussion

Watch the video below (it's a challenge) and discuss. Your teacher will need to pause before the answer (key) is given!

Main tasks

After watching the videos and read through the Theory and notes section below, complete the following worksheet:

Worksheet on Algorithms

Theory and Notes

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.

making-toast-algorithm

Why are Algorithms important?

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!

growing-seed-algorithm

Plenary:

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!

Starter

Algorithms in Pseudocode and Flowcharts

Discussion

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:

Main tasks

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

Plenary

Watch the following video to consolidate your skills on the writing of Pseudocode

Additional theory and reading on Pseudocode and Flowcharts

You can create flowcharts here:

https://creately.com/

Challenge yourself (Design - Code - Test)

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!

Pseudocode

How to write Pseudocode: http://www.wikihow.com/Write-Pseudocode

https://en.wikipedia.org/wiki/Pseudocode

Flowcharts

How to design a good flowchart: https://www.edrawsoft.com/flow-chart-design.php

https://en.wikipedia.org/wiki/Flowchart

 

End of topic assessment

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:

  1. Abstraction
  2. Decomposition
  3. Algorithms: Pseudocode and Flowcharts

2. Please submit all your worksheets for the relevant topics in this unit for assessment.

 

 

Lesson 8c

End of topic 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).

Task:

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!