Abstraction Computer Science and Software Engineering

Slides:



Advertisements
Similar presentations
IT253: Computer Organization Lecture 6: Assembly Language and MIPS: Programming Tonga Institute of Higher Education.
Advertisements

PROGRAMMING Introduction To Programming Definition Types Of Programming Languages Programming Language Paradigm Translator
Beatrice Hicks Received degrees in both chemical and electrical engineering, as well as in physics One of the founding members and first president of.
CSE115: Introduction to Computer Science I Dr. Carl Alphonce 219 Bell Hall
CSE115: Introduction to Computer Science I Dr. Carl Alphonce 219 Bell Hall
CSE115: Introduction to Computer Science I Dr. Carl Alphonce 219 Bell Hall 1.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design First Edition by Tony Gaddis.
Computer Concepts 5th Edition Parsons/Oja Page 546 CHAPTER 11 Software Engineering Section A PARSONS/OJA Computer Programming.
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
09/11/06 Hofstra University – Overview of Computer Science, CSC005 1 Chapter 2 Binary Values and Number Systems.
Introduction to Computers and Programming. Some definitions Algorithm: –A procedure for solving a problem –A sequence of discrete steps that defines such.
Chapter 16 Programming and Languages: Telling the Computer What to Do.
CSE115: Introduction to Computer Science I Dr. Carl Alphonce 219 Bell Hall
Grace Murray Hopper By: Margaret Girard, Brandon Fitzgerald and Tabitha Thibault.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 0 Introduction to Computers and Programming.
CS 104 Introduction to Computer Science and Graphics Problems Software and Programming Language (2) Programming Languages 09/26/2008 Yang Song (Prepared.
Introduction to Computers and Programming. Some definitions Algorithm: Algorithm: A procedure for solving a problem A procedure for solving a problem.
Fundamentals of Software Development 1Slide 1 Grace Hopper ( ) An influential force and a legendary figure in the development of programming languagesAn.
History of Computers & the Internet Emily 5th. Creation of Computers Invented in 1936 Konrad Zuse Z1-First freely programmable computer.
Chapter 1: Introduction To Computer | SCP1103 Programming Technique C | Jumail, FSKSM, UTM, 2005 | Last Updated: July 2005 Slide 1 Introduction To Computers.
Types of software. Sonam Dema..
Programming Languages Lecture 12. What is Programming?  The process of telling the computer what to do  Also known as coding.
Alternate Version of STARTING OUT WITH C++ 4 th Edition Chapter 1 Introduction to Computers and Programming.
CHAPTER 4: INTRODUCTION TO COMPUTER ORGANIZATION AND PROGRAMMING DESIGN Lec. Ghader Kurdi.
Presented by: Amy Kruzick CSCE 221h-200 March 18, 2014
Careers in STEM (Science, Technology, Engineering, and Mathematics) Copyright © Texas Education Agency, All rights reserved.
Careers in Computer Science Your Future Starts at KCD.
University of Utah 1 IBM Dominates the industry Critics complain that IBM doesn't innovate -Sound familiar?
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
1 Intro to Computer Science I Chapter 1 Introduction to Computation Algorithms, Processors, and Programs.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
General Computer Science for Engineers CISC 106 Lecture 02 Dr. John Cavazos Computer and Information Sciences 09/03/2010.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
Tranlators. Machine Language The lowest-level programming languageprogramming language Machine languages are the only languages understood by computers.languagescomputers.
An Abacus. Babbage’s Difference Engine Electronic Computers  1939–1944, Howard H. Aiken developed the Harvard Mark I—also known as the IBM ASCC.  Grace.
Computer Programming I An Introduction to the art and science of programming with C++
Grace Brewster Murray Hopper Grace’s Parents ► Grace was born on December 9,1906 to Walter Fletcher Murray and Mary Campbell Horne Murray in.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 1- 1 October 20, October 20, 2015October 20, 2015October 20,
Robert Crawford, MBA West Middle School.  Explain how the binary system is used by computers.  Describe how software is written and translated  Summarize.
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 1: An Overview of Computers and Programming Languages.
Software Basics. Some Pioneers Charles Babbage Analytical Engine Countess Ada Lovelace First Programmer ? John Von Neumann storing instructions in memory.
OOP with Java, David J. Barnes Bits, Bytes, and Java1 The Challenge Writing programs well is a challenge. –From coder to software engineer. We want programs.
The History of Computers
Computer Science and Software Engineering© 2014 Project Lead The Way, Inc. Procedural Abstraction Object-Oriented Code.
Introduction to High-Level Language Programming Presented By Omar Y. Tahboub Computer Science Department Kent State University.
Chapter 4 Software. Chapter 4: Software Generations of Languages Each computer is wired to perform certain operations in response to an instruction. An.
Agenda Computer Languages How to Write a Simple C Program
CS-303 Introduction to Programming
By ILTAF MEHDI 1 COURSE TITLE: FUNDANENTALS OF PROGRAMMING INSTRUCTOR: ILTAF MEHDI.
Chapter 11  Getting ready to program  Hardware Model  Software Model  Programming Languages  Facts about C++  Program Development Process  The Hello-world.
Chapter 1 An Overview of Computers and Programming Languages.
© Steven Vidler/Corbis 1 Web Search/Thinkin g What is computer science? What do people who work in this field do? 2 Video Search/Thinkin g Why.
Representation of Data - Instructions Start of the lesson: Open this PowerPoint from the A451 page – Representation of Data/ Instructions How confident.
GROUP 2 NAME :  AZMYLL BIN ARSHAD  (18DNS14F2014)  MARYAM JAMILAH BINTI RAHIM  (18ENS14F2004)  SURAYA BINTI MOHAMAD  (18DNS14F2005)  MUHAMMAD SALEH.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Operating Systems A Biswas, Dept. of Information Technology.
Software Engineering Algorithms, Compilers, & Lifecycle.
Programming Languages Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
High-level language programming paradigms. Programming languages come in many forms or 'paradigms'. Each form of language offers advantages over other.
Introduction To Software Development Environment.
Addressing modes, memory architecture, interrupt and exception handling, and external I/O. An ISA includes a specification of the set of opcodes (machine.
Careers in STEM (Science, Technology, Engineering, and Mathematics)
Chapter 1 Introduction to Computer Science
Introduction
Computers, Programs, and Programming Languages
Introduction to Computer Science
Admiral Grace Hopper Rear Admiral Grace Murray Hopper was an American computer scientist and United States Naval officer. A pioneer in the field, she.
Algoritmos y Programacion
Running & Testing Programs :: Translators
Presentation transcript:

Abstraction Computer Science and Software Engineering © 2014 Project Lead The Way, Inc.

Abstraction Removing details Separation of concerns Presentation Name Course Name Unit # – Lesson #.# – Lesson Name Abstraction Removing details Separation of concerns Strategy for handling complexity The details of anything are often important. But there is only so much that we can focus on at once. When we are driving a car, we just trust that the steering wheel turns the car. We accept this as the interface through which we can interact with inventions that other people designed, created, and maintain – work that deals with the details of the linkages and friction with the wheels. Those workers also use abstraction: the car mechanic often chooses and installs a brake rotor without concerning herself with how the material of the brake pad was designed or manufactured. Abstraction is also useful when communicating about the kinds of inventions mentioned before as well as software. You’ll find as you program that it will often be handy to discuss parts of your program with others (teacher, partner, other students, or parents) in abstract terms depending on the level of expertise that the person you are talking to has and the purpose of your communication. When discussing a problem with a teacher, you might generalize more to give a quick overview or direct their attention to a general area of concern, whereas in day-to-day work with your partner you may need to be very concrete about exact syntax. If you are explaining the functionality of your program to someone who does not know about programming, a high level of abstraction may be required to help keep them from getting lost. In summary, abstraction is a useful tool for interfacing with software, for communicating about software, and for creating software.

The Ladder of Abstraction Presentation Name Course Name Unit # – Lesson #.# – Lesson Name The Ladder of Abstraction application software for thing in room: pick_up(thing) high-level language COBOL C int register c; low-level language Grace Hopper en.wikipedia.org/wiki/File:Intel_80486DX2_bottom.jpg 010101010010101011111011010001010101011111111110 Abstractions build on each other and let people focus on one level of the ladder of abstraction at a time. Note: the slide notes from Lesson 1.2 are shown here for easy reference for use in discussion. At the bottom of it all is physics: Newton’s Laws and the four forces of the universe and the two ways in which Newtonian physics had to be “fixed”: relativity and quantum mechanics. We can ignore the physics and just pay attention to abstractions of the semiconductor, represented by a few equations that summarize current and voltage under certain conditions. We can ignore the voltage and just trust that the CPU accepts 0’s and 1’s and steps through its instructions the way Intel designers say it does. We can ignore the bits and just use a language like Hopper’s COBOL – nowadays, C or C++, or Java, letting those languages worry about the CPU. We can even ignore the low-level languages and use a language like Scratch or Python – which take care of the lower level languages for us. And we can deal with an even higher level of abstraction at the application level. A funny comic: http://xkcd.com/435/ bytes and bits N P - + + - http://en.wikipedia.org/wiki/File:Transistorer.jpg voltage and current - - - + - http://theloveforhistory.wordpress.com/2011/05/24/einstein physics 𝑖 ℎ 2𝜋 𝜕 𝜕𝑡 Y= 𝐻 Y

CPU Follows a Sequence of Instructions Presentation Name Course Name Unit # – Lesson #.# – Lesson Name CPU Follows a Sequence of Instructions CPU is the Central Processing Unit: one “core” Our programs are turned into instruction understood by the CPU This processor is a “Core 2 Duo” Intel processor. Intel is one of the leaders in seminconductor manufacturing, alongside Texas Instruments and Samsung. Intel has manufacturing facilities with researchers and designers around the world and is headquartered in the Silicon Valley south of San Francisco, California. en.wikipedia.org/wiki/File:E6750bs8.jpg

Grace Hopper Typing Code That Makes Sense Closer to Human Language Presentation Name Course Name Unit # – Lesson #.# – Lesson Name Typing Code That Makes Sense Closer to Human Language Thankfully, Grace Hopper invented the compiler, a computer program that lets programmers work with more human-readable language. A compiler translates a more human-friendly code into a sequence of assembly language code before the code runs. Grace Hopper called her new language COBOL. She received a B.S. in mathematics from Vassar College and a Master’s and Ph.D. from Harvard. She programmed the Mark I, II, and III computers and was a Rear Admiral in the U.S. Navy.   Grace Hopper’s work let humanity gracefully “hop” up the ladder of abstractions. She invented the compiler specifically because she wanted more people to be able to use the new reality of computers. She programmed in assembly language – directly using the instruction set. She created another language by defining it to the computer in assembly language. People using her compiler no longer needed to worry about the details of the assembly language. Instead they could write a more human-like statement for what they wanted the computer to do. A Grace Hopper quotation: ‘The most important thing I've accomplished, other than building the compiler, is training young people. They come to me, you know, and say, "Do you think we can do this?" I say, "Try it." And I back 'em up. They need that. I keep track of them as they get older and I stir 'em up at intervals so they don't forget to take chances.’ Grace Hopper 1906-1992