Presentation is loading. Please wait.

Presentation is loading. Please wait.

MARC: Developing Bioinformatics Programs July 2009 Alex Ropelewski PSC-NRBSC Bienvenido Vélez UPR Mayaguez Reference: How to Think Like a Computer Scientist:

Similar presentations


Presentation on theme: "MARC: Developing Bioinformatics Programs July 2009 Alex Ropelewski PSC-NRBSC Bienvenido Vélez UPR Mayaguez Reference: How to Think Like a Computer Scientist:"— Presentation transcript:

1 MARC: Developing Bioinformatics Programs July 2009 Alex Ropelewski PSC-NRBSC Bienvenido Vélez UPR Mayaguez Reference: How to Think Like a Computer Scientist: Learning with Python 1 Essential Computing for Bioinformatics Lecture 2 High-level Programming with Python Controlling the flow of your program

2 The following material is the result of a curriculum development effort to provide a set of courses to support bioinformatics efforts involving students from the biological sciences, computer science, and mathematics departments. They have been developed as a part of the NIH funded project “Assisting Bioinformatics Efforts at Minority Schools” (2T36 GM008789). The people involved with the curriculum development effort include: Dr. Hugh B. Nicholas, Dr. Troy Wymore, Mr. Alexander Ropelewski and Dr. David Deerfield II, National Resource for Biomedical Supercomputing, Pittsburgh Supercomputing Center, Carnegie Mellon University. Dr. Ricardo González Méndez, University of Puerto Rico Medical Sciences Campus. Dr. Alade Tokuta, North Carolina Central University. Dr. Jaime Seguel and Dr. Bienvenido Vélez, University of Puerto Rico at Mayagüez. Dr. Satish Bhalla, Johnson C. Smith University. Unless otherwise specified, all the information contained within is Copyrighted © by Carnegie Mellon University. Permission is granted for use, modify, and reproduce these materials for teaching purposes. Most recent versions of these presentations can be found at http://marc.psc.edu/http://marc.psc.edu/ Essential Computing for Bioinformatics

3  Basics of Functions  Decision statements  Recursion  Iteration statements Outline These materials were developed with funding from the US National Institutes of Health grant #2T36 GM008789 to the Pittsburgh Supercomputing Center 3

4  Basics of Functions  Decision statements  Recursion  Iteration statements Outline 4

5 Some Inaccurate Yet Popular Perceptions of Computing Computing = Computers Computing = Programming Computing = Software 5

6 Computing = Computers 6 Computing is about solving problems using computers A.K.A. The Computing Device View of Computing

7 Computing = Programming 7 Computing is about writing programs for computers A.K.A. The Programming Language view of Computing

8 Computing = Software 8 Computing is not concerned with hardware design A.K.A. The “Floppy Disk” view of Computing

9 Part I - Outline 9 What is Computing? Computing Models and Computability Interpretation and Universal Computers Church’s Thesis

10 What is computing then? 10 Algorithmic Computation Function Input Information Output Information Computing is the study of Computation: the process of transforming information

11 The Computation Process 11 01101100 1010100 101… encode 01101100 1010100 101… compute Problem decode Solution Information

12 Fundamental Questions Addressed by the Discipline of Computing 12 What is the nature of computation? What can be computed? What can be computed efficiently? How can we build computing devices?

13 The Computation Process 13 01101100 1010100 101… encode 01101100 1010100 101… compute Problem decode Solution Integer Function Every Algorithm is in Essence an Integer Function

14 Computability 14 All Integer Functions (IF) Computable Integer Functions (CF) IF ≟ CF Halting Problem IF ≠ CF Computable Integer Functions (CF)

15 The Halting Problem (Alan Turing 1936) 15 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?

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

17 Mathematical Computers: The Turing Machine (1936) 17 Alan Turing 01 01 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

18 Ad-hoc Turing Machines 18 FSM Sorting TM FSM Sorting TM FSM Sorting TM FSM Sorting TM FSM Searching TM FSM Integrating TM Can we build a general purpose TM?

19 The Universal Turing Machine (UTM) The Paradigm for Modern General Purpose Computers 19 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

20 Other Familiar Models of Computation 20 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?

21 Computing in Perspective 21 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

22 Why Abstraction Layers? 22 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

23 Church’s Thesis 23 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 …

24 The (John) Von Neumann Architecture (late 40’s) 24 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!

25 Practical Universal Computers (John) Von Neumann Architecture (1945) 25 DataPaths PC ABR ALU AC 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


Download ppt "MARC: Developing Bioinformatics Programs July 2009 Alex Ropelewski PSC-NRBSC Bienvenido Vélez UPR Mayaguez Reference: How to Think Like a Computer Scientist:"

Similar presentations


Ads by Google