History of ComputingDr. Pierre Vignrashttp://www.vigneras.name/pierre
This work is licensed under a Creative Commons Attribution-Share Alike 2.0 France. See http://creativecommons.org/licenses/by-sa/2.0/fr/ for detailsDr.
Text BooksThe Web: http://wikipedia.org C- How to program (Third Edition) Introduction C++ and Java Deitel & Deitel Prentice HallBooksReference Book: New Perspectives On Computer Concepts Parsons and Oja National Book FoundationDr.
Class, Quiz & Exam Rules
Noentryafterthefirst10minutes Noexitbeforetheendoftheclass UnannouncedQuiz
Weekly,atthebeginningofaclass Fixedtiming(youmaysufferifyouarrivelate) SpreadOut(doitquicklytosaveyourtime) Papersthatarenotstrictlyinfrontofyouwillbe consideredasdone Cheaterswillget'1'mark Yourheadshouldbeinfrontofyourpaper!Dr.
Rules
Grading Policy
Grading Policy
Quiz:20% Mid:30% Final:50% Afinalaveragebelow50/100willbeassigned afailedmark:F.
Dr.
Outline (Important points)
Basics
Numeralbasis Bits&Bytes computercomponents VonNeumannArchitecture Moore'sLaw
HardwareHistory
Dr.
Outline (Important points)
TheoryHistory
GodelTheorem TuringMachine,LambdaCalculus&Boolean Algebra Algorithms(pseudocode,flowcharts) ComputabilityandComplexityTheory CompilationvsInterpretation TypeSystem Typechecking(staticvsdynamic,weakvsstrong)Dr.
LanguageHistory
Outline (Important points)
OperatingSystemHistory
Definitions&Compositions OpenSource(GNU,Linux)
Eras(Unix,Apple,IBMPC,Mac,Windows)
NetworkHistory
Internet,Web,SearchEngine NetworkLayers(OSI,TCP/IP) NetworkTopology
Dr.
Basics BasicsOutline
Dr.
8
Computer: definition(http://en.wikipedia.org/wiki/Computer)
Origin
Personwhoperformednumericalcalculations, oftenwiththeaidofamechanicalcalculating device Machineformanipulatingdataaccordingtoa listofinstructionsknownasaprogram.
Today
I. Basics
VarioussortSupercomputer,Mainframe,Servers PersonalComputers,Laptop PDA,CellularPhones,SmartcardsDr.
Vocabulary(http://en.wikipedia.org/wiki/Digital http://en.wikipedia.org/wiki/Bit)
Digital=discrete
Comesfromdigits(Latinorigin=fingers)
Analogue=continuous(reallife) Bit=1binarydigit
Canhaveeitherthevalue1or0 Usedtorepresent(almost)everything Physicalrepresentation:
I. Basics
1==electricityispresent 0==noelectricityDr.
Abyteisacollectionof8bits
Numeral BasesBase 10: Decimal Base 10: Decimal Base 2: Binary Base 2: Binary Base 8: Octal Base 8: Octal Base 16: Hexadecimal Base 16: Hexadecimal10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 10010 8 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 16 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12
I. Basics
Common values: Common values: 28=256 268=256 21 16 =65,536 20 =65,536 21 10 =1,024(kilo) 20 =1,024 (kilo) 22 20 =1,048,576(Mega) 20 =1,048,576 (Mega) 23 30 :1 mega kilo (Giga) 20 : 1 mega kilo (Giga) 24 40 :1 giga kilo (Tera) 2 : 1 giga kilo (Tera)
1 kb = 1024 bits 1 kb = 1024 bits 1 kB = 1024 bytes 1 kB = 1024 bytes 1 CD = 650 MB 1 CD = 650 MB 1 DVD = 4.5 GB 1 DVD = 4.5 GB 1 photo ~ 2 MB 1 photo ~ 2 MB 1 character = 1 B 1 character = 1 B 1 text email ~ 5 kB 1 text email ~ 5 kB
Dr.
Personal Computer Architecture(1)Screen (2)Motherboard (3)Processor(CPU) (4)Memory(RAM) (5)ExtensionCards (6)PowerSupply
I. Basics
(7)Opticaldiskdrive (CD/DVD) (8)HardDiskDrive(HDD)Dr.
(9)Keyboard
Memory(http://en.wikipedia.org/wiki/Random_Access_Memory)
RandomAccessMemory(Mainmemory)
Erasedwhencomputerisshutdown Alistofcells
Eachcellisassignedanaddress(anumber)andcan storeafixedamountofinformations(8,16,32or64 bits) Thecelladdressed#1234contains0101 0101maymeans:
Memorycancontainsinstructionsordata
I. Basics
thenumber5indecimal, thecharacter'F', theinstruction:increasethevalueofthenextcellbyone Dr.
Central Processing Unit(Processor)(http://en.wikipedia.org/wiki/CPU)
Readsinstructionsfromthememory, executesthemandwritestheresultinthe memory
Operationspossible
addition,subtraction,multiplication,division comparisons,stringmanipulations,... Frequency=Numberofticks(cycle)persecond Performance=InstructionsPerCycle* Frequency
I. Basics
Drivenbyatimer
AMDAthlonXP~2.5IPC IntelPIV~2IPCDr.
Input/Output Devices
Harddrives
Storepermanentlydata
Programsanddata(documents)
Networkcards(Ethernetcard)
Usedtoconnectseveralcomputers Readonlystoragedevices(music,video,data) DrivenbytheCPUtotransmitdataonscreen(s) ContainsaGraphicprocessor(GPU)Dr.
CD/DVDdrives
I. Basics
VideoCard(3Dspecializedhardware)
The 2006 market
CPUs(futuretrendsismulticore)
Intel:PIV(~3.8GHz),CoreDuo(~2GHz) AMD:Athlon64,Opteron(~2Ghz)
Memory:[5121512]MB HardDrives:[60800]GB NetworkCards:
I. Basics
Ethernet:1Gb/s Wireless(WiFi):~54Mb/s
VideoCards:~256MB,400MHz Screens:CRT17'&19';TFT15'&17'(trend)Dr.
Internet(http://en.wikipedia.org/wiki/Internet)
Worldwide,publiclyaccessiblenetworkof interconnectedcomputernetworksthat transmitdatausingtheIPprotocol(language) WorldWideWeb(WWW):
collectionofinterconnecteddocuments,linkedby HyperlinksandURLs accessibleviatheInternet,asaremanyotherservices www!=Internet Youneedaclientapplication(calledawebbrowser)http://images.google.com/preferences(www)Dr. fish://192.168.1.1/documents(SSH)
I. Basics
URL:protocol://address[:port]/ressource
Searching on the web
SearchEngines
Google:http://www.google.pk Yahoo:http://www.yahoo.com Duringthenight,arobotscanstheweband indexeswebpagesmakingpairs[word,{URLs}] Whenyouenterakeyword,thesearchengine lookinitstableforamatching[word,{URLs}] Itthenpresentthesetof{URLs}Dr.
Howdoesitwork?
I. Basics
Internetdoesnotprovidetrueinformations
WorksovertheInternetlikethenormal (slow)mailsystem(alsocalledsnail) Youneedaclientapplication
Canbeawebbrowser(webmail) Canbeadedicatedmailreader
I. Basics
Youshouldfollowthenetiquette(Internet Etiquette)
Catchalltermfortheconventionsofpoliteness See:http://tools.ietf.org/html/rfc1855RFC1855(standard) http://www.penmachine.com/techie/emailtrouble_200307.html(short)Dr.
History HistoryOutline
Dr.
20
Parallel Worlds
Theory
Engineering
Models Languages Complexity Computability Cryptography
Hardware
Processors,Hard drives,Memory,... Design,Operating Systems,Project Management,...
Software
II. History
EdsgerDijkstra:"Computerscience isnomoreaboutcomputersthan astronomyisabouttelescopes.
Using a computer does not make one a computer scientist!Dr. 21
Hardware HardwareII. History http://www.eingang.org/Lecture/Dr. 22
Counting
II. History/Hardware
Fromtheverybeginning,menstartedoffby countingontheirdigitsforvariousreasons
Sharingfooditemsfairly Religion&ceremoniesaccordingtotime etc.
Manypossibilities(base):10,16,12,6,... Someattemptstocreatecountingmachines
Helpcountinguptobignumbers Abacus(China),Pascaline(BlaisePascal,1642), TheDifferenceEngine(CharlesBabbage,1812)Dr. 23
Cards
1890:HermanHollerithpresents
II. History/Hardware
PunchedCards&TabulatingMachine ForU.S.CensusBureau UseduntilthehighlycontroversialUnitedStates presidentialelectionof2000 TabulatingMachineisagreatsuccess:creationof IBMbyHermanHollerith
Limitedtotabulation
Dr.
24
Cards(http://en.wikipedia.org/wiki/Punch_card)
II. History/Hardware
Dr.
25
Cards(http://en.wikipedia.org/wiki/Punch_card)
II. History/Hardware
Dr.
26
Binary Representation
II. History/Hardware
In1941,KonradZusecreatestheZ3 Usesbinarysystem
Dr.
27
Engineering Improvements
MarkI(IBM,19301959)
II. History/Hardware
Fullyautomaticmachine Fouroperationson23decimalsnumbers Subroutines(logarithm&trigonometric functions) 3to5secondspermultiplication InuseatHarvarduntil1959 10decimaldigitswords WireyourowninstructiontechniqueDr. 28
ENIAC(MauchlyandEckert,19461955)
John Von Neumann(http://en.wikipedia.org/wiki/Von_Neumann_Architecture )
II. History/Hardware
DataandProgramcanbestoredinthesame space
Themachineitselfcanaltereitheritsprogramor itsinternaldata
Conditionalgoto'stootherpointinthecode Oftenusedsubroutinescanbestoredin memory Firstmachineappearsin1947(EDVAC& UNIVAC)
Stilltheoverallarchitectureofcomputerstoday!Dr. 29
Von Neumann Architecture
II. History/Hardware
Dr.
30
Major engineering advances
II. History/Hardware
Transistors(Shockley,Bardeen,Walter; 1947)
Freedomfromvacuumtubes,whichwere extremelybulky Akachip collectionoftinytransistorswhichareconnected together onlyconnectionswereneededtootherelectronic components31
IntegratedCircuits(Kilby,1959)
Dr. Machinesbecomessmallerandmore
Moore's Law(http://en.wikipedia.org/wiki/Moore's_law)
1965:Moore,acofounderofIntel.
II. History/Hardware
Thecomplexityofintegratedcircuitsdoublesevery 24months Quotedas[...]doublesevery18months! goalforanentireindustry.
EmpiricalObservationsandprediction
Moore'slawmeansanaverageperformance improvementintheindustryasawholeof over1%aweek.
Anewproductthatisexpectedtotakethreeyearsto developandisjusttwoorthreemonthslateis10to 32 Dr.
II. History/Hardware
Moore's law
Dr. 33
Moore's Law effect
II. History/Hardware
Dr.
34
Moore's Law limitation
2006stateoftheart
IBMpublishedapaperfora30nmtechnology GordonMoorestatedinaninterviewthatthelawmay notholdvalidfortoolong,sincetransistorsmayreach thelimitsofminiaturizationatatomiclevels Moore'sLawofIntegratedCircuitswasnotthefirst, butthefifthparadigmtoprovideacceleratingprice performance. Newtypeoftechnologywillreplacecurrentintegrated circuittechnology,andthatMoore'sLawwillholdtrue longafter2020. Dr. 35
II. History/Hardware
April2005
2003:Kurzweilconjecture
General Moore's Law
II. History/Hardware
Dr.
36
2006 Trends(http://en.wikipedia.org/wiki/Multicore_CPU)
Majormisunderstanding:
Performanceisnotequivalenttoclockspeed! Moore'slawisnotaboutdoublingperformance anyway! PuttwoCPUsonthesamesilicondie:dualcore Intel,AMD,IBM,Sunarefocusingonthis NoneedforanewCPUdesign:lessriskDr. 37
Doublingthenumberoftransistors:
Thefutureismulticoresystems
Majorissueatthesoftwarelevel
Theory TheoryII. History
Dr.
38
The Godel Theorem (1931)(http://en.wikipedia.org/wiki/Gdel's_incompleten ess_theorems)
II. History/Theory
Insomecases,itispossibletoprove somethinganditscontrary(inconsistency). Somemathematicaltruthareimpossibleto prove(incompleteness)
Idea:AnyFrenchisalierhassaidbyaFrench Sketchoftheproof:
supposeaprogram'P'cantellifapropositionisTRUE orFALSEwithouterror. Proposition:Theprogram'P'doesnotreplyTRUEto thisproposition.
CantheprogramreplyTRUEorFALSE?Neither! Andwhataboutus?IsthepropositionTRUE?Yes! Dr.39
Alan Turing Machine (1936)(http://en.wikipedia.org/wiki/Turing_machine)
Infinitetape(dividedintoadjacentcells)
Eachcellcontainsasymbolfromsomefinite alphabet:{a,...,z};{0,...,9};{0,1} read/writesymbols movethetapeleftandrightonecellatatime. whatsymboltowrite howtomovethehead whatitsnewstatewillbe40
II. History/Theory
Head
Tableofinstructionsthattellsthemachine:
Stateregisterthatstoresthe(finite)stateofthe Dr.
Turing Machine
(Abbrev: TM)
(http://en.wikipedia.org/wiki/Turing_machine)
II. History/Theory
Dr.
41
Alan Turing Machine (1936)(http://en.wikipedia.org/wiki/Turing_machine)
Stone(1972):fullydescriptionrequires
Thealphabet Theinputforminwhichtheparametersare presentedonthetape Theoutputforminwhichanswerswillbe representedonthetapewhentheTuring machinehalts TheinitialstateoftheTuringmachine ThemachineprogramDr. 42
II. History/Theory
Turing Machine(http://en.wikipedia.org/wiki/Turing_machine)
Example:incrementfunction:inc(x)=x+1
Tapealphabet:{0,1} Input:Anumberinbaseoneenclosedbyzero Starting points 010 :0...010...0 110 :0...0110...0 410 :0...0111110...0 1010 :0...0111111111110...01,> s0
0,1
0,>>Dr.
43
Turing Machines
TuringMachinescanbecomposedtocreatemore complexones. Example: f(x)=x+21,> s0
0,1 1,>> s0
0,>>
1,>
Turing Machines
TuringMachinescanbecomposedtocreatemore complexones. Example: f(x)=x+21,> s0
0,1 1,>>
0,>>
1,>
Turing Machines
TuringMachinescanbecomposedtocreatemore complexones. Example: f(x)=x+21,> 0,>> 1,> s0
0,1
Relabel states
s2
0,1Dr.
0,>>
Turing Machines and Algorithms
ATuringMachinedescribesamechanical procedure
Sortofrecipe Eachstepissimpleandwelldefinedsoitcanbe followedbyanyhumanusingapaperandapencil
II. History/Theory
Verycomplexprocedurescanbedescribedusing Turingmachines Addition,multiplication,...(anything?) ATuringmachineprovidesaneasytounderstand abstractionofhowcomputers(humansormachines) areactuallyworking TuringMachinesaretheactualformalisationof 47 Dr.
Algorithms(http://en.wikipedia.org/wiki/Algorithm)
FromthefamousArabscientistAlkhwarizmi
Solvingproblemsinanorderedstepbystep sequence
II. History/Theory
Analgorithmisafinitesetofwelldefined instructionsforaccomplishingsometask which,givenaninitialstate,will terminateinadefinedendstate.
Orderofcomputationisusuallycriticaltothe functioningofthealgorithm. Instructionsareusuallylistedexplicitlystarting 'fromthetop'andgoing'downtothebottom':this Dr. 48
Algorithm Representations
ATuringMachineisonerepresentationofan algorithm Otherrepresentationsinclude:
II. History/Theory
Naturallanguage(tooverboseandambiguous) pseudocode(nostandard)
derivedfromprogramminglanguages schematicrepresentationofaprocess derivedfromTuringMachinesrepresentation
flowcharts (tooverbose)
programminglanguages(toodetailed)
Sowhichonetochoose?Itdepends!
Allofthembutfordifferentsituations Dr.
49
Algorithm Example: largest numberNatural Language
Input:anunsortedlistofnumbers Output:theindex(rank)ofthelargestnumberinthelist
1.Assumethefirstitemislargest.
II. History/Theory
2.Lookateachoftheremainingitemsinthelist andifitislargerthanthelargestitemsofar, makeanoteofitsrank. 3.Thelastnotedrankistheoneofthelargest elementinthelistwhentheprocessiscomplete.
Complexity:requiresNcomparisonswhereN isthesizeofthelistDr. 50
Algorithm Example: largest number Pseudo-code(http://en.wikipedia.org/wiki/Pseudo-code) max = 0 Assignment for (all i such that 0Noreduction! Logicandpredicates TRUE:=xy.x,FALSE:=xy.y AND:=pq.pqFALSE,OR:=pq.pTRUEq NOT:=p.pFALSETRUE, IFTHENELSE:=pxy.pxy
Dr.
77
Basis of Programming Languages
TuringMachineleadstousualrepresentation ofalgorithms
II. History/Theory
expressedinaniterativeway,insequencesof welldefinedsteps expressed using only functions Use recursivity extensively Proven!
-calculus leads to another way of expressing algorithms
Same expressive power than Turing Machine
Dr.
78
(http://en.wikibooks.org/wiki/Computer_programming)
Functionnal language ExamplePrefix notation
Only functions
II. History/Theory
(defun f (n) (defun f (n) (if (< n 2) 1 (if (< n 2) 1 (* n (f (- n 1))) (* n (f (- n 1))) ) ) ) )
Recursive callPrefix notation example: f(x-y)+ z --> (+ (f (- x y)) z) Prefix notation example: f(x-y)+ z --> (+ (f (- x y)) z) (f 4) ==24 ==4! ; ;(f n) ==n! (f 4) 24 4! (f n) n! Where are data types? Where are data types?Dr.
Inferred! Inferred!79
Church-Turing Thesis(http://en.wikipedia.org/wiki/Church-Turing_thesis)
hypothesisaboutthenatureofcomputers
digitalcomputer humanwithapencilandapaperfollowingaset ofrules.
II. History/Theory
claimsthatanycalculationthatispossible canbeperformedbyanalgorithmrunningon acomputer,providedthatsufficienttimeand storagespaceareavailable.
mayberegardedasaphysicallaworasa definition,asithasnotbeenmathematically proven.Dr.
80
The Art of Computer Programming(http://en.wikipedia.org/wiki/The_Art_of_Computer_Progr amming)
MonographwrittenbyDonald.E.Knuth
Startedin1962 2006:7Volumes!
II. History/Theory
ConsideredbytheAmericanScientistasoneofthe besttwelvephysicalsciencemonographsofthe21th century Computersciencecommunityregardsitasthefirst andstillthebestcomprehensivetreatmentofits subject. BillGates:"Ifyouthinkyou'reareallygood programmer...read(Knuth's)book...Youshould...Dr. 81
The Art of Computer Programming
Givessolutionstocommonprogramming problemsfoundincomputersciences
II. History/Theory
Datastructures,sorting,searching,lexicalanalysis, graphs,...
Complexityanalysisofeachsolutionisalso described
Example:numberofstepsrequiredtosortalist
Algorithmsarewritteninpseudoassembly languagecalledMIX
MaybehardtounderstandDr. 82
Accessiblealgorithmstextbooksusehighlevel
Complexity Theory(http://en.wikipedia.org/wiki/Computational_complexity_ theory)
II. History/Theory
Studytheresources,orcost,ofthe computationrequiredtosolveagiven computationalproblem. Costismeasuredintermsofabstract parameterssuchastimeandspace
computationalresources.
Time:numberofstepsrequired Space:quantityofinformationstorage required AComplexityClassisthesetofallofthe Dr. 83 problemswhichcanbesolvedusingacertain
Complexity Theory(http://en.wikipedia.org/wiki/Computational_complexity_ theory)
II. History/Theory
Tradeoffsbetweentimeandspace Alternativealgorithmmayrequirelesstime butmorespace(orviceversa)tosolveagiven problem. Parallelprocessorscanalsobeconsidered.
"parallelizabletime"and"nonparallelizable time"(i.e.sequentialtime)areconsidered. Sequentialtimegivesalimittohowfarthe computationcanbeparallelized.Somestepsmust bedonesequentiallybecausetheydependonthe resultsofprevioussteps.Dr. 84
Practical ComplexitiesGraph Overview1000 900
II. History/Theory
800 700 600 500 400 300 200 100 0log(n) n n.log(n) n n3 2n
Dr.
Practical Complexitieslog(n) 0 1 2 3 4 5 n 1 2 4 8 16 32 n.log(n) n 0 1 2 4 8 16 24 64 64 256 160 1024 n 2n 1 2 8 4 64 16 512 256 4096 65536 32768 42949672963
II. History/Theory
Complexities below exponential are practically feasible Complexities below exponential are practically feasible
Dr.
Complexities Consequences
www.top500.org:bestcomputersintheworld 2006:nextgenerationwillbebeyond PetaFLOPS/s
II. History/Theory
10^12 instructionspersecond! Algorithminn2instructionsrequires 100*100=10,000instructions,lessthan1second Algorithmin2n requires2100 instructions 2100 >10^30 instructions,morethan400millionsof yearsofcomputation!!Dr.
Foraproblemofsize100
Example: Travelling Salesman Problem (TSP)
Given:
asetofcities, thedistancebetween them
II. History/Theory
Brute force requires n! steps Brute force requires n! nsteps Best algorithm requires 2 nsteps Best algorithm requires 2 stepsDr.
Findthecheapest roundtriproutethat visitseachcity exactlyonceand thenreturnstothe startingcity88
Polynomial Complexity Class: P(http://en.wikipedia.org/wiki/P_(complexity))
Pisthesetofdecisionproblemsthatcanbe solvedbyaTMinpolynomialtime.
II. History/Theory
Intuitively,setofproblemswhichcanbe effectivelysolvedintheworstcases GreatestCommonDivider, Sorting,Searching,Merging,... isanumberprime(provenin2002)
Examples:
MajorityofproblemsinParepractically feasiblesDr. Rarearetheonesthatneedsn10000 steps! 89
Non-deterministic Polynomial Complexity Class: NP
ThecomplexityclassNPisthesetofdecision problemsthatcanbe"verified"byaTMin polynomialtime
(http://en.wikipedia.org/wiki/NP_(complexity))
II. History/Theory
TheymaynotbesolvedbyaTMinpolynomial timebuttheanswershouldbecheckable efficiently(inpolynomialtime) Integerfactorization DecisionversionoftheTSP(istherearoutewith cost