CS 140: Introduction to Computer Science A Brief History of Computer Science. Edwin Rodríguez



Similar documents
A Brief History of the Internet. Chris Brooks Computing, Python, and Robots

FIVE ERAS IN COMPUTER DEVELOPMENT Pre-History Electronics Mini Micro Network

Connecting with Computer Science Chapter 1 Review:

Hackers Built the Internet. Eric S. Raymond

Ch. 10 Software Development. (Computer Programming)

Operating Systems Introduction

Understanding the OS Architecture and Linux History. Zhiqiang Lin

Unit 10 : An Introduction to Linux OS

Principles of Programming Languages Topic: Introduction Professor Louis Steinberg

CHAPTER 1: Our Digital Planet

Star System Deitel & Associates, Inc. All rights reserved.

01 Introduction. The timeline

INTRODUCTION TO COMPUTING CPIT 201 WEEK 13 LECTURE 3

Computer Science. Information. Computer Science - what s this? References - textbooks. Contact. Cezary Bolek cbolek@ki.uni.lodz.pl

Chapter 4 IT Infrastructure: Hardware and Software

Components of a Computing System. What is an Operating System? Resources. Abstract Resources. Goals of an OS. System Software

EECS 678: Introduction to Operating Systems

Discovering Computers

How To Understand The History Of An Operating System

Lecture 1: Introduction to UNIX

Introduction to Open Source. Marco Zennaro Carlo Fonda

Software: Systems and Application Software

CSC230 Getting Starting in C. Tyler Bletsch

What is Cloud Computing? First, a little history. Demystifying Cloud Computing. Mainframe Era ( ) Workstation Era ( ) Xerox Star 1981!

Computer System: User s View. Computer System Components: High Level View. Input. Output. Computer. Computer System: Motherboard Level

Local Area Networks: Software

Theory of Automated Reasoning An Introduction. Antti-Juhani Kaijanaho

After studying this lesson, you will have a clear understanding of, what an Operating System is. functions of an Operating System

Virtual Machines.

CSCA0201 FUNDAMENTALS OF COMPUTING. Chapter 1 History of Computers

GLOSSARY OF TECHNICAL TERMS

Fall Lecture 1. Operating Systems: Configuration & Use CIS345. Introduction to Operating Systems. Mostafa Z. Ali. mzali@just.edu.

GLOSSARY OF TECHNICAL TERMS

Computation Beyond Turing Machines

(Advanced Topics in) Operating Systems

PowerPoint Presentation to Accompany. Chapter 5. System Software. Copyright 2014 Pearson Educa=on, Inc. Publishing as Pren=ce Hall

OS Concepts and structure

LONG BEACH CITY COLLEGE MEMORANDUM

Free software GNU/Linux TOR project

Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023

CS420: Operating Systems OS Services & System Calls

Charles Dierbach. Wiley

TYPES OF COMPUTERS AND THEIR PARTS MULTIPLE CHOICE QUESTIONS

Fall 2012 Q530. Programming for Cognitive Science

Example of Standard API

Introduction to Computers and Programming

Programming Languages

CS 3719 (Theory of Computation and Algorithms) Lecture 4

CE 504 Computational Hydrology Computational Environments and Tools Fritz R. Fiedler

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

Introduction to Microprocessors

CatDV Pro Workgroup Serve r

Virtualization and Cloud Computing. Sorav Bansal

CSCI 4717 Computer Architecture. Function. Data Storage. Data Processing. Data movement to a peripheral. Data Movement

Topic 5a Operating System Fundamentals

Copyright 2012 Pearson Education, Inc. Chapter 1 INTRODUCTION TO COMPUTING AND ENGINEERING PROBLEM SOLVING

AS/400 System Overview

Lecture 1: Introduction

Evolution of the Data Center

Live in fragments no longer. Only connect

Operating Systems. Study this screen display and answer these questions.

The Application of Visual Basic Computer Programming Language to Simulate Numerical Iterations

CSE 265: System and Network Administration

Introducción. Diseño de sistemas digitales.1

Understanding operating systems (OSs) is critical to your future success. Introduction to Operating Systems. chapter

What is a programming language?

Operating System Structures

The World Wide Web: History

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Early Developments: From Difference Engine to IBM 701

CSE 265: System and Network Administration. CSE 265: System and Network Administration

CSE 265: System and Network Administration. CSE 265: System and Network Administration

How the emergence of OpenFlow and SDN will change the networking landscape

Chapter 13: Program Development and Programming Languages

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

C How to Program, 6/e by Pearson Education, Inc. All Rights Reserved.

The Fastest Way to Parallel Programming for Multicore, Clusters, Supercomputers and the Cloud.

