Abstraction is a way to make problems or systems easier to think about. It simply involves hiding detail – removing unnecessary complexity. The skill is in choosing the right detail to hide so that the problem becomes easier without losing anything that is important. It is used as a way to make it easier to create complex algorithms, as well as whole systems. A key part of it is in choosing a good representation of a system. Different representations make different things easy to do.
For example, when we play cards, we use the word ‘shuffle’. Every player understands that ‘shuffle’ means putting the cards in a random order. The word is an abstraction. The same type of abstraction works when programming. Implementing ‘shuffle’ in a computer game means giving a way to randomise the cards. We can refer to shuffling throughout the program and understand what is meant without having to think about how it is actually done by the program. All that is needed is that the program does include a description somewhere of how shuffling is to be done.
The following links to cs4fn articles that illustrate abstraction.
- A computer can beat the world champion at chess, even fly a plane more skilfully than a human. How do they do it?
- A perfect, working mind is locked inside a useless body: the sufferer can sense everything around but is unable to communicate with anyone.
- Spend as little time as possible travelling and leaving more for watching whales
- Looking at a picture from your digital camera or a digital movie, it’s all just 11001100011– hardly inspiring, and I don’t really see what it means!
- It turns out though that some missions really are impossible for computers and even Tom Cruise wouldn’t be able to make a difference even if he was given unlimited time.
- Computer programs look just like a series of rules to control the way cash is moved around.
- How might you go about designing computer judges?
- To be a good computer scientist you have to enjoy problem solving. That is what it’s all about: working out the best way to do things.
- How is a computer program like a recipe? Paul Curzon explains, and as a bonus, tells you how to cook a quick pasta dish.
- The code hidden in knitting, and what might happen when computers learn to read it.
- If humans are ever to get to like and live with robots we need to understand each other.
How to get a head in robotics? [cs4fn-pdf]
The emotion machine [cs4fn-pdf] - The future of movies and TV isn’t film, it’s streams of digits. Both are going digital… So what’s your favourite MPEG then?
- One of the nastiest errors in computer software can come from something called a stack overflow, the computer pops or pushes from its current position, where the stack pointer is pointing, and shoots off the end of the stack, like a magician counting past 52 cards.
Johnny Ball’s ‘Two Wrongs Do Make a Right’ Trick [cs4fn-link]
- Magicians want to move cards around efficiently; computers want to move data around in their memory efficiently.
- When we have to communicate with a computer and give it instructions we want to make life easy for ourselves.
- Could you make the most powerful computer ever created … out of chocolates? It’s actually quite easy. You just have to have enough chocolates (and some lollies). It is one of computer science’s most important achievements.
- Use Binary addition to emulate a small-scale feat of memory magic, impressing your friends with your mind’s memory power.
- Data compression helps get information small enough to be transmitted quickly, so we can download texts movies and music.
- Rather than having to learn how to use your computers, your computers will have to learn how you would like to use them.
- Using clever computer vision techniques it’s now possible for your ingredients to tell you how they should be cooked in a kitchen.
- Researchers have come up with a way for people with visual impairment to get more out of images – a method for automatically turning photos of faces into raised pictures that people can feel with their fingers.
- Computers are much better off letting our brains do the tricky thinking.
- An operating system is the software that has direct control of the hardware that applications are to run on.
Smart Phones, Operating Systems and Google Android [cs4fn-link]
- Most computers get round problem of lack of memory using ‘virtual memory’ hardware. What is virtual memory? It’s just a clever way to give the appearance of having more memory than you really do.
- Grace Hopper is famous for more than just the word ‘bug’ though. She was one of the most influential of the early computer pioneers, responsible for perhaps the most significant idea in helping programmers to write large, bug-free programs.
- Humans are great at multitasking so as a cook becomes more confident they start to overlap some of the tasks, checking what to do next while stirring the pot perhaps, or leaving a sauce to simmer while chopping the herbs. Computers do similar things.
Ratatouille: Rats doing massively parallel computing [cs4fn-link]
- Tiny technologies will be able to serve as a window onto the vast world wide web of information, education and entertainment.
- In real life, the connection is food, but on the web the connections are links.
- When you send an email, ever thought how it actually gets from here to there?
- When pop star Madonna took to the stage at Brixton Academy in 2001 for a rare appearance she made Internet history and caused more that a little Internet misery.
Die another Day? Or How Madonna crashed the Internet [cs4fn-pdf]
- Computer science isn’t just about using language, sometimes it’s about losing it. Sometimes people want to send messages so secret that no one even knows the messages exist.
- You are revamping a hotel and are introducing new card locks rather than ones with keys. Your first thought is to connect all the doors to a computer network. Would that work?
- Technology changes society. Whether fire, wheels, guns or skyscrapers, all have made a massive difference to the way we work, live and play. Computer technology is accelerating the change and raising whole new issues society has to tackle.
- Since the advent of the microprocessor by Intel in 1971, electronic computers have made their way into more areas of our everyday life. It is now unlikely that most people in the developed world will get through a day without some use of a computer. So what are the impacts of this technological revolution which benefits and detriments our society?
- With more and more opportunity to tell the world your stories, through web blogging, or networking sites like myspace and youtube, there are so many tales being told, but which of them are true and which of them made up.
- Social scientists have found that people don’t always help others, even if they realise someone’s in trouble. The only way to figure out why this happens, and what makes a difference whether bystanders help someone, is to study situations like it. But how? Scientists can’t just go around beating people up to see how others will react.
More of our resources, including linked computing ‘story’ booklets can be found in our resources section. You may also want to look at cs4fn’s teacher resources or browse the latest cs4fn magazine.
It is suggested that:
- Primary teachers focus on the badge statements from the Pink to Purple row.
- Secondary teachers focus on the badge statements from the Purple to Black row.
- The white row overlaps with the KS4 qualification specifications.