Lesson Objectives Aims Understand the following:

Slides:



Advertisements
Similar presentations
Department of Computer Engineering Faculty of Engineering, Prince of Songkla University 1 5 – Abstract Data Types.
Advertisements

Software design and development Marcus Hunt. Application and limits of procedural programming Procedural programming is a powerful language, typically.
Chapter 9 High-Level Programming Languages: C++. Chapter Goals Describe the expectations of high level languages Distinguish between functional design.
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
Designing Classes CS239 – Jan 26, Key points from yesterday’s lab  Enumerated types are abstract data types that define a set of values.  They.
Computational Thinking
Lesson 3.1 Review: audible tri-tone Write a snap script that… Asks the user to enter 3 numbers corresponding to tone values Checks for valid inputs and.
The Problem A gallant and brave knight must traverse the lands to rescue the princess and claim his rightful place in the kingdom A Knight on a board.
By : Jack Kelenjian. Is a career in computers right for me? To determine if a career in computers is right for someone you need to identify what makes.
Design Communication. Freehand Drawing Definition: The spontaneous representation of ideas on paper without the use of technical aids.
Computational Thinking
AP CSP: Creating Functions & Top-Down Design
A Selection of Best Practices and Design Patterns for Unity
Collision Theory and Logic
Lesson Objectives Aims Key Words
Algorithms and Problem Solving
Programming paradigms
Object Oriented Programming
Concepts of Object Oriented Programming
Learning outcomes 2 Developing Code – Input Output Model
Appmarketingminds.com Welcome to App Marketing Minds’ series on how to create viral applications.
Lesson Objectives Aims You should be able to:
Collision Theory and Logic
Object-Oriented Analysis and Design
Do it now activity Last lesson we used Flowol to create a solution to a problem a computer could solve. Identify what each symbol does:
Solving Quadratic Equations
Functions and Top-Down Design
UNIT 2 – LESSON 6 ENCODE AN EXPERIENCE.
Data Abstraction: The Walls
State Diagrams SENG 301.
BTEC NCF Dip in Comp: Unit 01 Principles of Computer Science Lesson 01 – Computational Thinking Mr C Johnston.
Teaching design techniques to design efficient solutions to problems
Year 4 Topic Autumn Terms 1 & 2 World War 1 English I can…
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
By Dr. Abdulrahman H. Altalhi
Introduction CSE 1310 – Introduction to Computers and Programming
Computational Thinking
Lesson 1: Buttons and Events – 12/18
LEQ: How do I organize a response to a LEQ?
Procedural Abstraction Object-Oriented Code
Notes for helpers Supporting everyone to tell their story
Print slides for students reference
Extraversion Introversion
How to Write a Descriptive Essay
Learning to Program in Python
LESSON 13 – INTRO TO ARRAYS
Making Procedural Methods
UNIT 3 CHAPTER 1 LESSON 4 Using Simple Commands.
Lesson Objectives Aims You should be able to:
How to write a story.
The Knight’s Tour.
How to write a story.
Lecture Set 11 Creating and Using Classes
GET READY SETTLER ACTIVITY
GET READY SETTLER ACTIVITY
Programming We have seen various examples of programming languages
Topic 1: Problem Solving
Flowcharting & Algorithms
Workshop for Programming And Systems Management Teachers
COMPUTATIONAL THINKING COMPUTATIONAL THINKING IN PROGRAMMING
Computer Graphics Lecture 15.
How to write a story.
Applying Use Cases (Chapters 25,26)
Team Skill 6 - Building The Right System Part 1: Applying Use Cases
Applying Use Cases (Chapters 25,26)
Computational Thinking
Week 1 - Introduction and Objects
Thinking Abstractly
Computational Thinking
Design Document Review
Presentation transcript:

Lesson Objectives Aims Understand the following: The nature of abstraction The need for abstraction The differences between an abstraction and reality You should be able to: Devise an abstract model for a variety of situations

Abstraction Another way of representing something That’s it. Shall we move on? Google says this is an abstraction…

Abstraction I LOVE abstraction Abstraction is: “The removal of unnecessary detail, leaving only what is essential remaining” The noun “Abstract” means to summarise – “an abstract” is a general overview of something – and this is just what we want!

From the mouth of OCR Abstraction is required to enable complex procedures or events to be modelled. Computer programs cannot account for every single element of an event as this would be extremely complex and time consuming. Consider the causes of earthquakes; there are a variety of reasons and elements that lead to an earthquake. By pulling out the common themes and similarities between each earthquake and plotting these causes a model can be created. As more data becomes available more detail can be added, making the model more accurate.

Abstraction is used to: Filter down a list into it’s most essential form Reduce the number of problems that need solving Focus on the crux of a problem Decide on a basic feature set for a piece of software/algorithm Make the production of an algorithm MUCH EASIER (because we discard the non-essential information)

Example Abstract Not abstract Make my dinner I require a round plate, not square, slightly warm to the touch, but not too hot, fully laden with freshly cooked foods, a variety of tastes and textures, healthy but not too bland, to be served to me within the next hour.

But it’s never that simple But this is only one way of looking at abstraction. In computer science, abstraction is used to/in: Represent real world objects in a way which can be processed Creating algorithms (removing the unnecessary) Modelling Encapsulate (object oriented programming) Layering (OSI model, TCP stack etc) Its so wide ranging that in computing almost anything can be seen as an abstraction of something else

And it’s not always about removing detail Abstraction removes the unnecessary detail from the user’s experience, making it more accessible. In some instances the level of abstraction is reduced, as more detail is added to improve the model. Consider an old computer game where the player can only move up, down, left or right. Current game characters can jump, lean, swing and their individual joints move. In games, physics allows for more realistic modelling of interactions such as water, flight and properties of various materials and natural elements. In these examples more detail is being added to make the experience closer to the reality.

Abstraction Examples

Task Complete task 1 from the shared area

Task 2 Abstraction in programs involves hiding the real process and complex methods behind a simple user interface. Consider a simple currency conversion program; list all the stages of converting the currency from, say, pounds to dollars. You will note that there are several parts to the final program solution; abstraction attempts to hide these from the user to make the conversion of the currency appear a simple and easy process. Which parts or stages could be hidden from the user and why? What could happen if the user saw these other stages? Write the program or pseudo code to change/convert the currency value entered, thinking about which parts are being abstracted and why, and which unnecessary details are being removed from the user’s perspective.

June 2016

Practise paper

Review/Success Criteria You should know: The