(Academy of Economic Studies) Veronica Adriana Popescu (Academy of Economic Studies) Cristina Raluca Popescu (University of Bucharest)

12/22/11. } Android by Pearson Education, Inc. All Rights Reserved by Pearson Education, Inc. All Rights Reserved.

Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server

Science in History: From the Abacus to the Modern Computer Part 1: The Abacus

Introduction to Linux

Lesson Overview. Getting Started. The Internet WWW

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

Computer and Information Sciences

COMPUTER SCIENCE. FACULTY: Jennifer Bowen, Chair Denise Byrnes, Associate Chair Sofia Visa

Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation.

Transcription:

CS 140: Introduction to Computer Science A Brief History of Computer Science Edwin Rodríguez Cal Poly Pomona Department of Computer Science CS 140 - A Brief History of Computer Science / 1

What is Computing Science? Computer Science is the field of study that deals with computation and the processing of information. Despite its name, Computer Science does not have much to do with computers themselves, as it does with what they do: computing. For this reason, other names have been suggested, such as Computing Science, Informatics, Computcis, etc. CS 140 - A Brief History of Computer Science / 2

Early Computing The first known computing device was the abacus invented by the Sumerians around 2400 BC. The first known mechanical computing device is the Antikythera, built by the Greeks around 100 BC, used to compute the position of celestial objects. Muslim astronomers and engineers were known to construct mechanical computing devices and programmable machines. CS 140 - A Brief History of Computer Science / 3

The Analytical Engine During the 1830 s english mathematician Charles Babbage desgined the first known general purpose programmable computer. The Analytical Engine had the same computational capabilities of modern computers (it was Turing Complete). Ada Lovelace published an extensivily annotated descriptions of the engine that included an algorithm to compute Bernoulli Numbers, making her the first known computer programmer. CS 140 - A Brief History of Computer Science / 4

Hilbert s Problems In 1900 german mathematician David Hilbert published a list of 23 problems that were unsolved at the time, and he felt were important for the advancement of mathematics. The second problem asked about the construction of a proof for the consistency of arithmetic. The work made towards answering this question would drive the emergence of Computer Science as a field. CS 140 - A Brief History of Computer Science / 5

Negative answer to Hilbert s 2nd Problem Theorem (Incompleteness [Gödel, 1931]) For any effective theory that can express the standard model of natural numbers and is consistent, there exists a fomula φ that is true, but for which neither φ nor φ can be proved to be theorems in the logic. The theoritical result shown above, best known as Gödel s Incompleteness Theorem was shocking result with profound implications for the philosophy of mathematics. But more important for us, it eventually led to another negative result for Predicate Logic. CS 140 - A Brief History of Computer Science / 6

Undecidability of Predicate Logic Theorem (Undecidability of Predicate Logic [Turing-Church, 1936]) There is no effective procedure that can decide whether a given arbitrary formula φ is a valid argument in Predicate Logic. This result also has profound implications for the theory of computation. This was another negative result to a Hilbert question: the Decision Problem(Entscheidungsproblem). CS 140 - A Brief History of Computer Science / 7

Models of Computation The biggest legacy of Turing and Church s work was the construction of theoretical models of computation: the Lambda Calculus and the Turing Machine. These model represented mathematical versions of mechanical computing devices and were used to study the nature and limits of computation, effectively kickstarting the field of Computer Science. In fact, these early theoretical models have the same computing capabilities of modern computers, and are conjectured to be the most powerful computational models, as summarized by the Church-Turing Thesis: Everything computable can be computed by a Turing Machine. CS 140 - A Brief History of Computer Science / 8

ENIAC ENIAC (Electronic Numerical Integrator and Computer) was the firts general-purpose electronic computer. Designed for ballistics computation, but its first task was running simulations for the Manhattan Project. Most programming done by six women: Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas, and Ruth Lichterman. Big and complex machine: over 17 thousand vacuum tubes, weighed almost 30 tons, occupied about 1800 square feet, and consumed about 150 kw of power. CS 140 - A Brief History of Computer Science / 9

The Transistor Vacuum tubes were power hungry and unreliable: ENIAC blew a tube every other day, sometimes several at a time when the computer was turned on. The transistor (transfer resistor) was smaller, consumed less power and was extremely reliable, helping revolutionize electronics, and of course, computers. The transistor was invented at Bell Labs in 1947 and is considered the most important technological advancement of the 20th century. CS 140 - A Brief History of Computer Science / 10

FORTRAN Considered the first high-level programming language, invented in 1955 by John Backus at IBM. Exhibited the first optimizing compiler, reducing the number of instructions in programs by at least an order of magnitude, when compared to hand-written assembly. Widely adopted for scientific computation, since it is particularly good for numerical analysis applications (as indicated by its extended name: FORmula TRANslation). CS 140 - A Brief History of Computer Science / 11

