Www.cloudflare.com Turing’s Curse July 26, 2013 John Graham-Cumming.

Slides:



Advertisements
Similar presentations
What is Computer Software?. Hardware vs Software Got to have both to get the job done!
Advertisements

An Introduction to Programming General Concepts. What is a program? A program is an algorithm expressed in a programming language. programming language.
Skills: none Concepts: host, TCP/IP communication software, TCP/IP layers, TCP/IP functions, TCP/IP protocols This work is licensed under a Creative Commons.
“Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how.
Network Terminology … Remember: Knowledge is Power!
Chapter Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing Describe.
CS 300 – Lecture 20 Intro to Computer Architecture / Assembly Language Caches.
CS 300 – Lecture 2 Intro to Computer Architecture / Assembly Language History.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
“Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Chapter 01 Nell Dale & John Lewis.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Managing Information Technology 6 th Edition CHAPTER 3 COMPUTER SOFTWARE.
Principles of Information Systems, Sixth Edition The Internet, Intranets, and Extranets Chapter 7.
Chapter Lead Black Slide Powered by DeSiaMore Powered by DeSiaMore.
Hands-On Microsoft Windows Server 2003 Networking Chapter Three TCP/IP Architecture.
70-291: MCSE Guide to Managing a Microsoft Windows Server 2003 Network Chapter 3: TCP/IP Architecture.
Programming Languages Introduction. Overview Motivation Why study programming languages? Some key concepts.
Review: – computer networks – topology: pair-wise connection, point-to-point networks and broadcast networks – switching techniques packet switching and.
What is Computer Software?. Hardware vs Software Got to have both to get the job done!
Seaborg Cerise Wuthrich CMPS Seaborg  Manufactured by IBM  Distributed Memory Parallel Supercomputer  Based on IBM’s SP RS/6000 Architecture.
“Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Network Services Networking for Home and Small Businesses – Chapter 6.
Chapter 1 The Big Picture.
Lecture 1: What is a Computer? Lecture for CPSC 2105 Computer Organization by Edward Bosworth, Ph.D.
2001 Networking Operating Systems (CO32010) 1. Operating Systems 2. Processes and scheduling 3.
CompSci Today’s topics Virtual Environment for Computing Operating Systems Upcoming Review Reading Great Ideas, Chapter 10.
Computer Fundamentals MSCH 233 Lecture 2. What is a Software? Its step by step instructions telling the computer how to process data, execute operations.
World Wide Web Raghunath M D BSNL Mobile Services, Ernakulam, Ph:
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Computer Mouse. The first computer mouse appeared in It was invented by Douglas Engelbart. He was an American engineer and inventor, author of 25.
1 Debugging. 2 A Lot of Time is Spent Debugging Programs Debugging. Cyclic process of editing, compiling, and fixing errors. n Always a logical explanation.
Lead Black Slide. © 2001 Business & Information Systems 2/e2 Chapter 5 Information System Software.
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 4 Computer Software.
University of Utah 1 Andy van Dam lecture thoughts?
Alan Kay: LCC 2700: Intro to Computational Media Spring 2005.
70-291: MCSE Guide to Managing a Microsoft Windows Server 2003 Network, Enhanced Chapter 3: TCP/IP Architecture.
Newsgroup World Wide Web (WWW) Conservation Over the Internet e.g.ICQ File Transfer Protocol (FTP) Includes 6 main services: Electronic Mail Remote.
Capt Froberg. Outline What is a computer? What components does a computer need? Physical “Cloud” What is a virtual computer?
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
Virtual Machines. A virtual machine takes the layered approach to its logical conclusion. It treats hardware and the operating system kernel as though.
Introduction Chapter 1. Uses of Computer Networks Business Applications Home Applications Mobile Users Social Issues.
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
Introduction of Wget. Wget Wget is a package for retrieving files using HTTP and FTP, the most widely-used Internet protocols. Wget is non-interactive,
1 Sections Java Virtual Machine and Byte Code Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
History. Development Driven by Function Functions of a Programming Language –To describe computation for use by computers –To describe computation and.
Augmenting Understanding: 2 Digital Innovators LCC 2700: Intro to Computational Media Fall 2005 Ian Bogost.
The 1 st Computer… Was the Z1 computer Invented by Conrad Zeus in 1936 It was the first programmable computer!
Allows the user and the computer to communicate with each other.
LCC 2700: Intro to Computational Media
Concepts of Programming Languages
1.4 Wired and Wireless Networks
Chapter 1 The Big Picture
Database Applications Using Internet Technology
An Introduction to Programming
Virtual Machines.
Chapter 4 Computer Software.
Programming COMP104: Fundamentals and Methodology Introduction.
DotnetConf 11/14/2018 8:22 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE.
Microsoft Build /6/2018 4:22 PM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
What is an Operating System?
What is Computer Software?
Outline Chapter 2 (cont) OS Design OS structure
Principles of Programming Languages
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
An Introduction to Programming
System calls….. C-program->POSIX call
CSCE156: Introduction to Computer Science II
Presentation transcript:

Turing’s Curse July 26, 2013 John Graham-Cumming

A LONG, LONG TIME AGO...

The Mother of All Demos

WHAT’S NEW?

I’ve got a bad feeling about this

CLOUD COMPUTING

Cloud Computing

BIG DATA

Big Data in

VIRTUAL MACHINE HYPERVISOR

Virtual Machine Hypervisor

HYPERTEXT

Hypertext

HYPERTEXT WITH CLICKABLE LINKS

Hypertext with clickable links

MARKUP LANGUAGES

Markup Languages IBM Generalized Markup Language – 1960s

FIBRE OPTIC NETWORKING

Fibre Optic Networking

WIRELESS NETWORKING

Wireless Networking –

ETHERNET

Ethernet

SOLID STATE DISKS

SSDs – 4MB in

PROCESSOR ARCHITECTURE

Processor Architecture RISC (1960s Cray; 1980s) CISC (1960s IBM mainframes) Instruction and Data Caching (1960s; IBM System/360) Instruction Pipelining and Prefetch (1961 IBM Stretch; ) Branch Prediction (1961 IBM Stretch) Vector processor (1974 STAR-100)

INTERNETWORKING

Internetworking Chat – 1967 (NLS later Unix Talk) File Transfer – 1971 (FTP) – 1971 (host to host) Remote Procedure Calls – 1975 (RFC 707)

GRAPHICAL USER INTERFACE

GUI – Xerox 8010 (1981)

GUI – Apple Lisa (1983)

INTERNET TCP/IP –

FUNCTIONAL PROGRAMMING LISP – 1958 APL ML –

OBJECT ORIENTED PROGRAMMING Simula 1 – 1967 C Smalltalk

CONCURRENT PROGRAMMING CSP – 1978 Ada Occam –

EVENT DRIVEN PROGRAMMING PL/

DECLARATIVE LANGUAGES SQL – 1979 Regular Expressions – 1970s

HIGH WATER MARK IS (ROUGHLY) 1983

IMPLICATIONS

THE THING YOU ARE DOING HAS BEEN DONE BEFORE There’s great value in computer science education

WE ARE IN THE AGE OF GREAT PRODUCTIVITY Be thankful all that stuff’s been invented already

WE HAVE YET TO CONQUER UNRELIABILITY

Ada Lovelace (1840s)

Grace Hopper (1947)

Maurice Wilkes (1950s) As soon as we started programming, we found to our surprise that it wasn't as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs.

Donald Knuth (1990s) Question from audience: “Which programming language do you prefer Java or C++?” Knuth: “Which has the better debugger?”

TURING’S CURSE 1936: There is no program that, given a description of an arbitrary computer program, can decide whether the program finishes running or continues to run forever.

WORK ON RELIABILITY Help programmers make fewer mistakes Help programmers find their mistakes