MARC ProgramEssential Computing for Bioinformatics 1 The Nature of Computing Prof. Bienvenido Velez ICOM 4995 Lecture 3.

Slides:



Advertisements
Similar presentations
Microcomputer Circuits Prof Jess UEAB 2007 Designing a Microprocessor Chapter 1.
Advertisements

CS 345: Chapter 9 Algorithmic Universality and Its Robustness
Introduction to Computer Programming Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University.
INTRODUCTION OF COMPUTER
 Computer hardware components are the physical pieces of the computer.  The major hardware components of a computer are: – The central processing.
CSC 2400 Computer Systems I Lecture 3 Big Ideas. 2 Big Idea: Universal Computing Device All computers, given enough time and memory, are capable of computing.
Introduction to Computer Science Fall 2003, 劉震昌 Ref: Computer Science: an overview J. Glenn Brookshear.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-1 Introduction to Computing Systems: From Bits and Gates.
1. By the end of this lecture you should be able … To describe in general terms how computers function To describe the fetch-execute cycle To explain.
Computability and Complexity 3-1 Turing Machine Computability and Complexity Andrei Bulatov.
Turing Machines CS 105: Introduction to Computer Science.
Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.
Introduction to Computer Engineering ECE/CS 252, Fall 2010 Prof. Mikko Lipasti Department of Electrical and Computer Engineering University of Wisconsin.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-1 Introduction to Computing Systems: From Bits and Gates.
บทนำสู่คอมพิวเตอร์. Outline Computer Concepts Computer Components Software OS How to write a program? Program development.
Welcome Aboard – Chapter 1 COMP 2610 Dr. James Money COMP
More Theory of Computing
1.1 1 Introduction Foundations of Computer Science  Cengage Learning.
Levels of Architecture & Language CHAPTER 1 © copyright Bobby Hoggard / material may not be redistributed without permission.
Computer Organization Intro 1 CEG 320/520: Computer Organization and Assembly Language Programming Introduction to Computer Organization.
1 CO Games Development 2 Week 21 Turing Machines & Computability Gareth Bellaby.
Digital Design and Computer Architecture Dr. Robert D. Kent LT Ext Lecture 1 Introduction.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-1 Introduction to Computer Engineering ELEC S100F (Fall.
MARC: Developing Bioinformatics Programs July 2009 Alex Ropelewski PSC-NRBSC Bienvenido Vélez UPR Mayaguez Reference: How to Think Like a Computer Scientist:
Spring 2006ICOM 4036 Programming Laguages Lecture 2 1 The Nature of Computing Prof. Bienvenido Velez ICOM 4036 Lecture 2.
Software Basics. Some Pioneers Charles Babbage Analytical Engine Countess Ada Lovelace First Programmer ? John Von Neumann storing instructions in memory.
Chapter 1 Introduction.
Computer Architecture And Organization UNIT-II General System Architecture.
Computer Science 101 Computer Systems Organization.
Spring 2002INEL 4206 Microprocessors Lecture 4 1 Practical Universal Computers Prof. Bienvenido Velez Lecture 4 Bits Wires Gates Turing Machines.
The Nature of Computing INEL 4206 – Microprocessors Lecture 3 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez.
Indira Gandhi National Open University presents. A Video Lecture Course: Computer Platforms.
The Nature of Computing INEL 4206 – Microprocessors Lecture 2 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez.
PART 1 Introduction 1. Layers of Abstraction 2. Turing Machine 3. Layer Transformation 4. Descriptions of Layers.
Computer Science 101 Theory of Computing. Computer Science is... The study of algorithms, with respect to –their formal properties –their linguistic realizations.
Introduction to Computer Engineering CS/ECE 252, Spring 2008 Prof. David A. Wood Computer Sciences Department University of Wisconsin – Madison Adapted.
ICC Module 3 Lesson 1 – Computer Architecture 1 / 6 © 2015 Ph. Janson Information, Computing & Communication Computer Architecture Clip 3 – Instruction.
Fall 2004ICOM 4036 Programming Laguages Lecture 2 1 Low-Level Programming Prof. Bienvenido Velez ICOM 4036 Lecture 2.
Chapter 2 Data Manipulation © 2007 Pearson Addison-Wesley. All rights reserved.
©Brooks/Cole, 2003 Chapter 1 Introduction. ©Brooks/Cole, 2003 Figure 1-1 Data processor model This model represents a specific-purpose computer not a.
CS150: Computer Organization and Architecture Michael D. Wilder, Ph.D.
MARC: Developing Bioinformatics Programs Alex Ropelewski PSC-NRBSC Bienvenido Vélez UPR Mayaguez Reference: How to Think Like a Computer Scientist: Learning.
1 The user’s view  A user is a person employing the computer to do useful work  Examples of useful work include spreadsheets word processing developing.
Chapter I: Introduction to Computer Science. Computer: is a machine that accepts input data, processes the data and creates output data. This is a specific-purpose.
Chapter 1 Welcome Aboard. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-2 Introduction to the World of.
Computer Organization and Architecture Lecture 1 : Introduction
Yale N. Patt Sanjay J. Patel
Computers’ Basic Organization
Computer Organization and Machine Language Programming CPTG 245
Chapter 1 Introduction.
COMPUTER ARCHITECTURE AND THE CYNAIDE COATED APPLE.
Introduction to Computer Engineering
Instructor:Po-Yu Kuo 教師:郭柏佑
Chapter 1 Welcome Abroad
Turing Machines.
Introduction to Computer Engineering
Microprocessor and Assembly Language
1.#.
Welcome Aboard 1.
Foundations of Computer Science
Intro to Architecture & Organization
T Computer Architecture, Autumn 2005
Chapter 1 Welcome Aboard!. Chapter 1 Welcome Aboard!
Instructor:Po-Yu Kuo 教師:郭柏佑
Introduction to Computer Engineering
CompSci 1: Principles of Computer Science Lecture 1 Course Overview
The Nature of Computing
OCR GCSE (9-1) Computer Science (J276)
Introduction to Computer Engineering
Chapter 4 The Von Neumann Model
Presentation transcript:

MARC ProgramEssential Computing for Bioinformatics 1 The Nature of Computing Prof. Bienvenido Velez ICOM 4995 Lecture 3

MARC ProgramEssential Computing for Bioinformatics 2 Some Inaccurate Yet Popular Perceptions of Computing Computing = Computers Computing = Programming Computing = Software

MARC ProgramEssential Computing for Bioinformatics 3 Computing = Computers Computing is about solving problems using computers A.K.A. The Computing Device View of Computing

MARC ProgramEssential Computing for Bioinformatics 4 Computing = Programming Computing is about writing programs for computers A.K.A. The Programming Language view of Computing

MARC ProgramEssential Computing for Bioinformatics 5 Computing = Software Computing is not concerned with hardware design A.K.A. The “Floppy Disk” view of Computing

MARC ProgramEssential Computing for Bioinformatics 6 Part I - Outline What is Computing? Computing Models and Computability Interpretation and Universal Computers Church’s Thesis

MARC ProgramEssential Computing for Bioinformatics 7 What is computing then? Algorithmic Computation Function Input Information Output Information Computing is the study of Computation: the process of transforming information

MARC ProgramEssential Computing for Bioinformatics 8 The Computation Process … encode … compute Problem decode Solution Information

MARC ProgramEssential Computing for Bioinformatics 9 Fundamental Questions Addressed by the Discipline of Computing What is the nature of computation? What can be computed? What can be computed efficiently? How can we build computing devices?

MARC ProgramEssential Computing for Bioinformatics 10 The Computation Process … encode … compute Problem decode Solution Integer Function Every Algorithm is in Essence and Integer Function

MARC ProgramEssential Computing for Bioinformatics 11 Computability All Integer Functions (IF) Computable Integer Functions (CF) IF ≟ CF Halting Problem IF ≠ CF Computable Integer Functions (CF)

MARC ProgramEssential Computing for Bioinformatics 12 The Halting Problem (Alan Turing 1936) Given a program and an input to the program, determine if the program will eventually stop when it is given that input. Compute Program P Input I P Halts on I? Cannot Build This Want to describe the set of computable functions?

MARC ProgramEssential Computing for Bioinformatics 13 Mathematical Computers: The Turing Machine (1936) Alan Turing FSM Infinit e I/O TAPE 0/{1,0,R} 1/{0,1,L} Tape Head Next State Write Symbol Head Movement Input Symbol

MARC ProgramEssential Computing for Bioinformatics 14 Mathematical Computers: The Turing Machine (1936) Alan Turing FSM Infinit eTAPE 0/{1,0,R} 1/{0,1,L} FSM Infinit e I/O TAPE Tape Head Turing demonstrated how to solve several problems using his computing model

MARC ProgramEssential Computing for Bioinformatics 15 FSM Sorting TM FSM Sorting TM FSM Sorting TM Ad-hoc Turing Machines FSM Sorting TM FSM Searching TM FSM Integrating TM Can we build a general purpose TM?

MARC ProgramEssential Computing for Bioinformatics 16 The Universal Turing Machine (UTM) The Paradigm for Modern General Purpose Computers Universal TM Coded TM MCoded Tape for M Capable of Emulating Every other TM Shown possible by Alan Turing (1936) BIG IDEA: INTEPRETATION!!! Software (flexible) Hardware (fast) Programming = Encoding Algorithms

MARC ProgramEssential Computing for Bioinformatics 17 Other Familiar Models of Computation Combinational Circuits Sequential Circuits (FSM’s) Pentium Instruction Set Architectures Lambda Calculus Recursive Functions C++ Can you tell which ones are Turing Universal? That is, which ones can emulate any other Turing Machine?

MARC ProgramEssential Computing for Bioinformatics 18 Computing in Perspective CMOS Gate FSM ISA Assembler 1Assembler 2Assembler 3 C++PascalFortran MatLab Build One Build Many Excel Interpreter Design Demands Programming Language Design PSpice All have embedded PL’s

MARC ProgramEssential Computing for Bioinformatics 19 Why Abstraction Layers? Resilience to change: –Each layer provides a level of indirection Divide and Conquer Approach: –Can work on one small semantic gap at a time Building Block Approach: –Can build many higher layer on same lower layer Because we know of no other way of doing anything

MARC ProgramEssential Computing for Bioinformatics 20 Church’s Thesis Alonso Church “All the models of computation yet developed, and all those that may be developed in the future, are equivalent in power.” “Any realizable computing device can be simulated by a Turing machine” Issues not considered: Size, Programmability, Performance But they must be considered if one is to build …

MARC ProgramEssential Computing for Bioinformatics 21 The (John) Von Neumann Architecture (late 40’s) I/O devices Central Processing Unit (CPU) Memory Allow communication with outside world Interprets instructions Stores both programs and data After 60 years … most processors still look like this!

MARC ProgramEssential Computing for Bioinformatics 22 DataPaths PC ABR ALU AC Practical Universal Computers ( John) Von Neumann Architecture (1945) Program Data Memory Control Unit (FSM) CPU CPU is a universal TM An interpreter of some programming language (PL) status control This looks just like a TM Tape

MARC ProgramEssential Computing for Bioinformatics 23 End of Lecture 2