Unix Developed in 1969 at Bell Labs by a team led by Brian Kernighan and Dennis Ritchie. Originally written in assembly, it was eventually ported to C, which helped port the OS to other systems. Conceived as an environment for system development, it is multi-user, multitasking, and was one of the earlier systems introducing the idea of time-sharing. CS 140 - A Brief History of Computer Science / 12

C Developed in the early 1970s by Dennis Ritchie and Ken Thompson at Bell Labs. Designed to facilitate portability of programs among different systems, it is very efficient because it requires little runtime support, and provides low-level access to memory. Although primarily used for systems programming, it is, without a doubt, the most widely used programming language. CS 140 - A Brief History of Computer Science / 13

The Personal Computer The development of the microprocessor allowed the reduction of costs in creating computing systems that were affordable to end consumers. Several companies engaged in the manufacturing of end-user computers, including IBM, Xerox, and the short-lived MITS, notable for creating the Altair 8800, which is linked to the founding of a small company called Micro-soft. This was happenning in the early 1970 s, and at this stage home computers were mostly gadgets for hobbyists and connoisseurs. CS 140 - A Brief History of Computer Science / 14

Apple Apple Computer, founded in 1976 by Steve Jobs and Steve Wozniak, and revolutionized the personal computer industry by breaking through and turning computers into household items beyond curiosities. Apple s marketing and design philosophy changed public perception of computers from gadgets for tech-geeks into items of social status. Apple early products include the Apple II, the Lisa, and, of course, the successful Macintosh. CS 140 - A Brief History of Computer Science / 15

PC Clones and Microsoft If Apple was responsible for bringing computers into homes, Microsoft was, arguably, responsible for turning them into a mass phenomenon. By the late 1980 s PC clones were dominating market, displacing IBM and Apple products. A big reason for their success was a common standard platform that effectively commoditized personal computers: MS-DOS and Windows. CS 140 - A Brief History of Computer Science / 16

The Internet The first precursor to the Internet was, arguably, ARPANET (Advanced Research Project Agency Network), created in the early 1970 s with funding from DARPA to be used by research institutions in the US. ARPANET saw the development of many technologies that would later shape wide area networking, like TCP/IP and e-mail. Eventually several such networks from both the US and Europe would come together to form an interconnected network or Internet. CS 140 - A Brief History of Computer Science / 17

The World Wide Web Initially designed as a medium for the exchange of information/ideas, it s no surprise that early adopters were Universities and research institutions. Technology (HTTP and HTML) developed in late 1980s/early 1990s by Tim Berners-Lee. First graphical browser, Mosaic, developed in 1993 at the University of Illinois at Urbana-Champaign. WWW starts opening and becoming commercial: by mid 1990s most big companies had a presence on the web. CS 140 - A Brief History of Computer Science / 18

Open Source Software The beginnings of the Open Source Software movement can be traces to the early 1980s with creation of the GNU Project at the Free Software Foundation and BSD Unix at Berkeley. Arguably, the greatest contribution of the GNU Project was the General Public License, which provided a licensing scheme for other open source projects, and one of the most popular open source licenses. Main philosophy: applications are distributed with source code, and, depending on licensing scheme, allow modification and redistribution. CS 140 - A Brief History of Computer Science / 19

Linux In 1991, computer scientist Linus Torvalds, began the development of a Unix-like OS inspired by what he perceived as limitations in other similar systems, like Minix. He called the new system Linux and made it publicly available; soon it attracted many collaborators, and the kernel was expanded with GNU applications. Linux has grown to become an influential player on the landscape of operating systems, particularly popular in academia, and servers for small/medium sized businesses, with some small penetration on desktops. CS 140 - A Brief History of Computer Science / 20

Dot-com Bubble The late 1990s saw an explosion in creation and growth of web companies, or dot-com companies. This lead to the downpouring of investors money, which led to indiscriminate spending, creating a financial bubble. By early 2000 the bubble ha burst sending most of these companies into bankruptcy, many of which had never made a profit. However, several of the survivors from this bubble would go on to become internet giants, like Google and Amazon.com. CS 140 - A Brief History of Computer Science / 21

Current Landscape in Computer Technology Technologies like RSS, Cloud Computing, and advances in web development platforms, have led to the rise of Web 2.0. Mobile technology has become ubiquitous, with smart-phones and tablets becoming the interface of choice. In the meantime, there are advances in quantum computer, myriad of developments in programming languages... this is just the beginning! CS 140 - A Brief History of Computer Science / 22

What now? Where to from here? YOU GET TO WRITE THIS SLIDE! CS 140 - A Brief History of Computer Science / 23