Gerard O’Regan World of Computing A Primer Companion for the Digital Age World of Computing ’ Gerard O Regan World of Computing A Primer Companion for the Digital Age 123 Gerard O’Regan SQCConsulting Mallow, Cork Ireland ISBN978-3-319-75843-5 ISBN978-3-319-75844-2 (eBook) https://doi.org/10.1007/978-3-319-75844-2 LibraryofCongressControlNumber:2018932550 ©SpringerInternationalPublishingAG,partofSpringerNature2018 Thisworkissubjecttocopyright.AllrightsarereservedbythePublisher,whetherthewholeorpart of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission orinformationstorageandretrieval,electronicadaptation,computersoftware,orbysimilarordissimilar methodologynowknownorhereafterdeveloped. The use of general descriptive names, registered names, trademarks, service marks, etc. in this publicationdoesnotimply,evenintheabsenceofaspecificstatement,thatsuchnamesareexemptfrom therelevantprotectivelawsandregulationsandthereforefreeforgeneraluse. The publisher, the authors and the editors are safe to assume that the advice and information in this book are believed to be true and accurate at the date of publication. Neither the publisher nor the authorsortheeditorsgiveawarranty,expressorimplied,withrespecttothematerialcontainedhereinor for any errors or omissions that may have been made. The publisher remains neutral with regard to jurisdictionalclaimsinpublishedmapsandinstitutionalaffiliations. Printedonacid-freepaper ThisSpringerimprintispublishedbytheregisteredcompanySpringerInternationalPublishingAG partofSpringerNature Theregisteredcompanyaddressis:Gewerbestrasse11,6330Cham,Switzerland To Kevin Crowley For lifelong friendship Preface Overview The objective of this book is to provide a concise introduction to the world of computingtostudentsandgeneralreaders.Thecomputingfieldisavastareaandso itisnotpossibletocovereveryareaofcomputing,ortocovereverytopicindetail. Therefore,thegoalistogivethereaderaflavourofsomeoftheimportantareasof computing, and to stimulate the reader to study the more advanced articles and books that are available. Organisation and Features Chapter 1 introduces analog and digital computers, and the von Neumann archi- tecture which is the fundamental architecture underlying a digital computer. Chapter 2 discusses the foundations of computing, and we describe the binary number system and the Step Reckoner calculating machine that were invented by Leibniz. Babbage designed the Difference Engine as a machine to evaluate poly- nomials,andhisAnalyticEngineprovidedthevisionofamoderncomputer.Boole was an English mathematician who made important contributions to mathematics and logic, and his symbolic logic is the foundation for digital computing. Chapter 3 presentsa concisehistory ofcomputingincluding a discussionofthe first digital computers, the first commercial computers, the SAGE air defence system, theinventionof thetransistor atBell Labs,and early transistor computers, theinventionoftheintegratedcircuitatTexasInstruments,thedevelopmentofthe IBM System/360, and its influence on later computer development, later main- frames and minicomputers, including DEC’s minicomputers. We discuss the rev- olutionary invention of the microprocessor, and how it led to the development of home computers such as the Apple I and II, Commodore computers, Atari com- puters, the Sinclair ZX 81 and ZX spectrum computers and the Apple Macintosh. vii viii Preface We discuss the introduction of the IBM personal computer, which was a major milestone in the computing field. Chapter 4 introduces the essential mathematics for computing including sets, relations and functions. Sets are collections of well-defined objects; relations indicate relationships between members of two sets A and B; and functions are a specialtypeofrelationwherethereisexactly(oratmost)onerelationshipforeach element a 2 A with an element in B. Chapter 5 presents a short introduction to algorithms, where an algorithm is a well-definedprocedureforsolvingaproblem.Itconsistsofasequenceofstepsthat takesasetofvaluesasinput,andproducesasetofvaluesasoutput.Analgorithm is an exact specification of how to solve the problem, and it explicitly defines the procedure so that a computer program may implement the solution in some pro- gramming language. Chapter 6 presents an introduction to logic for computing, and includes a short history of logic, and an introduction to propositional and predicate logic. Propositional logic is the study of propositions, where a proposition is a statement that is either true or false. It may be used to encode simple arguments that are expressed in natural language, and to determine their validity. Predicate logic allows complex facts about the world to be represented, and new facts may be determined via deductive reasoning. Chapter 7 discusses human–computer interaction (HCI), which is a branch of computersciencethatisconcernedwiththedesign,evaluationandimplementation of interactive computing systems for human use. It is focused on the interfaces between people and computers, and involves several fields including computer science, cognitive psychology, design and communication. Chapter 8 presents a short introduction to programming languages starting with machine languages; to assembly languages; to early high-level procedural lan- guages suchas Fortran and COBOL;to later high-level procedural languagessuch asPascalandC;andtoobject-orientedlanguagessuchasC++andJava.Functional programminglanguagesandlogicprogramminglanguagesarediscussed,andthere is a short discussion on the important area of syntax and semantics. Chapter 9 presents a short introduction of the software engineering field. We discuss its key challenges and several high-profile software failures. The waterfall and spiral lifecycles are discussed, as well as a brief discussion on the rational unifiedprocessandthepopularAgilemethodology.Wediscussthekeyactivitiesin thewaterfallmodelsuchasrequirements,design,implementation,unit,systemand acceptance testing. Chapter10presentsashortintroductiontooperatingsystemsincludingtheIBM OS/360, which was the operating system for the IBM System/360 family of computers. We discuss the MVS and VM operating systems, which were used on theIBMSystem/370mainframecomputer.WediscusstheUNIXoperatingsystem, which is a multi-user, and multi-tasking operating system. It was written almost entirelyinC.DECdevelopedtheVAX/VMSoperatingsysteminthelate1970sfor its VAX family of minicomputers. Microsoft developed MS/DOS for the IBM personal computer in 1981, and it introduced Windows as a response to the Preface ix GUI-driven operating system of the Apple Macintosh. There is a short discussion on Android and iOS, which are popular operating systems for mobile devices. Chapter 11 presents a short introduction to databases including a discussion of the hierarchical and network models. We discuss the relational database model whichwasdevelopedbyCoddatIBMinmoredetail,asmostdatabasesusedtoday are relational. There is a short discussion on the SQL query language and on the Oracle database. Chapter 12 presents a short introduction to telecommunications, and it focuses on the development of mobile phone technology. The development of the AXE system by Ericsson is discussed, as this was the first fully automated digital switching system. We discuss the concept of a cellular system, which was intro- duced by Bell Labs, as well as the introduction of the first mobile phone, the DynaTAC, by Motorola. Chapter 13 describes the Internet revolution starting from ARPANET, which wasapacketswitchednetworkandTCP/IP,whichisasetofnetworkstandardsfor interconnectingnetworksandcomputers.Thesedevelopmentsledtothebirthofthe Internet,andTimBerners-Lee’sworkatCERNledtothebirthoftheWorldWide Web. We discuss various applications of the World Wide Web, as well as the dot-com bubble and burst of the late 1990s/early 2000. We conclude with a brief discussionontheInternetofThingsandtheInternetofMoney(includingbitcoin). Chapter 14 discusses the invention of the smartphone and the rise of social media. It describes the evolution of the smartphone from PDAs and mobile phone technology, and the impact of Facebook and Twitter in social networking is dis- cussed. Facebook has become a way for young people to discuss their hopes and aspirationsaswellasatoolforsocialprotestandrevolution.Twitterhasbecomea popular tool in political communication, and it is also an effective way for busi- nesses to advertise its brand to its target audience. We briefly discuss how social media has been abused by individuals and states to spread fake news, and the challenges this poses to western democracies. Chapter 15 discusses legal aspects of computing and is concerned with the overlapofthelawandthecomputingfield.Wediscussintellectualpropertysuchas patents, copyright and trademarks and the licensing of software. We examine the areaofhackingandcomputercrime,andexplorethenatureofprivacy,freespeech andcensorship.Weconsiderthelegalissuesofbespokesoftwaredevelopment,and the legal aspects of the Internet. Chapter16discussesethicsandprofessionalresponsibilityincomputing.Ethics is a branch of philosophy that deals with moral questions such as what is right or wrong, and computer ethics are a set of principles that guide the behaviour of individuals when using computer resources. Professional ethics are a code of conduct that governs how members of a profession deal with each other and with third parties. Chapter 17 discusses innovation in the computing field including distributed systems, service-oriented architecture (SOA), Software as a Service (SaaS), cloud computing and embedded systems. Chapter 18 is the concluding chapter in which we summarise the journey that we have travelled in the book. x Preface Audience The main audience of this book are computer science students and the general reader who are interested in learning about the fascinating world of computing. Acknowledgements I am indebted to friends and family who supported my efforts in this endeavour. This book is dedicated to Kevin Crowley (a lifelong friend) who is currently fightingadifficultillnesswithallhisstrengthanddetermination.Iwishhimvictory inthismajorchallenge,andmythoughtsarewithhimandhisfamilyatthisdifficult time.IwouldliketothanktheteamatSpringerfortheirconstantprofessionalwork and support. I would like to thank all copyright owners for the permission to use their images. I believe that all of the required permissions have been obtained, but in the unlikely event that an image has been used without the appropriate autho- risation, please contact me so that the required permission can be obtained. Cork, Ireland Gerard O’Regan Contents 1 What Is a Computer? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Analog Computers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Digital Computers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3.1 Vacuum Tubes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3.2 Transistors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3.3 Integrated Circuits . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3.4 Microprocessor S . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4 Von Neumann Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.5 Hardware and Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.6 Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2 Foundations of Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 Step Reckoner Calculating Machine. . . . . . . . . . . . . . . . . . . . 12 2.3 Binary Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4 The Difference Engine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.5 The Analytic Engine—Vision of a Computer . . . . . . . . . . . . . 17 2.5.1 Applications of Analytic Engine . . . . . . . . . . . . . . . . 19 2.6 Boole’s Symbolic Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.6.1 Switching Circuits and Boolean Algebra . . . . . . . . . . 23 2.7 Application of Symbolic Logic to Digital Computing . . . . . . . 25 2.8 Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.9 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3 A Concise History of Computing . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2 Early Digital Computers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.2.1 Harvard Mark 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 xi
Description: