
- English for computer science student
Views 9,746
Downloads 486-
File size 1MB - Author/Uploader: Riska Mardhita
English++
English++ English for Computer Science Students
Complementary Course Book open book
Jagiellonian Language Center Jagiellonian University Cracow 2008 1
English++ Książka English++EnglishforComputerScienceStudentspowstaławramachniekomercyjnegoprojektuonazwieEnglish++,któryzostałzrealizowanyprzezMonikę StawickąwrazgrupąstudentówIIIrokuinformatykiuczącychsięjęzykaangielskie- go w Jagiellońskim Centrum Językowym Uniwersytetu Jagiellońskiego w Krakowie w roku akademickim 2007/2008. Autorka i realizatorzy projektu dziękują Dyrekcji Centrumzaumożliwieniejegorealizacji,aużytkownikówskryptuwwersjipapierowej lub elektronicznej zachęcają do korzystania z materiałów tam zawartych w sposób twórczyrozszerzającje,adoptującdowłasnychpotrzeb,korygująclubtworzącnowe.
AutorkaprojektuEnglish++MonikaStawicka
2
RealizatorzyprojektuEnglish++
MonikaStawicka
AleksandraBieńkowska
PawełFidelus
BartłomiejFilipek
KrystianKichewko
SzymonKaczorowski
MichałKubak
EwaMatczyńska
TomaszPaczkowski
MichałPal
KrzysztofRoksela
AleksandraSendecka
ArturStaszczyk
KrzysztofSzromba
PiotrŚmigielski
English++
Contents Acknowledgements ………………………………………………………. 4 Introduction by Władysław T. Miodunka …………………………….. 7 Introduction by Monika Stawicka ……………………………………… 9 1. Reading Chapter……………………………………………………… 13 •RoderickHames“HistoryofComputers”(1998) • Wikipedia“IloveYouWorm” • TimJones“AnatomyoftheLinuxKernel”(2007) • DamienStolarz“HowtoStreamVideoOveraNetworkortheInternet”(2004) • Wikipedia“ComputerSimulation” • Wikipedia”ComputerFacialAnimation” • StanisławMigórski“AnIntroductiontotheModellingofReal-WorldProblems
bytheSimplestOrdinaryDifferentialEquations”(2007)
• MartinFowler“WritingSoftwarePatterns” • RandyNash“CyberWarfare:RealityorBoxOfficeHit?”(2007) • MartinFowlerandPramodSadalage“EvolutionaryDatabaseDesign”(2003) • JoelSpolsky“LordPalmerstononProgramming”(2002) • Wikipedia“Quake–GameEngine” • PiotrKalita,RobertSchaefer“MechanicalModelsofArteryWalls”(2007) • RobertAhlfinger,BrentonCheeseman,PatrickDoody“ThePitchCorrection
Algorithm:anOverview”(2006)Wikipedia
• Wikipedia“SoftwareDevelopmentProcess”
2. Listening Chapter …………………………………………………… 141 • JohnMcCarthy,“WhatisArtificialIntelligence?BasicQuestions”(2007) • AgileSoftwareDevelopmentfromITConversation • OpenNewsEpisode25fromOpenNews • OpenNewsEpisode29fromOpenNews • OpenNewsEpisode31fromOpenNews
3. Presentation Chapter ……………………………………………….177 • HowtoGiveaSuccesfulPresentation?PracticalInformation • RepertoireofPresentationPhrases • Slideshow.“SuccessfulPresentations.AFewTipsFromEnglish++”
4. Appendixes …………………………………………………………. 191 • AppendixA:MathematicalTerminology • AppendixB:MathematicalFormulas • AppendixC:GreekAlphabet
5. Glossary …………………………………………………………….. 201
3
English++
English++ Acknowledgements Manypeoplehaveassistedinthepreparationofthisfirstversionofthebook.But, of course, as the leader of the English++ project I alone feel responsible for any shortcomings.Iwouldliketogivespecialthankstoagroupofenthusiastic3rdyear computer science students of the Jagiellonian University without whom this book wouldhaveneverbeenprepared.TheyhaveworkedasexpertsintheITfield,text selectors,authorsofcomplementaryexercises,andfinallyshapedthebook.Aboveall IamgratefulforthesupportandcoordinationoftheprojectprovidedbyArturStaszczykandPawełFidelusandforcreativenessandengagementofalltheEnglish++members:AleksandraSendecka,AleksandraBieńkowska,EwaMatczyńska,ArturStaszczyk , Paweł Fidelus,Tomasz Paczkowski, Piotr Śmigielski, Bartłomiej Filipek, Krzysztof Szromba,MichałKubak,MichałPal,KrzysztofRoksela,KrystianKichewkoandSzymon Kaczorowski.Theyallhavecontributedtotheaccomplishmentofthebooknotonly bypracticingtheirEnglishlanguageskillsbutalsobyactivelyusingtheirknowledge asexpertsinthefield.Theirworkgoesmuchbeyondstandardrequirementsofan Englishuniversitycourse. Special thanks also go to: Dr Anna Ochal from the Institute of Computer Science, who revised the mathematical part of the manuscript and to Dr Jerzy Freundlich, a colleague of mine, who painstakingly revised reading and listening texts and the exercises; Małgorzata Świątek, Director of the Jagiellonian Language Center and Professor Marek Skomorowski, Director of the Institute of Computer Scienceforthesupportofmyinitiative;ProfessorWładysławMiodunkaforhelping metomaintainbeliefinthevalueoftheProject,DrRafałMaciągandJerzyZającfor theirhelpintherecordingstudio,DrMonikaCoghenforhersupportivecomments andMaciekKwiatkowskiforgivingthebookitsfinalshape.Particularthanksgoto Jolanta Krzyształowska, Financial Director of the Jagiellonian Language Center and theadministrativestaffoftheCenter. TheprojectmembersaregratefultoProfessorStanisławMigórski,DrIgorPodolakand DrPiotrKalitafromtheInstituteofComputerScienceoftheJagiellonianUniversity for giving us permission to reproduce extracts of their work in our book: “An Introduction to the Modelling of Real–World Problem by the Simplest Ordinary Differential Equations” by Stanisław Migórski and “Mechanical Model of Artery Walls” by Piotr Kalita and Robert Schaefer. We are also grateful to the following authors for permission to reproduce extracts of their work in English++ book:
4
Joel Spolsky for “Lord Palmerston on Programming”, http://www.joelonsoftware.
English++ com/articles/LordPalmerston.html; Randy Nash for “Cyber Warfare: Reality or Box Office Hit?”, http://www.informit.com/articles/article.aspx?p=1016106; Roderick Hames for “History of Computers”), http://www.crews.org/curriculum /ex/compsci/articles/history.htm; Damien Stolarz for “How to Stream Video Over aNetworkortheInternet”,http://www.informit.com/articles/article.aspx?p=331397 &seqNum=1; John McCarthy for „What Is Artificial Intelligence? - Basic Questions”, http://www-formal.stanford.edu/jmc/whatisai/node1.html;MartinFowlerandPramod Sadalage for “Evolutionary Database Design”, http://www.martinfowler.com/articles/ evodb.html;MartinFowlerfor“WritingSoftwarePatterns”,http://www.martinfowler. com/articles/writingPatterns.html;TimJonesfor“AnatomyoftheLinuxKernel”,http:// www.ibm.com/developerworks/linux/library/l-linux-kernel; Robert Ahlfinger, Brenton Cheeseman,PatrickDoodyfor„ThePitchCorrectionAlgorithm:anOverview”,http://cnx.org /content/m12539/latest/. A special word of thanks go to those authors who additionallysupporteduswiththeirenthusiasticmails. The following texts come from open sources: “Computer Facial Animation”, http://en.wikipedia.org/wiki/Facial_animation;“IloveYouWorm”,http://en.wikipedia. org/wiki/ILOVEYOU;„SoftwareDevelopmentProcess”,http://en.wikipedia.org/wiki/Software_development_process;„Quake-GameEngine” h t t p : / / e n . w i k i p e d i a . o rg / w / index.php?title=Quake&diff=172131494&oldid=172045276#Quake_engine; Open News episodes 25, 29 and 31 are under the licence of Creative Commons - http://opennewsshow.org/; Agile Software Development - http://itc. conversationsnetwork.org/shows/detail175.html.Thepicturescomefrom:HistoryofComputers: http://www.flickr.com/photos/dmealiffe/171720479/sizes/o/; http://www.flickr. com/photos/indigoprime/2240131208/sizes/o/;http://www.flickr.com/photos/broughturner/2331185712/sizes/o/.ILoveyouWorm:PhotoownedbyLuiDuar(cc)http://www.flickr.com/ photos/[email protected]/2482225688/;
http://www.flickr.com/photos/vidiot/35382084/
sizes/l/; http://www.flickr.com/photos/joffley/135052908/sizes/l/. How to Stream Video OveraNetworkortheInternet:http://www.flickr.com/photos/inju/2493101180/sizes/l/; http:/www.flickr.com/photos/msjacoby/208642529/sizes/l/;http://www.flickr.com/photos /pbo31/2162247328/sizes/o/. Computer Simulation: http://www.flickr.com/photos/ensight/2125461254/; http://www.flickr.com/photos/oubliette/17538292/sizes/o/; http:// www.flickr.com/photos/jurvetson/447302275/sizes/l/.ComputerFacialAnimation:http:// www.flickr.com/photos/ko_an/53060221/sizes/o/; http://www.flickr.com/photos/giopuo /483784528/sizes/o/;
http://www.flickr.com/photos/guccibear2005/173969294/sizes/l/;
http://www.flickr.com/photos/coreburn/166237292/.CyberWarfare:RealityorBoxOffice Hit?http://www.flickr.com/photos/devachan77/338153377/sizes/l/;http://www.flickr.com/ photos/krazykory/2437404581/sizes/l/; http://www.flickr.com/photos/juan23/82888194/ sizes/l/.LordPalmerstononProgramming:http://www.flickr.com/photos/vancouversun /446503999/sizes/l/; http://www.flickr.com/photos/icco/2246383366/sizes/l/; http://www.
5
English++ flickr.com/photos/jonnowitts/2399505874/sizes/l/.Quake-GameEngine:http://www.flickr. com/photos/nothingpersonal/251603538/sizes/o/; http://www.flickr.com/photos/psycho _al/66541940/sizes/o/; http://www.flickr.com/photos/prh/412670043/sizes/l/. Mechanical Models of Artery Walls: http://www.flickr.com/photos/patrlynch/450142019/sizes/o/; http://www.flickr.com/photos/patrlynch/450129220/sizes/o/; http://www.flickr.com/ photos/andycarvin/2220691059/sizes/o/.ThePitchCorrectiomAlgorythm.AnOverwiev: Photo owned by woodleywonderworks (cc), http://www.flickr.com/photos/73645804 @N00/2267564159/; http://www.flickr.com/photos/zen/40081589/sizes/o/; http://www. flickr.com/photos/timcaynes/102981762/sizes/l/. Software Development Process http:// www.flickr.com/photos/kubernan/401923870/sizes/l/;http://www.flickr.com/photos/reinholdbehringer/1072000705/sizes/l/;http://www.flickr.com/photos/bootload/146803248/sizes/o/. WhatisArtificialIntelligence:http://www.flickr.com/photos/sashko/362105716/sizes/o/; http://www.flickr.com/photos/gla/1790915676/sizes/o/;http://www.flickr.com/photos/easys leazycheesy/1423829545/sizes/l/. MonikaStawicka July2008
6
English++
Introduction
English++ is an interesting project realized in the Jagiellonian Language Center byMonikaStawickaandcomputersciencestudentslearningEnglishwithher.The projectisinterestingfirstofall,becauseitshowshowtointegratelearningEnglish with professional development. Moreover, it is interesting because it proves that passiveacquisitionofaforeignlanguagecanbetransformedintocreativeactivities, wherebothparties,alanguageteacherandstudentsknowthattheydosomething reallynewandbeneficialnotonlyforthemselves,butperhapsalsoforotherswho studyEnglishinaprofessionalcontext. IreallybelievethatallofyouwhowillcomeacrossProjectEnglish++willsharetheir creativeenthusiasmasIdidduringthemeetingwiththeProjectteaminJune2008.
WładysławT.Miodunka
Cracow,18July2008
8
English++
Introduction The aim of the book Language for Specific Purposes (LSP) is an important issue in studying foreign languagesatlektoratywithinthePolishhighereducationcontext.IntheEnglish++ projectaforeignlanguageisnaturallyEnglishandaspecificpurposeisthefieldof
LSP
computerscience.
Language
TheideaofacomplementaryEnglishcoursebookforcomputersciencestudentsevolved
forSpecificPurposes
whenIwasaskedtorunanEnglishcourseforsuchstudents.Alackofappropriateand coherentmaterialsforteachingandlearningtheESPelementwasaseriousdrawback of the course. The reading or listening texts I brought to the classroom were not alwaysatthesatisfactionarylevelasfarasthesubjectmatterwasconcerned. ThemainaimofEnglish++book,therefore,isanattempttobridgethegapbetween thestudents’needsandteachers’competencesintheareaofEnglishforcomputer sciencebyoffering,amongotherthings,aselectionoftextssuitableforstudentsat theirlevelofprofessionaldevelopment.Theuniquetraitofthisbookisthefactthat thetextshavebeenselectedandexerciseshavebeenpreparedbyfutureexpertsin thefield–agroupof3rdyearcomputersciencestudentsworkingunderthesupervisionoftheirEnglishteacher.Allthistoeasestudyingaforeignlanguageinasubject specificcontext.
The book’s audience Thisbookhasbeenaimedattwokindsofusers.Oneisacomputersciencestudent
CEFR
whosegeneralcompetenceinEnglishisatleastatanupperintermediatelevel(B2
CommonEuropean
levelaccordingtoCommonEuropeanFrameworkofReference).Hecanusethebook
FrameworkofReference
forself-studyorintheclassroomwithhisteacher’sassistance.Ateacheristhesecond kindofauser.Hecanuseagiventextasastartingpointforcreatinghisownactivities in the classroom or he can simply follow the suggestions of exercises the book provides.Bothgroupsofuserscanbenefitadditionallybybecomingmorefamiliar withvariousaspectsofabroadareaofcomputerscience.
The contents of the book The book is divided into three chapters. They are the main chapter containing authenticreadingmaterial,thechapterwithlisteningmaterialandthechapterdealing withadifficulttaskofdeliveringanoralpresentation.Attheendofthebookthere areappendixesandtheglossary.Thesecondandthirdchaptersandtheappendixes areaccompaniedbyaudioandvideomaterial.
9
English++ Reading Chapter Thefollowingarepartsofthereadingchapterwithabriefsummaryoftheircontents:
• Information on the reading text ESP
Thissectioncontains‘technical’informationonareadingtext,suchasITsub-areas
English
thearticlecovers,thelengthofatextexpressedinanumberofwords,levelsofthe
forSpecificPurposes
Englishlanguagecomplexity,computerscienceormathcontent,summariesinEnglish andPolish,keywordswiththeirdefinitionsandlearningobjectives.Thisparthas beendesignedforbothteachersandstudentstomaketheirpreliminarychoicesfor readingeasier.TheevaluationoftheEnglishleveldifficultyandsubjectmattercomplexity hasbeenprovidedbythestudents.
• Pre-reading questions Thissectionhasbeendesignedtoencourageareadertothinkaboutthetopicwhich willbethendiscussedinagiventext.Thepre–readingquestionsaresupposedto IT informationtechnology
provokeanexchangeofopinionsorashortdiscussion.Someofthemareaccompanied bysuggestedanswersprovidedinthesection:Exercises.
• Text Thissectioncontainsthewholetextofanoriginalarticle,orasithappensinthecase ofseveralarticles,justexcerpts.Theremainingpartsarethenlocatedinthee-version ofthebook.Thetextshavebeenselectedfortheirintrinsicinterest.Theyvaryin length;thereforetheymaybesuitableforeitherintensiveorextensivereadingand forpracticingreadingskills.
• Exercises Thefirstpartofthissectioncontainssuggestionsofpre-readingquestionsthistime accompaniedbysuggestionsoftheanswers,followedbycomprehensionquestions alsocomplementedbytheanswers.Thismightbepracticalwhenthebookisused bothbyalearnerforself-studyandbyateacherintheclassroom.Webelievethat providingsuggestedanswersjustafterthetextandnotattheendofthebookorin anotherbookwillmakeateacher’slifeintheclassroomabiteasier.
Listening Chapter Theorganizationofthelisteningchapterissimilartotheorganizationofthereading chapter.Consequently,thelisteningchaptercontainsthefollowingsections:
• Information on the listening text Insteadofanumberofwordsarunningtimeofaparticularlisteningpiecehasbeen
10
provided.Theleveloflisteningdifficultyhasbeenalsoevaluatedbythestudents.
English++ • Pre-listening questions Thequestionsshouldhelpstudentsfocustheirattentionandpredictthecontentofa listeningmaterial.Theymayalsoprovokeashortexchangeofopinions.
• Transcript It can be particularly useful when the listening material has been evaluated as difficult,whichisexpressedbymediumorhighEnglishcomplexityorwhencomputer sciencecontentishigh,too.
• Exercises Theyhavebeendesignedbythestudentsandcanbeusedasastartingpointfora teachertopreparehis/herownexercises. The listening chapter is accompanied by a CD with the recordings selected by the studentsfromEnglish++team.
Presentation Chapter Thethirdchapterisdevotedtothedevelopmentofstudents’presentationskills.It containsthefollowingsections:
• Practical tips This part contains practical information on how to get ready for an oral presentation andmakeiteffective.Thereforeareaderwillfindthereinformationaboutapreparatory phase,adressrehearsalorvisualaids.
• Repertoire of presentation phrases Thissectioncontainsaselectionofreadytousepresentationphrasestobeimplemented intodifferentpartsofanoralpresentationtomakeitacoherententity.
• Slide show English++DVDwithaslideshow:“SuccessfulPresentations.AFewTipsfromEnglish++”showsexamplesofbothwelldoneandlesssuccessfulpresentations.Itsimply presentspracticalapplicationofselectedpresentationphrasestakenfromtheprevious sectionofthischapter.ThemainactorsarethestudentsfromEnglish++team,who additionallyhavedecidedtoshowwhatapresentationshouldnotlike.
Appendixes Intheappendixesofthebookthematerialforpronunciationpracticeisincluded.Three appendixesA,BandCcontainmathematicalterminology,mathematicalformulasand
11
English++ the Greek alphabet, respectively. The material can be used for self-study or in the classroomtopracticefieldrelatedlanguage.
Glossary Theglossarycontainsentriesforthekeywordswhichhavebeenselectedfromthe readingandlisteningtextsofEnglish++book.Thedefinitionshavebeenprovided bythestudents.
How to use English++ book English++bookisanopenbook,whichmeansthatbothteachersandstudentscan useand/ormodifythematerialitcontainstoadaptitfortheirownteaching/learning needs.However,anycommercialusageofthebookisprohibited.Thee-versionof English++openbookcanbefoundontheEnglish++webpage: www.englishplusplus.jcj.uj.edu.pl
Pilot version ThisisapilotversionoftheEnglish++book.Thismeansthatovernextacademicyear thoseteacherswhorunEnglishcoursesforcomputerscienceormathstudentsatB2 levelorabovecantestitintheirclassroomtocomplementgeneralEnglishmaterials.It wouldbeextremelyvaluabletohavemycolleagues’opinions,informationonspotted inaccuraciesorsuggestionsforimprovements.Itwouldbeequallyvaluabletoobtain thefeedbackfromthoseforwhomthisbookhasbeencreated-fromcomputerscience students.Feelfreetobeconstructivelycriticalandcomment! Butfirstofallenjoy! MonikaStawicka authorandleaderoftheproject Cracow,June2008
Addressesforcorrespondence: [email protected] MonikaStawicka JagiellońskieCentrumJęzykowe UniwersytetJagielloński ul.Krupnicza2
12
31-123Kraków
English++
English++ English for Computer Science Students
Reading Chapter
13
English++
14
English++
History of Computers Roderick Hames Numberofwords
1050
Computersciencecontent
Low
Mathcontent
Low
Englishlanguagecomplexity
Low
Learning objectives • toacquirebasicknowledgeaboutcomputerhistory
Sub-areas covered • Computerhistory
Keywords • punchedcard-acardonwhichdatacanberecordedintheformofpunchedholes • binarycode-codeusingastringof8binarydigitstorepresentcharacters
Summary Ashortarticlewhichdescribesthehistoryofcomputersandtheirprecursors.Itbriefly mentionsimportanteventsfrom1600uptothetimeswhenthefirstcomputerwas built.Anicetextwritteninasimplelanguage.Itcouldbeusedasalead-intointeresting discussionsaboutthefutureofcomputersorthepaceoftheirevolution. Krótkitekstopisującyhistoriękomputerówwrazztym,comożnanazwaćichprotoplastami.Pokrótceopisanesąważniejszewydarzeniaod1600rokuażdopowstania pierwszego komputera. Przyjemny tekst, napisany nieskomplikowanym językiem. Możebyćwstępemdociekawychdyskusjinaprzykładoprzyszłościkomputerówlub tempieichdalszegorozwoju.
15
English++
Pre-reading questions 1. Whydosomanypeoplenotknowhowthemoderncomputerbegan? 2. Whydoyouthinkthecomputerhaschangedmorerapidlythananythingelse? 3. How do you think W.W.II might have been different if the ENIAC, the first all electricalcomputer,whosefirstjobwastocalculatethefeasibilityofadesignfor thehydrogenbomb,hadnotbeeninventedthen?
16
English++
History of Computers
Early Start Computershavebeenaroundforquiteafewyears.Someofyourparentswereprobably
punchedcard
aroundin1951whenthefirstcomputerwasboughtbyabusinessfirm.Computers
acardonwhichdata
have changed so rapidly that many people cannot keep up with the changes.
canberecorded
One newspaper tried to describe what the auto industry would look like if it had
intheform
developedatasimilarpacetochangesincomputertechnology:
ofpunchedholes
“Hadtheautomobiledevelopedatapaceequaltothatofthecomputerduringthe pasttwentyyears,todayaRollsRoycewouldcostlessthan$3.00,get3millionmiles tothegallon,deliverenoughpowertodrive(theship)theQueenElizabethII,andsix ofthemwouldfitontheheadofapin!”Thesechangeshaveoccurredsorapidlythat manypeopledonotknowhowourmoderncomputergotstarted.
The First Computing Machines “Computers” Sinceancienttimes,peoplehavehadwaysofdealingwithdataandnumbers.Early peopletiedknotsinropeandcarvedmarksonclaytabletstokeeptrackoflivestock and trade. Some people consider the 5000-year-old ABACUS - a frame with beads strungonwires-tobethefirsttruecomputingaid. Asthetradeandtaxsystemgrewincomplexity,peoplesawthatfaster,morereliable andaccuratetoolswereneededfordoingmathandkeepingrecords. In the mid-600’s, Blaise Pascal and his father, who was a tax officer himself, were workingontaxesfortheFrenchgovernmentinParis.Thetwospenthoursfiguring andrefiguringtaxesthateachcitizenowed.YoungBlaisedecidedin1642tobuildan addingandsubtractionmachinethatcouldassistinsuchatediousandtime-consuming process.ThemachineBlaisemadehadasetofeightgearsthatworkedtogetherinmuch thesamewayasanodometerkeepstrackofacar’smileage.Hismachineencountered manyproblems.Foronething,itwasalwaysbreakingdown.Second,themachinewas
17
English++ slowandextremelycostly.Andthird,peoplewereafraidtousethemachine,thinking itmightreplacetheirjobs.Pascallaterbecamefamousformathandphilosophy,but heisstillrememberedforhisroleincomputertechnology.Inhishonor,thereisa computerlanguagenamedPascal. Thenextbigstepforcomputersarrivedinthe1830s,whenCharlesBabbagedecided binarycode
tobuildamachinetohelphimcompleteandprintmathematicaltables.Babbagewas
codeusingastring
amathematicianwhotaughtatCambridgeUniversityinEngland.Hebeganplanning
of8binarydigits
hiscalculatingmachine,callingittheAnalyticalEngine.Theideaforthismachinewas
torepresentcharacters
amazinglylikethecomputerweknowtoday.Itwastoreadaprogramfrompunched cards,figureandstoretheanswerstodifferentproblems,andprinttheansweron paper.Babbagediedbeforehecouldcompletethemachine.However,becauseofhis remarkableideasandwork,BabbageisknownastheFatherofComputers. ThenexthugestepforcomputerscamewhenHermanHollerithenteredacontestorganisedbytheU.S.CensusBureau.Thecontestwastoseewhocouldbuildamachine thatwouldcountandrecordinformationthefastest.Hollerith,ayoungmanworking fortheBureau,builtamachinecalledtheTabulatingMachinethatreadandsorted data from punched cards. The holes punched in the cards matched each person’s answerstoquestions.Forexample,married,single,anddivorcedwereanswerson thecards.TheTabulatorreadthepunchedcardsastheypassedovertinybrushes. Eachtimeabrushfoundahole,itcompletedanelectricalcircuit.Thiscausedspecial countingdialstoincreasethedataforthatanswer. ThankstoHollerith’smachine,insteadoftakingsevenandahalfyearstocountthe censusinformationitonlytookthreeyears,evenwith13millionmorepeoplesince the last census. Happy with his success, Hollerith formed the Tabulating Machine Companyin1896.Thecompanywaslatersoldin1911andin1912hiscompany becametheInternationalBusinessMachinesCorporation,betterknowntodayasIBM.
The First Electric Powered Computer What is considered to be the first computer was made in 1944 by Harvard Professor ENIAC
HowardAiken.TheMarkIcomputerwasverymuchlikethedesignofCharlesBabbage’s
Electronic
AnalyticalEngine,havingmainlymechanicalpartsbutwithsomeelectronicparts.His
NumericalIntegrator
machinewasdesignedtobeprogrammedtodomanycomputingjobs.Thisall-purpose
andComputer
machineiswhatwenowknowasthePCorpersonalcomputer.TheMarkIwasthe firstcomputerfinancedbyIBMandwasabout50feetlongand8feettall.Itused mechanicalswitchestoopenandcloseitselectriccircuits.Itcontainedover500miles ofwireand750,000parts.
18
English++ The First All Electronic Computer ThefirstallelectroniccomputerwastheENIAC(ElectronicNumericalIntegratorand
EDVAC
Computer).ENIACwasageneralpurposedigitalcomputerbuiltin1946byJ.Presper
Electronic
EckertandJohnMauchly.TheENIACcontainedover18,000vacuumtubes(usedinstead
DiscreteVariableComputer
ofthemechanicalswitchesoftheMarkI)andwas1000timesfasterthantheMarkI. Intwentyseconds,ENIACcoulddoamathproblemthatwouldhavetaken40hours foronepersontofinish.TheENIACwasbuiltatthetimeofWorldWarIIandasits firstjobhadtocalculatethefeasibilityofadesignforthehydrogenbomb.TheENIAC was100feetlongand10feettall.
More Modern Computers A more modern type of computer began with John von Neumann’s development ofsoftwarewritteninbinarycode.ItwasvonNeumannwhobeganthepracticeof storingdataandinstructionsinbinarycodeandinitiatedtheuseofmemorytostore data,aswellasprograms.AcomputercalledtheEDVAC(ElectronicDiscreteVariable Computer)wasbuiltusingbinarycodein1950.BeforetheEDVAC,computerslikethe ENIACcoulddoonlyonetask;thentheyhadtoberewiredtoperformadifferenttask or program. The EDVAC’s concept of storing different programs on punched cards insteadofrewiringcomputersledtothecomputersthatweknowtoday. WhilethemoderncomputerisfarbetterandfasterthantheEDVACofitstime,computers of today would not have been possible without the knowledge and work of many greatinventorsandpioneers.
19
English++
Exercises Comprehension questions 1. WhywasPascalhonoredwithacomputerlanguagenamedforhim? • ThisprogramminglanguagewasnamedasatributetoBlaisePascal,becauseof hiscontributiontocomputerdevelopment.Hewasthefirsttobuildaprecursor ofthemoderncomputer-anaddingansubtractionmachinethatcouldassistin tediousandtime-consumingcomputationalprocess. 2. Whowasthefirsttoinventamachinewhoseoperatingprincipleisverysimilar topresent-daycomputers?Describethesesimilarities. • CharlesBabbage,whoseideawasremarkablysimilartothewaymoderncomputers work:readprogramfrompunchedcards(input),figureandstoretheanswersto differentproblems,andprinttheansweronpaper(output) 3. InwhichprocesswasHollerith’smachineinvolvedandwhatwasitsrole? • Hollerith’smachinehelpedwiththecountingofcensusinformation.Ittookthree years,insteadofsevenandhalf,evenwith13millionmorepeoplesincetheprevious census.“Themachinereadandsorteddatafrompunchedcards.Theholespunched in the cards matched each person’s answers to questions. For example, married, single,anddivorcedwereanswersonthecards.TheTabulatorreadthepunchedcards astheypassedovertinybrushes.Eachtimeabrushfoundahole,itcompletedan electricalcircuit.Thiscausedspecialcountingdialstoincreasethedataforthatanswer. 4. Describeallthetechnicalparametersofthefirstelectricpoweredcomputer. • 50feetlong,8feettall,electricalcircuitsareopenedandclosedbymechanical switches,contained500milesofwireand750000parts 5. WhatwerethedifferencesbetweentheMarkIandtheENIAC? • Mark I - electric powered, 50 feet long and 8 tall, used mechanical switches to open/closeelectricalcircuits • ENIAC-allelectroniccomputer,used18,000vacuumtubesinsteadofmechanical switches,1000timesfasterthanMarkI,100feetlongand10feettall 6. Whatisthemainadvantageofusingbinarycodeinstoringdataandinstructions? • FirstcomputersliketheENIACcoulddoonlyonetask,thentheyhadtoberewired toperformadifferenttaskorprogram.Thebinarycodeconceptofstoringdifferent programsonpunchedcardsinsteadofrewiringcomputersledtocomputersthatwe knowtoday.
Possible topics for discussion 1. Futureofcomputers.
Possible difficulties 20
Thisisafairlyeasytotexttoencourageareadertostudyabitmoreadvancedarticles. Thereshouldnotbeanyproblemswithunderstandingthisarticle.
English++
ILOVEYOU Worm Wikipedia Numberofwords
1150
Computersciencecontent
Medium
Mathcontent
Low
Englishlanguagecomplexity
Medium
Learning objectives • tounderstandwhytheILOVEYOUwormwassosuccessful • tounderstandthearchitectureoftheILOVEYOUwormasabasicscriptvirus • torecognizehowbiganeffectasingleviruscanhaveonglobalIT
Sub-areas covered • Computervirus • Computerworm • Popularworms/viruses
Keywords • malware-softwaredesignedtoinfiltrateordamageacomputersystemwithout theowner’sinformedconsent • VBScript-VisualBasicScriptingEdition-anActiveScripting;technologyusedin Windowstoimplementcomponent-basedscriptingsupport;alanguagedeveloped byMicrosoft • socialengineering-practiceofobtainingconfidentialinformationbymanipulating users • Baroktrojan-thistrojanhorsegathersinformationsuchasusername,IPaddress andpasswords,andattemptstosendtheinformationtothecreatorofthevirus
Summary The article provides information about the creation and history of a well-known computerwormcalled‘ILOVEYOU’.Thefirstsectioncontainsitsbasicdescription andexplainsthefeaturesofthewormthatmadeiteffective.Thefollowingsections describehowthewormspreadandtheeffectithadworldwide.Thearticlegivesinformationabouttheauthorofthewormandthemanwhowrotethesoftwarethat repairedthedamageitcaused.Thisisfollowedbyasectiononhowthe‘ILOVEYOU’ wormaffectscomputers.Thetextendswithbriefinformationaboutthelegalmeasuresagainsttheauthoroftheworm.
21
English++ Tekstopisujejedenzbardziejznanychrobakówkomputerowych-‘ILOVEYOU’.Pierwsza częśćzawierapodstawoweinformacjeoprogramieitym,couczyniłogoefektywnym. Następnaopowiadaorozprzestrzenianiusięwirusa.Kolejneprzedstawiająglobalne działanie robaka, informują o jego autorze oraz o twórcy programu naprawiającego szkody.Kolejnaczęśćtekstudostarczawiadomościodziałaniach‘ILOVEYOU’nakomputerze-corobiijakiewywołujeszkody.Tekstkończysięinformacjąnatematkonsekwencjiprawnychwyciągniętychwobecautora‘ILOVEYOU’.
Pre-reading questions 1. Whatattackshaveyouheardabout? 2. Haveyoueverhadavirusorworminyourmail? 3. Nameafewofthemostfamousviruses.
22
English++
ILOVEYOU Worm
socialengineering practiceofobtaining confidentialinformation bymanipulatingusers TheILOVEYOUworm,alsoknownasVBS/LoveletterandLoveBugworm,isacomputer wormwritteninVBScript.
Description Theworm,firstdiscoveredinHongKong,arrivedine-mailboxesonMay4,2000,
VBScript
withthesimplesubjectof“ILOVEYOU”andanattachment“LOVE-LETTER-FOR-YOU.
VisualBasicScripting
TXT.vbs”.
Edition-anActive Scripting
Two aspects of the worm made it effective: • Itreliedonsocialengineeringtoenticeuserstoopenthee-mailandensureits continuedpropagation. • Itemployedamechanism—VBScripts—that,whilenotentirelynovel,hadnot beenexploitedtosuchadegreepreviouslytodirectattentiontotheirpotential, reducingthelayersofprotectionthatwouldhavetobenavigatedforsuccess.
(technologyused inWindowstoimplement component-based scriptingsupport) languagedeveloped byMicrosoft
Spread Itsmassivespreadmovedwestwardasworkersarrivedattheirofficesandencountered messagesgeneratedbypeoplefromtheEast.Becausethevirususedmailinglistsas itssourceoftargets,themessagesoftenappearedtocomefromanacquaintanceand somightbeconsidered“safe”,providingfurtherincentivetoopenthem.Allittook wasafewusersateachsitetoaccesstheVBSattachmenttogeneratethethousands andthousandsofe-mailsthatwouldcripplee-mailsystemsundertheirweight,not tomentionoverwritethousandsoffilesonworkstationsandaccessibleservers.
Effects ItbeganinthePhilippinesonMay4,2000,andspreadacrosstheworldinoneday (travellingfromHong-KongtoEuropetotheUnitedStates),infecting10percentofall computersconnectedtotheInternetandcausingabout$5.5billionindamage.Most
23
English++ ofthe“damage”wasthelaborofgettingridofthevirus.ThePentagon,CIA,andthe BritishParliamenthadtoshutdowntheire-mailsystemstogetridoftheworm,as didmostlargecorporations. This particular malware caused widespread outrage, making it the most damaging malware
wormever.Thewormoverwroteimportantfiles,aswellasmusic,multimediaand
softwaredesigned
more,withacopyofitself.Italsosentthewormtoeveryoneonauser’scontactlist.
toinfiltrateordamage
This particular worm only affected computers running the Microsoft Windows
acomputersystem
operatingsystem.Whileanycomputeraccessinge-mailcouldreceivean“ILOVEYOU”
withouttheowner’s
e-mail,onlyMicrosoftWindowssystemswouldbeinfected.
informedconsent
Authorship TheILOVEYOUwormisbelievedtohavebeenwrittenbyMichaelBuen.TheBarok trojanhorseusedbythewormisbelievedtohavebeenwrittenbyOneldeGuzman, aFilipinostudentofAMAComputerUniversityinMakati,Philippines. An international manhunt for the perpetrator finally led to a young programming student.OnMay11(oneweekafterthevirusspread),heheldanewsconferenceand saidthathedidnotmeantocausesomuchharm.Hewasunabletograduatebecause theuniversityrejectedhisthesisonthebasisofitsillegality.Helpedbyagroupof friends called the Grammersoft Group, he distributed his virus the day before the schoolheldtheirgraduationceremony.
Detection NarinnatSuksawat,a25-year-oldThaisoftwareengineer,wasthefirstpersontowrite softwarethatrepairedthedamagecausedbytheworm,releasingittothepublicon May5,2000,24hoursafterthewormhadspread.“RationalKiller”,theprogramhe created,removedvirusfilesandrestoredthepreviouslyremovedsystemfilessothey againfunctionednormally.Twomonthslater,NarinnatwasofferedaseniorconsultantjobatSunMicrosystemsandworkedtherefortwoyears.Heresignedtostarthis ownbusiness.Today,NarinnatownsasoftwarecompanynamedMosciiSystems,a systemmanagementsoftwarecompanyinThailand.
Architecture of the worm ThewormiswrittenusingMicrosoftVisualBasicScripting(VBS),andrequiresthat theend-userrunthescriptinordertodeliveritspayload.Itwilladdasetofregistry keystotheWindowsregistrythatwillallowthemalwaretostartupateveryboot.
24
English++ Thewormwillthensearchalldriveswhichareconnectedtotheinfectedcomputerand replacefileswiththeextensions*.JPG,*.JPEG,*.VBS,*.VBE,*.JS,*.JSE,*.CSS,*.WSH, *.SCT,*.DOC*.HTAwithcopiesofitself,whileappendingtothefilenamea.VBS. extension.Themalwarewillalsolocate*.MP3and*.MP2files,andwhenfound,makes thefileshidden,copiesitselfwiththesamefilenameandappendsa.VBS. The worm propagates by sending out copies of itself to all entries in the Microsoft
Baroktrojan
Outlookaddressbook.Italsohasanadditionalcomponent,inwhichitwilldownloadand
thistrojanhorse
executeaninfectedprogramcalledvariously“WIN-BUGSFIX.EXE”or“Microsoftv25.exe”.
gathersinformation
Thisisapassword-stealingprogramwhichwille-mailcachedpasswords.
suchasusername, IPaddressandpasswords,
Variants 1. Attachment:LOVE-LETTER-FOR-YOU.TXT.vbs
SubjectLine:ILOVEYOU
MessageBody:kindlychecktheattachedLOVELETTERcomingfromme.
andattemptstosendthe informationtothecreator ofthevirus
2. Attachment:VeryFunny.vbs
SubjectLine:fwd:Joke
MessageBody:empty
3. Attachment:mothersday.vbs
SubjectLine:MothersDayOrderConfirmation
MessageBody:Wehaveproceededtochargeyourcreditcardfortheamountof $326.92forthemothersdaydiamondspecial.Wehaveattachedadetailedinvoice tothisemail.Pleaseprintouttheattachmentandkeepitinasafeplace.Thanks AgainandHaveaHappyMothersDay![email protected]
4. Attachment:virus_warning.jpg.vbs
SubjectLine:DangerousVirusWarning
MessageBody:Thereisadangerousviruscirculating.Pleaseclickattachedpicture toviewitandlearntoavoidit.
5. Attachment:protect.vbs
SubjectLine:VirusALERT!!!
MessageBody:alongmessageregardingVBS.LoveLetter.A
6. Attachment:Important.TXT.vbs
SubjectLine:Important!Readcarefully!!
MessageBody:ChecktheattachedIMPORTANTcomingfromme!
7. Attachment:Virus-Protection-Instructions.vbs
SubjectLine:HowtoprotectyourselffromtheIL0VEYOUbug!
MessageBody:Here’stheeasywaytofixthelovevirus.
8. Attachment:KillEmAll.TXT.VBS
SubjectLine:ICantBelieveThis!!!
MessageBody:ICantBelieveIhaveJustreceivedThisHateEmail..TakeALook!
25
English++ 9. Attachment:ArabAir.TXT.vbs
SubjectLine:ThankYouForFlyingWithArabAirlines
MessageBody:Pleasecheckifthebilliscorrect,byopeningtheattachedfile
10.Attachment:IMPORTANT.TXT.vbs
SubjectLine:VariantTest
MessageBody:Thisisavarianttothevbsvirus.
11.Attachment:Vir-Killer.vbs
SubjectLine:Yeah,YeahanothertimetoDEATH…
MessageBody:ThisistheKillerforVBS.LOVE-LETTER.WORM.
12.Attachment:LOOK.vbs
SubjectLine:LOOK!
MessageBody:hehe…checkthisout.
13.Attachment:BEWERBUNG.TXT.vbs
SubjectLine:BewerbungKreolina
MessageBody:SehrgeehrteDamenundHerren!
14.SubjectLine:Isthisyouinthispicture?
MessageBody:Isthisyouinthispicture?
Legislative aftermath As there were no laws against virus-writing at the time, on August 21, 2000, the prosecutorsdroppedallchargesagainstOnelA.deGuzmaninaresolutionsigned by Jovencito Zuno. The original charges brought up against de Guzman dealt with theillegaluseofpasswordsforcreditcardandbanktransactions.ThePhilippines E-CommerceLaw(RepublicActNo.8792),passedonJune14,2000,laidoutpenalties for cybercrime. Under the law, those who spread computer viruses or otherwise engage in cybercrime (including copyright infringement and software cracking) can be fined a minimum of 100,000 pesos (about USD$2,000), and a maximum commensurate with the damage caused, and imprisoned for six months to three years.
26
English++
Exercises Pre-reading exercises 1. Whatattackshaveyouheardabout? 2. Haveyoueverhadavirusorworminmail? 3. Nameafewofthemostfamousviruses. • Melissa • LoveBug • CodeRed • Bugbear • Blaster
Comprehension questions 1. WhatkindofattachmentwasintheILOVEYOUworm? • Itwasavisualbasicscript. 2. InwhatlanguagewastheILOVEYOUwormwritten? • VBScriptprogramminglanguage 3. WhenwastheILOVEYOUwormdetected? • 4thMay,2000 4. WhocreatedtheBaroktrojan? • OneldeGuzman,aFilipinostudent 5. WhatactiondidthePentagontakeinordertoprotectitselffromthe‘ILove You’virus? • Pentagonhadtoshutdownowne-mailsystem.
Further exercises 1. Matchheadingstoparagraphs. 2. Thereareseveraldifferentvariantsofemailswiththisvirusinthearticle.Write yourownvariantofemailthatwillencouragepeopletoopentheattachment.
Possible topics for discussion 1. Whywasthisvirussodangerousandharmful? • The worm overwrote important files, as well as music, multimedia and more, withacopyofitself.Italsosentthewormtoeveryoneonauser’scontactlist. 2. WhydiditattackonlyWindowsOperatingSystems? • Bad security policy, holes in the security mechanism system and a lot of users obliviousofdanger-thesefactorshaveaddedtovirussuccess. 3. Whatlegalconsequencesshouldbefacedbytheauthorsofcomputerviruses? • highfines • banonaccesstocomputers
27
English++ 4. What action each computer user can take to protect their computers against computerworms? • installanti-virussoftware • becarefulwhate-mailattachmentyouopen,whatwebsitesyouvisit • checksourceofsoftwarewhichyouinstall • checkdatamediums,beforeyouopenthem,–especiallypen-drives
Possible difficulties Tohelpyouunderstandcertainpartsofthetext,makesureyouknowthemeaning ofthekeywordsbeforeyoustartreading.
28
English++
Anatomy of the Linux Kernel Tim Jones Numberofwords
2730
Computersciencecontent
High
Mathcontent
Low
Englishlanguagecomplexity
Low
Learning objectives • toacquirebasicvocabularyrelatedtooperatingsystems • tounderstandthebasicsofLinuxkernelarchitecture
Sub-areas covered • Linuxkernelanditssubsystems
Keywords • kernel - the central component of most computer operating systems (OS). Its functionsincludemanagingthesystem’sresources(thecommunicationbetween hardwareandsoftwarecomponents) • Linuxkernel-Unix-likeoperatingsystemkernel • VFS(Virtualfilesystem)-anabstractionlayerontopofamoreconcretefilesystem • GNU-acomputeroperatingsystemcomposedentirelyoffreesoftware,initiated in1984byRichardStallman • GPL-awidelyusedfreesoftwarelicense,originallywrittenbyRichardStallman fortheGNUproject • Minix-free/opensource,Unix-likeoperatingsystem(OS)basedonamicrokernel architecture • Unix-acomputeroperatingsystemoriginallydevelopedin1969byagroupofAT&T employeesatBellLabsincludingKenThompson,DennisRitchieandDouglasIlroy • operating system - the software that manages the sharing of the resources of a computer and provides programmers with an interface used to access those resources • buffer-aregionofmemoryusedtotemporarilyholddatawhileitisbeingmoved fromoneplacetoanother • buffercache-acollectionofdataduplicatingoriginalvaluesstoredelsewhereor computedearlier,wheretheoriginaldataisexpensivetofetch(owingtolonger accesstime)ortocompute,comparedtothecostofreadingthecache
29
English++
Summary Asthetitlesuggests,thisarticleisaboutthelinuxkernel.Itstartswithahistorical introduction, which includes information on unix and minix, the predecessors of linux.Thenextsectionisaboutthelinuxkernelingeneralandhowitisconstructed. Thethirdsectionisdividedintosub-sectionswhichdescribethesubsystemsinthelinux kernel. Subsequent sections deal with memory management, process management, driverslayerornetworkstack.Thearticleisnotverycomplex,beingonlyanintroduction tothelinuxkernel.Itconcludeswithalistoflinkstolongerarticlesaboutthelinuxkernel anditssubsystems. Jakwskazujetytuł,artykułtenjestojądrzelinuxa.Napoczątkumaływstęphistoryczny.Wtejczęścizawartesąinformacjeounixieiminixie,poprzednikachlinuxa. Następnaczęśćtraktujeojądrzelinuxajakocałości,czylijakogólniejestonozbudowane.Trzeciaczęśćjestzłożonazmniejszychpodczęści.Każdaopisujejedenzpodsystemówjądra.Kolejneczęścimówiąo:zarządzaniupamięcią,zarządzaniuprocesami, warstwąsterowników,systemieplików,interfejsiewywołańsystemowychorazstosie sieciowym. Artykuł nie jest zbyt rozbudowany, jest on tylko wstępem do jądra linuxa.Nakońcutekstuznajdujesięlistaodnośnikówdoinnychartykułówbardziej szczegółowoomawiającychróżneczęścijądra.
Pre-reading exercises 1. Whatarethemostpopularoperatingsystems? 2. WhataretheadvantagesofLinux? 3. WhatarethedisadvantagesofLinux?
30
English++
Anatomy of the Linux Kernel TheLinux®kernelisthecoreofalargeandcomplexoperatingsystem,andwhileit
operatingsystem
ishuge,itiswellorganizedintermsofsubsystemsandlayers.Inthisarticle,youcan
thesoftwarethatmanages
explorethegeneralstructureoftheLinuxkernelandgettoknowitsmajorsubsystems
thesharingoftheresourc-
andcoreinterfaces.Wherepossible,yougetlinkstootherIBMarticlestohelpyou
esofacomputerand
digdeeper.
providesprogrammers
GiventhatthegoalofthisarticleistointroduceyoutotheLinuxkernelandexploreits architectureandmajorcomponents,let’sstartwithashorttourofLinuxkernelhistory,
withaninterfaceusedto accessthoseresources
thenlookattheLinuxkernelarchitecturefrom30,000feet,and,finally,examineits majorsubsystems.TheLinuxkernelisoversixmillionlinesofcode,sothisintroduction isnotexhaustive.Usethepointerstomorecontenttodiginfurther.
A short tour of Linux history WhileLinuxisarguablythemostpopularopensourceoperatingsystem,itshistory is actually quite short considering the timeline of operating systems. In the early daysofcomputing,programmersdevelopedonthebarehardwareinthehardware’s language.Thelackofanoperatingsystemmeantthatonlyoneapplication(andone user) could use the large and expensive device at a time. Early operating systems weredevelopedinthe1950stoprovideasimplerdevelopmentexperience.Examples includetheGeneralMotorsOperatingSystem(GMOS)developedfortheIBM701and theFORTRANMonitorSystem(FMS)developedbyNorthAmericanAviationforthe IBM709. Inthe1960s,theMassachusettsInstituteofTechnology(MIT)andahostofcompanies developedanexperimentaloperatingsystemcalledMultics(orMultiplexedInformation andComputingService)fortheGE-645.Oneofthedevelopersofthisoperatingsystem, AT&T, dropped out of Multics and developed their own operating system in 1970 calledUnics.AlongwiththisoperatingsystemwastheClanguage,forwhichCwas developedandthenrewrittentomakeoperatingsystemdevelopmentportable. Twenty years later, Andrew Tanenbaum created a microkernel version of UNIX®, calledMINIX(forminimalUNIX),thatranonsmallpersonalcomputers.Thisopen sourceoperatingsysteminspiredLinusTorvalds’initialdevelopmentofLinuxinthe early1990s Linux quickly evolved from a single-person project to a world-wide development projectinvolvingthousandsofdevelopers.Oneofthemostimportantdecisionsfor LinuxwasitsadoptionoftheGNUGeneralPublicLicense(GPL).UndertheGPL,the Linuxkernelwasprotectedfromcommercialexploitation,anditalsobenefitedfrom
31
English++ theuser-spacedevelopmentoftheGNUproject(ofRichardStallman,whosesource dwarfsthatoftheLinuxkernel).ThisallowedusefulapplicationssuchastheGNU CompilerCollection(GCC)andvariousshellsupport.
Introduction to the Linux kernel Nowontoahigh-altitudelookattheGNU/Linuxoperatingsystemarchitecture.You canthinkaboutanoperatingsystemfromtwolevels. buffer aregionofmemoryused totemporarilyhold datawhileitisbeing movedfromoneplace toanother
Atthetopistheuser,orapplication,space.Thisiswheretheuserapplicationsare executed.Belowtheuserspaceisthekernelspace.Here,theLinuxkernelexists. There is also the GNU C Library (glibc). This provides the system call interface that connectstothekernelandprovidesthemechanismtotransitionbetweentheuser-space applicationandthekernel.Thisisimportantbecausethekernelanduserapplication occupydifferentprotectedaddressspaces.Andwhileeachuser-spaceprocessoccupies itsownvirtualaddressspace,thekerneloccupiesasingleaddressspace.Formore information,seethelinksintheresourcessection. TheLinuxkernelcanbefurtherdividedintothreegrosslevels.Atthetopisthesystem callinterface,whichimplementsthebasicfunctionssuchasreadandwrite.Belowthe systemcallinterfaceisthekernelcode,whichcanbemoreaccuratelydefinedasthe architecture-independentkernelcode.ThiscodeiscommontoalloftheprocessorarchitecturessupportedbyLinux.Belowthisisthearchitecture-dependentcode,which formswhatismorecommonlycalledaBSP(BoardSupportPackage).Thiscodeserves astheprocessorandplatform-specificcodeforthegivenarchitecture.
Properties of the Linux kernel VFS(VirtualFileSystem)
When discussing the architecture of a large and complex system, you can view the
anabstractionlayer
system from many perspectives. One goal of an architectural decomposition is to
ontopofamoreconcrete filesystem
provideawaytounderstandthesourcebetterandthat’swhatwe’lldohere. TheLinuxkernelimplementsanumberofimportantarchitecturalattributes.Atahigh level,andatlowerlevels,thekernelislayeredintoanumberofdistinctsubsystems. Linuxcanalsobeconsideredmonolithicbecauseitlumpsallofthebasicservicesinto thekernel.Thisdiffersfromamicrokernelarchitecture,wherethekernelprovides basicservicessuchascommunication,I/O,andmemoryandprocessmanagement, andmorespecificservicesarepluggedintothemicrokernellayer.Eachhasitsown advantages,butI’llsteerclearofthatdebate. Overtime,theLinuxkernelhasbecomeefficientintermsofbothmemoryandCPU
32
usage,aswellasextremelystable.ButthemostinterestingaspectofLinux,givenits
English++ sizeandcomplexity,isitsportability.Linuxcanbecompiledtorunonahugenumber ofprocessorsandplatformswithdifferentarchitecturalconstraintsandneeds.One exampleistheabilityofLinuxtorunonaprocesswithamemorymanagementunit (MMU),aswellasthosethatprovidenoMMU.TheuClinuxportoftheLinuxkernel providesfornon-MMUsupport.Seetheresourcessectionformoredetails.
Major subsystems of the Linux kernel Nowlet’slookatsomeofthemajorcomponentsoftheLinuxkernelusingthebreakdown.
System call interface TheSCIisathinlayerthatprovidesthemeanstoperformfunctioncallsfromuser
Linuxkernel
space into the kernel. As discussed previously, this interface can be architecture
Unix-like
dependent,evenwithinthesameprocessorfamily.TheSCIisactuallyaninteresting
operatingsystemkernel
function-call multiplexing and demultiplexing service. You can find the SCI implementation in ./linux/kernel, as well as architecture-dependent portions in ./linux/arch.Moredetailsforthiscomponentareavailableintheresourcessection.
Process management Processmanagementisfocusedontheexecutionofprocesses.Inthekernel,these arecalledthreadsandrepresentanindividualvirtualizationoftheprocessor(thread code,data,stack,andCPUregisters).Inuserspace,thetermprocessistypicallyused, thoughtheLinuximplementationdoesnotseparatethetwoconcepts(processesand threads).Thekernelprovidesanapplicationprograminterface(API)throughtheSCI tocreateanewprocess(fork,exec,orPortableOperatingSystemInterface[POSIX]
kernel
functions), stop a process (kill, exit), and communicate and synchronize between
thecentralcomponent
them(signal,orPOSIXmechanisms).
ofmostcomputer
Also in process management there is a need to share the CPU between the active threads.Thekernelimplementsanovelschedulingalgorithmthatoperatesinconstant time,regardlessofthenumberofthreadsvyingfortheCPU.ThisiscalledtheO(1) scheduler,denotingthatthesameamountoftimeistakentoscheduleonethreadas itistoschedulemany.TheO(1)scheduleralsosupportsmultipleprocessors(called SymmetricMultiProcessing,orSMP).Youcanfindtheprocessmanagementsources in./linux/kernelandarchitecture-dependentsourcesin./linux/arch).Youcanlearn
operatingsystems(OS). Itsfunctionsinclude managingthesystem’s resources (thecommunication betweenhardwareand softwarecomponents
moreaboutthisalgorithmintheresourcessection.
Memory management Anotherimportantresourcethat’smanagedbythekernelismemory.Forefficiency, giventhewaythatthehardwaremanagesvirtualmemory,memoryismanagedin
33
English++ Minix
whatarecalledpages(4KBinsizeformostarchitectures).Linuxincludesthemeans
free/opensource,Unix-like
tomanagetheavailablememory,aswellasthehardwaremechanismsforphysical
operatingsystem(OS) basedonamicrokernel architecture
andvirtualmappings. Butmemorymanagementismuchmorethanmanaging4KBbuffers.Linuxprovides abstractionsover4KBbuffers,suchastheslaballocator.Thismemorymanagement schemeuses4KBbuffersasitsbase,butthenallocatesstructuresfromwithin,keeping trackofwhichpagesarefull,partiallyused,andempty.Thisallowstheschemeto dynamicallygrowandshrinkbasedontheneedsofthegreatersystem. Supportingmultipleusersofmemory,therearetimeswhentheavailablememory canbeexhausted.Forthisreason,pagescanbemovedoutofmemoryandontothe disk.Thisprocessiscalledswappingbecausethepagesareswappedfrommemory ontotheharddisk.Youcanfindthememorymanagementsourcesin./linux/mm.
Virtual file system Thevirtualfilesystem(VFS)isaninterestingaspectoftheLinuxkernelbecauseit providesacommoninterfaceabstractionforfilesystems.TheVFSprovidesaswitching layerbetweentheSCIandthefilesystemssupportedbythekernel. AtthetopoftheVFSisacommonAPIabstractionoffunctionssuchasopen,close, read,andwrite.AtthebottomoftheVFSarethefilesystemabstractionsthatdefine howtheupper-layerfunctionsareimplemented.Theseareplug-insforthegivenfile system(ofwhichover50exist).Youcanfindthefilesystemsourcesin./linux/fs. GPL
Belowthefilesystemlayeristhebuffercache,whichprovidesacommonsetoffunctions
awidelyused
tothefilesystemlayer(independentofanyparticularfilesystem).Thiscachinglayer
freesoftwarelicense,
optimizesaccesstothephysicaldevicesbykeepingdataaroundforashorttime(or
originallywrittenby
speculativelyreadaheadsothatthedataisavailablewhenneeded).Belowthebuffer
RichardStallmanforthe
cachearethedevicedrivers,whichimplementtheinterfacefortheparticularphysical
GNUproject
device.
Network stack Thenetworkstack,bydesign,followsalayeredarchitecturemodeledaftertheprotocols themselves.RecallthattheInternetProtocol(IP)isthecorenetworklayerprotocolthat sitsbelowthetransportprotocol(mostcommonlytheTransmissionControlProtocol, orTCP).AboveTCPisthesocketslayer,whichisinvokedthroughtheSCI. ThesocketslayeristhestandardAPItothenetworkingsubsystemandprovidesauser interface to a variety of networking protocols. From raw frame access to IP protocol
34
dataunits(PDUs)anduptoTCPandtheUserDatagramProtocol(UDP),thesockets
English++ layer providesa standardizedway to manageconnectionsand move databetween endpoints.Youcanfindthenetworkingsourcesinthekernelat./linux/net.
Device drivers ThevastmajorityofthesourcecodeintheLinuxkernelexistsindevicedriversthat makeaparticularhardwaredeviceusable.TheLinuxsourcetreeprovidesadrivers subdirectorythatisfurtherdividedbythevariousdevicesthataresupported,suchas Bluetooth,I2C,serial,andsoon.Youcanfindthedevicedriversourcesin./linux/drivers.
Architecture-dependent code WhilemuchofLinuxisindependentofthearchitectureonwhichitruns,thereare
GNU
elementsthatmustconsiderthearchitecturefornormaloperationandforefficiency.
acomputeroperating
The/linux/archsubdirectorydefinesthearchitecture-dependentportionofthekernel
systemcomposed
sourcecontainedinanumberofsubdirectoriesthatarespecifictothearchitecture
entirelyoffreesoftware,
(collectivelyformingtheBSP).Foratypicaldesktop,thei386directoryisused.Each
initiatedin1984
architecture subdirectory contains a number of other subdirectories that focus on a
byRichardStallman
particularaspectofthekernel,suchasboot,kernel,memorymanagement,andothers. Youcanfindthearchitecture-dependentcodein./linux/arch.
Interesting features of the Linux kernel IftheportabilityandefficiencyoftheLinuxkernelweren’tenough,itprovidessome otherfeaturesthatcouldnotbeclassifiedinthepreviousdecomposition. Linux,beingaproductionoperatingsystemandopensource,isagreattestbedfor newprotocolsandadvancementsofthoseprotocols.Linuxsupportsalargenumberof networkingprotocols,includingthetypicalTCP/IP,andalsoextensionforhigh-speed networking(greaterthan1GigabitEthernet[GbE]and10GbE).Linuxalsosupports protocolssuchastheStreamControlTransmissionProtocol(SCTP),whichprovides manyadvancedfeaturesaboveTCP(asareplacementtransportlevelprotocol). Linux is also a dynamic kernel, supporting the addition and removal of software componentsonthefly.Thesearecalleddynamicallyloadablekernelmodules,and theycanbeinsertedatbootwhenthey’reneeded(whenaparticulardeviceisfound requiringthemodule)oratanytimebytheuser. ArecentadvancementofLinuxisitsuseasanoperatingsystemforotheroperating systems(calledahypervisor).Recently,amodificationtothekernelwasmadecalled theKernel-basedVirtualMachine(KVM).Thismodificationenabledanewinterface to user space that allows other operating systems to run above the KVM-enabled kernel.InadditiontorunninganotherinstanceofLinux,Microsoft®Windows®can
35
English++ alsobevirtualized.Theonlyconstraintisthattheunderlyingprocessormustsupport thenewvirtualizationinstructions.Seetheresourcesectionformoreinformation.
Going further ThisarticlejustscratchedthesurfaceoftheLinuxkernelarchitectureanditsfeatures andcapabilities.YoucancheckouttheDocumentationdirectorythatisprovidedin everyLinuxdistributionfordetailedinformationaboutthecontentsofthekernel.
Resources buffercache
• The GNU site (http://www.gnu.org/licenses) describes the GNU GPL that covers
acollectionof
theLinuxkernelandmostusefulapplicationsprovidedwithit.Alsodescribedis
dataduplicating
alessrestrictiveformoftheGPLcalledtheLesserGPL(LGPL).
originalvaluesstored
• UNIX (http://en.wikipedia.org/wiki/Unics), MINIX (http://en.wikipedia.org/wiki/
elsewhereorcomputed
Minix)andLinux(http://en.wikipedia.org/wiki/Linux)arecoveredinWikipedia,
earlier,wheretheoriginal
alongwithadetailedfamilytreeoftheoperatingsystems.
dataisexpensivetofetch
• TheGNUCLibrary(http://www.gnu.org/software/libc/),orglibc,istheimplementation
(owingtolongeraccess
ofthestandardClibrary.It’susedintheGNU/Linuxoperatingsystem,aswellasthe
time)ortocompute,
GNU/Hurd(http://directory.fsf.org/hurd.html)microkerneloperatingsystem.
comparedtothecostof
• uClinux (http://www.uclinux.org/) is a port of the Linux kernel that can execute
readingthecache
onsystemsthatlackanMMU.ThisallowstheLinuxkerneltorunonverysmall embeddedplatforms,suchastheMotorolaDragonBallprocessorusedinthePalmPilot PersonalDigitalAssistants(PDAs). • “Kernel command using Linux system calls” (http://www.ibm.com/developerworks/linux/library/l-system-calls/)(developerWorks,March2007)coverstheSCI, which is an important layer in the Linux kernel, with user-space support from glibcthatenablesfunctioncallsbetweenuserspaceandthekernel. • “Inside the Linux scheduler” (http://www.ibm.com/developerworks/linux/library/lscheduler/)(developerWorks,June2006)exploresthenewO(1)schedulerintroduced inLinux2.6thatisefficient,scaleswithalargenumberofprocesses(threads), andtakesadvantageofSMPsystems. • “AccesstheLinuxkernelusingthe/procfilesystem”(http://www.ibm.com/developerworks/linux/library/l-proc.html) (developerWorks, March 2006) looks at the /procfilesystem,whichisavirtualfilesystemthatprovidesanovelwayforuserspaceapplicationstocommunicatewiththekernel.Thisarticledemonstrates/ proc,aswellasloadablekernelmodules. • “Server clinic: Put virtual filesystems to work” (http://www.ibm.com/developerworks/linux/library/l-sc12.html)(developerWorks,April2003)delvesintotheVFS layer that allows Linux to support a variety of different file systems through a
36
common interface. This same interface is also used for other types of devices, suchassockets.
English++ • “Inside the Linux boot process” (http://www.ibm.com/developerworks/linux/library/ l-linuxboot/index.html)(developerWorks,May2006)examinestheLinuxbootprocess, which takes care of bringing up a Linux system and is the same basic process whetheryou’rebootingfromaharddisk,floppy,USBmemorystick,oroverthe network. • “Linux initial RAM disk (initrd) overview” (http://www.ibm.com/developerworks/
Unix
linux/library/l-initrd.html)(developerWorks,July2006)inspectstheinitialRAMdisk,
acomputeroperating
whichisolatesthebootprocessfromthephysicalmediumfromwhichit’sbooting.
systemoriginally
• “Better networking with SCTP” (http://www.ibm.com/developerworks/linux/
developedin1969
library/l-sctp/)(developerWorks,February2006)coversoneofthemostinteresting
byagroupofAT&T
networkingprotocols,StreamControlTransmissionProtocol,whichoperateslike
employeesatBellLabs
TCPbutaddsanumberofusefulfeaturessuchasmessaging,multi-homing,and
includingKenThompson,
multi-streaming.Linux,likeBSD,isagreatoperatingsystemifyou’reinterested
DennisRitchie
innetworkingprotocols.
andDouglasIlroy
• “AnatomyoftheLinuxslaballocator”(http://www.ibm.com/developerworks/linux/ library/l-linux-slab-allocator/)(developerWorks,May2007)coversoneofthemost interesting aspects of memory management in Linux, the slab allocator. This mechanismoriginatedinSunOS,butit’sfoundafriendlyhomeinsidetheLinux kernel. • “Virtual Linux” (http://www.ibm.com/developerworks/linux/library/l-linuxvirt/) (developerWorks, December 2006) shows how Linux can take advantage of processorswithvirtualizationcapabilities. • “Linux and symmetric multiprocessing” (http://www.ibm.com/developerworks/ library/l-linux-smp/)(developerWorks,March2007)discusseshowLinuxcanalso takeadvantageofprocessorsthatofferchip-levelmultiprocessing. • “DiscovertheLinuxKernelVirtualMachine”(http://www.ibm.com/developerworks/ linux/library/l-linux-kvm/)(developerWorks,April2007)coverstherecentintroduction ofvirtualizationintothekernel,whichturnstheLinuxkernelintoahypervisorfor othervirtualizedoperatingsystems. • CheckoutTim’sbookGNU/LinuxApplicationProgramming(http://www.charlesriver. com/Books/BookDetail.aspx?productID=91525)formoreinformationonprogramming Linuxinuserspace. • InthedeveloperWorksLinuxzone(http://www.ibm.com/developerworks/linux/), findmoreresourcesforLinuxdevelopers,includingLinuxtutorials(http://www.ibm. com/developerworks/views/linux/libraryview.jsp?type_by=Tutorials),aswellasour readers’favoriteLinuxarticlesandtutorials(http://www.ibm.com/developerworks/ linux/library/l-top-10.html)overthelastmonth. • StaycurrentwithdeveloperWorkstechnicaleventsandWebcasts(http://www.ibm. com/developerworks/offers/techbriefings/?S_TACT=105AGX03&S_CMP=art).
37
English++
Exercises Pre-reading exercises 1. Whatarethemostpopularoperatingsystems? • Windows,Linux,MacOS 2. WhataretheadvantagesofLinux? • GPLlicense(freetouse) • stability • security 3. WhatarethedisadvantagesofLinux? • difficultinuse • somesoftwareisn’tavailableinaLinuxversion
Comprehension questions 1. Nameafewoftheearliestoperatingsystems. • GMOS,FMS. 2. WhocreatedMINIX? • AndrewTanenbaum 3. HowmanylinesofcodedoestheLinuxkernelhavenow? • over6million 4. WhataretheadvantagesofLinuxadoptionoftheGPL? • protectionfromcommercialexploitation • benefitsfromtheuser-spacedevelopment • variousshellsupport 5. NamethethreegrosslevelsoftheLinuxkernel. • systemcallinterface • kernelcode • architecture-dependantcode(BSP) 6. WhatarethemajorcomponentsoftheLinuxkernel? • SystemCallInterface • ProcessManagement • MemoryManagement • VirtualFileSystem • NetworkStack • Arch • DeviceDrivers 7. Describeinafewwordswhatprocessmanagementdoes? • Processmanagementisfocusedontheexecutionofprocesses.Thekernelprovides anapplicationprograminterfacethroughtheSCItocreateanewprocess,stopa
38
processorcommunicateandsynchronizebetweenthem.Thereisalsoaneedto sharetheCPUbetweentheactivethreadsintheprocessmanagement.
English++ 8. WhatcouldyoudoifyouhaveLinuxandyouwanttorunaWindowsprogram? • finditsLinuxequivalent • virtualizeMicrosoftWindows • installWindowsasasecondsystem
Possible topics for discussion 1. Which operating system, Windows or Linux, is better and why? What is your opinion? 2. Which operating system architecture is better: one with a number of distinct subsystemsoronewithasinglemicrokernel? 3. Isitbettertobuildsmallkernelswhichareeasytounderstandorlargeoneswith allthenecessaryfunctions?
Possible difficulties Thearticlecanbehardtounderstandbecauseofabigamountofwordsandphrases fromtheareaofIT.
39
English++
How to Stream Video over a Network or the Internet Damien Stolarz Numberofwords
1880
Computersciencecontent
High
Mathcontent
Low
Englishlanguagecomplexity
Medium
Learning objectives • tounderstanddifferentkindsoftransfer:radio,television,telephone,internet • torecognizegeneraldifferencesinthedatatransferofradio,television,telephone andtheInternet • to understand why internet video streaming is vulnerable to delays, and why delaysdonotaffectradio,televisionandtelephone
Sub-areas covered • Computernetworks • TransferringdatathroughtheInternet
Keywords • streamingprotocol-asetofrulestoensurethatdatawillbesupportedinreal time • network protocol-asetofrulesthatsetouthowtoestablishcommunication betweentwoormorecomputersoverthenetwork • routing-theprocessofselectingpathsinanetworkalongwhichdatacanbesent betweencomputers(throughtherouter) • router-anetworkdevicethatgroupscomputersinthenetworkandestablishes anareainsideit • Internet-aglobalnetworkconnectingmillionsofcomputers • peering-thearrangementoftrafficexchangebetweentheInternetserviceproviders (ISPs). • Internetprovider-acompanythatsellsbandwidthandaccesstotheInternet • bandwidth-theamountofdatathatcanbetransferredthroughaspecificpathin
40
thenetworkusuallyexpressedinkb/s[kilobitspersecond]
English++ • circuitswitchingnetwork-anetworkinwhichcomputersestablishaconstant bandwidthconnectionbeforetheystarttoshareanydata • broadcast–theactionofsendingdatabyonecomputerinthenetworktoallthe othersthatareavailableinsidethenetwork
Summary The text, divided into several parts, familiarises the reader with the problem of receivingvideodatatransferredthroughanetwork(especiallytheInternet).Theauthor outlines the methods of transferring data by means of phone lines, radio waves and television wires. He explains why the transfer of data is not problematic in thosecases,whileincomputernetworksitposesarealproblem.Aftergivingabrief accountofthebasisoftheglobalnetwork,theauthordescribesthetransferofvideodata throughtheInternet.Thearticlegivesdetaileddescriptionsofmethodsoftransferring thattypeofdataandlistsreasonswhyreceivingthemcanbeaproblem. Tekstprzybliżaczytelnikowiproblemodbiorudanychwideotransportowanychprzez sieć,zwłaszczaprzezInternet.Bynaświetlićproblemprzesyłaniategotypudanych autorartykułuopisujesposóbtransferudanychprzezliniętelefoniczną,faleradiowe orazsiećtelewizyjną.Zaznaczaonpowody,dlaktórychwymienionerozwiązanianie nastręczająproblemówtypowychdlasiecikomputerowych.Artykułprzedstawiatakże zarysfunkcjonowaniaintersieciorazopisujegłównepowody,dlaktórychprzesyłanie iwłaściweodbieranietegotypudanychjestproblematyczne.
Pre-reading exercises 1. WhatdoyouknowaboutthehistoryofTVandradio? 2. DoyouknowtheoriginsoftheInternet? 3. Whichkindofmediadoyoufindimportantandvaluable? 4. Canyouexplainhowconnectionsaremadebetween‘users’ofradio,TVandthe Internet?
41
English++
How to Stream Video over a Network or the Internet How
Video Travels Across the Internet
Asnotedinearlierchaptersandasanyenduserwouldbequicktopointout,viewing streamingvideoovertheInternetishardlyaseamlessexperience.Streamingvideo suffersfromhiccups,delays,drop-outs,skips,andconnectionloss.Inthissection, weexplainhowtheInternetmovesdataandhowthisaffectsvideoplayback. It’ssometimeshardtounderstandwhytheInternethastroublemovingaudioand videowhenradio,television,andtelephonesdoitfairlywellandhaveexistedfor almost100years.Sofirstlet’slookatthemechanismsofthesetraditionalmedia.
Radio router
Radioworkssimplybecauseasingletowerbroadcaststhesamesignaltomanyreceivers.
anetworkdevice
Everyonelistenstothesamethingatthesametime.Allthestationsareavailableatany
thatgroupscomputers
time;yousimplyhavetotuneintoadifferentfrequencysignal.Themainbarriersto
inthenetwork
radiotransmissionaredistance;physicalbarrierssuchashills,buildings,andtunnels
andestablishesanarea
thatblockthesignal;andinterferencebetweentwostrongsignalsneareachotheron
insideit
thedial.Intermsofcommunication,radioisaone-waybroadcasttransmission.
Television Television works much like radio, except that television broadcasting is organized intonationalnetworks.Thesameprogramisdeliveredtotelevisionreceiversaround thecountrybybroadcastingtheoriginatingsignaltobranchoffices,whichbroadcasts itoutfromtowers,outthroughcablecompanies,ortopeoplewithsatellitedishes.In anycase,thesamesignalissenttoeveryoneatthesametime-aone-waybroadcast. All the channels are available at any time; there is no noticeable delay caused by changingchannels.Themainbarrierstotelevisionreceptionarebentorfrayedcables,
42
badly aimed antennas or dishes, physical barriers as in radio, and interference of stationswitheachother.
English++ Telephone Telephone calls use many of the same wires used by the Internet. The telephone central office maintains devices called switches (automated versions of the classic telephone switchboard) that are used to connect the call to the next location. Telephonecallscreateatwo-waycircuitallthewayfromcallertoreceiver.Themessage “All circuits are busy” - usually heard only during disasters or radio call-in concert ticketgiveaways-meanstheswitchdoesnothaveanymoreslotsinwhichtocarry thiscall.Themainbarrierstotelephonetransmissionarefoundatthebeginningof
routing
thecall—iftherearenotenoughcircuitstoplacethecall.Whileacallisinprogress,
theprocessofselecting
theentireroutebetweenthecallerandrecipientisreservedfortheiruseonly,evenif
pathsinanetwork
thereissilenceandnooneistalking.Telephonesusewhatiscalledacircuit-switched
alongwhichdata
connection.
canbesentbetween computers
Internet Basics
(throughtherouter)
The path from a website to a web browser is different than these other systems. Conceptually,itissimilartothetelephoneconversation:It’satwo-wayconversationin whichthebrowserasksforadocumentandtheserversendsit.Unlikethetelephone call,however,thereisnoreservedcircuit.Data,intheformofrequestsandresponses, areorganizedintochunkscalledpacketsandsentbetweentherequestingwebbrowser andthewebserver. Inbetweentherequesterandtheserverisaseriesofrouters.Thesemachinesroute
bandwidth
trafficbetweendifferentsmallernetworks.Eachtimeapacketcrossestheboundary
theamountofdata
fromoneISPtoanother,orfromonekindofnetworktoanother,itgoesthrougha
thatcanbetransferred
router.Thepackets“hop”fromroutertorouterlikeabucketbrigade.Thistypeofdata
throughaspecificpath
transmissioniscalledpacketswitching,insteadofcircuitswitching.Internetpacket
inthenetwork
switchinghassomeattributesthatmakeitreliableandunreliableatthesametime.
(usuallyexpressedinkb/s
TheInternetisanextremelyheterogeneousnetwork,consistingofseveraldifferent
[kilobitspersecond])
kindsofnetworksandwaysofconnectingnetworkstotheInternet,asdescribedin thenextfewsections.
The Internet Backbone TheInternetbackbone(asmuchasalarge,shapelessandever-shiftingcloudofnetworks canhaveabackbone!)consistsoflong-haulconnectionsthatcarrylargevolumesof Internettraffic(packets)acrossandbetweencontinents.
43
English++ Public Exchange Points Publicexchangepointsexistatvariouspointsoncontinentsandarethemajornerve
streamingprotocol
centers where many regional private networks, Internet providers, corporations,
asetofrulestoensure
schools, and government divisions—large and small—converge to exchange traffic
thatdatawillbe
destinedforotherpointsontheInternet.Youcancomparethesecenterstomajor
supportedinrealtime
publicairports,whereinternationalanddomesticflightsarrive24hoursadayand
networkprotocol
tradepassengersfromdifferentairlines.
-asetofrulesthatsetout howtoestablish communicationbetween twoormorecomputers overthenetwork
Peering TheprocessofconnectinganetworktotheInternetatoneoftheseexchangepoints iscalledpeering,andconnectingtothebackbonethiswaymakesoneaTier-1Internet provider. ISPs that rent their connection from a Tier-1 provider are called Tier-2 providers, and so on. The policies, prices, and agreements that cover how data is treatedontheseconnectionsareasnumerousastherearecompaniesinvolved.This isthefirstsourceofvariabilityforourpacketswitching.
Private Peering Peeringissimplytwonetworksconnectingtoeachotherwithrouters.Publicpeering occursatlargeexchangepoints,butanytwonetworksthatfindalotoftrafficflowing betweenthemcanchoosetocreateadirectprivatelinkbetweenthenetworks(called privatepeering).Thisreducesthecostofaccessthroughapublicexchangepointorother providerforallthebandwidththattravelsbetweenthesetwonetworks.Italsodecreases thenumberofintermediateconnectionsbetweenthenetworks.Forinstance,when severalschoolsinthesameorganizationlinktogether,theirinter-campusnetwork trafficdoesnothavetogoouttotheInternetatlarge,andisoftenmorereliableasa result.Inthisscenario,though,eachschoolhasitsownconnectiontotheInternet. Whatifoneoftheschool’sInternetconnectionswentdown?Woulditbefairtosend its traffic through the private peering connection and use another school’s Internet
connection?Thewaythesekindsofquestionsareansweredandtheinternalpoliciesin
circuitswitchingnetwork
thisregardareanothercontributingfactortothevariabilityofInternetpacketswitching.
anetworkinwhich computersestablish aconstantbandwidth connectionbeforethey starttoshareanydata
Internet Complexity Aseverything“goesdigital,”thedistinctionbetweencableTVwires,telephonewires, radiowaves,andsatellitetransmissionblurs.However,therearemanywaystosend dataoverthesemedia.Internetdatatransmissioncanbecomplicated,leadingtoa varietyofundesirabletransmissioncharacteristics.
44
English++ Packet Loss
peering
CircuitswitchingontheInternetisdescribedas“best-effort,”meaningthatoneof
thearrangement
theroutersalongthewaycanloseapacketbeforeitreachesitsdestination.Inthis
oftrafficexchange
case,thesenderorreceivermustsomehownotethatthepacketwaslost(perhapsby
betweentheInternet
receivingthenextpacketandnotingthatitisoutofcontext)andre-requestingthe
serviceproviders(ISPs).
lostpacket.Thismechanismisfairlyreliableinthattwomachineswillusually(and eventually)figureoutwhatwentwrongandresendthemissingpackets.Packetloss causesaudioandvideotopauseifthepacketsareeventuallyresent,anditcauses videotopause,dropout,andskipifthepacketsarenotresentatall.Inouranalogy ofapublicexchangepointbeingamajorairport,ifit’sa“foggyday”atthatexchange, thepartoftheInternetthatgoesthroughthatexchangecanbesloweddown(called abrownout)bythedatathatcan’t“takeoff.”
Different Routes Notallpacketsinafilefollowthesameroutetothedestinationcomputer.Thisis notunliketheairline’shubandspokesystem:Onepacketmightgo“direct”from SanFranciscotoWashington;othersmight“transfer”inAtlantaorChicagotogetto Washington. Contributing to this issue is private peering and the variable rules and costs associated with all the choices to be made. Alternate routes can be excellent whenonepathbetweentwomachinesgoesdownandapacketcanuseanotherpath. Itcanalsocausestrangeeffects,suchaswhenapacketissentdownaslowroute, isassumedlost,isresent-andthenlaterreappearsasaduplicatepacket!Audiocan stutterandskipifduplicatepacketsarenotdetectedanddiscarded.Also,somepaths travelfaroutoftheway,hoppingthroughmanymoreroutersthannecessaryand
broadcast theactionofsendingdata byonecomputer inthenetworkto alltheothers thatareavailable insidethenetwork
causinglargedelays.Themore“hops”orroutersbetweentwomachines,thehigher thechanceofunexpecteddelays.
Delay (Latency) Becauseofthemanydifferentroutersapackethastogothroughtogetfromsender toreceiverandbecausetherearenoreservedcircuitsontheInternetliketherearefor telephones,thedelayofanygivenpacketcanbehighorlow,orchangeunexpectedly. Thiscanbecausedbyavarietyoffactorssuchas:Arouteristoobusyandcan’tkeep upwithtraffic.Aparticularlinkbetweensenderandreceiverbecomessaturated.A linkgoesdown,causingtraffictobereroutedtoadifferentlink.Oneormorerouters in between can’t think fast enough. A firewall looks at all the packets for viruses. Delayisaddedduetotheuseofoldertechnology,suchasmodems.Otherdownloads onapipecauseittodelay.Packetsarelost,resultinginresends,andotherpackets getbunchedupbehindthem.Thesefactorsmakepredictinghowlongitwilltaketo getpacketsbackfromaserverdifficult.Becauseofvaryinglatency,videocantakea
45
English++ longtimetostartplaying;fast-forwardandrewindfeaturescanbeslowandclunky; andvideocanpause,stutter,skip,andstopaltogether.BandwidthVariationAnother factorontheInternetisthevariabilityofbandwidth.Withbroadcastmedia,suchas Internetprovider
radioortelevision,aswellastelephones,thebandwidthisalwaysthesame-just
acompanythatsells
enoughtocarrythechannelortheconversation.Thereisnowastedbandwidth;the
bandwidthandaccess
sizeofthechannelisjustenoughtocarrythedata.Itwasdesignedtobethatway.
totheInternet
BecausetheInternetisdesignedtoallowdifferentcomputersofdifferentspeedsand differentchannelsizescommunicate,itispossibletohavebottlenecks,notjustdue totrafficthatthesizeofthechannelvariesfromsendertoreceiver.TheInternetlink foramajorwebsite’shostingprovidermightbeexcellent.Thelinksbetweenthehost’s ISP and its branch in a particular city might be high-capacity. However, the Internet linkprovidedbyasmallISPtotheendusermightbeverysmallduetooversubscription.IfthatInternetproviderhasincurredagooddealofcustomergrowthwithout upgradingitsownconnectiontotheInternetbackbone,thepotentiallyhigh-bandwidth connectionfromthewebsitehostisloweredtotheslowestintermediatelinkinthe chain.Inotherwords,thebandwidthbetweenawebsiteandaclientisnofasterthan itsslowestlink.
NOTE Internet
Fundamentally,theInternetisfarbettersuitedforsendingwebpagesthanreal-time
aglobalnetwork
media because web pages are far smaller and far less sensitive to delays. There is
connectingmillions
notmuchdifferencebetweenaone-andtwo-seconddelayingettingawebpage,but
ofcomputers
aone-secondpauseinreal-timevideoisunacceptable.Thebrute-forceapproachof keepingthebitrateofthevideofarbelowthemaximumbandwidthoftheInternet connectioncanbeeffectiveingettingInternetvideotoperformpredictably.
46
English++
Exercises Pre-reading questions 1.WhatdoyouknowaboutthehistoryofTVandradio? • ThefirstuseofradiotookplaceFranklinInstituteinPhiladelphiainFebruary1893.It wasthedemonstrationofwirelesstelegraph.Transmissionofvoicewastheinvention ofthebeginningofXXcentury.DevelopmentofTVwasdividedintotwopaths: themechanicalandelectricalandpurelyelectrical.Thefirstideaofconstruction theTV(electromechanical)wasabandonedabout1925.Demonstrationoffirstcolor televisiondisplaywasgivenonAugust16,1944. 2. DoyouknowtheoriginsoftheInternet? • ThefirstideaofglobalnetworkofcomputerswascreatedbyJ.C.R.Licklider.He movedtotheDefenseAdvancedResearchProjectsAgency(DARPA)todevelopit. Thefirstconnectionoftwocomputers(bythephoneline)tookplacein1965.The firstformoftheInternet,calledARPANET,wasbroughtonlinein1969.Inthose time, the first ideas of reliability of connections (nowadays included in many protocols)wasimplementedintonetworks. 3. Whichkindofmediadoyoufindimportantandvaluable? • IfindtheInternetthemostimportantandvaluablekindofmedia.Anyinformation thatcanbefoundinothermedia(tvorradio)canalsobefoundintheInternet. 4. Canyouexplainhowconnectionsaremadebetween‘users’ofradio,TVandthe Internet? • Theradiowavesaredividedintofrequencywhichenablesthereceiverstodistinguish thechannels.ThesamewayoftransferringdatainthewirelessTVisusedtoreceive frombroadcastingstations.WhenusingcableconnectedTVreceivernodivision ofdatastreamisneededasonechannelisreceivedthroughthecableintime.In theInterneteverymediaissharedsoprotocols(describingthewaythedatais transferred)needtoprovideeffectivewaytoavoidcollisionsofthepackets.
Comprehension questions 1. CanyoupointoutthedifferencesbetweenTV,radioandtheInternetinterms ofcommunication? • onlybroadcastcommunication(TV,Radio) • eachofnodescanbebothsenderandrecipient(theInternet) • informationcanbereviewedanytime(theInternet) 2. Canyouexplaintheprocessofestablishingconnectionsbytelephoneandon theInternet? • TelephonecallsusemanyofthesamewiresusedbytheInternet.Thetelephone centralofficemaintainsdevicescalledswitches(automatedversionsoftheclassic telephone switchboard) that are used to connect the call to the next location.
47
English++ Telephone calls create a two-way circuit all the way from caller to receiver. Themessage“Allcircuitsarebusy”—usuallyheardonlyduringdisastersorradio call-in concert ticket giveaways—means the switch does not have any more slots in which to carry this call. The main barriers to telephone transmission arefoundatthebeginningofthecall—iftherearenotenoughcircuitstoplace thecall.Whileacallisinprogress,theentireroutebetweenthecallerandrecipient is reserved for their use only, even if there is silence and no one is talking. Telephonesusewhatiscalledacircuit-switchedconnection. 3. Whatistheideaof“packetcommunication”? • The path from a website to a web browser is different than these other systems. Conceptually,itissimilartothetelephoneconversation:It’satwowayconversation in which the browser asks for a document and the server sends it. Unlike the telephonecall,however,thereisnoreservedcircuit.Data,intheformofrequestsand responses,areorganizedintochunkscalledpacketsandsentbetweentherequesting web browser and the web server. In between the requester and the server are a seriesofrouters.Thesemachinesroutetrafficbetweendifferentsmallernetworks. EachtimeapacketcrossestheboundaryfromoneISP(InternetServiceProvider)to anotherorfromonekindofnetworktoanother,itgoesthrougharouter.Thepackets “hop”fromroutertorouterlikeabucketbrigade.Thistypeofdatatransmission iscalledpacketswitching,insteadofcircuitswitching.Internetpacketswitching hassomeattributesthatmakeitreliableandunreliableatthesametime. 4. Explain,ingeneralterms,howroutingworks. • Routingistheprocessofselectingpathsinanetworkalongwhichtosenddata orphysicaltraffic,usuallydirectsforwardingonthebasisofroutingtableswhich maintainarecordoftheroutestovariousnetworkdestinations.Thusconstructing routingtables,whichareheldintherouters’memory,becomesveryimportantfor efficientrouting. 5. Give5reasonsforpacketdelays. • arouteristoobusyandcan’tkeepupwithtraffic • aparticularlinkbetweensenderandreceiverbecomessaturated • alinkgoesdown,causingtraffictobereroutedtoadifferentlink • oneormoreroutersinbetweencan’tthinkfastenough • afirewalllooksatallthepacketsforviruses • delayisaddedduetotheuseofoldertechnology,suchasmodems • otherdownloadsonapipecauseittodelay • packetsarelost,resultinginresends,andotherpacketsgetbunchedupbehind them
48
English++ Further exercises 1. Pre-preparealistoffeatures.Classifythemintofourgroups:Internet,telephone, radio,television.Thefeaturescouldbetakenfromthetextand/orworkedoutby studentsworkingingroups.
TV
Radio
Phone
Internet
broadcast
broadcast
direct
broadcast/direct
real-time
real-time
real-time
real-time/ prepareddocuments
circuit-switched
packet-based
routing
streamingtransmission
Possible topics for discussion 1. Whatdoyouthinkisthemaincauseofinterruptionsininternettransmission? 2. Whyisaudiodatanottransferredinthesamewayastelephonecallsalthough boththeInternetandtelephonecallsusethesamewires? • Fundamentally,theInternetisfarbettersuitedforsendingwebpagesthanreal-time mediabecausewebpagesarefarsmallerandfarlesssensitivetodelays.Thereis notmuchdifferencebetweenaone-andtwo-seconddelayingettingawebpage, butaone-secondpauseinreal-timevideoisunacceptable. 3. HowdoyouusetheInternet?(WhichInternetservicesdoyouusemostoften?) 4. DoyouusetheInternetformakingphonecalls?Why/whynot?Whatareadvantages anddisadvantages? • lowprice • videotransmissionispossible • thereisnodifference(incosts)betweenlongandshortdistancecommunication • thephonecallqualitydependsonbandwidthoftheconnection • requirescomputerconnectedtotheInternet
49
English++
Computer Simulation Wikipedia
Numberofwords
2220
Computersciencecontent
Low
Mathcontent
Medium
Englishlanguagecomplexity
Medium
Learning objectives • toacquirebasicknowledgeaboutsimulationkindsandhistory • tounderstanddifferencebetweensimulationandmodelling • tounderstandthepowerofsimulationanditsinfluenceonmodernscience
Sub-areas covered • Computersimulation • Computergraphics • Maths
Keywords • mathematicalmodel-anabstractmodelthatusesmathematicallanguagetodescribe asystem • stochastic process - a process with an indeterminate or random element as opposedtoadeterministicprocessthathasnorandomelement • discrete-notsupportingorrequiringthenotionofcontinuity;discreteobjectsare countablesetssuchasintegers • Computer Generated Imagery (CGI) - an application of the field of computer graphics(or,morespecifically,3Dcomputergraphics)tospecialeffectsinfilms, televisionprograms,commercialsandsimulation • differentialequation-amathematicalequationforanunknownfunctionofoneor severalvariablesthatrelatesthevaluesofthefunctionitselfandofitsderivatives • gamut-acompleterangeorextent • MonteCarlomethod-acomputationalalgorithmwhichreliesonrepeatedrandom samplingtocomputeitsresults
50
English++
Summary The article presents a general view of computer simulations. It explains what a computer simulation is and the differences between simulation and modelling. It providesabriefoverviewofthehistoryofcomputersimulationanddividescomputer simulation into specific types: stochastic and deterministic and continuous and discrete,givingexamplesofeachkind.ItsetsouttheadvantagesofCGIsimulations and describes the impact of simulations on present-day science. The final part of thearticlelistspracticalcontextsforcomputersimulationwhichareimportantin everydaylife. Artykułprezentujeogólnąideęsymulacjikomputerowych.Wyjaśnia,conazywamy symulacją komputerową oraz jaka jest różnica między symulacją a modelowaniem. Krótko opowiada o historii symulacji komputerowych, oraz prezentuje różne typy symulacji:stochastyczneideterministyczne,ciągłeidyskretnewrazzprzykładami. PrzedstawiazaletysymulacjitypuCGIorazwpływsymulacjinawspółczesnąnaukę. Nakońcumożemysiędowiedzieć,gdziespotykamysięzsymulacjąwnaszymcodziennymżyciu.
Pre-reading exercises 1. Howcanwesolveproblemsincaseswherephysicalmodelsaretoocomplexor expensivetobuild? 2. Namesomeproblemswhichcanbesolvedusingcomputersimulation?
51
English++
Computer simulation
Acomputersimulation(alsoreferredtoasacomputermodeloracomputationalmodel) isacomputerprogram,ornetworkofcomputers,thatattemptstosimulateanabstract modelofaparticularsystem.Computersimulationshavebecomeausefulpartofthe mathematicalmodellingofmanynaturalsystemsinphysics(computationalphysics), chemistryandbiology;humansystemsineconomics,psychology,andsocialscience,and intheprocessofengineeringnewtechnology,soastogaininsightintotheoperationof thosesystemsortoobservetheirbehaviour. mathematicalmodel
Computersimulationsvaryfromcomputerprogramsthatrunafewminutes,tonetwork-
anabstractmodel
-based groups of computers running for hours or ongoing simulations that run for
thatusesmathematical
days.Thescaleofeventsbeingsimulatedbycomputersimulationshasfarexceeded
languagetodescribe
anythingpossible(orperhapsevenimaginable)usingthetraditionalpaper-and-pencil
asystem
mathematical modelling: over 10 years ago. A desert-battle simulation, of one force invadinganother,involvedthemodellingof66,239tanks,trucksandothervehicles onsimulatedterrainaroundKuwait,usingmultiplesupercomputersintheDoDHigh Performance Computer Modernization Program. Another simulation ran a 1-billion- -atommodel,wherepreviously,a2.64-million-atommodelofaribosome,in2005,had beenconsideredamassivecomputersimulation.AndtheBlueBrainprojectatEPFL (Switzerland)beganinMay2005tocreatethefirstcomputersimulationoftheentire humanbrain,rightdowntothemolecularlevel.
Simulation versus modelling Traditionally,theformalmodelling,ormodelling,ofsystemshasbeenviaamathematical model,whichattemptstofindanalyticalsolutionstoproblems,whichenablesthe prediction of the behaviour of the system from a set of parameters and initial conditions. Whilecomputersimulationsmightusesomealgorithmsfrompurelymathematical models,computerscancombinesimulationswiththerealityofactualevents,such
52
asgeneratinginputresponsestosimulatetestsubjectswhoarenolongerpresent. Althoughthemissingtestsubjects(i.e.theusersofequipmentorsystems)arebeing
English++ modelled/simulated,thewholeprocesscanbeconductedwiththeactualequipment orsystemtheyuse,revealingperformancelimitsordefectsinlong-termusebythe simulatedusers. Notethatthetermcomputersimulationisbroaderthancomputermodelling,which impliesthatallaspectsarebeingmodelledinthecomputerrepresentation.However,
stochasticprocess
computer simulation also includes generating inputs from simulated users to run
aprocess
actualcomputersoftwareorequipment,withonlypartofthesystembeingmodelled:
withanindeterminate
an example would be flight simulators which can run machines as well as actual
orrandomelement
flightsoftware.
asopposedto
Computersimulationsareusedinmanyfields,includingscience,technology,entertainment,andbusinessplanningandscheduling.
adeterministicprocess thathasnorandom element
History Computer simulation was developed hand-in-hand with the rapid growth of the computer,followingitsfirstlarge-scaledeploymentduringtheManhattanProjectin World War II to model the process of nuclear detonation. It was a simulation of 12 hardspheresusingaMonteCarloalgorithm.Computersimulationisoftenusedasan adjunctto,orsubstitutionfor,modellingsystemsforwhichsimpleclosedformanalytic solutionsarenotpossible.Therearemanydifferenttypesofcomputersimulation;the commonfeaturetheyallshareistheattempttogenerateasampleofrepresentative scenariosforamodelinwhichacompleteenumerationofallpossiblestatesofthe modelwouldbeprohibitiveorimpossible.Computermodelswereinitiallyusedasa supplementforotherarguments,buttheiruselaterbecameratherwidespread.
Data preparation Thedatainput/outputforthesimulationcanbeeitherthroughformattedtextfiles orapre-andpostprocessor.
Types of computer simulation Computermodelscanbeclassifiedaccordingtoseveralcriteriaincluding: • stochasticordeterministic(andasaspecialcaseofdeterministic,chaotic) • steady-stateordynamic • continuousordiscrete(andasanimportantspecialcaseofdiscrete,discreteevent orDEmodels) • localordistributed. Forexample,steady-statemodelsuseequationsdefiningtherelationshipsbetween elementsofthemodelledsystemandattempttofindastateinwhichthesystemisin equilibrium.Suchmodelsareoftenusedinsimulatingphysicalsystemsasasimpler
53
English++ gamut
modellingcasebeforedynamicsimulationisattempted.Dynamicsimulationsmodel
acompleterange
changesinasysteminresponseto(usuallychanging)inputsignals.Stochasticmodels
orextent
userandomnumbergeneratorstomodelchanceorrandomevents;theyarealsocalled MonteCarlosimulations.Adiscreteeventsimulation(DES)manageseventsintime. Most computer, logic-test and fault-tree simulations are of this type. In this type of simulation,thesimulatormaintainsaqueueofeventssortedbythesimulatedtime inwhichtheyshouldoccur.Thesimulatorreadsthequeueandtriggersneweventsas eacheventisprocessed.Itisnotimportanttoexecutethesimulationinrealtime. It’softenmoreimportanttobeabletoaccessthedataproducedbythesimulation,
todiscoverlogicdefectsinthedesignorthesequenceofevents.Acontinuousdynamicsimulationperformsnumericalsolutionsofdifferential-algebraicequationsor differentialequations(eitherpartialorordinary).Periodically,thesimulationprogram solvesalltheequations,andusesthenumberstochangethestateandoutputofthe simulation.Applicationsincludeflightsimulators,simulationgames,chemicalprocess modelling,andsimulationsofelectricalcircuits.Originally,thesekindsofsimulations wereactuallyimplementedonanaloguecomputers,wherethedifferentialequations
discrete
couldberepresenteddirectlybyvariouselectricalcomponentssuchasop-amps.Bythe
notsupportingor
late1980s,however,most“analogue”simulationswererunonconventionaldigital
requiringthenotionof
computers that emulate the behaviour of an analogue computer. A special type of
continuity;
discretesimulationwhichdoesnotrelyonamodelwithanunderlyingequation,but
discreteobjectsare
cannonethelessberepresentedformally,isagent-basedsimulation.Inagent-based
countablesets
simulation,theindividualentities(suchasmolecules,cells,treesorconsumers)in
suchasintegers
themodelarerepresenteddirectly(ratherthanbytheirdensityorconcentration)and possessaninternalstateandsetofbehavioursorruleswhichdeterminehowthe agent’sstateisupdatedfromonetime-steptothenext.Distributedmodelsrunon anetworkofinterconnectedcomputers,possiblythroughtheInternet.Simulations dispersedacrossmultiplehostcomputerslikethisareoftenreferredtoas“distributed simulations”. There are several standards for distributed simulation, including AggregateLevelSimulationProtocol(ALSP),DistributedInteractiveSimulation(DIS), theHighLevelArchitecture(HLA)andtheTestandTrainingEnablingArchitecture (TENA).
CGI computer simulation Formerly,theoutputdatafromacomputersimulationwassometimespresentedin a table, or a matrix, showing how data was affected by numerous changes in the simulationparameters.Theuseofthematrixformatwasrelatedtothetraditional use of the matrix concept in mathematical models; however, psychologists and othersnotedthathumanscouldquicklyperceivetrendsbylookingatgraphsoreven
54
moving-imagesormotion-picturesgeneratedfromthedata,asdisplayedbycomputer -generated-imagery (CGI) animation. Although observers couldn’t necessarily read
English++ outnumbers,orspoutmathsformulas,fromobservingamovingweatherchart,they might be able to predict events (and “see that rain was headed their way”), much fasterthanscanningtablesofrain-cloudcoordinates.Suchintensegraphicaldisplays, whichtranscendedtheworldofnumbersandformulae,sometimesalsoledtooutput thatlackedacoordinategridoromittedtimestamps,asifstrayingtoofarfromnumeric data displays. Today, weather forecasting models tend to balance the view of moving rain/snowcloudsagainstamapthatusesnumericcoordinatesandnumerictimestamps ofevents.
ComputerGenerated Imagery(CGI) anapplicationofthefield ofcomputergraphics (or,morespecifically,
Similarly,CGIcomputersimulationsofCATscanscansimulatehowatumourmight
3Dcomputergraphics)
shrinkorchange,duringanextendedperiodofmedicaltreatment,presentingthe
tospecialeffectsinfilms,
passageoftimeasaspinningviewofthevisiblehumanhead,asthetumourchanges.
televisionprograms,
OtherapplicationsofCGIcomputersimulationsarebeingdevelopedtographically displaylargeamountsofdatainmotion,aschangesoccurduringasimulationrun.
commercials andsimulation
Computer simulation in science The following are generic examples of types of computer simulations in science, whicharederivedfromanunderlyingmathematicaldescription: A numerical simulation of differential equations which cannot be solved analytically.Fallingintothiscategoryare: • theories which involve continuous systems such as phenomena in physical cosmology • fluiddynamics(e.g.climatemodels,roadwaynoisemodels,roadwayairdispersion models) • continuummechanicsandchemicalkinetics Astochasticsimulation,typicallyusedfordiscretesystemswhereeventsoccurprobabilistically,andwhichcannotbedescribeddirectlywithdifferentialequations(thisis adiscretesimulationintheabovesense).Phenomenainthiscategoryinclude: • geneticdrift • biochemicalorgeneregulatorynetworkswithsmallnumbersofmolecules(See also:MonteCarlomethod). Specificexamplesofcomputersimulationsfollow: • statisticalsimulationsbaseduponanagglomerationofalargenumberofinput profiles,suchastheforecastingofequilibriumtemperatureofreceivingwaters, allowingthegamutofmeteorologicaldatatobeinputforaspecificlocale.This techniquewasdevelopedforthermalpollutionforecasting. • agentbasedsimulationhasbeenusedeffectivelyinecology,whereitisoftencalled individualbasedmodellingandhasbeenusedinsituationsforwhichindividual
55
English++ variability in the agents cannot be neglected, such as population dynamics of salmon and trout (most purely mathematical models assume all trout behave identically) • timesteppeddynamicmodel;inhydrologythereareseveralsuchhydrologytransportmodelssuchastheSWMMandDSSAMModelsdevelopedbytheU.S.EnvironmentalProtectionAgencyforriverwaterqualityforecasting • computersimulationshavealsobeenusedtoformallymodeltheoriesofhuman MonteCarlomethod acomputationalalgorithm
cognitionandperformance,e.g.ACT-R • computersimulationusingmolecularmodellingfordrugdiscovery
whichreliesonrepeated
• computational fluid dynamics simulations are used to simulate the behaviour of
randomsamplingto
flowing air, water and other fluids. There are one-, two- and three- dimensional
compute
modelsused.Aonedimensionalmodelmightsimulatetheeffectsofwaterhammer
itsresults
in a pipe. A two-dimensional model might be used to simulate the drag forces onthecross-sectionofanaeroplanewing.Athree-dimensionalsimulationmight estimatetheheatingandcoolingrequirementsofalargebuilding. Understandingofstatisticalthermodynamicmoleculartheoryisfundamentaltothe appreciationofmolecularsolutions.DevelopmentofthePotentialDistributionTheorem (PDT)allowsonetosimplifythiscomplexsubjecttodown-to-earthpresentationsof moleculartheory. Notable,andsometimescontroversial,computersimulationsusedinscienceinclude: • DonellaMeadows’World3usedintheLimitstoGrowth • JamesLovelock’sDaisyworld • ThomasRay’sTierra.
Simulation environments for physics and engineering Graphicalenvironmentstodesignsimulationshavebeendeveloped.Specialcarewas takentohandle“events”(situationsinwhichthesimulationequationsarenotvalid andhavetobechanged).TheopenprojectOpenSourcePhysicswasstartedinorderto developreusablelibrariesforsimulationsinJava,togetherwithEasyJavaSimulations, acompletegraphicalenvironmentthatgeneratescodebasedontheselibraries.
Pitfalls in computer simulation Althoughsometimesignoredincomputersimulations,itisveryimportanttoperform sensitivityanalysistoensurethattheaccuracyoftheresultsisproperlyunderstood. Forexample,theprobabilisticriskanalysisoffactorsdeterminingthesuccessofan oilfieldexplorationprograminvolvescombiningsamplesfromavarietyofstatistical distributionsusingtheMonteCarlomethod.If,forinstance,oneofthekeyparameters (i.e.thenetratioofoil-bearingstrata)isknowntoonlyonesignificantfigure,then
56
theresultofthesimulationmightnotbemoreprecisethanonesignificantfigure, althoughitmight(misleadingly)bepresentedashavingfoursignificantfigures.
English++ Computer simulation in practical contexts Computersimulationsareusedinawidevarietyofpracticalcontexts,suchas: • analysisofairpollutantdispersionusingatmosphericdispersionmodelling • designofcomplexsystemssuchasaircraftandlogisticssystems • designofnoisebarrierstoeffectroadwaynoisemitigation • flightsimulatorstotrainpilots • weatherforecasting • behaviourofstructures(suchasbuildingsandindustrialparts)understressand otherconditions • designofindustrialprocesses,suchaschemicalprocessingplants • strategicmanagementandorganizationalstudies • reservoirsimulationforthepetroleumengineeringtomodelthesubsurface
reservoir
• ProcessEngineeringSimulationtools • robotsimulatorsforthedesignofrobotsandrobotcontrolalgorithms Thereliabilityandthetrustpeopleputincomputersimulationsdependsonthevalidity ofthesimulationmodel,thereforeverificationandvalidationareofcrucialimportance
differentialequation amathematicalequation foranunknownfunction ofoneorseveralvariables thatrelatesthevalues ofthefunctionitselfand ofitsderivatives
inthedevelopmentofcomputersimulations.Anotherimportantaspectofcomputer simulationsisthatofreproducibilityoftheresults,meaningthatasimulationmodel shouldnotprovideadifferentanswerforeachexecution.Althoughthismightseem obvious,thisisaspecialpointofattentioninstochasticsimulations,whererandom numbersshouldactuallybesemi-randomnumbers.Anexceptiontoreproducibilityare “human-in-the-loop” simulations, such as flight simulations and computer games. Hereahumanispartofthesimulationandthusinfluencestheoutcomeinawaythat ishardifnotimpossibletoreproduceexactly. Computer graphics can be used to display the results of a computer simulation. Animations can be used to experience a simulation in real-time e.g. in training simulations. In some cases animations may also be useful in faster than real-time orevenslowerthanreal-timemodes.Forexample,fasterthanreal-timeanimations can be useful in visualizing the build-up of queues in the simulation of humans evacuatingabuilding.Furthermore,simulationresultsareoftenaggregatedintostatic imagesusingvariouswaysofscientificvisualization. In debugging, simulating a program execution under test (rather than executing natively)candetectfarmoreerrorsthanthehardwareitselfcandetectand,atthe same time, log useful debugging information such as instruction trace, memory alterations and instruction counts. This technique can also detect buffer overflow andsimilar“hardtodetect”errorsaswellasproduceperformanceinformationand tuningdata.
57
English++
Exercises Pre-reading exercises 1. Howcanwesolveproblemsincaseswherephysicalmodelsaretoocomplexor expensivetobuild? • computersimulation 2. Namesomeproblemswhichcanbesolvedusingcomputersimulation? • spreadofinfectiousdiseases • panicincrowds • crashtesting • explosionsmodelling • aerodynamicsolutionstesting • buildingdemolition
Comprehension question 1. Explainthedifferencesbetweendiscrete/continuousandstochastic/deterministic simulation,givingexamples. • Stochastic models use random number generators to model chance or random events;theyarealsocalledMonteCarlosimulations. • Deterministicmodelshavenorandomelements. • Adiscreteeventsimulation(DES)manageseventsintime.Mostcomputer,logic-test andfault-treesimulationsareofthistype.Inthistypeofsimulation,thesimulator maintainsaqueueofeventssortedbythesimulatedtimetheyshouldoccur.The simulatorreadsthequeueandtriggersneweventsaseacheventisprocessed.It isnotimportanttoexecutethesimulationinrealtime. • A continuous dynamic simulation performs numerical solution of differential -algebraicequationsordifferentialequations(eitherpartialorordinary).Periodically, thesimulationprogramsolvesalltheequations,andusesthenumberstochangethe stateandoutputofthesimulation.Applicationsincludeflightsimulators,simulation games,chemicalprocessmodelling,andsimulationsofelectricalcircuits.
Possible topics for discussion 1. Isitpossibletosimulateanyproblem?
Possible difficulties Abignumberofmathematicalterms. Ratherthanfocusingonthewordsyoudon’tunderstand,trytogetthemainidea. .
58
English++
Computer Facial Animation Wikipedia Numberofwords
1970
Computersciencecontent
Medium
Mathcontent
Low
Englishlanguagecomplexity
Medium
Learning objectives • toacquirebasicvocabularyrelatedtofacial • tobecomefamiliarwithdifferent3D-animationsystems • togainunderstandingofthemajorproblemsconnectedwithspeechanimation
Sub-areas covered • Computergraphics
Keywords • morphing-aspecialeffectinmotionpicturesandanimationsthatchanges(or morphs)oneimageintoanotherthroughaseamlesstransition • rendering-theprocessofgeneratinganimagefromamodelbymeansofcomputer programs • keyframe-orakeyframeinanimationandfilmmakingisadrawingwhichdefines thestartingandendingpointsofanysmoothtransitiontexture-abitmapimage appliedtoasurfaceincomputergraphics • texture-abitmapimageappliedtoasurfaceincomputergraphics • computervision-abranchofartificialintelligencethatdealswithcomputerprocessing ofimagesfromtherealworld • alignment - the adjustment of an object in relation to other objects, or a static orientationofsomeobjectorsetofobjectsinrelationtoothers • motioncapture-atechniqueofrecordingtheactionsofhumanactorsandusing thatinformationtoanimatedigitalcharactermodelsin3Danimation
Summary Afairlygeneraltextaboutfacialanimationincomputergraphics.Itcontainsashort historyoffacialanimationfromtheFacialActionCodingSystem,whichdefines64basicfacialActionUnits,tofilmslike:TheMatrixorTheLordoftheRings.Thesecondpart describesanimationtechniques:2Danimation,3Danimationandspeechanimation.
59
English++ Teksttraktujewsposóbogólnyproblemkomputerowejanimacjitwarzy.Pierwszaczęść zapoznajenaszhistoriątegozagadnieniapoczynającodroku1978,gdypierwszyraz pojawiłsięFACS(FacialActionCodingSystem)zawierający64podstawowejednostki ruchutwarzy,naanimacjitwarzywfilmachtakichjakMatrix,czyWładcaPierścieni kończąc.Dalszaczęśćtekstuzapoznajenasztechnikamiużywanymiwkomputerowej animacjitwarzy.Pokoleiomawianesątechniki2D,3Dianimacjamowy.
Pre-reading questions 1. Studentsaregivenpicturesofhumanfacesandtrytoguesswhatemotionsthey show. 2. Whatisthenumberoffacialmuscles? 3. Whyarefacialexpressionssoimportantinourlives? 4. Wherecanfacialanimationsbeused? 5. Whatistherenderingprocessincomputergraphics?Whatisthemotioncapture technique?
60
English++
Computer facial animation
Computerfacialanimationisprimarilyanareaofcomputergraphicsthatencapsulates modelsandtechniquesforgeneratingandanimatingimagesofthehumanheadand face.Duetoitssubjectandoutputtype,itisalsorelatedtomanyotherscientificand artisticfieldsfrompsychologytotraditionalanimation.Theimportanceofhuman faces in verbal and non-verbal communication and advances in computer graphics hardwareandsoftwarehavecausedconsiderablescientific,technological,andartistic interestincomputerfacialanimation. Althoughthedevelopmentofcomputergraphicsmethodsforfacialanimationstarted intheearly1970s,majorachievementsinthisfieldaremorerecentandhavetaken placesincethelate1980s. Computerfacialanimationincludesavarietyoftechniquesfrommorphingtothree -dimensional modelling and rendering. It has become well-known and popular throughanimatedfeaturefilmsandcomputergamesbutitsapplicationsincludemany moreareassuchascommunication,education,scientificsimulation,andagent-based
rendering theprocessofgenerating animagefrom amodelbymeans ofcomputerprograms
systems(forexample,onlinecustomerservicerepresentatives).
History Humanfacialexpressionshavebeenthesubjectofscientificinvestigationformore thanonehundredyears.Thestudyoffacialmovementsandexpressionsstartedfrom
morphing
abiologicalpointofview.Aftersomeolderinvestigations,i.e.byJohnBulwerinlate
aspecialeffect
1640s,CharlesDarwin’sbookTheExpressionoftheEmotionsinMenandAnimals
inmotionpictures
canbeconsideredamajordepartureformodernresearchinbehaviouralbiology.
andanimations
Morerecently,oneofthemostimportantattemptstodescribefacialactivities(movements)wastheFacialActionCodingSystem(FACS).IntroducedbyEkmanandFriesen in 1978, FACS defines 64 basic facial Action Units (AUs). A major group of these ActionUnitsrepresentprimitivemovementsoffacialmusclesinactionssuchasraising
thatchanges(ormorphs) oneimageintoanother throughaseamless transition
brows,winking,andtalking.EightAUsareforrigidthree-dimensionalheadmovements, i.e.turningandtiltingleftandrightandgoingup,down,forwardandbackward.FACS
61
English++ keyframe orakeyframein animationandfilm makingisadrawing whichdefines thestartingandending pointsofanysmooth transitiontexture -abitmapimageapplied
hasbeensuccessfullyusedfordescribingdesiredmovementsofsyntheticfacesandalso intrackingfacialactivities. Computerbasedfacialexpressionmodellingandanimationisnotanewendeavour. Theearliestworkwithcomputerbasedfacialrepresentationwasdoneintheearly 1970s.Thefirstthree-dimensionalfacialanimationwascreatedbyParkein1972.In 1973, Gillenson developed an interactive system to assemble and edit line drawn facialimages.Andin1974,Parkedevelopedaparameterizedthree-dimensionalfacial model.
toasurfacein
Theearly1980ssawthedevelopmentofthefirstphysically-basedmuscle-controlled
computergraphics
facemodelbyPlattandthedevelopmentoftechniquesforfacialcaricaturesbyBrennan. In1985,theshortanimatedfilmTonydePeltriewasalandmarkforfacialanimation; forthefirsttimecomputerfacialexpressionandspeechanimationwereafundamental partoftellingthestory. Thelate1980ssawthedevelopmentofanewmuscle-basedmodelbyWaters,the development of an abstract muscle action model by Magnenat-Thalmann and colleagues,andapproachestoautomaticspeechsynchronizationbyLewisandbyHill. The1990ssawincreasingactivityinthedevelopmentoffacialanimationtechniques andtheuseofcomputerfacialanimationasakeystorytellingcomponentasillustrated inanimatedfilmssuchasToyStory,Antz,Shrek,andMonsters,Inc,andcomputer gamessuchasSims.Casper(1995)isamilestoneinthisperiod,beingthefirstmovie withaleadactorproducedexclusivelyusingdigitalfacialanimation(ToyStorywas releasedlaterthesameyear).
computervision
The sophistication of the films increased after 2000. In The Matrix Reloaded and
thescienceandtechnology
MatrixRevolutionsdenseopticalflowfromseveralhigh-definitioncameraswasused
ofmachinesthatsee
tocapturerealisticfacialmovementateverypointontheface.PolarExpressused alargeViconsystemtocaptureupwardof150points.Althoughthesesystemsare automated,alargeamountofmanualclean-upeffortisstillneededtomakethedata usable.AnothermilestoneinfacialanimationwasreachedbyTheLordoftheRings whereacharacterspecificshapebasesystemwasdeveloped.MarkSagarpioneered theuseofFACSinentertainmentfacialanimation,andFACSbasedsystemsdevelopedbySagarwereusedonMonsterHouse,KingKong,andotherfilms.
Techniques 2DAnimation Two-dimensional facial animation is commonly based upon the transformation of images,includingbothimagesfromstillphotographyandsequencesofvideo.Image
62
morphingisatechniquewhichallowsin-betweentransitionalimagestobegenerated
English++ betweenapairoftargetstillimagesorbetweenframesfromsequencesofvideo.These morphing techniques usually consist of a combination of a geometric deformation technique,whichalignsthetargetimages,andacross-fade,whichcreatesthesmooth transitionintheimagetexture.Anearlyexampleofimagemorphingcanbeseenin MichaelJackson’svideoforBlackAndWhite.In1997EzzatandPoggioworkingat the MIT Center for Biological and Computational Learning created a system called Miketalk,whichmorphsbetweenimagekeyframes,representingvisemes,tocreate speechanimation. Anotherformofanimationfromimagesconsistsofconcatenatingtogethersequences
computervision
capturedfromvideo.In1997Bregleretal.describedatechniquecalledvideo-rewrite,
abranchofartificial
where existing footage of an actor is cut into segments corresponding to phonetic
intelligencethatdeals
units which are blended together to create new animations of a speaker. Video
withcomputerprocessing
-rewrite uses computer vision techniques to automatically track lip movements in
ofimagesfromthereal
video and these features are used in the alignment and blending of the extracted
world
phonetic units. This animation technique only generates animations of the lower partoftheface,thesearethencompositedwithvideooftheoriginalactortoproduce thefinalanimation. 3DAnimation Three-dimensional head models provide the most powerful means of generating computerfacialanimation.Oneoftheearliestworksoncomputerizedheadmodels forgraphicsandanimationwasdonebyParke.Themodelwasameshof3Dpoints controlled by a set of conformation and expression parameters. The former group controlstherelativelocationoffacialfeaturepointssuchaseyeandlipcorners.Changing theseparameterscanre-shapeabasemodeltocreatenewheads.Thelattergroupof parameters(expression)arefacialactionsthatcanbeperformedonaface,suchas stretchinglipsorclosingeyes.Thismodelwasextendedbyotherresearcherstoinclude more facial features and add more flexibility. Different methods for initializing such“generic”modelsbasedonindividual(3Dor2D)datahavebeenproposedand successfully implemented. The parameterized models are effective due to the use oflimitedparameters,associatedwiththemainfacialfeaturepoints.TheMPEG-4 standarddefinesaminimumsetofparametersforfacialanimation. Animationisdonebychangingparametersovertime.Facialanimationisapproached indifferentways.Traditionaltechniquesinclude: 1. shapes/morphtargets, 2. bones/cages, 3. skeleton-musclesystems, 4. motioncaptureonpointsonthefaceand
63
English++ 5. knowledgebasedsolverdeformations.
1. Shape based systems offer a fast playback as well as a high degree of fidelity of expressions. The technique involves modelling portions of the face mesh to approximateexpressionsandvisemesandthenblendingthedifferentsubmeshes, knownasmorphtargetsorshapes.Perhapsthemostaccomplishedcharacterusing thistechniquewasGollum,fromTheLordoftheRings.Drawbacksofthistechnique arethattheyinvolveintensivemanuallabor,arespecifictoeachcharacterand mustbeanimatedbysliderparametertables.
2.‘EnvelopeBones’or‘Cages’arecommonlyusedingames.Theyproducesimple andfastmodels,butarenotpronetoportraysubtlety.
3.SkeletalMusclesystems,physically-basedheadmodelsformanotherapproach inmodellingtheheadandface.Herethephysicalandanatomicalcharacteristicsof bones,tissues,andskinaresimulatedtoprovidearealisticappearance(e.g.spring-like elasticity).Suchmethodscanbeverypowerfulforcreatingrealismbutthecomplexity offacialstructuresmakethemcomputationallyexpensiveanddifficulttocreate.
alignment
Consideringtheeffectivenessofparameterizedmodelsforcommunicativepurposes
theadjustment
(asexplainedinthenextsection),itmaybearguedthatphysically-basedmodelsare
ofanobjectinrelationto
notaveryefficientchoiceinmanyapplications.Thisdoesnotdenytheadvantages
otherobjects,orastatic
ofphysically-basedmodelsorthefactthattheycanevenbeusedwithinthecontext
orientationofsome
ofparameterizedmodelstoprovidelocaldetailswhenneeded.Waters,Terzopoulos,
objectorsetofobjects
Kahler,andSeidel(amongothers)havedevelopedphysically-basedfacialanimationsystems.
inrelationtoothers
4.Motioncaptureusescamerasplacedaroundasubject.Thesubjectisgenerally fittedeitherwithreflectors(passivemotioncapture)orsources(activemotioncapture) thatpreciselydeterminethesubject’spositioninspace.Thedatarecordedbythe camerasisthendigitizedandconvertedintoathree-dimensionalcomputermodel of the subject. Until recently, the size of the detectors/sources used by motion capturesystemsmadethetechnologyinappropriateforfacialcapture.However, miniaturizationandotheradvancementshavemademotioncaptureaviabletool for computer facial animation. Facial motion capture was used extensively in Polar Express, where hundreds of motion points were captured. This film was very accomplished and while it attempted to recreate realism, it was criticised forhavingfalleninthe‘uncannyvalley’,therealmwhereanimationrealismis sufficientforhumanrecognitionbutfailstoconveytheemotionalmessage.The maindifficultiesofmotioncapturearethequalityofthedatawhichmayinclude vibrationaswellastheretargetingofthegeometryofthepoints.
64
5.DeformationSolverFaceRobot.
English++ Speech Animation Speechisusuallytreatedinadifferentwaytotheanimationoffacialexpressions; thisisbecausesimplekeyframe-basedapproachestoanimationtypicallyprovidea poorapproximationtorealspeechdynamics.Oftenvisemesareusedtorepresent thekeyposesinobservedspeech(i.e.thepositionofthelips,jawandtonguewhen
motioncapture
producingaparticularphoneme);however,thereisagreatdealofvariationinthe
atechniqueofrecording
realisationofvisemesduringtheproductionofnaturalspeech.Thesourceofthis
theactionsofhuman
variation is termed coarticulation, which is the influence of surrounding visemes
actorsandusingthat
upon the current viseme (i.e. the effect of context.) To account for coarticulation,
informationtoanimate
current systems either explicitly take into account context when blending viseme
digitalcharactermodels
keyframesoruselongerunitssuchasdiphone,triphone,syllableorevenwordand
in3Danimation
sentence-lengthunits. Oneofthemostcommonapproachestospeechanimationistheuseofdominance functionsintroducedbyCohenandMassaro.Eachdominancefunctionrepresentsthe influenceovertimethatavisemehasonaspeechutterance.Typicallytheinfluence willbegreatestatthecenterofthevisemeandwilldegradewithdistancefromtheviseme center. Dominance functions are blended together to generate a speech trajectory inmuchthesamewaythatsplinebasisfunctionsareblendedtogethertogenerate acurve.Theshapeofeachdominancefunctionwillbedifferentaccordingtoboth whichvisemeitrepresentsandwhichaspectofthefaceisbeingcontrolled(e.g.lip width,jawrotationetc.)Thisapproachtocomputer-generatedspeechanimationcan beseenintheBalditalkinghead. Other models of speech use basis units which include context (e.g. diphones, triphonesetc.)insteadofvisemes.Asthebasisunitsalreadyincorporatethevariation ofeachvisemeaccordingtocontextandtosomedegreethedynamicsofeachviseme,no modelofcoarticulationisrequired.Speechissimplygeneratedbyselectingappropriate unitsfromadatabaseandblendingtheunitstogether.Thisissimilartoconcatenative techniquesinaudiospeechsynthesis.Thedisadvantagetothesemodelsisthatalarge amount of captured data is required to produce natural results, and whilst longer
texture
unitsproducemorenaturalresults,thesizeofdatabaserequiredexpandswiththe
abitmapimage
averagelengthofeachunit.
appliedtoasurface
Finally,somemodelsdirectlygeneratespeechanimationsfromaudio.Thesesystems
incomputergraphics
typicallyusehiddenMarkovmodelsorneuralnetstotransformaudioparameters intoastreamofcontrolparametersforafacialmodel.
65
English++
Exercises Pre-reading questions 1.Studentsaregivenpicturesofhumanfacesandtrytoguesswhatemotionsthey show. 2. Whatisthenumberoffacialmuscles? • 48 3. Whyarefacialexpressionssoimportantinourlives? • Gesturesandfacialexpressionsingeneralmeanmorethanwordsorsentences. 4. Wherecanfacialanimationsbeused? • In cartoons, 3D rendered films (like Toy Story, Shrek) and in computer games. Facialanimationisconstantlyimprovingandinacoupleofyearsitwillbehardto distinguishbetweenarealactorandavirtualone. 5. Whatistherenderingprocessincomputergraphics?Whatisthemotioncapture technique? • Rendering:allofthemethodsusedtomakeapictureusingacomputer.Itinvolves mathscalculations,dataloadingandsoon. • Motioncaptureisatechniqueusedtoobtainrealisticanimatedmovement.An actorwearsaspecialoutfitwithanumberofsensors.Whenhemoves,acomputer capturesallthenecessarymovementdata.
Comprehension questions 1. Howwouldyoudefinefacialanimation? • Areaofcomputergraphicsthatencapsulatesmodelsandtechniquesforgenerating andanimatingimagesofthehumanheadandface. 2. WhatisFACS? • FacialActionCodingSystem-defines64basicfacialActionUnitswhichrepresent primitivemovementsofmusclesinactions,e.g.raisingbrows,talking. 3. WhatwasMichaelJackson’scontributiontocomputeranimation? • Hisvideoofthesong“BlackOrWhite”wasthefirsttouseimagemorphinganimation. Thevideoshowedalotofhumanfaceswhicharemorphedfromonetoanother. 4. Whatcan2Danimationbebasedon:imagesfromstillphotographyor
sequencesofvideo?
• Both. There are methods for animating still images and others for animating sequencesofvideo. 5. Whatisthemostrealisticmethodof3Danimation?Whatmakesitsogood? • Theskeleton-musclesystem.Itissoeffectivebecausethemethodtriestoimitate human head muscles, skin and bones. It is very complicated to build a model consistentwiththismethodbuttheeffectsarebreathtaking.Itcannotbeused
66
English++ incomputergamesoron-lineanimationbecauseofitscomplexitybutisgreatfor high-budgetfilms. 6. Howdoesmotioncapturework? • Thesubjectisfittedwithreflectorsorsourcesthatpreciselydetermineitsposition in space. Every movement of the sensor is recorded and then retraced on the model.It’sveryrealisticbuttherearealsosomedisadvantageslikevibrationsof sensorscausingdisturbances. 7. Howarevisemesusedinspeechanimation? • Visemesaremovementsoflipsandmouthmusclesperformedduringspeaking. Visemesareusedtorepresentkeyposesinobservedspeech.(positionoflips,jaw, tongue).
Possible topics for discussion 1. Howdoyouseethefutureoffacialanimation? 2. Thinkofyourfavouritecomputeranimatedcharacter.Trytonamethetechniques usedtocreateit. 3. Isitprobablethatfacialanimationwillachievesuchalevelofsophisticationthat itwillbeimpossibletodistinguishrealfacesfromvirtualones?
Possible difficulties Thetextcontainsprofessionalvocabularyitems.Someofthemareexplained.
67
English++
An Introduction to the Modelling of Real-World Problems by the Simplest Ordinary Differential Equations* Stanisław Migórski
Numberofwords
Computersciencecontent
Low
Mathcontent
High
Englishlanguagecomplexity Medium
9100
Sub-areas covered • Calculus • Ordinarydifferentialequations • Modelling
Learning objectives • tounderstandtherelationsbetweenmathandreal-worldphenomena • toshowhowmathematicaldescriptionsofreal-worldphenomenaarecreated
Keywords ODE - ordinary differential equation - a relation that contains functions of only one independentvariable,andoneormoreofitsderivativeswithrespecttothatvariable interval-asetofrealnumberswiththepropertythatanynumberthatliesbetweentwo numbersinthesetisalsoincludedintheset.Forexample,thesetofallnumbers xsatisfying0 x 1isanintervalwhichcontains0and1,aswellasallnumbers betweenthem.Thesetofpositivenumbersisalsoaninterval. differentiablefunction-arealfunctionissaidtobedifferentiableatapointifits derivativeexistsatthatpoint
* This work was prepared as part of the English++ project carried out by students of the InstituteofComputerScience,JagiellonianUniversity,Krakówintheacademicyear2007–2008. *TheauthorisgratefulfortheencouragementhereceivedfromthestudentsandFacultyat theJagiellonianUniversity.HisspecialthanksgotoMonikaStawicka,whothroughheruntiring
68
effortsanddevotiontodutyconvincedhimtojointheproject.
English++ separabledifferentialequation-aclassofequationsthatcanbeseparatedintoapair ofintegrals autonomousdifferentialequation-asystemofordinarydifferentialequationswhich doesnotdependontheindependentvariable homogeneous linear differential equation - a differential equation is said to be homogeneousifthereisnoisolatedconstanttermintheequation,e.g.,eachterm inadifferentialequationforyhasyorsomederivativeofyineachterm IVP(initialvalueproblem)orCauchyproblem-anordinarydifferentialequation togetherwithspecifiedvalue,calledtheinitialcondition,oftheunknownfunction atagivenpointinthedomainofthesolution generalsolution-ageneralsolutionofadifferentialequationisthesetofallofits particularsolutions,oftenexpressedusingconstants,whichcouldhaveanyfixed value modelforthesystem-asetofdifferentialequationsdescribingthebehaviourofa system rateofchange-anindicatorshowingthedifferencebetweenparametersinaspecific unitoftime
Summary In this note we present several simple ordinary differential equations modeling selectedreal-worldphenomenametinphysics,archeology,artforgeries,population dynamics,heatradiation,epidemiologyandeconomics. Niniejszytekstjestwstępemdoproblematykirównańróżniczkowychzwyczajnych. Zawieradefinicjepodstawowychpojęćpotrzebnychdozrozumieniatematu.Pokazuje jak sprowadzić dany problem z życia codziennego do modelu matematycznego, co jestzilustrowaneprostym,ciekawymprzykładem.Tekstskładasięzwybranychfragmentów,szerszegoopracowaniaprofesoraStanislawaMigórskiego.
Pre-reading questions 1.Doyouknowhowtobuildamathematicalmodel? 2.Doyouthinkthattheoreticalmathematicalmodelscanbeappliedtosolvepracticalproblems?
69
English++ 1 Introduction and preliminary terminology autonomous
Thisnoteisapreliminaryversionofaself-containedintroductiontothemodeling
differentialequation
ofselectedreal-lifephenomenabysimpleordinarydifferentialequations.Werestrict
-asystemofordinary
ourselvestoadiscussiononfirstorderordinarydifferentialequations,leavingthe
differentialequations
details on models described by higher order equations and systems of first-order
whichdoesnotdepend ontheindependent variable
equationstothesequelofthepresentwork. The text was designed for computer science students who have a calculus back ground1andhavetakenpriorphysicscourses(cf.[4]).Itisourbeliefthatcomputer sciencestudentsshouldknowhowtomodelaselectedproblem,particularlyinlight
interval
ofrapidlychangingtechnologies.Webeginwithpreliminarynotationsanddefnitions.
asetofrealnumbers
Byadifferentialequationwemeanamathematicalequationinvolvinganunknown
withtheproperty
functionofoneorseveralvariablesanditsderivativesofvariousorders.Theorderof
thatanynumber
thedifferentialequationistheorderofthehighestderivativeoftheunknownfunction
thatliesbetween
involvedintheequation.Forinstance,theequation
twonumbersinthesetis alsoincludedintheset.
x’=f(t,x)
(1)
Forexample,
iscalledanordinarydifferentialequation(oftenabbreviatedtoODE)offirstorder2
thesetofallnumbersx
inthenormalform.Itrelatesanindependentvariablettoanunknownfunctionx
satisfying 0 x 1is
anditsfirstorderderivative.Thefunctionfisgivenf:I×E
E,whereIisaninterval3
andEisaprescribedspaceandwearelookingforafunctionx:I
E.Ofcoursethe
anintervalwhichcontains
equation(1)obligestheunknownfunctionxtohavesomerestrictions:itshouldbe
0and1,aswellas
differentiableinasuitablesenseandthecomposefunctionf(t,x(t))shouldhavea
allnumbersbetween them.Thesetof positivenumbersisalso aninterval
meaning.Classically,weadmitthefollowing Definition1Afunctionx:I
Eiscalledasolutionoftheequation(1)ontheintervalI,
ifx C1(I,E)4andx’(t)=f(t,x(t))forallt I. Remark2Weremarkthatiff:I×E thatasolutionx:I
Eisacontinuousfunction,wemayrequire
Eisonlydifferentiable.Thisfollowsfromtheobservationthat
inthiscasethecompositionofcontinuousfunctionsf(t,·)andx(·)iscontinuousand itisequaltox’(·).Hencex’iscontinuousonIandthusxisasolution. differentiablefunction arealfunctionissaid tobedifferentiableata
Iftherighthandsideoftheequation(1)canbeexpressedasaproductg(t)h(x)whereg dependsonlyontandhdependsonlyonx,thenthedifferentialequation(1)iscalled
pointifitsderivative existsatthatpoint
1 Some universities, the Jagiellonian among them, make linear algebra a prerequisite for
differentialequations.Manyschools,especiallyengineering,onlyrequirecalculus. 2Themostgeneral(implicit)formofanordinarydifferentialequationofthefirst-orderisas
follows:F(t,x,x’)=0withaprescribedfunctionF.
70
3TheintervalImayhaveaform[a,b],[a,b),(a,b],(a,b),(-
,b]and[a,+ ).
4Afunctionx:I–›EisC1,ifxisdifferentiableonIanditsderivativex’isacontinuousfunction.
English++ separable. If the right hand side f is independent of t, then the resulting differential equationiscalledautonomous.Everyautonomousdifferentialequationisseparable.
initialvalueproblem
Whenthefunctionfin(1)is(affine)linearwithrespecttothesecondvariable,thefirst
(IVP)
orderequationoftheformx’=α(t)x+β(t)withprescribedfunctionsα andβiscalled
anordinarydifferential
anonhomogeneouslineardifferentialequation.Ifβ=0,thentheequationx=α(t)x
equationtogetherwith
withaprescribedfunctionαiscalledahomogeneouslineardifferentialequation.
specifiedvalue,calledthe
Definition3Lett0 Iandx0 E.Aprobleminwhichwearelookingfortheunknown functionx:I
Eofadifferentialequation(1)wherethevalueoftheunknownfunction
atsomepointisknownx(t0)=x05iscalledaninitialvalueproblem(inshortIVP)or aCauchy6problemfor(1).
initialcondition, oftheunknownfunction atagivenpointin thedomainofthe solution
Analogouslyasabove,wehave Definition4Lett0 Iandx0 E.Wesaythatafunctionx:I
EisasolutionoftheIVP
x’=f(t,x) x(t0)=x0
ifxisasolutiontoequation(1)ontheintervalIanditsatisfiesx(t0)=x0.
Cauchyproblem seeIVP
Sometimesifnoinitialconditionisgiven,wecallthefamilyofallsolutionstothe differentialequation(1)thegeneralsolution.
2 Modelling “Howdowetranslateaphysicalphenomenonintoasetofequationswhichdescribes it?”–thisiscertainlyoneofthemostdifficultproblemsthatscientistsdealwithintheir everyday research. This problem is a difficult one since it is usually impossible to describeaphenomenontotally,sooneoftentriestoreformulateareal-worldproblem as a mathematical one making certain simplyfying assumptions. As a result one usuallydescribesthesystemapproximatelyandadequately.
generalsolution ageneralsolution ofadifferentialequation isthesetofallofits particularsolutions, oftenexpressedusing
The problem of generating “good” equations is not an easy task. The set of
constantswhichcould
equationsonedealswithiscalledamodelforthesystem.Ingeneral,oncewehave
haveanyfixedvalue.
builtasetofequations,wecomparethedatageneratedbytheequationswithrealdata
(Source:http://math.uww.
collectedfromthesystem(bymeasurement).Whenthetwosetsofdata“agree”(orare
edu/~mcfarlat/250dej.
“sufficiently”close),wegainconfidencethatthesetofequationswillleadtoagoodde-
htm)
scriptionofthereal-worldsystem.Ifapredictionfromtheequationsleadstosomeconclusionswhicharebynomeansclosetoreal-worldfuturebehavior,weshouldmodify and“correct”theunderlyingequations.Whencreatingamodel,itisnecessarytoformulate theproblemunderconsiderationintoquestionsthatcanbeansweredmathematically. 5Thisconditioniscalledaninitialcondition. 6AugustinLouisCauchy(1789–1857),aFrenchmathematician.
71
English++ Thefollowingarebasicstepsinbuildingamodel. separable differentialequation aclassofequationsthat canbeseparatedinto apairofintegrals
(1)Clearlystatetheassumptionsonwhichthemodelwillbebased.Theseassumptions shoulddescribetherelationshipsbetweenthequantitiestobestudied. (2)Completelydescribetheparametersandvariablestobeusedinthemodel. (3)Usetheassumptions(fromstep(1))toderivemathematicalequationsrelatingthe parametersandvariables(fromstep(2)). Alargenumberoflawsofphysics,chemistry,economics,medicine,etc.canbefor- mulatedasdifferentialequations.Theyserveasmodelsthatdescribethebehaviorof complexsystems.Themathematicaltheoryofdifferentialequationsfirstdeveloped
homogeneous lineardifferential equation adifferentialequation issaidtobehomogeneous ifthereisnoisolated constantterm
togetherwiththescienceswheretheequationshadoriginatedandwheretheresults foundapplication.Wheneveramathematicalmodelinvolvestherateofchangeof onevariablewithrespecttoanother,adifferentialequationisapttoappear.Aswe willseeinthefollowingsections,diverseproblems,sometimesoriginatinginquite distinctscientificfields,maygiverisetoidenticaldifferentialequations.Wheneverthis happens,themathematicaltheorybehindtheequationscanbeviewedasaunifying principlebehinddiversephenomena.
intheequation,e.g.,each
Inthefollowingsectionsweprovideexamplesofmathematicalmodelsofseveralrela-
terminadifferential
tivelysimplephenomenawhicharedescribedbyordinarydifferentialequationsofthe
equationforyhasyor
form(1).Wemainlyconcentrateonmodelingissues.Themoderntheoryofordinary
somederivativeofyin
differential equations together with known techniques, methods and applications
eachterm
canbefoundinreferences[1]and[2].
3 Radioactive decay ODE ordinarydifferential equation -arelationthat containsfunctionsof
Itisknownthatformanyradioactivematerials,forsmallamountsofthesubstance andinashorttimeinterval,theamountofdisintegratedmassisproportionaltothe lengthofthetimeintervalandtheamountofradioactivemass.Assumingthatthe amountofthematerialchangesintimecontinuously,findthedependenceofradioactivemassontime.
onlyoneindependent
Radioactivedecayistheprocessinwhichanunstableatomicnucleuslosesenergy
variable,andoneor
byemittingradiationintheformofparticlesorelectromagneticwaves.Wedenote
moreofitsderivatives
thetimebytandtheamountofradioactivesubstancebym(t).Wewillshowthat
withrespecttothat
themassm(t)isdescribedbythefollowingordinarydifferentialequationofthefirst
variable
order
m’(t)=-km(t).
Let∆t 0bethelengthofatimeinterval.Thenwecanwrite
72
m(t+∆t)-m(t)~m(t)∆t. amountofdisintegratedmass
(2)
English++ We denote by k a positive constant being the proportionality coefficient which characterizestheradioactivematerial.Sincetherateofchangeofm(t)withrespectto timetisnegative(theamountofmassdecreasesintime),weobtainm(t+∆t)-m(t) =-km(t)∆tand
modelforthesystem
m(t+∆t)-m(t) =-km(t). ∆t Since the amount of the material changes in time continuously7, this leads to the
Asetofdifferential equationsdescribing thebehaviourofasystem
equation m(t+∆t)-m(t) =-km(t). ∆t whichmeansthattherateofdecayisproportionaltotheamountofthesubstance m’(t)=lim ∆t–›0
present.Themassmistheunknownfunctiontobedeterminated.Theequation
m’(t)=-km(t)
(3)
rateofchange anindicatorshowing thedifferencebetween
iscalledtheequationofradioactivedecay.Itisalinearhomogeneousdifferential
parametersinaspecific
equation.
unitoftime
Assumingthatthemassispositive,wecansolve(3)asfollows.Weobservethatthe equality
=-kisequivalentto
(lnm(t))=-k.Integratingthelatter,wehave
lnm(t)=-kt+C1,whereC1isaconstantofintegration.Hence,
m(t)=e-kt+C1=e-kteC1=Ce-kt
withapositiveconstantC. Furthermore,weremark8thateveryfunctionm(t)=Ce-ktwithC Risasolutionto thedifferentialequationm’(t)=-km(t)9.ThevalueofCisdeterminediftheinitial amountofradioactivesubstanceisgiven.Itcanbefoundwithoutdifficulty10thatif m(t0)=m0,m0denotestheinitialamountofsubstanceattimeinstantt0,thenthe valueofCcanbefoundandtheCauchyproblem m’(t)=km(t)
m(t0)=m0
admitsauniquesolutionoftheform
m(t)=m0e-k(t-t0).
(4)
Aftertakingintoaccountthe“real”constraintsontheproblemunderconsideration,this solutiongivesaformulafortheamountofradioactivesubstanceatanyfuturetimet.
7Infact,weassumethatthederivativem’(t)existsateverytimeinstantt. 8Wecannotexpecttogetauniquesolution,sincetherewillbeanarbitrary“constantof
integration”. 9SothereareinfinitelymanysolutionstothisODE. 10Thisislefttothereader.
73
English++ Summingup,wehavetheimplication
ifafunctionm(·)describestheradioactivedecay,then
thefunctionm(·)satisfiesthedifferentialequation(3).
Theconversedoesnotholdbecausetherearesolutionswhichdonothaveaphysical meaning.Forexample,m(t)=-e-ktisasolutionwhichisnotacceptable(masscannot 10
benegative)orm(t)=1010 e-ktsolvestheequationbutthemassistoolargetoexist onEarth.Inconsequence,therearephysicalreasonswhicheliminatesomesolutions totheequation,i.e.forthesolutiontomakesensewesupposethat
0 m0 mcrit
where mcrit denotes the critical mass of radioactive material. Then, we clearly get that0 m(t) mcritforallt t0. Despitethephysicalaspects,thefollowingquestionarises.Doanyothersolutionsto theequationofradioactivedecayexist?Theanswerisnegative. Remark 5 All solutions to the equation m’(t)= -km(t) have the form m(t) = Ce-kt
withC R.Therearenoothersolutions.Indeed,letφbeasolutiontotheequation.
Considerthefunctionψ(t):=φ(t)ekt.Sinceφsolvestheequation,wehave
ψ‘(t)=φ’(t)ekt+kφ(t)ekt=ekt(φ’(t)+kφ(t))=0.
Hencethefunction ψisconstant,sayC1,whichmeansthat φ(t)ekt=C1.Finally,we
getφ(t)=C1e–kt.
Wehaveseenthatfunction(4)describesradioactivedecay.Clearly,inordertodetermine m(t)weneedtofindtheconstantk.Thiscanbedoneusingwhatiscalledthehalf-life oftheradioactivematerial. Definition6Thehalf-lifeisthetimespanneededtodisintegratehalfoftheradioac1 tivesubstance,i.e.atimeTisthehalf-lifeofthematerialif m(T)= m0. 2 IfTisthehalf-life,thenfrom(4),wehave
m m(T)=m0e-kT= 0
whichimplieskT=ln2.Hence,ifweknowT,wecangetkandvice-versa.Inserting thevalueofkinto(4),wehave
m(t)=m0e-
ln2.
(5)
Manychemistrytextbookscontainthehalf-lifeofsomeimportantradioactivematerials. AsTable1shows,someradioactivematerialsdisintegratealmostimmediately,others needmilionsofyears.
74
Thereareseveralapplicationsofthedecayofradioactivematerials.
English++
isotope
half-life
14Ccarbon
5730y
131Iiodine
8.02070d
214Popolonium
1.64·10-4sec
226Raradium
1602y
238Uuranium
4.468·109y
Table1:Half-livesofisotopes
Example7(Chernobyldisaster)Oneofthemostdangerousradioisotopesreleasedin
theChernobylcatastrophein1986wasStrontium90Srwhosehalf-lifeis28years.(a) Howmuchtimedoesittaketoreducetheisotopefalloutto10%ofitsinitialvalue?(b) Assumingthatduringthecatastrophethenumberofreleasedatomswas1027,how muchtimedoesittakeforalltheatomsofthesubstancetodisappear? Solution.Lett0=0andhalf-lifeT=28.(a)Weuseformula(5).Sincethehalf-lifeis giveninyears,wewillmeasuretimeinyears.Thetimetneededtoreducetheisotope fallouttop%ofitsinitialvalueiscalculatedfromtheequality m(t) m 100%=p%. 0
Weobtain
p 100 ; e- ln2= ;e ln2= 100p andfinally
ln t=T . ln2
(6)
Insertingthevaluep=10,wehavet 93.04years11. (b)LetN=10-27.Againweuseformula(5)andcalculate,asin(6),thetimeforallthe atomsoftheradioisotopetodisappear
ln m(t) . m 100=Nandhence t=T ln2 0
ln1029
Aneasycalculationyieldst=28 .29ln10 2698years . =28 ln2ln2 Example8(Radiocarbondatinginarcheologicalresearch)Carbondatingisoftenused
todeterminetheageofafossil.Forinstance,ahumanoidskullwasfoundinacave
11Intheseandothercomputationsinthisnote,weroundouranswerstotwodecimal
places.
75
English++ inSouthAfricaalongwiththeremainsofacampfire.Archeologistsbelievetheageof theskulltobethesameasthecampfire.Itisdeterminedthatonly2%oftheoriginal amountofCarbon14Cremainsintheburntwoodofthecampfire.Estimatetheageof theskullifthehalf-lifeofCarbon14Cisabout5730years. Solution.Denotebypthepercentofmassremaining.Weuseformula(6)toestimate theageoftheskull.Ifthehalf-lifeT=5730andp=2,then ln50 3.9120 ln =5730 31325years. t=T = 5730 ln20.6931 ln2 Toseehowsensitivethetechniqueofcarbondatingis,wecanchangethevaluesof thetwoparametersofhalf-lifeTandpercentpofmassremaining.Forexample,fix p=2%andcalculatetheestimatedageoftheskullforT=5700,5650,5600and 5550.Weobtainfrom(6)thefollowingvaluesoftheaget=32171,31890,31607and 31325respectively.Asimilarsensitivityanalysiscanbecarriedoutwithrespecttothe changesintheparameterp.Precisionisverydependentonthecarewithwhichthe radiometricdatingprocedureisperformed. Remark 9 (K-Ar dating in archeology) Potassium-argon (or K-Ar dating) is based on
measuring the products of the radioactive decay of potassium (K). The radioactive isotope40Kdecaysto40Arwithahalf-lifeof1.26·109years.Duetothelonghalf-life, thetechniqueismostapplicablefordatingmineralsandrocksmorethan100000 yearsold.Itplaysanimportantroleinarcheology.In1959intheOlduvaiGorgein theSerengetiplainsofnorthernTanzania,archeologistsMaryandLouisLeakeyuncoveredthetoolsandfossilsofanancienthumanoidcalledZinjanthropus.According totheK-Ardatingmethod,therewasa1.75million-year-oldskull.In1965theirteam uncoveredaHomoerectusskull,datedatonemillionyearsold.Itwasin1978atthe Laetolisite,located45kmsouthofOlduvaigorge,thatMarydiscoveredthefootprintbearinglayers,datedbytheK-Armethodto3.75millionyearsago.Thestratigraphy oftheOlduvaiGorgeisextremelydeepandlayersofvolcanicashesandstonesallow radiometricdatingoftheembeddedartifacts,mostlythroughK-Ardating.ThearcheologistshavebeenbracketingtheageofarcheologicaldepositsatOlduvaiGorgeby datinglavaflowsaboveandbelowthedeposits.TheOlduvaiGorgeisnowcommonly referredtoas“TheCradleofMankind”. By the way, modern geologists consider the age of the Earth to be around 4.54 billionyears(4.54·109years).Thisagehasbeendeterminedbyradiometricagedating ofmeteoritematerialandisconsistentwiththeagesoftheoldest-knownterrestrial andlunarsamples.Theuranium-leadradiometricdatingschemeisoneoftheoldest available,aswellasoneofthemosthighlyrespected.Ithasbeenrefinedtothepoint wheretheerrorindatesofrocksaboutthreebillionyearsoldisnomorethantwo
76
millionyears.
English++ Example10UsingthedatainTable1,findthepercentageoftheinitialamountof
Carbon14Cwhichremainsafter10000years. Solution.ByTable1weknowthatthehalf-lifeoftheisotopeT=5730years.Using formula(5),wehave
m(10000) 10000 100%=expln2 29.83% m 05730 Example11Aradioactiveisotopehasahalf-lifeof14days.Youwishtohave50gat
theendof30days.Howmuchradioisotopeshouldyoustartwith? Solution.Sincethehalf-lifeT=14days,wewillmeasuretimeindays.Letm(t)be theamountpresentattimetandm0theinitialamountwearelookingfor.From(5) weobtain
m0=e
ln2.
Puttingt=30,m(t)=50,wefindm0=50 e ln2 220.8g. Remark 12 (Turin shroud and carbon dating) The Shroud of Turin is a linen cloth
bearingthehiddenimageofamanwhoappearstohavebeenphysicallytraumatized inamannerconsistentwithcrucifixion.ItiskeptintheroyalchapeloftheCathedral ofSaintJohntheBaptistinTurin,Italy. Varioustestshavebeenperformedontheshroudandthedebatesaboutitsorigin continue.Radiocarbondatingin1988bythreeindependentteamsofscientistspro- duced consistent results indicating that the analysed portion of the shroud dated fromthe13thto14thcenturies(1260–1390).Thisresearchhasraiseddoubtsabout thecarbondatingmethod.Oneargumentagainsttheresultsoftheradiocarbontests wasabacterialcontamination,whichwasunknownduringthe1988testing.There areexamplesofancienttextilesthathavebeengrosslymisdated,especiallyinthe earliestdaysofradiocarbontesting(thefatherofmodern14CtestingwasHarryGove). Most notable of these is mummy 1770 of the British Museum, whose bones were datedsome800to1000yearsearlierthanitsclothwrappings.Theskewedresults werethoughttobecausedbyorganiccontaminantsonthewrappingssimilartothose proposedfortheshroud.Also,theresultofthe 14CdatingoftheTurinshroudwas probably caused by the effects of high temperature in the 1532 fire (and another seriesofsmallburns). Afollow-upanalysispublishedin2005,however,indicatedthatthesampledatedby theteamswastakenfromanareaoftheshroudthatwasnotapartoftheoriginal cloth. Remark13(Artforgeries)DuringWorldWarII,manypaintingsoffamousartistswere
lost.Severalworksofartwerefoundinstrangelocationsjustafterthewar.Someof
77
English++ thepaintingsdiscoveredwereactuallyartforgeriesandscientistsoftenhaddifficulty provingthatapaintingwasauthentic.Usingmodelingbasedonadifferentialequation, a method was discovered to distinguish between a painting dating back 300 yearsandonepaintedonly20yearsago.Itturnsoutthatasmallamountoflead-210 ispresentinallpaintings.Thiselementisfoundinleadoxide(commonlyknownas whitelead),whichisapigmentartistshaveusedformorethan2000years.White leadismadefromleadmetalwhichinturnisextractedfromleadoreinaprocess calledsmelting.Ananalysisbasedonafirst-orderdifferentialequation(wherethe unknownfunctionistheamountoflead-210pergramofwhitelead)makesitpossibleto estimatetheageofaworkofartandcheckwhetherapaintingisamodernforgery. Itwasalsoobservedthatlead-210isadifficultelementtomeasureandthatpolonium210,amucheasierelementtomeasure,hasthesamehalf-lifeaslead-210.Therefore asubstitutionofthetwocanbemadeintheanalysis. Remark14(Phosphorus)Sixradioactiveisotopesofphosphorusareknown.Onera-
dioactiveisotope, 32P,hasapplicationsinmedicine,industry,andtracerstudies.An isotopic tracer (called also an isotopic marker or an isotopic label) is a radioactive isotopewhosepresenceinasystemcaneasilybedetected.Theisotopeisinjectedinto thesystem,whereitgivesoffradiation.Theradiationisfollowedbymeansofdetectors placed around the system. Phosphorus-32 is especially useful in medical studies, becausephosphorusoccursinmanypartsofthebody.Radioactivephosphoruscanbe usedasatracertostudypartsofthebodyaswellaschemicalchangesinsidethebody. Radioactivephosphoruscanalsodeterminehowmuchbloodisinaperson’sbody. Itcanalsohelplocatethepresenceoftumorsinthebrain,eyes,breasts,andskin. Finally,itissometimesusedtotreatcertainformsofcancer.Radiationgivenoffbythe 32Pmaykillcancercellsandhelpsloworstopthedisease.Thisisotopeisimportant
inavarietyofscientificstudies.Forexample,itisaddedtotireswhentheyaremade. Then,theradiationitgivesoffcanbestudiedasthetiresareused.Thisinformation indicateswherethetirewearsoutandhowlongittakestowearout.
4 Population dynamics Find the dependence of the population on time assuming that the growth rate is proportionaltothepopulationpresent. Letp(t)bethepopulationattimet.Wemaythinkaboutasinglepopulationofaspecies contained in a compartment (a petri dish, an island, a country). The population is alwaysanaturalnumber,itisusuallylargeenoughsothatverylittleerrorisintroducedinassumingthatp(t)isacontinuousfunction. Considerapopulationofbacteriathatreproducebysimplecelldivision,i.e.theparent
78
celldoesnotdie,butbecomestwonewcells(thedeathrateiszero).Inthismodel
English++ assumptionthatthegrowthrateisproportionaltotheexistingpopulationisconsistent withobservationsofbacteriagrowth.Theinitialvalueproblemis
dp=kp dt
(7)
p(0)=p0,
wherekistheproportionalityconstant(calledpopulationgrowthconstant)andp0>0 isthepopulationattime012.ThismodeliscalledtheMalthusian13orexponential lawofpopulationgrowth.Theequationin(7)islinearandseparable,andthesolution of(7)isgivenby
p(t)=p0ekt.
(8)
Whenweconsidertheinitialconditionoftheformp(t0)=p0,thesolutiontothe abovemodelisoftheform
p(t)=p0ek(t-t0).
(9)
Example 15 (Population of the world) According to the 2007 UNFPA14 Report, the
numberofpeopleoftheworldwas:1800-1.0·109,1960-3.0·109and2007-6.5·109. Usetheexponentiallawofpopulationgrowthtoestimatethepopulationin2050. Solution.Wewilluseformula(9).First,weestimatethepopulationconstantkand subsequentlyweestimatethesizeofthehumanpopulation.From(9)weeasilydeduce p(t) ln p0
k= t-t0
Theestimationofkcanbedoneinthefollowingtwoways. 10)Lett0=0,p0=1.0·109,t=1960-1800=160andp(160)=3.0·109.Then p(t) ln p0 ln3 k== 0.006866 t-t0160 whichmeansthatin1800–1960thepopulationincreasedby0.6866%peryear. 20)Lett0=0,p0=3.0·109,t=2007-1960=47andp(47)=6.5·109.Then p(t) ln p0 ln6,53-ln3.0 k== 0.01645 t-t047 12Analogously,wecantreattheproblemwithp(t )=p . 0 0 13ThomasRobertMalthus(1766–1834),theEnglishdemographerandpoliticaleconomist. 14UnitedNationsFundforPopulationActivities.
79
English++ whichmeansthatin1960–2007thepopulationincreasedby1.645%peryear. From the form of solution (9), we can estimate the world population in 2007 and 2050usingdifferentpopulationconstants.Fork=0.006866,wehave
p(2007)=3.0·109·e0.006866(2007-1960) 4.16·109
whilefork=0.01645,weget
p(2050)=6.5·109·e0.01645(2005-2007) 13.18·109.
TheseresultsareestimatedbytheMalthusianmodelonlyanddonottakeintoaccountmanyimportantfactorsforthehumanpopulation15. Remark16Therearepopulations(likethehumanone)forwhichtheassumption
thatthedeathrateiszeroiscertainlywrong.However,wemayrevisetheMalthusian modeltoincorporateonlydeathbynaturalcauses.Itmightbeexpectedthatthedeath rateisalsoproportionaltothesizeofthepopulation.Thisleadstotheequation
dp ~ =kp-k dp=(k-k kp d)p= dt
(10)
wherek=k-kdandkdistheproportionalityconstantforthedeathrate.Assuming k>kd,sothatk>0,weagainobtaintheMalthusianmodel. Bearinginmindsolution(8)oftheexponentialmodel,weconcludethefollowing. Ifk>0,thenthepopulationgrowsandcontinuestoexpandtoinfinity,thatis, limp(t)=+ t–›+ Ifk0,isnotadequateandthemodelcanbedropped. Themainargumentforthishastodowithenvironmentallimitations.Thecomplicationisthatpopulationgrowthiseventuallylimitedbysomefactor,usuallyonefrom amongmanyessentialresources.Whenapopulationisfarfromitslimitsofgrowthit cangrowexponentially.However,whennearingitslimits,populationsizecanfluctuate,evenchaotically. Anothermodelwasproposedtoremedythisflawintheexponentialmodel.Itiscalled thelogisticmodel(alsocalledVerhulst-Pearlmodel16)andittakesintoaccountfactors (likeprematuredeathsduetomalnutrition,inadequatemedicalsupplies,wars,communicable diseases, violent crimes, etc.) involving competition within the population.Inordertojustifythelogisticmodel,weassumethereisanothercomponent 15AccordingtotheUNFPAthepopulationestimatefor2050is8.9bilion. 16P.F.Verhulst(1804–1849),amathematicianandadoctorinnumbertheoryfromthe
80
UniversityofGhent.
English++ of the death rate that is proportional to the number of two-party interactions. For populationofsizep,therearep(p-1)/2suchinteractions.Wemaysupposethedeath rateduetointraspeciescompetitionis p(p-1) kc 2 where kc is another proportionality constant (the competition constant). Together
withequation(10),thisleadsto p(p-1) p p2 =kp-kdp+kc =kp-kdp+kc -kc dt222 dp
Thelogisticmodelisthefollowinginitialvalueproblem dp =ap-bp2 dt p(0)=p0
wherea=k-kd+ andb= .Theequationisautonomous(henceseparable)and nonlinearbecauseofthepresenceofp2. Weobservethattheequationdp/dt=ap-bp2hastwoconstantsolutionsp 0and p a/b. The non-constant solutions may obtained by separating the variables and usingapartialfractionsexpansion:
1 dp=dt p(a-bp)
(11)
-b 1dp 1 dp=dt - apaa-bp
1ln|p|-1ln|a-bp|=t+C 1 aa p ln =at+C2 a-bp
p =C3eat. a-bp
Solvingforp,wehave
aC aC eat = 3 p(t)= 3 -at at bC3e +1bC3+e
Usingtheinitialconditionin(11)(assumingthatp0isnotequaltoboth0ora/b),we get
p C3= 0 a-bp0
81
English++ which,oncesubstitutedintotheexpressionforp(t)andsimplified,wefind ap p(t)= 0 (12) bp +(a-bp )e-at 0
0
Thisfunctioniscalledthelogisticfunctionanditsgraphiscalledthelogisticcurve. Animportantpropertyofthelogisticfunctionisthat
a limp(t)= ifp0>0. t–›+ b
The quantity a/b is a limiting size for the population (also called the carrying capacity).Consequently,anypopulationwhichfollowsthelogisticmodelwillremain bounded.Namely,whenp0>a/b,thepopulationwilldecreasetowarda/bandwhen theinitialpopulationp00.Theproportionalityconstantin(13)isnegativesincethetemperatures
82
17Theinterestedreadercansketchthegraphsofthelogisticcurvefor0M.Theequation(13)is aseparableODE.Weassumethattheinitialtemperatureoftheobjectisprescribed
decreaseintimeandthederivative
T(t0)=T0
(14)
whereT0standsfortheinitialtemperatureoftheobject.Thus,thedependenceofthe temperatureoftheobjectontimeisdescribedbytheinitialvalueproblem(13)and (14).Itssolutionhasaform19
T(t)=M+(T0–M)e–kt.
(15)
Example17(Hotcoffee)Acupofcoffeeinitiallyat950Ccoolsto800Cin5minutes
while sitting in a room of temperature 210C 20. Using the Newton law of cooling, determinewhenthetemperatureofthecoffeewillbeanice500C. SolutionLetT0=95,M=21,t=5andT(5)=80.Weproceedintwostepsand makeuseofformula(15).First,wefindthevalueofthecoefficientkwhichcanbe calculated 1 T -M ln74-ln59 k= ln 0 = 0.045305. tT(t)-M5 Then, knowing the value of k, we are able to find a time instant t1 at which the temperatureofthecoffeewillbeT(t1)=50. 1 T -M ln74-ln29 t1= ln 0 = 20.676. kT(t1)-Mk Hence,thetemperatureofthecoffeewillbe500Cafter20.7minutesfromtheinitial timeinstant. Example18(Timeofdeath)ItwasnoononacoldMaydayinKrakow:160C.Detective
JohnKowalskiarrivedatthecrimesceneinahotelroomtofindthesergeantleaningover thebody.Thesergeantsaidtherewereseveralsuspects.Iftheyknewtheexacttimeof death,thentheycouldnarrowthelist.Kowalskitookoutathermometerandmeasured thetemperatureofthecorpse:34.50C.Hethenleftforlunch.Uponreturningat1:00pm, hefoundthebodytemperaturetobe33.70C.Findthetimethemurderoccured. Solution.AsinExample17,weproceedintwosteps.LetT0=34.5,M=16,t=60 andT(60)=33.7.First,wefindthevalueofthecoefficientkasfollows 1 T –M ln8.5–ln17.7 –4 0 k=tlnT(t)–M=60 7.3677·10 .
19Thiscaneasilybecheckedbythereader.
20ThisisnotalwaysattainedintheJagiellonianUniversitybuildings.
83
English++ Inotherwords,wehavedeterminedkfromtheinformationontwotemperatures measuredbyKowalski,atthepointT0=34.5andthepointT(60)=33.7. Knowingthevalueofk,weareabletofindatimeinstanttdatwhichthecrimehappened. TothisendwetakeintoaccountothertwopointsT(0)=3721andT(td)=34.5.
1 T(0)–Mln(37–16)–ln(34,5–16) ln21–ln18,5 172.036. = td=klnT(t )–M=kk d
Thereforethemurderoccuredabout172minutesbeforenoon,thatis,around9:08am. Weconcludethatinordertofindthetimeofdeathitisnecessarytomeasurethe bodytemperaturetwice22. Remark19(Heatingandcoolingofbuildings)Newton’slawcanbeusedtoformulate
amodelthatdescribesthetemperatureprofileinsideabuildingasafunctionofthe ousidetemperature,theheatgeneratedinsidethebuilding,andthefurnaceheating orairconditioningcooling.TheresultingCauchyproblemcanbeformulatedasin Chapter3.3of[5]andreadsasfollows
dT =-k(T(t)-M(t))+H(t)+U(t) dt T(t0)=T0.
(16)
TheunknownfunctionT(t)representsthetemperatureinsidethebuildingattime t and, viewing the building as a single compartment, M(t) is the outside temperature,H(t)istheadditionalheatingrate(intermsofenergyperunittime),U(t)isthe furnaceheatingorairconditionercoolingrate,kisapositiveconstantandT0isthe initialtemperatureattimet0. Thislinearmodel(16)isageneralizationoftheproblem(13)and(14).Theconstant
iscalledthetimeconstantforthebuildinganditisoneofthecharacteristicsof buildings23.Moredetailsonthismodelcanbefoundin[5].
6 Stefan’s law of thermal radiation TheStefanlawofthermalradiationstatesthattherateofchangeinthetemperature ofabodyatT(t)degreesinamediumattemperatureMdegreesisproportionaltothe quantityM4-T4.
21Assumingthedeadpersonwasnotsickandhadatemperatureof370C.Theinterested
readermayestimatethetimeofdeath,ifinsteadof370Cwesuppose36.60C.
84
22RememberthismethodunlessyouaresergeantColombo. 23Thebuildingownersshouldknowthisconstantforeconomicreasons.
English++ Asbefore,wedenotebyT(t)thetemperatureofthebodyattimeinstanttandby Mtheconstanttemperatureofthesurroundingmedium.Weobtainthefollowing nonlineardifferentialequationofthefirstorder
dT =-k(T4-M4), dt
(17)
wherek>0.Equation(17)isaseparableODE.Stefan’sandNewton’slawsarenearly thesamewhenTisclosetoM,cf.Chapter3of[5].
7 An epidemiology model Thespreadofdiseasescanbeassessedbyusingdifferentialequations.Asimplemodel for the number of people infected with a particular disease, say chicken pox, in a closedenvironment,likeauniversity,isasfollows.
I’(t)=rI(t)-aI(t)
(18)
where:
·tistimemeasuredindays;
·I(t)isthenumberofinfectedpeoplewiththediseaseattimet;
· r > 0 is a parameter measuring the rate at which people are infected by an infectiousperson(howmanypeopleaninfectedpersoninfectsperday);
·a>0isaparametermeasuringtherateofremoval,thatis,therateatwhich peopleceasetobeinfectious;theyeitherrecoverordie(1/thenumberofdaysa personisinfectious)
OfcoursethisequationcanbewrittenasI’(t)=(r-a)I(t)andthereforer-acanbeconsidered asaparameterofthisequation.Thegeneralsolutionto(18)isanexponentialfunction
I(t)=Ce(r-a)twithC R.
However,thenegativeconstantCisnotacceptableinthesolutionsincethefunction I,theinfectedpopulation,canneverbenegative.Ascanbeseenfromtheprevious examples,thecharacterofthissolutiondependsontheparameterr-a.Theinfection raterwillvarybasedonseveralfactors,includingthenatureofthediseaseandthe natureofcontactbetweenpeople.Theremovalrateaalsodependsonseveralfactors, includinghowfastpeoplearediagnosed(sotheycanbetoldtostayathome),and howquicklytheygetbetter(sotheyarenolongerinfectious).Interestingly,another waypeoplecanbe“removed”fromtheinfectiouspopulationistodie. Consider now an initial condition. At time t = 0, we start with a certain number ofsickpeople,I0.Wemaythinkoft=0asthestartoftimethatwegetinvolved, tisnegativeinthepast,andtispositiveinthefuture.Thesolutionnowlooksas follows:
85
English++
I(t)=I0e(r-a)t.
IfI0=0,thenI(t)isalwayszeroforalltimet.Itiseasytoseethatifr>a,wehave growth,andifr0.Thishappensifandonlyifr>a.Thespecificchangesinrandacouldpreventanepidemic.Thissimplemodelhelpstopredict thenumberofinfectedpeopleI(t).
8 Free fall AnobjectfallsthroughtheairtowardEarth.Assumingthattheonlyforcesactingon theobjectaregravityandairresistance,findthevelocityoftheobjectasafunction oftime. Newton’ssecondlawstatesthatforceisequaltomasstimesacceleration,i.e.
F=m
,
whereFrepresentsthetotalforceontheobject,misthemassoftheobjectandthe accelerationisexpressedasthederivativeofthevelocityvwithrespecttotimet. NeartheEarth’ssurface,theforceduetogravity(beingjusttheweightoftheobject) isgivenbymg,wheregistheaccelerationduetogravity24.Ontheotherhand,there isnogenerallawthatpreciselymodelstheairresistanceactingontheobject.The airresistenceisaforcethatcanberepresentedby-kv,whichmeansthatitisproportionaltothevelocityoftheobjectanditopposesthemotion.Thepositiveconstantk dependsonthedensityofairandshapeoftheobject.Therefore,thetotalforceacting ontheobjectismg-kv.Thisleadstothefollowingordinarydifferentialequation:
m
=mg-kv.
(19)
Thisequationislinear,homogeneousandautonomous,soitisseparable.Exploiting theseparationofvariables25wesolvethisequationandfind
v(t)=
-
e-kt/mwithC R.
(20)
Thisisageneralsolutiontoequation(19)andeverysolutionto(19)isoftheform (20). Assuming that the initial velocity of the object is v0, we obtain the following initialvalueproblem
24RecallthatonEarthg=9.81m/s2.
86
25Thiswasalreadyusedintheradioactivemodel.
English++ dv = mg - kv dt v(0)=v0. m
(21)
Substitutingt=0inthegeneralsolutionandusingtheinitialdatum,easyalgebraic manipulationsgiveC=mg-kv0.Thesolutionof(21)isthefollowing:
v(t)=
e-kt/m
+ v0-
(22)
Wemakecertainobservations.Since
v(t)=
,
itappearsthat,regardlessoftheinitialvelocityv0,thevelocityoftheobjectapproaches mg/k. The value mg/k is the horizontal asymptote for v(t). The constant mg/k is referredtoasthelimitingorterminalvelocityoftheobjectanditisapproximately theweight,mg,dividedbythecoefficientofairresistance,k.Hence,theheavierthe object,thefasteritwillfall,assumingshapesandsizesarethesame.Also,whenthe airresistanceisreduced(kismadesmaller),theobjectwillfallfaster.Theseobservationsagreewithourexperience. Example20(Bungeejumper)Thejumperjumpsoffaveryhighbridgewithalong
elasticropetiedtohislegs,sothattheropepullshimbackbeforehehitstheground. Assumingonlyairresistanceandgravityactingonthejumper,findhisterminalvelocityjustbeforetheropepullshimback,providedm=100kg,k=5kg/sandv(0) =10m/s. Solution.Theterminalvelocityofthejumperisindependentofhisinitialvelocity andisequalto
=
=196.2
.
Themodeldiscussedabovecanbeextendedtodeterminetheequationofmotionof fallingobject. Thiscanbedoneasfollows.Letusdenotebys(t)thedistancetheobjecthasfallenin timet.Thepositions(t)isfoundbyintegratingtheequation
=v(t).
From(22)weobtain
s(t)= v(t)dt=
t-
v0-
e-kt/m+C
whereCisaconstant.Settings(0)=0,wefindthat
87
English++
v0-
C=
.
Hencetheequationofmotionis
s(t)=
t+
(1-e-kt/m).
v0-
Example21(Bungeejumper,continued)ConsiderthebungeejumperfromExample
20.Supposeadditionallythatthebridgeis500mabovetheground.Determinewhen thejumperwillstrikethegroundiftheropeisbroken. Solution.Wecanuse(23).Becausethejumperisreleased500mabovetheground,we determinewhenhestrikesthegroundbysettings(t)=500andsolvingthefollowing equationfort
s(t)=
t+
(1-e-kt/m).
v0-
Unfortunately,thisequationcannotbesolvedexplicitelyfort.Ingeneralwemight trytofindtbyusing,forinstance,theNewtonapproximationmethod.However,in thiscaseitisnotnecessarysincetheterme-twillbeverysmallfortnearthetimewe arelookingfor.Wesimplyignoretheterme-tandobtainalinearequation
s(t)=
t+
v0-
whichweeasilysolvefort:
t=
-
+
=2.54s-1.01s+20s=21.52s.
Thismeansthatthejumperwillreachthegroundwithin21.52s.Ignoringtheterm e-twemadeareasonableapproximationsincee-tneart=21.52isverysmall(e-21.52 0.45·10-9). Example22(Parachutist)Aparachutistwhosemassis75kgdropsfromahelicopter
hovering4000mabovetheearthandfallstowardthegroundundertheinfluenceof gravity.Assumethegravitationalforceisconstantandtheforceduetoairresistance isproportionaltothevelocityoftheparachutist,withtheproportionalityconstant k1=15 whenthechuteisclosedandwithconstantk2=105 whenthechute isopen.Ifthechutedoesnotopenuntil1minuteaftertheparachutistleavesthe helicopter,afterhowmanysecondswillhehittheground? Solution.Weuseequations(22)and(23).Wefirstconsiderthemotionbeforethe chuteopensandthenwhenthechuteisopen.Wedenotem=75kg,h=4000m, g=9.81 ,t=60sandv=0. Phase1:thechuteisclosed.Fromequations(22)and(23),wefindthevelocity
88
v1(t)=
+ v0-
e-k1t/m=
-
exp(
)=49.5
English++ andthedistancetheparachutisthasfallenintseconds
=
t+
s1(t)=
(1-e-k1t/m)=
v0-
.
-
·(1-e-12)=2697.75m.
Hence,aftert=60stheparachutistiss2=h-s1=4000-2697.75=1302.25mabove thegroundtravelingatavelocityof49.05
Phase2:thechuteisopen.Inordertodeterminewhentheparachutistwillhitthe ground,weemploytheequation
s2(t)=
t+
v0-
(1-e-k2t/m),
wheres2=1302.25misthedistancetotheground,andv0istheinitialvelocityat thetimethechuteopens.Wewouldliketosolvethisequationfort.AsinExample 21,thisnonlinearequationcannotbesolvedexplicitelyfort.However,sincetheterm e-k2t/mwillbeverysmallfortnearthetimewearelookingfor,weignorethisterm andobtainalinearequation
s2(t)=
t+
v0-
Solvingthelatterfort,wehave
t=
-
+
=185.84-5.04+0.71=181.51s.
This means that the parachutist will strike the earth 181.51 s after the parachute opensor241.51safterdroppingfromthehelicopter.Theignoredterme-k2t/mneart =181.51isverysmall( e-254.2)hencenegligibleandthustheapproximationwehave madeisreasonable. Wealsoremarkthatthevelocityoftheparachutistatimpactis
=
=7.01
whichisthelimitingvelocityforhisfallwiththechuteopen.
9 Continuous compounding Abankusedtocompoundinterestcontinuously.ShowthattheamountP(t)ofdollars inasavingsbankaccountattimeinstanttsatisfiestheordinarydifferentialequation
whererdenotesthenominalannualinterestrateandtisthetotaltimeinyears.
89
English++ Compound interest is the concept of adding accumulated interest back to the principal,sothatinterestisearnedoninterestfromthatmomenton.Theeffectof compoundingdependsonthefrequencywithwhichinterestiscompoundedandthe periodicinterestratewhichisapplied. Whencomputerswerescarce,banksusedtocompoundinterestperiodically,often quarterly.Thatmeantthatfourtimesayeartheywouldhavean“interestday”,when everybody’sbalancegotbumpedupbyonefourthofthegoinginterestrate.Ifyou heldanaccountinthosedays,everyyearyourbalancewouldincreasebyafactorof(1 +r/4)4,whereristhenominalannualinterestrate.Todayitispossibletocompound interestmonthly,daily,andinthelimitingcase,continuously,meaningthatyourbalancegrowsbyasmallamounteverytimeinstant. Tofindtheformulawewillstartoutwithinterestcompoundedntimesperyear.LetP0 =P(0)beaninitialamountinasavingsbankaccount.Thefuturevalueaftertyearsis
nt r P0 1+ . 100n
Notethatthetotalnumberofcompoundingperiodsisnt.Continuouscompoundingcan bethoughtasmakingthecompoundingperiodinfinitelysmall,thereforeachieved bytakingthelimitofntoinfinity.Thus,continuouscompoundingisthelimitasthe compoundingperiodapproacheszero.Wehave
P(t)=
nt r P0 1+ =P0 100n
r n/r rt/100 1+ =P0e0.01rt 100n
Thenumbereisthebaseofthenaturallogarithm(theEuler26number)andthelimit ofthefollowingsequence
e=
1+
n
2.7182818284…
Weconcludethatasnincreases,therateapproachesanupperlimitofer.Thisrateis calledcontinuouscompounding.SinceP’(t)=P0
e0.01rt=
P(t),thefunction
P(t)isthesolutionofthedesireddifferentialequation. Example23(TheRuleof72forcompoundinterest)Thecontinuousinvestmentof
ofmoneycanbedescribedbytheordinarydifferentialequationP’(t)=0.01rP(t), whereP(t)istheamountofsavingsattimetandristhenominalannualinterestrate. Investorsoftenuseamethodcalled“theruleof72”whichsaysthatanumberofyears neededtoretainaninvestmentbeforeitdoublesinvaluewiththeannualinterestrate r,isequalto72/r.Showthattheaboveruleof72merelygivesanapproximationofthe timeneededandfindtheprecisetime.
90
26L.Euler(1707–1783),aSwissmathematicianandphysicist.
English++ Solution.ThesolutionofthedifferentialequationisoftheformP(t)=P(0)e0.01rt.The conditionwhentheinvestmentdoublesinvalueattimetiswrittenasP(t)=2P(0). Hence,
2P(0)=P(0)e0.01rt
whichimpliesln2=0.01rtand
=
t=
.
Therefore,accordingtothemathematicalmodel,theruleof72shouldbereplacedby theruleof69.315. Example24(Compoundinterest)Abankpaysayearlyinterestrateof5%compounded
continuously,theinitialamountisP(0)=1000PLN 27andnomoniesarewithdrawn. Howmuchwillbeintheaccountafter2years?Whenwilltheaccountreach4000PLN? Solution.ThesolutionofthedifferentialequationisoftheformP(t)=P(0)e0.01rt.For r=5,P(0)=1000andt=2,wehave
P(2)=1000e0.01·5·2=1000e0.1=1105.2.
So,after2yearstherewillbe1105.2PLNintheaccount.Toanswerthesecondquestion,fromtheequalityP(t)=P(0)e0.01rtwecalculatetimetandget
t=
=20ln4 27.73.
=
Theaccountwillreach4000PLNafter27.73years.
10 Escape velocity Consider a projectile of constant mass m being fired vertically from Earth. Find a differential equation that governs the motion of the projectile under the Earth gravitationalforce. WeuseNewton’slawofgravitationwhichsaysthattheattractiveforcebetweentwo objectsvariesinverselyasthesquareofthedistancebetweenthem,i.e.
Fg=G
’
wherem1andm2arethemassesoftheobjects,risthedistancebetweenthem(center tocenter),GistheconstantofproportionalityandFgistheattractiveforce. Denote by r the distance between the projectile and the center of Earth, R is the radiusofEarthandMisthemassofEarth.Lettrepresenttimeandm,vthemassand thevelocityoftheprojectilerespectively.FromtheequationF=-Fg,where 27Polishzloty,PLN,isstillthecurrencyofPoland.
91
English++
F=m
andFg=G
wehave
=-
IntroducingtheaccelerationduetogravityfortheEarthg=
,weobtainthatthe
motionofprojectileisgovernedbytheequation
=-
.
Itisusefultofindthevelocityvasafunctionofthedistanceroftheprojectiletothe centeroftheEarth.Usingthefactthatv= fromtheaboveequation,weobtain
v
=-
Integratingtheequation,wefind
vdv=-gR2
.
soitsgeneralsolution
v2(r)=
+CwithC R.
WhentheprojectileleavestheEarth’ssurfacewithvelocityv0,fromtheinitialcondition v(R)=v0,wefindC=v02-2gRandthesolution
v2(r)=
+v02-2gR.
ItisclearthatthevelocityoftheprojectileremainspositiveifandonlyifC=v02-2gR>0. Thevelocity
ve=2gR
iscalledtheescapevelocityofEarth.Assumingg=9.81 andR=6370km,weobtain theEarthescapevelocity
ve=2·9.81·637·1002=11179.31 =11.18 .
Analogouscalculationsforthemoon(theaccelerationduetogravityforthemoonis gm=g/6andtheradiusofthemoonisRm=1738km)give ve=2gmRm=2·
·Rm=3.27·173.8·100=2383.93
=2.38
.
11 Atmospheric pressure TheatmosphericpressureonEarthcanbemodeledassumingtherateofitschange withrespecttotheheightabovesealevelisproportionaltothepressure.Determine
92
adifferentialequationthatgovernsthisphenomenon.
English++ Wedenotetheheightabovesealevelbyhandtheatmosphericpressurebyp(h).A reasoning analogous to that presented in Section 3 leads to the following Cauchy problemforanordinarydifferentialequationofthefirstorder
dp =-kp dh p(0)=p0
(24)
wherekisapositiveconstantandp0isthepressureonsealevel(whereh=0).The uniquesolutionto(24)isthefollowingfunction28
p(h)=p0e-kh.
Example25Supposethatatsealeveltheatmosphericpressureis1013mbar29and
atanaltitudeof20kmitisequalto50mbar.(a)Findtheatmosphericpressureatan altitudeof50km.(b)Findthealtitudeatwhichthepressureis900mbar. Solution.Letp0=1013,h=20andp(20)=50.Wewillbeabletoanswerthequestionsaftercalculatingthecoeffcientk.Fromtheequationp(h)=p0e-kh,wefind
k=
=
=0.1504km-1.
(a)Havingthevalueoftheconstantk,wehave
p(50)=p0e-50·k=1013·e-0.1504·50=0.5484
whichmeansthattheatmosphericpressureatanaltitudeof50kmisequalto0.55 mbar. (b)Thealtitudecanbeeasilyfoundfromtheequation
h=
=
=0.4668.
Theheightabovesealevelatwhichthepressureis900mbarisabout467m.
12 Other models Welistbelowafewotherphenomenawhichcanbemodeledbydifferentialequationsofthefirstorder.Formoredetails,see[5]. Mixingproblem.Theproblemofmixingthefluidinatankisanexampleofaonecompartmentsystem.Letx(t)denotetheamountofasubstanceinatankattimet. Sincethederivativeofxwithrespecttotcanbeinterpretedastherateofchangeinthe amountofthesubstanceinthetank,theproblemisdescribedbythefollowingmodel
28Cf.alsothesolutiontotheequationofradioactivedecaygivenby(4). 29Recallthat1mbar(millibar)equalsto1hPa(hectopascal).
93
English++
=inputrate-rateofexit.
Inmixingproblems,oneisoftengiventherateatwhichafluidcontainingthesubstance flows into the tank, along with the concentration of the substance in that fluid.Theinputrateistheproductoftheflowratebytheconcentration.Theoutput rateofthesubstanceisusuallymoredifficulttodetermine.Itispossibleinmany practicalproblems,cf.Section3.2of[5]. Aquaculture. Aquaculture is the art of cultivating plants and animals indigenous to water. For example, we can consider a batch of catfish raised in a pond. We are interested in finding the best time for harvesting the fish so that the cost per kilogramofraisingthefishisminimized.Thegrowthoffishcanbemodeledbya differentialequationoftheform
=kWα
whereW(t)istheweightofthefishattimet,kandαareempiricallydetermined growthconstants. Curveofpursuit.Aninterestinggeometricmodelariseswhenonetriestofindthe pathof a pursuerchasingits prey.This pathis calledthe curve of pursuit.These problemswereanalyzedusingmethodsofthecalculusofvariations30.Thesimplest problemistodeterminethecurvealongwhichavesselmovesinpursuinganother vesselthatfleesalongastrightline,supposingthespeedsoftwovesselsareconstant. Secretion of hormones. The secretion of hormones into blood is often a periodic activity.Ifahormoneissecretedona24-hrcycle,thentherateofchangeofthelevel ofthehormoneinthebloodmayberepresentedbythefollowingCauchyproblem
dx =α -β cos -kx dt x(0)=x0 ,
wherex(t)istheamountofthehormoneinthebloodattimet,αistheaveragesecretion rate,βistheamountofdailyvariationinthesecretion,andkisapositiveconstant reflectingtherateatwhichthebodyremovesthehormonefromtheblood.
94
30ItwasLeonardodaVinci(1452-1519)whoconsideredthisproblem.
English++ References [1]Z.Denkowski,S.MigórskiandN.S.Papageorgiou, AnIntroductiontoNonlinear
Analysis:Theory.KluwerAcademic/PlenumPublishers,Boston,Dordrecht,London, NewYork(2003). [2] Z. Denkowski, S.Migórski and N.S. Papageorgiou, An Introduction to Nonlinear
Analysis: Applications. Kluwer Academic/Plenum Publishers, Boston, Dordrecht, London,NewYork(2003). [3]G.DuvautandJ.L.Lions,InequalitiesinMechanicsandPhysics,SpringerVerlag, Berlin(1976). [4]N.GarciaandA.C.Damask,PhysicsforComputerScienceStudents,JohnWiley& Sons,NewYork,NY(1986). [5]R.K.NagleandE.B.Saff, FundamentalsofDifferentialEquationsandBoundary
ValueProblems,Addison-Wesley,Reading,MA(1999).
95
English++
Exercises Pre-reading questions 1.Doyouknowhowtobuildamathematicalmodel? • Clearlystatetheassumptionsonwhichthemodelwillbebased.Theseassumptions shoulddescribetherelationshipsbetweenthequantitiestobestudied. • Completelydescribetheparametersandvariablestobeusedinthemodel. • Usetheassumptionsfromstep1toderivemathematicalequationsrelatingthe parametersandvariablesfromstep2. 2.Doyouthinkthattheoreticalmathematicalmodelcanbeappliedtosolvepractical problems?
Comprehension questions 1.Howcanwecheckamodelforsystemcorrectness? • In general, once we have built a set of equations, we compare the data generatedbytheequationswithrealdatacollectedfromthesystem(bymeasurement). Whenthetwosetsofdata”agree”(orare”sufficiently”close),wegainconfidence thatthesetofequationswillleadtoagooddescriptionofthereal-worldsystem. 2.Inwhatsituationistheuseofdifferentialequationsobvious? • Wheneveramathematicalmodelinvolvestherateofchangeofonevariablewith respecttoanother. 3.WhatdoesNewton’slawofcoolingstate? • Itisknownfromexperimentalobservationsthatthesurfacetemperatureofan objectchangesatarateproportionaltoitsrelativetemperature.Thelatteristhe differencebetweenitstemperatureandthetemperatureofthesurroundingenvironment.
Further reading ThewholearticleislocatedonEnglish++webpage.
96
English++
Writing Software Patterns Martin Fowler Numberofwords
980(selectedpart)
Computersciencecontent
Medium
Businesscontent
Medium
Englishlanguagecomplexity
Medium
Sub-areas covered Softwareengineering • Object-orientedprogramming
Learning objectives • tounderstandwhatdesignpatternsare • toseewhypatternsaresoimportantinsoftwaredevelopment • tobeawareofthebasiccharacteristicsofpatterns
Keywords • designpattern-ageneralrepeatablesolutiontoacommonlyoccurringproblemin softwaredesign.Adesignpatternisnotafinisheddesignthatcanbetransformed directlyintocode.Itisadescriptionortemplateforhowtosolveaproblemthat canbeusedinmanydifferentsituations. • cookbook-abookofrecipesandsolutionsfordifferentproblemsonwritingsoftware, usuallyconnectedwithaparticularprogramminglanguageandplatform • patternsbook-abookondesignpatterns • identitymap-adatabaseaccessdesignpatternusedtoimproveperformanceby providingacontext-specificin-memorycachetopreventduplicateretrievalofthe sameobjectdatafromthedatabase • decoratorpattern-adesignpatternthatallowsnew/additionalbehaviourtobe addedtoanexistingclassdynamically
Summary MartinFowlerisafamousauthorandinternationalspeakeronsoftwarearchitecture, specializinginobject-orientedanalysisanddesign,UML,patterns,andagilesoftware developmentmethodologies,includingextremeprogramming.Hisarticleisakindof introductiontothesoftwaredesignprocess.Heistryingtoshow,withahandfulof examples,whydesignpatternsareimportantinsoftwareengineering.
97
English++ Martin Fowler, autor licznych prac związanych z inżynierią oprogramowania, specjalizującysięmiędzyinnymiwprojektowaniuiprogramowaniuobiektowo-orientowanym,UML,wzorcachprojektowychi“zwinnych”technikachwytwarzaniaoprogramowania (agile software development methodologies), w tym także w technice programowania“ekstremalnego”.Jegoartykułstanowirodzajwstępudoopisuprocesu projektowania oprogramowania. Autor wyjaśnia znaczenie wzorców projektowych wtymprocesie,popierającswojąwypowiedźlicznymiprzykładami.
Pre-reading questions 1.Whatdoyouthinkmighthelpinbuildingsoftware?Whatcouldmakethisprocess fasterandmoreeffective? 2.Doyouthinkthatusingordinarysolutionsmighthelporwouldthatbeuselessin aspecifictask? 3.Whattypesofsoftwarepatternsdoyouknow?Whichoneisyourfavouriteand why?
98
English++
Writing Software Patterns What is a Pattern? Acommondefinitionofapatternisthatitisasolutiontoaprobleminacontext.
identitymap
That’sadefinitionthat’salwaysstruckmeasbeingratherunhelpful.
adatabaseaccess
Forme,apatternisprimarilyawaytochunkupadviceaboutatopic.Chunkingis importantbecausethere’ssuchahugeamountofknowledgeyouneedtowritesoftware. Asaresultthereneedsbewaystodivideknowledgeupsoyoudon’tneedtoremember itall-whatyouneedistobeabletogetataparticularchunkofknowledgewhenyou needit.Onlythendoyouneeddetails.
designpatternusedto improveperformance byproviding acontext-specific in-memorycache toprevent
Thesolutionprovidesausefulfocusforthechunking.Withsomeyoungeagerpro-
duplicateretrievalofthe
grammer asking some grizzly veteran (i.e. anyone over thirty) how to deal with a
sameobjectdata
particularsituationandheartheveteransay“oh-you’llneedanidentitymapthere”.
fromthedatabase
Thecolleaguecanthenlookupidentitymapinsomesuitablepatternsbook. Sotomakethischunkingworkeachpatternshouldnameasolution.Thissolution shouldbeconcrete,atleastatthelevelofdiscussionwearetalkingabout.Youshould be able to go away and use the pattern once you’re given the reference. If you’re successfulthenameshouldenterthevocabularyoftheprofession.Itcantakeawhile
patternsbook
todothis,butwhenyousay‘decorator’anyreasonableprofessionalshouldknow
abookondesignpatterns
whatyoumean. Patternsshouldhaverecurrence,whichmeansthesolutionmustbeapplicableinlots ofdifferentsituations.Ifyouaretalkingaboutsomethingthat’saone-off,thenit’s notaddingthenametotheprofession’svocabulary. One of the interesting things here is that a singular solution can often lead to a recurrentpattern.Thisusuallycropsupwhenyouseetwodifferentsingularsolutions whichlookcompletelydifferentonthesurface,yethaveadeepersimilarity-what ChristopherAlexander*referstoasthe“coreofthesolution”.Letmegiveanexample forthis.IwaslookingatoneofourearlyJavawebprojects.Onthisprojecttheteam
* Christopher Alexander (born October 4, 1936 in Vienna, Austria) is an architect noted for histheoriesaboutdesign.Heconcludedthatmanydesignproblemsaresocomplexandso ancientthattheyarebestresolvedbylearningfromsolutionswhichhaveprovedsuccessfulover anendlessperiodoftime.Hedescribesthesesolutionsas‘archetypes’or‘patterns’.Theyare particularlyusefulinoutdoordesign,wherepatternsarecomparativelyeasytoidentifyand difficult to explain. He characterizes this approach in the following words: “Each pattern describesaproblemwhichoccursoverandoveragaininourenvironment,andthendescribes thecoreofthesolutiontothatprobleminsuchawaythatyoucanusethissolutionamilliontimesover,withouteverdoingitthesamewaytwice”:http://www.lih.gre.ac.uk/resource/ archetype.htm
99
English++ wasn’tallowedtouseJSPs.SotheywroteasetofJavaclasseswhichwalkedthrough astructureofdomainobjects,andproducedtheappropriateHTMLforaparticular domainobject.Theynoticedtheyweregettingduplicationinthecodeforspitting designpattern
outcommonHTMLstructuresforfields,tables,etc.SotheypulledalloftheHTML
ageneralrepeatable
spittingcodeoutintoasecondutilityclassthathadmethodslikerenderField(String
solutiontoacommonly
label).Whentheydidthistheynoticedthattheycouldmakedrasticchangestothe
occurringproblem insoftwaredesign. Adesignpatternisnot afinisheddesign thatcanbetransformed directlyintocode. Itisadescription
entirewebapplication’sappearancejustbyalteringcodeintheutilityclass. Later on I saw a different project. They were using XSLT to turn XML into HTML pages,muchasIdoonthissite.Buttheyneededtosupportmultipleorganizations whowantedthesamedatadisplayedintheirownformat.Sotheysplitthetransformationintotwosteps,firstproducinganintermediateXMLwithelementslikefield andtable,withthesecondstageactuallyproducingtheHTML.Theywouldhavea differentsecondstageforeachorganization.
ortemplateforhowto solveaproblemthat
AlthoughitseemsobviousasIwriteitnow,whenIfirstsawthesetwoprojectsI
canbeusedinmany
sensedtherewassomethingsimilarintheirapproaches.However,ittookmeseveral
differentsituations.
monthstounderstandthekeypoint-splittingatransformationintotwosteps:logical pageandphysical(HTML)page.Thisisthe“coreofthesolution”whichIwroteup asTwoStepView.Oneofthegreatintellectualchallengesofpatternsisfindingand isolatingthiscoreamongstallthesurroundingstuffthat’sneededonrealprojects.
Patterns versus Recipes decoratorpattern
Apopular,andveryeffective,formoftechnicalwritingisthecookbookstyle(egThePerl
adesignpattern
Cookbook,RailsRecipes).Thereisalotofsimilaritybetweencookbooksandpatterns
thatallowsnew/additional behaviourtobeadded toanexistingclass dynamically
books.Bothemphasizeaproblem-solutionstyle. Iseethebigdifferencebetweenthetwointhenotionofbuildingavocabulary.Recipes tend to be more particular, usually tied to a particular programming language and platform.Evenwhenpatternsaretiedtoaplatform,theytrytodescribemoregeneral concepts. As a consequence of this recipes have a stronger problem focus than the solution focusinpatterns. Althoughmywritinginterestisinpatterns,thisreflectsmyinterestingeneraldesign principlesratherthanajudgmentontherelativeusefulnessofthetwostyles.Bothare effectiveforsamebasicreason-theychunkbasedonaconcretethingsomebodywants togetdonetoday.AsaresultIfindbothveryeffective.Youcanalsolearngreatprinciples fromthem,butit’stheanswerstoparticularquestionsthatbringyoutothetable.
100
English++ Why are Patterns important? OneofthequotesthatIfindparticularlyappealingwhenIthinkabouttheneedfor
cookbook
patternsthatthatpartofinterestinpatternscamefrom“…observationsthatprojects
abookofrecipes
faildespitethelatesttechnologyforlackofordinarysolutions”[PLoPD1].Patterns
andsolutions
provideawaytoorganizeandnamethoseordinarysolutionstomakeiteasierfor
fordifferentproblems
peopletousethem.
onwritingsoftware,
Since these solutions are ordinary, it’s common that experts in a field won’t find anythingnewinapatternsbook.Forsuchpeoplethebiggestvalueofapatternsbook istohelpthemtopassonthesolutionstotheircolleagues.
usuallyconnectedwith aparticularprogramming languageandplatform.
Despitemylikingforpatterns,Idon’tthinkthatpatternsaretherightapproachfor allsituations.Eveninmyownlatestpatternsbook,Iusedamixtureofpatternsand narrativetext.Ithinkthepatternshelpedfocusthenarrativeandprovidedagood way for me to separate the details of the solutions from the overview discussion of them. Patterns are a communication medium, and like any communication technique there are situations where they work well and those where they work badly.Practiceandfamiliarityhelpyoutellthedifference.
101
English++
Exercises Pre-reading questions 1.Whatdoyouthinkmighthelpinbuildingsoftware?Whatcouldmakethisprocess fasterandmoreeffective? 2.Doyouthinkthatusingordinarysolutionsmighthelporwouldthatbeuselessin aspecifictask? 3.Whattypesofsoftwarepatternsdoyouknow?Whichoneisyourfavouriteand why?
Comprehension questions 1.Whatarethedifferencesandsimilaritiesbetweencookbooksandpatternbooks? 2.Whatarethemaincharacteristicsofpatterns?Nameatleastthreekeyfeatures ofthem. • chunkinginformation,namingasolution,recurrence/coreofthesolution 3.Whatdoyouunderstandby: a.recurrenceofthepattern? • solutionmustbeapplicableindifferentsituations b.coreofthesolution? • adeepersimilarityofproblems 4.Whyareordinarysolutionssoimportant?Howcantheyhelpinwritingsoftware? • e.g.byprovidingwell-knownandtestedsolutionsfornewproblems 5.Explainhowpatternscanbeusedasacommunicationtechnique.
Further exercises •ArethefollowingstatementsTRUEorFALSE? 1.Theauthordefinesapatternasthesolutiontoaprobleminacontext.
(FALSE)
2. According to the author of the text, dividing knowledge up simplifies writing software.
(TRUE)
3.Ifyoufindasolutiontoasingularproblemit’scompletelyuselessasapattern. (FALSE,youcanevolveitintoawide-contextsolution) 4. In the author’s opinion, recipes are more general than patterns and you can basicallylearnprinciplesfromthem.
(FALSE)
5. The main similarity between recipes and patterns is the idea of chunking informationtomakefindinganswersforparticularquestionseasier.
102
(TRUE)
6.Theauthorrecommendsusingpatternsinallpossiblesituations.
(FALSE)
English++ •Findwordsorphrasesinthetextthatmatchthefolowingmeanings: 1.breakup,divideupsomething(e.g.information,text);[chunkup] 2.totrytofindapieceofinformationinabookoronacomputer;[lookup] 3.affectingorrelatingtoapersonorthing;[applicable] 4.makeausefulcontributiontoadiscussion;[bringtothetable] 5.release(e.g.results);[spitout] 6.belieforidea,approachtosomeproblem[notion]
Possible topics for discussion • Whataredesignpatternsinarchitecture? • Whatcouldthistermrefertoinsoftwareengineering? • Whichdesignpatternshaveyoumetsofar?(e.g.MVC-Model-View-Controller)
Possible difficulties Nodifficultiesshouldbefoundinthatpartofthearticle.
Reading suggestions • http://en.wikipedia.org/wiki/Design_pattern_(computer_science) • ErichGamma,RichardHelm,RalphJohnsonandJohnVlissides:DesignPatterns: ElementsofReusableObject-OrientedSoftware
Possible links to other topics • SoftwareEntropy • SoftwareDevelopmentProcess • ExtremeProgramming
103
English++
Cyber Warfare: Reality or Box Office Hit? Randy Nash Numberofwords
1600
Computersciencecontent
Medium
Englishlanguagecomplexity
Medium
Learning objectives • toacquirebasicknowledgeaboutcyberthreats • toacquireknowledgeabouttypesofcyberattacks
Sub-areas covered • Networksafety • cyberattacks
Keywords • cyberwar-theusageofcomputersandtheInternetinconductingwarfareinthe cyberspace • cybervandalism-cyberattacksthatdefacewebpages • hacktivism-combinationofwords:“hack(er)”and“activism” • DenialofService-akindofcyberattackwhichresultsinunavailabilityofservice. Itusestwomethods:forcingthetargetedcomputer(s)toreset,thusconsuming itsresourcessothatitcannolongerprovideitsintendedservice;orobstructing the communication media between the intended users and the victim so that theycannolongercommunicateadequately. • mainframe-computerusedbylargecompaniesforcriticaloperationslikefinancial transactionprocessing • bot-aprogramusedontheInternetthatperformsarepetitivefunctionsuchas postingamessagetomultiplenewsgroupsorsearchingforinformationornews • botnet-acollectionofsoftwarerobots,orbotslinkedandcooperatingwitheach other
Summary Ashorttext,whichisagoodintroductiontothetopicofnetworksecurity.Thereis
104
apresentationofcyberterrorismasanewthreat.Themajorityofpeoplearenotyet awareofhowdangerousthisphenomenonis.Theauthorgivesexamplesofthelargest
English++ attacksinthepastanddescribesthemostpopulartechniques.Thearticleisalsoa goodintroductiontoalongdiscussionaboutprevention,awarenessofthethreatand thefuture. Krótkitekstwprowadzającywtematykębezpieczeństwawsieci.Przedstawiawizję zupełnienowegorodzajuzagrożeniajakimjestcyberterroryzm.AutoremjestRandy Nash,któryopróczkilkuartykułównaportaluInformIT.com,prowadziswójwłasny blog nt związane z bezpieczeństwem w sieci. Autor podaje przykłady największych atakówwhistoriiiopisujepokrótcekilkanajpopularniejszychtechnik.Artykułponad- toprowokujedodyskusjioświadomościzagrożenia,prewencjiiprzyszłości.
Pre-reading questions 1. Whatdoesthethreatofcyberterrorismmeantoyou? 2. Where,inyouropinion,doesthemainthreatofcyberterrorismcomefrom? 3. Haveyouthoughtaboutthethreatofcyberterrorism?
105
English++
Cyber Warfare: Reality or Box Office Hit? The specter of cyber warfare has reared its ugly head in the media again. Some expertsseemtothinkthatthefutureishere,andbattleswillbefoughtandwonvia theInternet.Buthowmuchofthiscanbeconsideredactualwarfare,andhowmuch ishype?RandyNashsearchesforaworkingdefinitionofcyberwarfare,looksatthe historical profile of attacks, and discusses the potential of a devastating electronic PearlHarbor. cyberwar theusageofcomputers
Thethreatofcyberwarfarehasbeenbroughtforthagainbythemedia;notonlyinnews outletsbutalsointheentertainmentindustry.Butisthisthreatrealorimagined?
andtheInternet inconductingwarfare inthecyberspace
What Is Cyber Warfare? Toproperlyassesstherisk,wefirstneedaworkingdefinitionofwhatcyberwaris andhowitmightmanifest.Thereismuchdisagreementaboutthetermanditsactual
cybervandalism cyberattacks thatdefacewebpages
definition,andvaryingdegreesinthetypesofcyberattacksthatmightbeperpetrated. I think cyber warfare has some critical characteristics. First, warfare is considered theprocessofmilitarystrugglebetweentwonationsorgroupsofnations.Warfare generallyincludesattacksagainstcriticalcommunicationschannels,andagainstthe militaryandcivilianpopulationresultinginlossoflife.Next,thecyberaspectcan beconsideredtorefertotherealmofelectroniccommunication.SoIthinkwecan summarizethedefinitionofcyberwarasfollows:cyberwar(Cyberwarfare):theprocess ofmilitarystrugglebetweentwonationsorgroupsofnationsconductedviavarious formsofelectroniccommunications,ortheInternet,resultinginthedisruptionof communicationsand/orlossoflife.
What Is It Not? Okay,wehaveadefinitionofcyberwar,butwhatareotherformsofcyberthreats thatwouldnotfitintothedefinitionofcyberwarfare?Here’salistofsomeonline threatsthatIdon’tfeelfallintothewarfarecategory: Cybervandalism:Thisisprimarilythe“scriptkiddies”thatconsiderdefacingawebsite tobe“hacking.”Ithinkofthisaselectronicgraffiti.Thisislow-levelharassment. Civildisobedienceorhacktivism:HacktivismorElectronicCivilDisobedience(ECD) generallytakessomeformofDenialofService(DoS)attackagainstthewebsiteof some target, usually political in nature. Those who consider themselves hactivists claimthathacktivismisthefusionofhackingandactivism;politicsandtechnology. Morespecifically,hacktivismisdescribedashackingforapoliticalcause.Furthermore, hacktivists claim that Electronic Civil Disobedience (ECD) is a legitimate form of
106
nonviolent,directactionutilizedtobringpressureoninstitutionsengagedinunethical or criminal actions. Within the electronic environment, ECD aims to disrupt the
English++ operationofinformationandcapitalflowsofcarefullyselectedtargetsiteswithout causingseriousdamage. Cybercrime:Cybercrimecantakemanydifferentforms;theftofintellectualproperty, extortionbasedonthethreatofDDOSattacks,fraudbasedonidentitytheft,espionage,
andsoon. While each of these types of activities is criminal in nature and might constitute anaspectofcyberwarfareactions,theydonotconstitutecyberwarbythemselves. Theseactions,whilecriminalinnature,aregenerallynotgoingtocostlivesoraffect militaryoperations.
What is the Real Threat?
DenialofService
Thethreatcomesprimarilyfromnationstateswiththewill,motive,andtechnology
akindofcyberattack
to launch attacks against the United States. In fact, nations that do not possess a
whichresultsin
powerful military are probably more likely to choose this form of attack because
unavailabilityofservice.
ofitsmuchlowercostofimplementation(think“asymmetricwarfare”).Themost
Itusestwomethods:
obviousavenuesofattackwouldbeagainstournation’scriticalinfrastructure,sothe
forcingthetargeted
governmentformedabodytoanalyzeanythreatsagainstourinfrastructure.Thisbody,
computer(s)toreset,
originallyknownasthePresident’sCriticalInfrastructureProtectionBoard(PCCIB),
thusconsuming
isnowknownastheNationalInfrastructureAdvisoryCouncil(NIAC)andoperates
itsresourcessothat
withintheU.S.DepartmentofHomelandSecurity.ThiscouncilprovidesthePresident
itcannolongerprovide
withadviceonthesecurityofthecriticalinfrastructuresectorsandtheirinformation
itsintendedservice;
systems.Overtime,thesectorsidentifiedasbelongingtothecriticalinfrastructure
orobstructing
havechanged.
thecommunicationmedia betweentheintended
Historical Precedents Justasourunderstandingofthiscriticalinfrastructurehaschangedandmaturedover time,sohasthethreat.Thesethreatshaveexistedforsometime.BackinMay1998, allsevenmembersoftheL0pht(BrianOblivion,Kingpin,Mudge,SpaceRogue,Stefan
usersandthevictimso thattheycan nolongercommunicate adequately.
VonNeumann,JohnTan,andWeldPond)famouslytestifiedbeforetheCongressof theUnitedStatesthattheycouldshutdowntheentireInternetin30minutes. NOTESelectedtranscriptsareinthesectionentitled“WEAKCOMPUTERSECURITY INGOVERNMENT:ISTHEPUBLICATRISK?”MAY19–20,1998—COMMITTEEON GOVERNMENTALAFFAIRS. Shortly after this testimony, the first distributed denial-of-service (DDoS) attacks appeared.Thefirstwell-documentedDDoSattackappearstohaveoccurredinAugust 1999, when a DDoS tool called Trinoo (described below) was deployed in at least 227systems,ofwhichatleast114wereonInternet2,tofloodasingleUniversityof
107
English++ Minnesotacomputer.Thissystemwasknockedofftheairformorethantwodays. Inthefollowingmonths,Yahoo!,Amazon,Buy.com,CNN,andeBaywereallhitwith similar attacks. These commerce sites suffered large financial losses during the downtimebecauseoftheseattacks.Today,incrediblylargeandcomplexbotnetsexist thatcanbeusedtolaunchavarietyofattacksagainstmultipletargets. mainframe
ThecurrentfocusofthesebotnetsappearstobeprimarilySPAMandDDoSattacks,
computerused
but they could easily be used in cyber warfare activities. Other attacks of historic
bylargecompaniesf orcriticaloperations likefinancialtransaction processing
significanceincludethefollowing: SolarSunrise:SolarSunriseisthenamegiventoaseriesofattacksagainstthePentagon andMITinFebruary1998.TheDepartmentofDefensecalledtheseattacks“themost organizedandsystematicattacktodate.”TheDoDactuallydeclaredtheU.S.tobein astateof“cyberwar.”TheseattacksappearedtobeoriginatingfromRussian-owned IPaddressspace,sotheattackwasconsideredtobe“state-sponsored.” Moonlight Maze: Moonlight Maze refers to an incident in which U.S. officials accidentallydiscoveredapatternofprobingofcomputersystemsatthePentagon, NASA,EnergyDepartment,privateuniversities,andresearchlabsthatbeganinMarch 1998andwentonfornearlytwoyears.Itseemsthatthesehackershadbeenable toaccesstensofthousandsoffiles(includingmapsofmilitaryinstallations,troop configurations,andmilitaryhardwaredesigns).TheDefenseDepartmenttracedthe attacksbacktoamainframecomputerintheformerSovietUnion.
bot aprogramused ontheInternetthat performsarepetitive functionsuchasposting
TitanRain:TitanRainisthenamegiventoawell-organizedChinesemilitaryhacking effort against the U.S. military. The hackers, believed to have been based in the Chinese province of Guangdong, are thought to have stolen U.S. military secrets, includingaviationspecificationsandflight-planningsoftware.Theseattacksapparently startedin2003andlasteduntil2005.
amessagetomultiple newsgroupsorsearching
Current Situations
forinformationornews
Muchofthenewsrelatedtocyberwarfaretendstobeabit“sensational”.Forexample: RussiaaccusedofunleashingcyberwartodisableEstonia,Estoniahitby“Moscow cyberwar”,Cyberwar:Russiavs.Estonia. Allthissoundsverydramaticandserious,butlet’slookatthedetails.OnApril27, officials in Estonia relocated the “Bronze Soldier,” a Soviet-era war memorial commemoratinganunknownRussianwhodiedfightingtheNazis.Thisledtopolitical furoramongethnicRussiansandtotheblockadingoftheEstonianEmbassyinMoscow. Theeventalsomarkedthebeginningofalargeandsustaineddistributeddenial-of
108
-serviceattackonseveralEstoniannationalWebsites,includingthoseofgovernment
English++ ministriesandtheprimeminister’sReformParty.Therewerenoattacksagainstany criticalinfrastructureorservices.Thiswassimplyapoliticalstatement.Atthemost, I’drefertothiseventashacktivism,andmostlikelylaunchedbyagroupofhackers thathavenoaffiliationwithanygovernmentagency.Itseemstherewasnocyberwar afterall.Butwait,that’snotall:Americapreparesfor“cyberwar”withChina! IsCyberwarreallythatimminent?Areweabouttofallunderanattackofbitsand bytes?AreportintheUKbranchofZDNetproclaimedCyberwarfare“arealityin12 months.” Unfortunately,thatreportwasbackinJanuary2004.Thearticleisagoodsourceof
botnet
informationaboutthetypesofvulnerablesystemsthatmaybeattacked,buttheir
acollectionof
predictedtimelineiswayoff..
softwarerobots,
CyberWarfare—Ananalysisofthemeansandmotivationsofselectednationstates For a more measured appraisal, I recommend this report, which was written in responsetoagrantprovidedbytheDepartmentofHomelandSecurity.Thisreport
orbotslinked andcooperating witheachother
is an assessment of potential foreign computer threats to information technology networksintheUnitedStates.Thisisoneofthemostlevel-headedwrite-upsI’ve seento-date.
Looking to the Future Thereshouldbelittledoubtthatfuturewarswillinevitablyincludecyberwarfare tactics.Itisincreasinglyapparentthatothernationsaregearinguptotakeadvantage oftheever-increasingcomplexityandinter-connectednatureofvariousnationalinfrastructures. Current efforts at security computer systems and networks will likely prove to be
hacktivism
insufficient to prevent such future attacks. The U.S. military has been developing
combinationofwords:
cyberwarfarestrategiesforsometime.
“hack(er)”
ItappearsthatevenAlQaedahasbeendevelopingcyberwarcapabilities.Withour
and“activism”
enemies working toward this goal, we obviously cannot overlook the possibilities. The scenario in the movie Live Free or Die Hard might seem farfetched, but the potentialexistsforsomeoftheattacksportrayedinthatmovie(althoughitwon’tbe nearlyaseasyasitseemedonthebigscreen).I’mhopingthatsomewhereineither ourgovernmentormilitarycyberdefenseforceswehaveourownJohnMcClane?
109
English++
Exercises Pre-reading questions 1. Whatdoesthethreatofcyberterrorismmeantoyou? • dangerousfinancialtransactions • theftdatafromharddisk • eavesdroptrafficinnetwork 2. Where,inyouropinion,doesthemainthreatofcyberterrorismcomefrom? • nowadays-hackersactedindividually,usuallywanttoprovetheirskills • inthefuture–verygoodorganisedteamsofspecialists,supportedbygovernment institutions 3. Haveyouthoughtaboutthethreatofcyberterrorism?
Comprehension questions 1. UsingtheinformationinthetextaboutthefirstDDoSattackandyourown knowledge,trytoexplainhowDDoSworks? • Adistributeddenialofserviceattackoccurswhenmultiplecompromisedsystems floodthebandwidthorresourcesofatargetedsystem,usuallyoneormoreweb servers.Itusestwomethods:forcingthetargetedcomputer(s)toreset,consume itsresourcessuchthatitcannolongerprovideitsintendedserviceorobstructing the communication media between the intended users and the victim so that theycannolongercommunicateadequately. 2. Canyounamethelarge-scaleattacksandwhotheyweredirectedagainst? • SolarSunrise:SolarSunriseisthenamegiventoaseriesofattacksagainstthe PentagonandMITinFebruary1998. • Moonlight Maze: Moonlight Maze refers to an incident in which U.S. officials accidentallydiscoveredapatternofprobingofcomputersystemsatthePentagon, NASA,EnergyDepartment,privateuniversities,andresearchlabsthatbeganin March1998andwentonfornearlytwoyears. • Titan Rain: Titan Rain is the name given to a well-organized Chinese military hackingeffortagainsttheU.S.military.
Further exercises Ingroups,explainthemeaningofthesewords: • hacktivism • mainframe • cyberdefense • bot • botnet
110
Compareyouranswerswithothergroups.
English++
Possible topics for discussion 1. Doyouknowofanyotherkindsofcyberattacksorthreats?Whichdoyouthink, arethemostdangerousforyou? 2. Areyouafraidofthiskindofthreat?Doyouthinkyoumightlosesomethingina cyberattack?
Possible difficulties Thearticlecontainsalotoffactualinformation,butitshouldmakeiteasiertoread.
111
English++
Evolutionary Database Design Martin Fowler & Pramod Sadalage Numberofwords
4345
Computersciencecontent
Medium
Englishlanguagecomplexity
Medium
Sub-areas covered • databasedesign • agilemethodologies
Learning objectives • tounderstandthedifferencesbetweenup-frontandagilemethodologies • toseewhyteamcommunicationissoimportantwhileworkingonaproject • tounderstandwhatismeantbyrefactoring
Keywords database-softwaredesignedforholdinglargeamountsofdata databaseschema-adescriptionofthetablesandviewsinadatabasetogetherwith therelationshipsbetweenthem Agile Methodology - a particular method of producing software, emphasising self-organizingteamsandbroadcustomer-programmercontact XP (extreme programming) - a programing methodology which is very closely connectedwiththeAgilestyle up-frontdesigning-describesamethodinwhichthedesignphaseofaprojectis completedbeforethecodingoftheprojectbegins DBA-databaseadministrator;themainroleofadatabaseadministratorhastodo with overseeing the installation and ongoing function of software on a system designedforusebyanumberofusers refactoring - making changes to a computer system (e.g. source code, database) thatimproveitsreadabilityandsimplifyitsstructurewithoutaddinganynew functionality;forexample,changingthenamesofvariablestobemorereadable
Summary Martin Fowler is a widely acknowledged expert in the areas of software design, methodologies and design patterns. In this article he introduces an alternative (to
112
waterfall methodology) method of developing databases and programs. The main
English++ ideaistoregarddatabasedesignasanevolutionaryprocess. Tekst,choćdośćdługi,ciekawieprzedstawiapodejściedoprojektowaniabazdanych w sposób podobny do zwinnego programowania. Artykuł wprowadza w tematykę tejnowejmetodologii,jakoalternatywydlatzw.metodologii“waterfall”.Dostajemy wiele informacji na temat tego jak traktować projektowanie baz danych w sposób jakbytobyłdużyewoluującyobiekt.
Pre-reading questions 1.HaveyouheardaboutAgileMethodology?Whataretheyusedfor? 2.WhatdoesDBAstandfor? 3.WhatareDBA’sfunctions?
113
English++
Evolutionary Database Design Abstract database
Over the last few years the authors have developed a number of techniques that
software
allowadatabasedesigntoevolveasanapplicationdevelops.Thisisaveryimportant
designedforholding
capability for agile methodologies. The techniques rely on applying continuous
largeamountsofdata
integrationandautomatedrefactoringtodatabasedevelopment,togetherwithaclose collaborationbetweenDBAsandapplicationdevelopers.Thetechniquesworkinboth pre-productionandreleasedsystems. Inthelastfewyears,we’veseentheriseofanewbreedofsoftwaremethodologies, theagilemethodologies.Thesemakesomenewandsignificantdemandsondatabase design.Oneofthemostcentralofthesedemandsistheideaofevolutionarydesign. Onanagileprojectyouassumethatyoucannotfixtherequirementsofthesystem up-front. As a result having a detailed design phase at the beginning of a project becomes impractical. The design of the system has to evolve through the various iterationsofthesoftware.Agilemethods,inparticularextremeprogramming(XP), haveanumberofpracticesthatmakethisevolutionarydesignpractical. Manypeoplehavequestionedwhetherevolutionarydesigncanbeappliedtoasystem withalargedatabasecomponent.Indeedmanypeopletoldusthatitwasimpossible -atroublingthoughtasThoughtWorksembarkedonalargedatabase-orientedproject usingmanyagileandXPtechniques. Thisarticledescribesthepracticesthatwe’veusedtoallowustodothisimpossible thing.Wewon’tsaythatwe’vecompletelysolvedthedatabaseevolutionproblem, butwedothinkwe’vedemonstratedasetoftechniquesthatmanypeoplewillfind useful.
Dealing with Change Oneoftheprimaryfeaturesofagilemethodsistheirattitudetowardschange.Most ofthethinkingaboutsoftwareprocessisaboutunderstandingrequirementsearly, signing off on these requirements, using the requirements as a basis for design, signing off on that, and then proceeding with construction. This is a plan-driven cycle,oftenreferredto(usuallywithderision)asthewaterfallapproach. Suchapproacheslooktominimizechangesbydoingextensiveup-frontwork.Oncethe earlyworkisdone,changescausesignificantproblems.Asaresultsuchapproaches runintotroubleifrequirementsarechanging,andrequirementschurnisabigproblem forsuchprocesses.
114
English++ Agileprocessesapproachchangedifferently.Theyseektoembracechange,allowing changes to occur even late in a development project. Changes are controlled, but theattitudeoftheprocessistoenablechangeasmuchaspossible.Partlythisisin responsetotheinherentinstabilityofrequirementsinmanyprojects,partlyitisto better support dynamic business environments by helping them change with the competitivepressures. Inordertomakethiswork,youneedadifferentattitudetodesign.Insteadofthinking ofdesignasaphase,whichismostlycompletedbeforeyoubeginconstruction,you
databaseschema
lookatdesignasanon-goingprocessthatisinterleavedwithconstruction,testing,
adescriptionofthetables
andevendelivery.Thisisthecontrastbetweenplannedandevolutionarydesign.One
andviews
ofthevitalcontributionsofagilemethodsisthattheyhavecomeupwithpractices
inadatabasetogether
thatallowevolutionarydesigntoworkinacontrolledmanner.Soinsteadofthecommon
withtherelationships
chaosthatoftenhappenswhendesignisn’tplannedup-front,thesemethodsprovide
betweenthem
techniquestocontrolevolutionarydesignandmakethempractical. An important part of this approach is iterative development, where you run the entiresoftwarelife-cyclemanytimesduringthelifeofaproject.Agileprocessesrun completelifecyclesineachiteration,completingtheiterationwithworking,tested, integratedcodeforasmallsubsetoftherequirementsofthefinalproduct.These iterationsareshort,usuallyrunningbetweenaweekandacoupleofmonths,witha preferencetowardsshorteriterations. Whilethesetechniqueshavegrowninuseandinterest,oneofthebiggestquestions ishowtomakeevolutionarydesignworkfordatabases.Mostpeopleconsiderthat databasedesignissomethingthatabsolutelyneedsup-frontplanning.Changingthe database schema late in the development tends to cause widespread breakages in application software. Furthermore changing a schema after deployment results in painfuldatamigrationproblems. Overthecourseofthelastthreeyearswe’vebeeninvolvedinalargeproject(called Atlas) that has used evolutionary database design and made it work. The project involvedalmost100peopleinmultiplesitesworld-wide(US,Australia,andIndia).It isaroundhalfamillionlinesofcodeandhasover200tables.Thedatabaseevolved duringayearandahalfofinitialdevelopmentandcontinuestoevolveeventhoughit’s inproductionformultiplecustomers.Duringthisprojectwestartedwithiterations ofamonth,butafterafewmonthschangedtotwoweekiterationswhichworked better. The techniques we describe here are the ones that we (or more accurately Pramod)usedtomakethiswork. Sincethatprojectgotgoingwe’vespreadthesetechniquesovermoreofourprojects, gainingmoreexperiencefrommorecases.We’vealsofoundinspiration,ideas,and experiencefromotheragileprojects.
115
English++ Limitations Beforewediveintothetechniques,it’simportanttostatethatwehaven’tsolvedall theproblemsofevolutionarydatabasedesign.Inparticular: • We developed an application database for a single application rather than an integrationdatabasethattriestointegratemultipledatabases. • Wedon’thavetokeeptheproductiondatabasesup24/7 Wedon’tconsidertheseproblemstobeinherentlyunsolvable,afterallmanypeople believedwecouldn’tsolvethisone.Butuntilwedo,wewon’tclaimwecansolve themeither.
The Practices Our approach to evolutionary database design depends on a handful of important practices.
DBAs collaborate closely with developers Oneofthetenetsofagilemethodsisthatpeoplewithdifferentskillsandbackgrounds needtocollaborateverycloselytogether.Theycan’tcommunicatemainlythrough formalmeetingsanddocuments.Insteadtheyneedtobeouttalkingwitheachother andworkingwitheachotherallthetime.Everybodyisaffectedbythis:analysts,PMs, domainexperts,developers…andDBAs. EverytaskthatadeveloperworksonpotentiallyneedsaDBA’shelp.Boththedevelopers andtheDBAneedtoconsiderwhetheradevelopmenttaskisgoingtomakeasignificant changetothedatabaseschema.IfsothedeveloperneedstoconsultwiththeDBA todecidehowtomakethechange.Thedeveloperknowswhatnewfunctionalityis needed,andtheDBAhasaglobalviewofthedataintheapplication. TomakethishappentheDBAhastomakehimselfapproachableandavailable.Make iteasyforadevelopertojustpopoverforafewminutesandasksomequestions. Make sure the DBAs and developers sit close to each other so they can easily get together.EnsurethatapplicationdesignsessionsareknownaboutsotheDBAcan pop in easily. In many environments we see people erecting barriers between the DBAandapplicationdevelopmentfunctions.Thesebarriersmustcomedownforan evolutionarydatabasedesignprocesstowork.
Everybody gets their own database instance Evolutionarydesignrecognizesthatpeoplelearnbytryingthingsout.Inprogramming termsdevelopersexperimentwithhowtoimplementacertainfeatureandmaymake afewattemptsbeforesettlingdowntoapreferredalternative.Databasedesigncanbe
116
English++ likethattoo.Asaresultit’simportantforeachdevelopertohavetheirownsandbox wheretheycanexperiment,andnothavetheirchangesaffectanyoneelse. ManyDBAexpertsseemultipledatabasesasanathema,toodifficulttoworkinpractice, butwe’vefoundthatyoucaneasilymanageahundredorsodatabaseinstances.The vitalthingistohavetotoolstoallowyoutomanipulatedatabasesmuchasyouwould manipulatefiles.
Developers frequently integrate into a shared master Althoughdeveloperscanexperimentfrequentlyintheirownarea,it’simportantto bringthedifferentapproachesbacktogetheragainfrequently.Anapplicationneeds asharedmasterdatabasethatallworkflowsfrom.Whenadeveloperbeginsatask theycopythemasterintotheirownworkspace,manipulate,andthenintegratetheir changesbackintothemaster.Asaruleof thumbeachdevelopershouldintegrate onceaday.
DBA
Let’stakeanexamplewhereMikestartsadevelopmenttaskat10am(assuminghe
databaseadministrator;
actuallycomesinthatearly).Aspartofthistaskheneedstochangethedatabase
themainrole
schema.Ifthechangeiseasy,likeaddingacolumn,hejustdecideshowtomakethe
ofadatabaseadministrator
changehimself,Mikealsomakessurethecolumnhewantstoadddoesnotalready
hastodowith
exist in the database, with the help of the data dictionary (discussed later). If it’s
overseeingtheinstallation
morecomplicatedthenhegrabstheDBAandtalksoverthelikelychangeswithhim.
andongoingfunction
Oncehe’sreadytobeginhetakesacopyofthedatabasemasterandcanmodifyboth thedatabaseschemaandcodefreely.Ashe’sinasandboxanychangeshemakesdon’t impactanyoneelse’s.Atsomepoint,sayaround3pm,he’sprettycomfortablethathe knowswhatthedatabasechangeneedstobe,eventhoughhe’snotcompletelydone
ofsoftware onasystemdesigned forusebyanumber ofusers
withhisprogrammingtask.AtthatpointhegrabstheDBA,andtellshimaboutthe change.AtthispointtheDBAcanraiseanyissuesthatMikehasn’tconsidered.Most ofthetimealliswellandtheDBAgoesoffandmakesthechange(byapplyingoneor moredatabaserefactorings,whichwe’llcometobelow).TheDBAmakesthechanges rightaway(unlesstheyaredestructivechanges-againmoreonthatbelow).Mikecan continuetoworkonhistaskandcommithiscodeanytimehelikesoncetheDBAhas appliedthesechangestothemaster. YoumaywellrecognizethisprincipleassimilartothepracticeofContinuousIntegration, whichisappliedtosourcecodemanagement.Indeedthisisreallyabouttreatingthe databaseasanotherpieceofsourcecode.Assuchthemasterdatabaseiskeptunder configurationmanagementinmuchthesamewayasthesourcecode.Wheneverwe haveasuccessfulbuild,thedatabaseischeckedintotheconfigurationmanagement systemtogetherwiththecode,sothatwehaveacompleteandsynchronizedversion historyofboth.
117
English++ Withsourcecode,muchofthepainofintegrationishandledbysourcecodecontrol systems.Fordatabasesthere’sabitmoreeffortinvolved.Anychangestothedatabase needtodoneproperly,asautomateddatabaserefactorings,whichwe’lldiscussshortly. InadditiontheDBAneedstolookatanydatabasechangesandensurethattheyfit within the overall scheme of the database schema. For this to work smoothly, big changesshouldn’tcomeassurprisesatintegrationtime-hencetheneedfortheDBA tocollaboratecloselywiththedevelopers. up-frontdesigning
Weemphasizeintegratingfrequentlybecausewe’vefoundthatit’smucheasierto
describesamethod
do frequent small integrations rather than infrequent large integrations. It seems
inwhichthedesignphase
thatthepainofintegrationincreasesexponentiallywiththesizeoftheintegration.
ofaprojectiscompleted
Assuchdoingmanysmallchangesismucheasierinpractice,eventhoughitoften
beforethecoding
seemscounter-intuitivetomany.Thissameeffect’sbeennoticedbypeopleinthe
oftheprojectbegins
SoftwareConfigurationManagementcommunityforsourcecode.
A database consists of schema and test data Whenwetalkaboutadatabasehere,wemeannotjusttheschemaofthedatabase, butalsoafairamountofdata.Thisdataconsistsofcommonstandingdataforthe application,suchastheinevitablelistofallthestatesintheUS,andalsosampletest datasuchasafewsamplecustomers. The data is there for a number of reasons. The main reason is to enable testing. Wearegreatbelieversinusingalargebodyofautomatedteststohelpstabilizethe developmentofanapplication.Suchabodyoftestsisacommonapproachinagile methods.Fortheseteststoworkefficiently,itmakessensetoworkonadatabasethat isseededwithsomesampletestdata,whichalltestscanassumeisinplacebefore theyrun. Aswellashelpingtestthecode,thissampletestdataalsoallowstotestourmigrations aswealtertheschemaofthedatabase.Byhavingsampledata,weareforcedtoensure thatanyschemachangesalsohandlesampledata. Inmostprojectswe’veseenthissampledatabefictional.Howeverinafewprojects we’ve seen people use real data for the samples. In these cases this data’s been extractedfrompriorlegacysystemswithautomateddatamigrationscripts.Obviously youcan’tmigrateallthedatarightaway,asinearlyiterationsonlyasmallpartofthe databaseisactuallybuilt.Buttheideaistoiterativelydevelopthemigrationscripts justastheapplicationandthedatabasearedevelopediteratively.Notonlydoesthis helpflushoutmigrationproblemsearly,itmakesitmucheasierfordomainexperts toworkwiththegrowingsystemastheyarefamiliarwiththedatatheyarelooking
118
atandcanoftenhelptoidentifyproblemcasesthatmaycauseproblemsfortheda-
English++ tabaseandapplicationdesign.Asaresultwearenowoftheviewthatyoushouldtry tointroducerealdatafromtheveryfirstiterationofyourproject.
All changes are database refactorings Thetechniqueofrefactoringisallaboutapplyingdisciplinedandcontrolledtechniques to changing an existing code base. Similarly we’ve identified several database refactoringsthatprovidesimilarcontrolanddisciplinetochangingadatabase. One of the big differences about database refactorings is that they involve three differentchangesthathavetobedonetogether • Changingthedatabaseschema • Migratingthedatainthedatabase • Changingthedatabaseaccesscode Thus whenever we describe a database refactoring, we have to describe all three aspectsofthechangeandensurethatallthreeareappliedbeforeweapplyanyother refactorings. Wearestillintheprocessofdocumentingthevariousdatabaserefactorings,sowe aren’t able to go into detail on them yet. However there are a few things we can pointout.Likecoderefactorings,databaserefactoringsareverysmall.Theconceptof chainingtogetherasequenceofverysmallchangesismuchthesamefordatabases asitisforcode.Thetriplenatureofthechangemakesitallthemoreimportantto keeptosmallchanges. Manydatabaserefactorings,suchasaddingacolumn,canbedonewithouthavingto updateallthecodethataccessesthesystem.Ifcodeusesthenewschemawithout beingawareofit,thecolumnwilljustgounused.Manychanges,howeverdon’thave thisproperty.Wecallthesedestructivechanges,anexampleofwhichismakingan existingnullablecolumnnotnull. Destructivechangesneedabitmorecare,thedegreeofwhichdependsonthedegree ofdestructioninvolved.Anexampleofaminordestructivechangeisthatofchanging acolumnfromnullabletonotnull.Inthiscaseyoucanprobablyjustgoaheadand doit.Therefactoringwilltakecareofanydatainthedatabasethat’snull.Usuallythe onlydeveloperwhocaresaboutthispropertyistheonewhorequestedthechange, andthatdeveloperwillupdatethedatabasemappingcode.Asaresulttheupdate won’tbreakanyoneelse’scodeandifbysomestrangechanceitdoes,theyfindout assoonastheyrunabuildandusetheirtests.(Onourlargeprojectwegaveourselves someextrabreathingspacebywaitingaweekbeforemakingthedatabasechange.) Splittingaheavilyusedtableintotwohoweverisarathermorecomplicatedcase.In thiscaseit’simportanttoleteveryoneknowthatthechangeiscomingupsotheycan
119
English++ preparethemselvesforit.Inadditionit’sworthwaitingforasafermomenttomake thechange.(Thesekindsofchangeswewoulddeferuntilthestartofanewiteration -weliketouseiterationsoftwoweeksorless). Theimportantthinghereistochooseaprocedurethat’sappropriateforthekindof changethatyou’remaking.Ifindoubttrytoerronthesideofmakingchangeseasier. Ourexperienceisthatwegotburnedmuchlessfrequentlythanmanypeoplewould think,andwithastrongconfigurationcontroloftheentiresystemit’snotdifficultto revertshouldtheworsthappen.
Automate the refactorings AgileMethodology
Intheworldofcodeweareseeingtoolsforsomelanguagestoautomatemanyof
aparticularmethod
theidentifiedrefactorings.Suchautomationisessentialfordatabases;atleastinthe
ofproducingsoftware, emphasising self-organizingteams andbroad customer-programmer contact
areasofschemachangesanddatamigration. AsaresulteverydatabaserefactoringisautomatedbywritingitintheformofSQL DDL(fortheschemachange)andDML(forthedatamigration).Thesechangesare neverappliedmanually,insteadtheyareappliedtothemasterbyrunningasmall SQLscripttoperformthechanges. Oncedone,wekeepholdofthesescriptfilestoproduceacompletechangelogofall thealterationsdonetothedatabaseasaresultofdatabaserefactorings.Wecanthen updateanydatabaseinstancetothelatestmasterbyrunningthechangelogofallthe changessincewecopiedthemastertoproducetheolderdatabaseinstance. Thisabilitytosequenceautomatedchangesisanessentialtoolbothforthecontinuous integrationprocessindevelopment,andformigratingproductiondatabasestoanew release. Forproductiondatabaseswedon’tmakechangesduringtheusualiterationcycles. Oncewedoarelease,whichmayoccurattheendofanyiteration,weapplythefull changelogofdatabaserefactoringssincethepreviousrelease.Thisisabigchange, andonethatsofarwe’veonlydonebytakingtheapplicationoffline.(Wehavesome ideasfordoingthisina24/7environment,butwehaven’tactuallyhadtodoityet.) It’salsowisetotestthismigrationschemabeforeapplyingittothelivedatabase.So far,we’vefoundthatthistechniquehasworkedremarkablywell.Bybreakingdown allthedatabasechangesintoasequenceofsmall,simplechanges;we’vebeenableto makequitelargechangestoproductiondatawithoutgettingourselvesintrouble. As well as automating the forward changes, you can consider automating reverse changesforeachrefactoring.Ifyoudothisyou’llbeabletobackoutchangestoa
120
databaseinthesameautomatedway.Wehaven’tdonethisyet,aswe’venothada muchdemandforit,butit’sthesamebasicprinciple.
English++ (Asimilarthingthatwehavedoneistosupportanoldversionofanapplicationwith anupdatedversionofthedatabase.Thisinvolvedwritingacompatibilitylayerthat allowedtheapplicationtothinkitwastalkingtotheolderversionofthedatabase eventhoughitwasactuallytalkingtothenewerone.)
Automatically Update all Database Developers It’sallverywellforpeopletomakechangesandupdatethemaster,buthowdothey
refactoring
findoutthemasterhaschanged?Inatraditionalcontinuousintegrationenvironment
makingchanges
withsourcecode,developersupdatetothemasterbeforedoingacommit.Thatway
toacomputersystem
they can resolve any build issues on their own machine before committing their
(e.g.sourcecode,database)
changestothesharedmaster.There’snoreasonyoucan’tdothatwiththedatabase,
thatimprove
butwefoundabetterway.
itsreadabilityand
Weautomaticallyupdateeveryoneontheprojectwheneverachangeismadetothe databasemaster.Thesamerefactoringscriptthatupdatesthemasterautomatically updates everyone’s databases. When we’ve described this, people are usually concernedthatautomaticallyupdatingdevelopers’databasesunderneaththemwill causeaproblem,butwefounditworkedjustfine.
simplifyitsstructurewith outadding anynewfunctionality. Forexample,changingthe namesofvariables tobemorereadable
This only worked when people were connected to the network. If they worked offline,suchasonanairplane,thentheyhadtoresyncwiththemastermanually oncetheygotbacktotheoffice.
Clearly separate all database access code Tounderstandtheconsequencesofdatabaserefactorings,it’simportanttobeableto seehowthedatabaseisusedbytheapplication.IfSQLisscatteredwilly-nillyaround thecodebase,thisisveryhardtodo.Asaresultit’simportanttohaveacleardatabase accesslayertoshowwherethedatabaseisbeingusedandhow.Todothiswesuggest followingoneofthedatasourcearchitecturalpatternsfromPofEAA. Havingacleardatabaselayerhasanumberofvaluablesidebenefits.Itminimizesthe areasofthesystemwheredevelopersneedSQLknowledgetomanipulatethedatabase, which makes life easier to developers who often are not particularly skilled with SQL.FortheDBAitprovidesaclearsectionofthecodethathecanlookattoseehow thedatabaseisbeingused.Thishelpsinpreparingindexes,databaseoptimization, andalsolookingattheSQLtoseehowitcouldbereformulatedtoperformbetter. ThisallowstheDBAtogetabetterunderstandingofhowthedatabaseisused.
121
English++ Variations Like any set of practices, these should be varied depending on your specific circumstances.Thesepracticesarestillprettynew,sowehaven’tcomeacrossthat manyvariations,butherearesomewehave.
Keeping multiple database lineages extremeprogramming(XP)
Asimpleprojectcansurvivewithjustasingledatabasemasterintherepository.With
aprogramingmethodology
more complex projects there’s a need to support multiple varieties of the project
whichisveryclosely
database,whichwerefertoasdatabaselineages.Wemaycreateanewlineageifwe
connectedwiththe
havetobranchanapplicationthat’sputintoproduction.Inessencecreatinganew
Agilestyle.
databaselineageismuchthesameasbranchingthesourcecodeontheapplication, withtheaddedtwistthatyoualsomakealineagewhenyouneedadifferentsetof sampledata,suchasifyouneedalotofdataforperformancetesting. Whenadevelopertakesacopyofamastertheyneedtoregisterwhichlineagethey aremodifying.AstheDBAappliesupdatestoamasterforaparticularlineagethe updatespropagatetoallthedeveloperswhoareregisteredforthatlineage.
You don’t need a DBA Allofthissoundslikeitwouldbealotofwork,butinfactitdoesn’trequireahuge amountofmanpower.OntheAtlasprojectwehadthirty-odddevelopersandateam size(including,QA,analystsandmanagement)ofclosetoahundred.Onanygiven day we would have a hundred or so copies of various lineages out on people’s workstations.YetallthisactivityneededonlyonefulltimeDBA(Pramod)withacouple ofdevelopersdoingsomepart-timeassistanceandcover. Onsmallerprojectseventhatisn’tneeded.We’vebeenusingthesetechniquesona numberofsmallerprojects(aboutadozenpeople)andwefindtheseprojectsdon’t needafulltimeDBA.Insteadwerelyonacoupleofdeveloperswithaninterestin DBissueswhohandletheDBAtaskspart-time. Thereasonforthisisautomation.Ifyouaredeterminedtoautomateeverytask,you canhandlealotofworkwithmuchlesspeople.
Tools to Help Doing this kind of thing requires a lot of repetitive tasks. The good news is that whenever you run into repetitive tasks in software development you are ideally placedtoautomatethem.Asaresultwe’vedevelopedafairamountofoftensimple toolstohelpus.
122
English++ Oneofthemostvaluablepiecesofautomationisasimplesetofscriptsforcommon databasetasks. • Bringauseruptodatewiththecurrentmaster. • Createanewuser • Copy a database schema, for example Sue finds a bug with her database, now MikecancopySue’sdatabaseandtrytodebugtheapplication • Moveadatabase,forexamplefromaworkstationtoadifferentworkstation,this isessentiallyCopydatabaseandDeletedatabasecombinedasone • Dropauser • Export a user so team members can make offline backups of the database that theyareworkingwith. • Importauser,soiftheteammembershaveabackupcopyofthedatabase,they canimportthebackupandcreateanewschema. • Exportabaseline-makeabackupcopyofthemasterdatabase.Thisisaspecialized caseofExportaUser • Createadifferencereportofanynumberofschemas,sothatMikecanfindout whatisdifferentstructurallybetweenhisdatabaseandSue’s. • Diffaschemaagainstthemaster,sothatdeveloperscancomparetheirlocalcopy againstthemaster. • Listalltheusers AnalystsandQAfolksoftenneedtolookatthetestdatainthedatabaseandtobeable toeasilychangeit.ForthatwecreatedanExcelapplicationwithVBAscriptstopull datadownfromthedatabaseintoanexcelfile,allowpeopletoeditthefile,andsend thedatabackuptothedatabase.Althoughothertoolsexistforviewingandediting thecontentsofadatabase,excelworkswellbecausesomanypeoplearefamiliarwithit. Everybodyontheprojectneedstobeabletoexplorethedatabasedesigneasily,that waytheycanfindoutwhattablesareavailableandhowtheyareused.Webuiltan HTMLbasedtooltodothisthatusedservletstoquerydatabasemetadata.SoMike before adding the column to a table, could go look up if the column he is adding alreadyexists,bysearchingthemetadataofthetablesandcolumns.Wedidthedata modelingusingERwinandpulleddatafromERwinintoourownmetadatatables.
123
English++
Exercises Pre-reading questions 1.HaveyouheardaboutAgileMethodology?Whataretheyusedfor? 2.WhatdoesDBAstandfor? 3.WhatareDBA’sfunctions?
Comprehension questions Dealing with Change 1.WhatarethemainadvantagesofAgileMethodology? • higher flexibility to change of development plans - changes to a system are controlledateachstageofaproject • higherqualitythroughearlierfeedbackfromcustomers • shorteneddevelopmentcycletime • higherstabilityofworkloads 2.Whatisthemaindifferencebetweenplannedandevolutionarydesign? • inplannedmethodology:treatdesignasaindependentphaseofprojectdevelopment beforeimplementationandtesting • evolutionarydesign:runtheentiresoftwarelife-cyclemanytimesduringthelife ofaproject 3.Whydoesagilemethodologyappear,atfirstglance,unsuitablefordatabasedesign? • “Mostpeopleconsiderthatdatabasedesignissomethingthatabsolutelyneeds up-frontplanning.Changingthedatabaseschemalateinthedevelopmenttends tocausewidespreadbreakagesinapplicationsoftware.Furthermore,changinga schemaafterdeploymentresultinpainfuldatamigrationproblems.” 4.Whatlimitationsdotheauthorsadmittoinusinganevolutionaryapproachto databasedesign? • Theydevelopedanapplicationdatabaseforasingleapplicationratherthanan integrationdatabasethattriestointegratemultipledatabases. • Theydon’thavetokeeptheproductiondatabasesup24/7
The Practices 1.WhyisclosecontactbetweendevelopersandDBAsessential? • “EverytaskthatadeveloperworksonpotentiallyneedsaDBA’shelp.Boththe developersandtheDBAneedtoconsiderwhetheradevelopmenttaskisgoingto makeasignificantchangetothedatabaseschema.Ifsothedeveloperneedsto consultwiththeDBAtodecidehowtomakethechange.Thedeveloperknows whatnewfunctionalityisneeded,andtheDBAhasaglobalviewofthedatain
124
theapplication.TomakethishappentheDBAhastomakehimselfapproachable
English++ andavailable.Makeiteasyforadevelopertojustpopoverforafewminutesand asksomequestions.MakesuretheDBAsanddeveloperssitclosetoeachotherso theycaneasilygettogether.Ensurethatapplicationdesignsessionsareknown aboutsotheDBAcanpopineasily.“ 2.Whatallowsindividualprogrammerstoindependentlytesttheirownsolutions onadatabasewithoutnegativeconsequencesfortheproject? • “It’s important for each developer to have their own sandbox where they can experiment, and not have their changes affect anyone else. Many DBA experts seemultipledatabasesasanathema,toodifficulttoworkinpractice,butwe’ve foundthatyoucaneasilymanageahundredorsodatabaseinstances.Thevital thingistohavetotoolstoallowyoutomanipulatedatabasesmuchasyouwould manipulatefiles.” 3. Whatisthedifferencebetweenasourcecodeanddatabaseintegration? • “Withsourcecode,muchofthepainofintegrationishandledbysourcecodecontrol systems. For databases there’s a bit more effort involved. Any changes to the databaseneedtodoneproperly,asautomateddatabaserefactorings.Inaddition theDBAneedstolookatanydatabasechangesandensurethatitfitswithinthe overallschemeofthedatabaseschema.Forthistoworksmoothly,bigchanges shouldn’tcomeassurprisesatintegrationtime-hencetheneedfortheDBAto collaboratecloselywiththedevelopers.” 4.Whatisthepurposeofhavingtestdata? • “ The main reason is to enable testing. We are great believers in using a large bodyofautomatedteststohelpstabilizethedevelopmentofanapplication.Such abodyoftestsisacommonapproachinagilemethods.Fortheseteststowork efficiently,itmakessensetoworkonadatabasethatisseededwithsomesample testdata,whichalltestscanassumeisinplacebeforetheyrun.” • Itallowsthetestingofmigrationsastheschemaofthedatabasearealtered. 5.Howareautomatedchangesindatabasesaccomplished? “EverydatabaserefactoringisautomatedbywritingitintheformofSQLDDL(for theschemachange)andDML(forthedatamigration).Thesechangesarenever appliedmanually,insteadtheyareappliedtothemasterbyrunningasmallSQL scripttoperformthechanges.Oncedone,wekeepholdofthesescriptfilestoproduceacompletechangelogofallthealterationsdonetothedatabaseasaresult ofdatabaserefactorings.Wecanthenupdateanydatabaseinstancetothelatest masterbyrunningthechangelogofallthechangessincewecopiedthemasterto producetheolderdatabaseinstance.” 6.Whataretheadvantagesofseparatingthedatabaselayerfromthecodebase? • ItminimizestheareasofthesystemwheredevelopersneedSQLknowledgeto manipulatethedatabase,whichmakeslifeeasiertodeveloperswhooftenarenot particularlyskilledwithSQL.
125
English++ • ItprovidesDBAwithaclearsectionofthecodethathecanlookattoseehowthe databaseisbeingused. • Ithelpsinpreparingindexes,databaseoptimization,andalsolookingattheSQL toseehowitcouldbereformulatedtoperformbetter.
Possible topics for discussion • Whatothermethodologiesdoyouknow? • What are the possible advantages of these methodologies? Do they have any drawbacks? • Howdoyouusuallydesignyourprograms?
Possible difficulties Itisquitealongtextbutitcanbereadquiteeasily.
Reading suggestions • Wikipediahasaninterestingpageaboutagiledevelopment. • MartinFowlerhasaverynicewebpagewithalotofarticlesworthreading.Be Makesuretovisitit. • IfyouwanttofindoutmoreaboutAgiletakealookatAgileAlliance.
126
English++
Lord Palmerston on Programming Joel Spolsky Numberofwords
2230
Computersciencecontent
Medium
Businesscontent
Low
Englishlanguagecomplexity
High
Sub-areas covered • self-developing • learning • programmers’culture • programmingexpertise
Learning objectives • tounderstandwhatisimportantinaprogrammer’swork • torecognizepracticalattitudestowardsprogrammingandwork • tobeawareofthekindofproblemsprogrammershavetoface
Keywords regexp-anabbreviationforregularexpressions.Incomputing,regularexpressions provideaconciseandflexiblemeansforidentifyingstringsoftextofinterest, suchasparticularcharacters,words,orpatternsofcharacters Windows-anoperatingsystem Api(Applicationprogramminginterface)-asourcecodeinterfacethatanoperating system,libraryorserviceprovidestosupportrequestsmadebycomputerprograms ASP(ActionServerPages)-Microsoft’sfirstserver-sidescriptenginefordynamically -generatedwebpages GUI(GraphicalUserInterface)-atypeofuserinterfacewhichallowspeopletointeract withacomputerandcomputer-controlleddevices VBScript-anActiveScriptinglanguagedevelopedbyMicrosoft
Summary Thisarticleisaboutdifferentcomputerprogramming“worlds”andhowmuchtheydiffer fromoneanother.Theauthorsuggeststhatthedifferencebetweenprogramming“worlds” is so big that it is almost impossible for one person to understand and compare them.Healsostressestheneedforaprogrammertoneverstoplearningsoastostay
127
English++ proficientinhis/hercomputerprogramming“world”. Artykułtraktujeokoniecznościciągłegouczeniasiędlazachowaniastatusueksperta w programowaniu. Rozległość wiedzy, którą powinien posiąść programista rośnie coraz szybciej i tam, gdzie kiedyś wystarczyło przeczytać jedną książkę by wiedzieć wszystko, teraz nie wystarczają kilkuletnie studia. Autor podkreśla również wagę praktycznegodoświadczeniaprzypracachprogramistycznych.
Pre-reading questions 1. Whatdoesthephrase“agoodprogrammer”meantoyou? 2. Whatabilities/skillsshouldagoodprogrammerhave? 3. Apiorlibrary?Whichismoreimportant? 4. Givesomeexamplesofthemainprogrammingareas. 5. Whichprogramminglanguagesareimportantnow?
128
English++
Lord Palmerston on Programming
There was a time when if you read one book by Peter Norton, you literally knew everythingtherewastoknowaboutprogrammingtheIBM-PC.Overthelast20years, programmersaroundtheworldhavebeenhardatworkbuildingabstractionupon abstractionontopoftheIBM-PCtomakeiteasiertoprogramandmorepowerful. Butthelawofleakyabstractionsmeansthatevenastheybuilttheabstractionsthat
Windows
aresupposedtomakeprogrammingeasier,thesheeramountofstuffyouhaveto
anoperatingsystem
knowtobeagreatprogrammerisexpandingallthetime. Becoming proficient, really proficient, in just one programming world takes years. Sure,lotsofbrightteenagerslearnDelphioneweekandPythonthenextweekand
Perlthenextweekandthinktheyareproficient.Yettheydon’thavethefoggiestclue
Api
howmuchthey’remissing.
applicationprogramming
I’vebeenworkingwithASPandVBScriptsinceitfirstcameout.VBScriptisthedinkiest languageonearthandASPprogrammingconsistsoflearningabout5classes,only twoofwhichyouuseveryoften.AndonlynowdoIfinallyfeellikeIknowthebest waytoarchitectanASP/VBScriptapplication.IfinallythinkIknowwherethebest placetoputdatabaseaccesscodeis,thebestwaytouseADOtogetrecordsets,the bestwaytoseparateHTMLandcode,etc.AndIfinallyuseregexpsinsteadofone-off stringmanipulationfunctions.Onlylastweek,IlearnedhowtogetCOMobjectsout ofmemorysoyoucanrecompilethem(withoutrestartingthewholewebserver).
interface -asourcecodeinterface thatanoperating system,libraryor serviceprovides tosupportrequests madebycomputer programs.
FogCreekistoosmalltohavespecialists,sowhenIneededtowriteareallygood installer for FogBUGZ, our ASP/VBScript based product, I drew on several years of C++/MFCexperience,andyearsofexperiencewithWindowsAPIs,andgoodCorel Photopaint skills to create a neat picture in the corner of the wizard. Then to get FogBUGZtoworkperfectlywithUnicode,IhadtowritealittleActiveXcontrolusing C++andATL,whichdrewuponyearsofC++andCOMexperienceandaweekor solearningaboutcharacterencodingswhenIimplementedthatcodeinCityDesk.
129
English++ SowhenwehadaweirdNT4.0-onlybug,ittookme3minutestodebug,becauseI knewhowtouseVMWare,andIhadacleanNT4.0machinesetupinVMWare,and IknewhowtodoremotedebuggingwithVisualC++,andIknewtolookintheEAX registertogetthereturnvaluefromafunction.Someonewhowasnewtothisall mighthavetakenanhourormoretodebugthesameproblem,butIalreadyknewa tremendousamountof“stuff”thatI’vebeenlearning,basically,since1982whenI gotmyfirstIBM-PCandthatNortonbook. Leakyabstractionsmeanthatwelivewithahockeysticklearningcurve:youcanlearn 90%ofwhatyouusedaybydaywithaweekoflearning.Buttheother10%mighttake youacoupleofyearscatchingup.That’swherethereallyexperiencedprogrammers willshineoverthepeoplewhosay“whateveryouwantmetodo,Icanjustpickup thebookandlearnhowtodoit.”Ifyou’rebuildingateam,it’sOKtohavealotofless experiencedprogrammerscrankingoutbigblocksofcodeusingtheabstracttools,but theteamisnotgoingtoworkifyoudon’thavesomereallyexperiencedmembersto dothereallyhardstuff. Therearealotofprogrammingworlds,eachofwhichrequiresatremendousamount ofknowledgeforrealproficiency.HerearethethreeIpersonallyknowbest: • MFC/C++/Windows Regexp anabbreviation
• VBScript/ASP • VisualBasic
forregularexpressions.
All,basically,whatyouwouldcallWindowsprogramming.Yes,I’vewrittenUnixcode
Incomputing,
andJavacode,butnotverymuch.MyproficiencyinWindowsprogrammingcomesfrom
regularexpressions
knowingnotjustthebasictechnologiesbutalsothewholesupportinginfrastructure.
provideaconcise
So,Iclaim,I’mreallygoodatWindowsprogrammingbecauseIalsoknowCOM,ATL,
andflexiblemeans
C++, 80×86 Assembler, Windows APIs, IDispatch (OLE Automation), HTML, the
foridentifyingstrings
DOM,theInternetExplorerobjectmodel,WindowsNTandWindows95internals,
oftextofinterest,
LANManagerandNTnetworking,includingsecurity(ACEs,ACLs,andallthatstuff),
suchasparticular
SQLandSQLServer,JetandAccess,JavaScript,XML,andafewothercheerfulfacts
characters,words,
aboutthesquareofthehypotenuse.WhenIcan’tgettheStrConvfunctioninVBto
orpatternsofcharacters
dowhatIwant,IbangoutanCOMcontrolsoIcandropintoC++withATLandcall theMLangfunctionswithoutdroppingabeat.Ittookmeyearstogettothispoint.
Therearelotsofotherprogrammingworlds.There’stheworldofpeopledeveloping forBEAWeblogicwhoknowJ2EE,Oracle,andallkindsofJavathingsthatIdon’t evenknowenoughabouttoenumerate.TherearehardcoreMacintoshdevelopers whoknowCodeWarrior,MPW,ToolboxprogramminginSystem6throughX,Cocoa, Carbon,andevenniceobsoletethingslikeOpenDocthatdon’thelpanymore.
130
English++ Veryfewpeople,though,knowmorethanoneortwoworlds,becausethere’sjustso muchtolearnthatunlessyouhavetoworkinoneoftheseworldsformorethana coupleofyears,youdon’treallygrokitall.
But learn you must Peoplegetkindofmiffedwhentheygoonjobinterviewsandgetrejectedbecause,for
VBScript
example,theydon’thaveWin32(orJ2EE,orMacprogramming,orwhatever)experience.
anActiveScripting
Ortheygetannoyedbecauseidiotrecruiters,whowouldnotknowanMSMQifitbit
languagedevelopedby
theminthetailbone,callthemupandaskifthey“have5yearsMSMQ.”
Microsoft
Untilyou’vedoneWindowsprogrammingforawhile,youmaythinkthatWin32is justalibrary,likeanyotherlibrary,you’llreadthebookandlearnitandcallitwhen youneedto.Youmightthinkthatbasicprogramming,say,yourexpertC++skills, arethe90%andalltheAPIsarethe10%fluffyoucancatchuponinafewweeks.To thesepeopleIhumblysuggest:timeshavechanged.Theratiohasreversed. VeryfewpeoplegettoworkonlowlevelCalgorithmsthatjustmovebytesaround anymore.MostofusspendallourtimethesedayscallingAPIs,notmovingbytes. SomeonewhoisafantasticC++coderwithnoAPIexperienceonlyknowsabout10% ofwhatyouuseeverydaywritingcodethatrunsonanAPI.Whentheeconomyis doingwell,thisdoesn’tmatter.Youstillgetjobs,andemployerspaythecostofyour gettinguptospeedontheplatform.Butwhentheeconomyisamessand600people apply for every job opening, employers have the luxury of choosing programmers whoarealreadyexpertsattheplatforminquestion.Likeprogrammerswhocanname fourwaystoFTPafilefromVisualBasiccodeandtheprosandconsofeach. Thehugesurfaceareaofalltheseworldsofprogrammingleadstopointlessflame warsoverwhoseworldisbetter.Here’sasmugcommentsomebodyanonymously madeonmydiscussionboard: “JustonemorereasonwhyI’mgladtobelivinginthe‘freeworld.’Freeasinspeech (almost)andfreedomfrompanderingtothingslikesetupprogramsandtheregistry -justtonameafew.” IthinkthispersonwastryingtosaythatintheLinuxworldtheydon’twritesetup programs.Well,Ihatetodisappointyou,butyouhavesomethingjustascomplicated: imake,make,configfiles,andallthatstuff,andwhenyou’redone,youstilldistribute applicationswitha20KBINSTALLfilefullofwittyinstructionslike“You’regoingto needzlib”(what’sthat?)or“Thismaytakeawhile.Gogetsomerunts.”(Runtsarea kindofcandy,Ithink.)Andtheregistry–insteadofonebigorganizedhiveofname/ value pairs, you have a thousand different file formats, one per application, with .whateverrcandfoo.conffileslivingallovertheplace.Andemacswantsyoutolearn
131
English++ howtoprogramlispifyou’regoingtochangesettings,andeachshellwantsyouto learnitspersonaldialectofshellscriptprogrammingifyouwanttochangesettings, andonandon. GUI
People who only know one world get really smarmy, and every time they hear
(GraphicalUserInterface)
about the complications in the other world, it makes them think that their world
atypeofuserinterface
doesn’t have complications. But they do. You’ve just moved beyond them because
whichallowspeopleto
youareproficientinthem.Theseworldsarejusttoobigandcomplicatedtocom-
interactwithacomputer
pareanymore.LordPalmerston:“TheSchleswig-Holsteinquestionissocomplicated,
andcomputer-controlled
onlythreemeninEuropehaveeverunderstoodit.OnewasPrinceAlbert,whois
devices
dead.ThesecondwasaGermanprofessorwhobecamemad.IamthethirdandI haveforgottenallaboutit.”Thesoftwareworldsaresohugeandcomplicatedand multifacetedthatwhenIseeotherwiseintelligentpeoplewritingblogentriessaying something vacuous like “Microsoft is bad at operating systems,” frankly, they just look dumb. Imagine trying to summarize millions of lines of code with hundreds ofmajorfeatureareascreatedbythousandsofprogrammersoveradecadeortwo, wherenoonepersoncanbegintounderstandevenalargeportionofit.I’mnoteven defendingMicrosoft,I’mjustsayingthatbighandwavygeneralizationsmadefroma positionofdeepignoranceisoneofthebiggestwastesoftimeonthenettoday. Frequentreaders,bynow,havenoticedthatI’vebeenthinkingoftheproblemofhow onemightdeliveranapplicationonLinux,Macintosh,andWindowswithoutpaying disproportionately for the Linux and Macintosh versions. For this you need some kindofcross-platformlibrary. Java attempted this but Sun didn’t grok GUIs well enough to deliver really slick native-feelingapplications.LikethespacealieninStarTrekwatchingEarththrough atelescope,theyknewexactlywhathumanfoodwassupposedtolooklikebutthey didn’trealizeitwassupposedtotastelikesomething.Javaappshavemenusinthe rightplacesbutthereareallthesekeyboardthingsthatdon’tworkthesamewayas everyotherWindowsappandtheirtabbeddialogslookalittlescary.Andthereisno way,nomatterhowhardyoutry,tomaketheirmenubarslookexactlylikeExcel’s menubars.Why?BecauseJavadoesn’tgiveyouaverygoodwaytodropdowntothe nativefacilitieswhenevertheabstractionfails.Whenyou’reprogramminginAWT,you can’t figure out the HWND of a window, you can’t call the Microsoft APIs, and you certainlycan’tinterceptWM_PAINTanddoitdifferently.AndSunmadeitplentyclear thatifyoutriedtodothat,youweren’tPure.YouwerePolluted,andtohellwithyou. AfteranumberofhighlypublicizedfailurestobuildGUIswithJava(e.g.Corel’sJava OfficesuiteandNetscape’sJavagator),enoughpeopleknowtostayawayfromthis world.Eclipsebuilttheirownwindowinglibraryfromthegroundupusingnative
132
widgetsjustsotheycouldwriteJavacodethathadareasonablynativelookandfeel.
English++ TheMozillaengineersdecidedtoaddressthecrossplatformproblemwiththeirown inventioncalledXUL.Sofar,I’mimpressed.Mozillafinallygottothepointwhereit tasteslikerealfood.Evenmyfavoritebugaboo,Alt+SpaceNtominimizeawindow, worksinMozilla;ittookthemlongenoughbuttheydidit. MitchKapor,whofoundedLotusandcreated123,decidedforhisnextapplicationto gowithsomethingcalledwxWindowsandwxPythonforcrossplatformsupport. Whichisbetter,XUL,Eclipse’sSWT,orwxWindows?Idon’tknow.Theyareallsuch
ASP(Actionserverpages)
hugeworldsthatIcouldn’treallyevaluatethemandtell.It’snotenoughtoreadthe
Microsoft’sfirst
tutorials.Youhavetosweatandbleedwiththethingforayearortwobeforeyou
server-sidescriptengine
reallyknowit’sgoodenoughorrealizethatnomatterhowhardyoutryyoucan’t
fordynamically-generated
makeyourUItastelikerealfood.Unfortunately,formostprojects,youhavetodecide
webpages
onwhichworldtousebeforeyoucanwritethefirstlineofcode,whichisprecisely themomentwhenyouhavetheleastinformation.Atapreviousjobwehadtolive withsomeprettybadarchitecturebecausethefirstprogrammersusedtheprojectto teachthemselvesC++andWindowsprogrammingatthesametime.Someofthe oldestcodewaswrittenwithoutanycomprehensionofevent-drivenprogramming. Thecorestringclass(ofcourse,wehadourownstringclass)wasatextbookexample ofallthemistakesyoucouldmakeindesigningaC++class.Eventuallywecleaned upandrefactoredalotofthatoldcodebutithauntedusforawhile. Sofornow,myadviceisthis:don’tstartanewprojectwithoutatleastonearchitect withseveralyearsofsolidexperienceinthelanguage,classes,APIs,andplatforms you’rebuildingon.Ifyouhaveachoiceofplatforms,usetheoneyourteamhasthe mostskillswith,evenifit’snotthetrendiestornominallythemostproductive.And whenyou’redesigningabstractionsorprogrammingtools,gotheextramiletomake themleakproof.
133
English++
Exercises Pre-reading questions 1. Whatdoesthephrase“agoodprogrammer”meantoyou? 2. Whatabilities/skillsshouldagoodprogrammerhave? 3. Apiorlibrary?Whichismoreimportant? 4. Givesomeexamplesofthemainprogrammingareas. 5. Whichprogramminglanguagesareimportantnow?
Comprehension questions 1. Whatisa“programmingworld”? Aprogrammingarealikewindowsapi,networking,multimedia,games,etc. 2. WhichITareasistheauthorproficientin? Windowsandwebprogramming 3. Accordingtothearticle,whatisthe90/10rule? • Youcanlearn90%ofwhatyouusedaybydaywithaweekoflearning.Buttheother 10%mighttakeyouacoupleofyearsofcatchingup.Orthesecondversion:90%of programmingskillsistheknowledgeofdifferentApi’s;10%isthelanguages 4. WhywastheJavaGUIsystemnotverypopular? • BecausetheSuncompanydidn’tputtheproper“taste”init,itisn’tasnativeas WindowscontrolsBecauseultimatelyitwasnotcompatiblewithnativeWindows facilities.Theexplanationisintheparagraphbeginning:‘Javaattemptedthis…‘. 5. Whatshouldeverygoodprogrammingteaminclude? • Thereshouldbeatleastoneveryexperiencedprogrammer.
Further exercises: Matchthelanguagestothetechnologies. • C++withWindows,JavaScriptwithWeb,etc
Possible topics for discussion 1. Howdoyouseethefutureofprogramming? 2. Whatkindofprogrammingexperienceismostimportantinthejobmarket?
Reading suggestions Joel’sblogisawell-knownsourceofarticlesaboutprogrammingandprogramming culture.Itiscertainlyworthreading,asarehisbooks.
134
English++
Quake – Game Engine Wikipedia
Numberofwords
700
Computersciencecontent
Medium
Mathcontent
Low
Englishlanguagecomplexity
Medium
Learning objectives • tounderstandpre-renderingprocess • toacquiretechnicalvocabularyassociatedwithcomputergraphics • torecognizedifferencesbetweentrue3Dgamesandtheearliest2Dorpseudo-3D games • tolearnwhyQuakebecameamilestoneingamehistory
Sub-areas covered • Computergraphics • Computergames • Computeranimation • Gameengine
Keywords • rendering-theprocessofgeneratinganimagefromathreedimensionalobjectby meansofcomputerprograms • toprune-tocutpartsofthemapinvisiblefortheplayer • skybox-amethodtocreateabackgroundtomakeacomputerandvideogame locationlookbiggerthanitreallyis • sector-basedstaticlighting–thetexturewithinformationaboutlightingwhich isnotaffectedbytheangleorpositionofthelightsource • CAD-ComputerAidedDesign
Summary Thetextdescribesnewsolutionstographicalproblemsincomputergamesdelivered in“Quake”.Itintroducestheideaofdisplayingonlythoseelementswhicharevisible totheplayerandcalculatingthelightdependingonitsangle.Thearticleexplainsthe “mouselookoption”,whichappearsinthegame.
135
English++ Tekstopisujenowerozwiązaniaproblemówzwiązanychzgrafikąwgrachkomputerowych, wprowadzone w kultowej grze “Quake”. Przybliża ideę wyświetlania tylko tych elementów, które są bezpośrednio widoczne dla gracza, wprowadza w zagadnienieobliczaniaświatławzależnościodjegokątapadania.Wtekściezaznaczono,że “Quake”byłjednązpierwszychgierwykorzystującychsprzętdowspieraniagrafiki trójwymiarowej,atakżeprzedstawionojejwpływnaprocesprojektowaniagierkomputerowych. Artykuł wyjaśnia także, na czym polega pojawiająca się w grze opcja “mouselook”.
Pre-reading questions Whatyouknowaboutthefollowing: 1. thedifferencebetweentrue3Dand“2.5D”games 2. optimizingtherenderingprocess 3. preprocessingtherenderedworld 4. hardwareacceleration 5. variousproblemsingamesmodellingandscientificdesign
136
English++
Quake – game engine
Quakepopularizedseveralmajoradvancesinthe3Dgamegenre:ituses3-dimensional models for players and monsters instead of 2-dimensional sprites; and the world in which play takes place is created as a true 3-dimensional space, rather than a 2-dimensionalmap.Someprevious3Dgames,suchasDukeNukem3D,Doomand Wolfenstein3Dusedsomemathematicaltrickstosimulatethe3-dimensionalworld. Thisallowedatrue3Dview,butwassorestrictedthatonlylookingstraightahead wouldgiveasenseof3dimensions.
rendering theprocessofgenerating animagefromathree dimensionalobject bymeansofcomputer programs
Reducing 3D complexity to increase speed Quakewasthefirsttrue3Dgametouseaspecialmapdesignsystemthatpreprocessed andpre-renderedthe3Denvironmenttoreducetheloadwhenplayingthegameon the50-75MHzCPUsofthetime.The3Denvironmentinwhichthegametakesplace
toprune
isreferredtoasamap,eventhoughitisthree-dimensionalinnatureratherthana
tocutpartsofthemap
flat2Dspace.Themapeditorprogramusesanumberofsimpleconvex3Dgeometric
invisiblefortheplayer
objectsknownasbrushesthataresizedandrotatedtobuildtheenvironment.The brushesareoverlappedinordertocreateanenclosed,empty,volumetricspace,and when the design is complete the map is run through the rendering preprocessor. Thepreprocessorisusedtolocatetwotypesofemptyspaceinthemap,theempty spaceenclosedbybrusheswherethegamewillbeplayed,andtheotheremptyspace outsidethebrushesthattheplayerwillneversee.Thepreprocessorthenstripsaway theback-facesoftheindividualbrusheswhichareoutsidethegame-space,leaving onlythefewpolygonsthatdefinetheouterperimeteroftheenclosedgamespace.
EXIT
INSIDE
START
EXIT
EXIT
START
START
OUTSIDE
1.Usebrushesto makean enclosedplay area
2.Preprocessor findstheinside andoutside spaces
3.Preprocessor cutsawayfaces notvisibleinsidemaps
4.Finished low-polygon, fast-rendering gamemap
137
English++ skybox
Itwaspossibletoeditaprocessedmapbyopeningitinaspecialvertexeditorand
amethodtocreate
editing the raw vertex data, or to add or remove individual triangle faces. Though
abackgroundtomake
difficult,thistechniquewasoccasionallyusedbycheaterstocreatewindowsinwalls,
acomputerandvideo
toseenormallyhiddenenemiesapproachingfrombehinddoorsandwalls,andresulted
gamelocationlookbigger
inananti-cheatmechanismusedinrecent3Dgamesthatcalculatesachecksumfor
thanitreallyis
eachfileusedinthegame,todetectplayersusingpotentiallyhackedmapfiles. Oncethemaphadbeenprunedofexcessfacesthattheplayerinsidewillneversee anyway,thepolygoncountcanbereducedby50%to80%comparedtoanoriginal unprocessedmap.Onthe50-75MHzPCsofthetime,itwascommonforthispruning steptotakemanyhourstocompleteonamap,oftenrunningovernightifthemap
sector-basedstaticlighting
designwasextremelycomplex.
thetexturewith informationaboutlighting
Hardware 3D acceleration
whichisnotaffectedby
Quakewasalsooneofthefirstgamestosupport3Dhardwareacceleration.While
theangleorposition
initially released with only software rendering, John Carmack created a version
ofthelightsource
of the Quake executable that took advantage of Rendition’s Vérité 1000 graphics chip.OpenGLsupportwassoonaddedintheformoftheGLQuakeexecutablefor Windows 95 and higher. Many believe that this kick-started the independent 3D
CAD
graphicscardrevolution,“GLQuake”beingthefirstapplicationtotrulydemonstrate
ComputerAidedDesign
thecapabilitiesofthe3dfx“Voodoo”chipsetatthetime.Theonlytwoothercards capable of rendering GLQuake were a professional (very expensive) Integraph 3D OpenGLcard,and,later,thePowerVRcards.
Impact on modern game design NearlyallthegamescreatedafterQuakehaveusedthis3Dpreprocessingoptimization, whichenhancedthespeedofthegameonapersonalcomputerorgamingconsole. 3Dgamesarethereforeabletopushthelimitsofvisualstylesandeffectsbecauseso muchexcessmodellingdatawasstrippedoutbeforetheend-usereversawthegame. In this way, most games are significantly different from professional 3D CAD and designproblems,wherethereisnotimeavailabletodopreprocessingbetweenan engineermakingachangeandseeingitonthescreen.Nothingcanbethrownaway toincreasetherenderingspeedofa3Dengineeringmodel,sinceanypartofthedesigncanchangeatanymoment.Forthisreason,professional3Dgraphicscardsare significantly more expensive and powerful than the 3D cards used in home computers simply for playing games, because the professional 3D card needs far greaterprocessingpowertodealwiththefullcomplexityofanun-preprocessed3D renderspace.
138
English++
Exercises Pre-reading questions Whatyouknowaboutthefollowing: 1. Thedifferencebetweentrue3Dand“2.5D”games. • using2-dimensionalspritesinsteadof3Dmodels • usingsomemathematicaltrickstosimulatethe3-Dworld 2. Optimizingtherenderingprocess. • avoidrenderingunnecessarypolygons • avoidrenderinginvariablepolygons • takecareonnumberofdetails 3. Preprocessingtherenderedworld • reducingnumberofpolygons,whichshouldbedisplayed • increasequalityofframeusingsomemathematicaltricks,justbeforetheframeis showedtouser 4. Hardwareacceleration • usingspecialgraphicchipstoincreasespeedofrenderingscenes • Quakewasfirstgametosupporthardwareacceleration 5. Variousproblemsingamesmodellingandscientificdesign • timeavailabletorenderpreparedscenes • theoldestproblem–graphicsquality/applicationspeed • optimization
Comprehension questions 1. Whatdid“shooter”gameslooklikebeforetheQuakerevolution? • There were 2-dimensional sprites instead of full 3D models and 2D maps. In Quake, a player can move to each direction; earlier games used mathematical trickstosimulatea3Dworld. 2. Whatisgraphicpreprocessingingeneral? • Preparingapicturebeforeitisshown.Themainaimofthisprocessistoimprove theefficiencyandqualityoftherenderedpicture. 3. Howcouldplayersseetheiropponentsthroughawall? • Itwaspossibletoeditaprocessedmapbyopeningitinaspecialvertexeditorand editingtherawvertexdata,ortoaddorremoveindividualtrianglefaces. 4. WhatdoestheQuakepre-renderingprocessdependon? • Themapeditorprogramusesanumberofsimpleconvex3Dgeometricobjects knownasbrushesthataresizedandrotatedtobuildtheenvironment.Thebrushes areoverlappedinordertocreateanenclosed,empty,volumetricspace,andwhen thedesigniscompletethemapisrunthroughtherenderingpreprocessor.Thepre-
139
English++ processorisusedtolocatetwotypesofemptyspaceinthemap,theemptyspace enclosedbybrusheswherethegamewillbeplayed,andtheotheremptyspace outsidethebrushesthattheplayerwillneversee.Thepreprocessorthenstrips awaytheback-facesoftheindividualbrusheswhichareoutsidethegame-space, leaving only the few polygons that define the outer perimeter of the enclosed gamespace.
Possible topics for discussion 1. Whichgames,inyouropinion,wereamilestoneingamedevelopmentandwhy?
140
English++
Mechanical Models of Artery Walls Chapter 3: History of Artery Wall Modelling Piotr Kalita and Robert Schaefer
Numberofwords
860(selectedpart)
Computersciencecontent
Low
Mathcontent
Low
Englishlanguagecomplexity
High
Learning objectives • tounderstandthebasicstructureofthecardiovascularsystem • tolearntheterminologyassociatedwiththecardiovascularsystem • tolearnaboutmechanicalmodelsofarterywalls • tolearnaboutpossibleapplicationofcomputerscienceinmedicine
Main sub-areas covered • cardiovascularmodels
Keywords • artery-oneofthetubesthatcarriesbloodfromthehearttotherestofthebody • Windkessel-(airkettle),oneofthemodelspresentedinthearticle • ODE-OrdinaryDifferentialEquations • PDE-PartialDifferentialEquations • heterogenous-consistingofvariouspartsthatareverydifferentfromeachother
Summary Thisisthethirdchapterofanarticleonmechanicalmodelsofarterywalls,presenting a short review of artery wall modeling history. It starts with the derivation of the wordartery.Next,theauthorspresentmodelsofbloodcirculation,describingtheir characteristicsandtheiradvantagesanddisadvantages. Jesttotrzecirozdziałpracypoświęconejmechanicznemumodelowaniuścianektętnic, wktórymautorzyskoncentrowalisięnakrótkimprzedstawieniuhistoriitegozagadnienia. Taczęśćrozpoczynasięodwyprowadzeniaznaczeniasłowaartery(tętnica),anastępnie zaprezentowanezostająkolejnemodeleukładukrwionośnegowrazzichopisami.
141
English++
Pre-reading exercises 1. Drawasimplemodelofthecardiovascularsystemandnameitsmainparts(arteries, veins,heartetc.) 2. Thinkaboutamodelofthesystemastreewiththeheartasitsroot
142
English++
History of Artery Wall Modelling
ThewordarterycomesfromGreek,itmeansairpipe(aerisairandtereinmeansto keepinGreek)asinancientGreeceitwasbelievedthatarteriescarryair.Thiswas correctedbyGaleninthe2ndcenturyADbuthestilldidnotrecognizethatblood circulatesandhealsodidnotconnectthepulseinarterieswiththebeatingofthe heart.Thecirculationofbloodandtheroleoftheheartasapumpwasdiscoveredin the18thcenturybyWilliamHarvey.However,thefirsttoconsidertheelasticityof arterywallsanditssignificanceinthepulsatilecharacterofbloodflowwasStephen Hales (1733), who originated the Windkessel (air kettle) theory later developed by OttoFrankneartheendof,the19thcentury(OttoFrankisactuallytheoriginatorof thenameWindkessel).Inthistheory,thearterywallsserveasareservoirofenergy,
artery oneofthetubes thatcarriesblood fromtheheart totherestofthebody
whichisstoredintheirdeformationduringthesystolebythestretchingofthewalls andthen,duringthediastole,isrestoredtotheblood,whichistherebypumpedto thecapillariesinaconstantandnon-pulsatoryway(asitisfromthehearttothe arteries).PureWindkesseltheoryleadstoODEsthatdonottakespatialrelationsinto account.Inparticular,theydonotreflectthefactthatduetoitswavelikecharacter, thepulsepropagatesalongthearterialtreeandisabletoreflect.Furtherdevelopment ofarterywallmodelsfollowedthedevelopmentofmechanicsandthroughoutthe 19thcenturyimportantcontributionstothefieldwereaddedbyYoung,Poiseuille, Hagenbach,MoensandKorteweg.
Windkessel(airkettle) oneofthemodels presentedinthearticle
PDEmodelswhichtakeintoaccountthedependenceofvariablesonbothspaceand timehavebeeninexistencesincethe19thcentury;however,theirusehasbeenboosted bytheuseofcomputersandtheincreaseintheircomputationalcapabilitiesaswellas thedevelopmentofmedicalmeasurementtechniquesfromthe1940stothepresent day.. (Timmons [131] claims that “we can expect highly detailed models emerging within the next few years as parallel computers become economical”). Two developmentsimportantforarterywallmodelingtookplaceinthe50sand60s:modern nonlinear mechanics, the theoretical framework most commonly used for artery models today; and the Finite Element Method (FEM), which is used to formulate relatively simple algorithms for numerical solutions of the underlying problems. Fromthe60stothe80svariousmodelsbasedonnonlinearmechanicswereusedto
143
English++ reflectarterywallbehavior.Theleadingresearcherinthisareawas(andstillis)Yuan ChengFung,whoisknownasthefatherofbiomechanics. Windkesselbasedmodels,beingsimpleandfairlyaccurate,remainpopularforglobalconsiderations,althoughonehastokeepinmindthattheyareinsufficientfor quantitative physiological predictions. For local approaches, on the other hand, ODE
complexcardiovascularPDEmodelsareused.PDEmodelsrangefromthe1Dmodelsin
Ordinary
whichtheunknownisthecrosssectionareaofthevessel(seeSect.4inthisarticle)to
DifferentialEquations
themostdetailed3Dmodels,bywhichonecanfindthedistributionofdisplacement ofthewallintimeandspace(seeSects.7and8).OftenPDEsystemsareconsidered withequationsofhydrodynamicsforflowcoupledwithequationsofelasticityforthe wall.Suchapproachesarethemostaccuratebuttheunderlyingproblemsarevery complex:equationsarehighlynonlinear,difficultintheoreticalconsiderations,and requireverylargecomputationalpowerfornumericsolution.
PDE Partial DifferentialEquations
The complex 3D models are also sensitive to parameters like the geometry of the domain,initialandboundaryconditionsandphysicalparametersoftheequations andallthesequantitiesarestilldifficulttodetermineusingpresentmeasurement techniques.Furthermore,thedevelopmentofmodelsislimitedbythecomplexity of the underlying physiology. New physiological phenomena are constantly being discovered, including sophisticated control and self-regulation mechanisms, the presenceofstressesandstrainsinunloadedarteries(residualstresses)andthestructure andfunctionofvariouscomponentsofthewallwhichdetermineitsheterogeneous andanisotropicbehavior.Modelsreflectingthesephenomenaincludealargenumber ofparametersandonemustkeepinmindthatfittingthemodelstothemeasurement datainsuchcasesissusceptibletomistakesand,furthermore,itissometimespossible thatamodelwhichisactuallyinaccuratecanbemadetofitthetestsinsomelimited measurementregime.
heterogenous
Becauseoftheselimitations,thesimulationswhichareglobal(i.e.involverelations
consistingofvariousparts
betweenvariousorgansofthebody)useonlysimplifiedcardiovascularmodels(like
thatareverydifferent
theWindkesseloritsextensions).Ontheotherhand,localspecializedmodelsare
fromeachother
availableforspecializedpurposesonly:forinstancetheyareusedinthedesignof stentsandgraftsaswellasthepredictionandtreatmentofatherosclerosisAmong thecomplexphenomenawhichhavebeenintensivelyinvestigatedandincorporated intocardiovascularmodelsinthelasttenyearsare: –includingtheresidualstresses –modellingthefluidstructureinteraction –consideringthetissueanisotropyandthepresenceofproteinfibres –consideringtheheterogeneityandlayeredstructureofthewall
144
–investigatingthemultiscalemodelswhichinvolvecouplingthesimple1dPDEor ODEmodelswithcomplex3dmodels(see[109]).
English++
Exercises Pre-reading questions 1. Drawasimplemodelofthecardiovascularsystemandnameitsmainparts(arteries, veins,heartetc.) 2. Thinkaboutamodelofthesystematreewiththeheartasitsroot
Comprehension questions 1. Whatisthemeaningofthewordssystoleanddiastole? • thecontractionofheartchambers,drivingbloodoutofthechambers • theperiodoftimewhentheheartrelaxesaftersystole(contraction) 2. WhatdoODEandPDEstandfor(asthey’renotexplainedinthearticle)? • ODE-OrdinaryDifferentialEquations • PDE-PartialDifferentialEquations 3. WhatistheroleofthearterywallsintheWindkesseltheory? • areservoirofenergy
Possible topics for discussion 1. Doyouthinkitispossibletocreateamathematicalmodelofthecardiovascular systemthatwillperfectlymatchtherealone?
Possible difficulty AdifficulttextasfarasEnglishgoesbutwithrelativelylowcomputersciencecontent; requiresminimummedicalknowledge.
Further reading ThewholearticleislocatedonEnglish++webpage.
145
English++
The Pitch Correction Algorithm: an Overview Robert Ahlfinger, Brenton Cheeseman, Patrick Doody
Numberofwords
1100
Computersciencecontent
High
Mathcontent
High
Englishlanguagecomplexity
High
Learning objectives • toacquireadvancedmathematicalvocabulary • todevelopreadingskillsbyidentifyingthemostrelevantinformation, • tobecomefamiliarwithscientificjargon
Sub-areas covered • Soundmodification • Wavemodification • Soundclearing
Keywords • DFT-DiscreteFourierTransform • FFT-FastFouriertransform • matrix-arectangulartableofelements(orentries),whichmaybenumbersor, moregenerally,anyabstractquantitiesthatcanbeaddedandmultiplied • matricize-changingsoundintopartsandwritingintoamatrix
Summary Thisisanintroductiontothespecifictechniquesinvolvedinthecreationofapitch corrector. Artykuł jest wprowadzeniem do technik związanych z tworzeniem modyfikatora wysokościdźwięku.
Pre-reading questions 1. Whatkindsofdigitalmusicformatsareyoufamiliarwith?
146
2. Doyouknowhowdigitalaudioisstored? 3. Howdoyouunderstandtheword“pitch”?
English++
The Pitch Correction Algorithm: An Overview 1 Time-Domain vs. Frequency-Domain Clearly,thegoalofthisalgorithmistotakeaninputvoicesignal,changethepitchof
matrix
thevoice,andoutputtheotherwiseunalteredsignal.Inordertodoso,thefirststep
arectangulartableof
istodecidewhethertoanalyzeandmanipulatethesesignalsinthetimedomainor
elements(orentries),
the frequency domain. Because our algorithm is primarily concerned with quickly
whichmaybenumbers
identifyingandshiftingindividualfrequencies,weworkedsolelyintherealmofthe
or,moregenerally,
frequencydomain.Ofcourse,thereareeffectivewaystodealwiththisproblemwithout
anyabstractquantities
thefrequencydomain.However,aswilllaterbecomeobvious,therearesomevery
thatcanbeaddedand
usefultechniqueswedevelopedthatarenotpossibleinthetimedomain.Withpitch
multiplied.
correctionitseemsthatParsevalhasmadeamistake;thereissimplymorepowerin thespectrum.
2 Basic System Model Nowthatwehavedecidedhowtolookatoursignals,weneedtodevelopageneral layoutandstrategyforhowitwillwork.
2.1 General Process Summary First,thesignalisMatricized,atermwecoinedtodescribeourparticularalgorithmto breakupthesignalandconvertitintotheFourierDomain.Basically,thesignalcomes inasalongstringofsampledvaluesthattogetherrepresentthewholesound.We,in turn,convertthisvectorofsamplesintoamatrixforwhicheachcolumnrepresents the spectrum of one slice, or chunk, of the signal. Although any chunk size could be used, we found the best performance with chunk sizes of 512 samples, which representsabout.02secondsofsoundforthe22kHzsamplingrateusedonoursignals. Next,wetaketheDiscreteFourierTransformforeachofthechunks,showingusthe frequenciespresentateverygivenmomentduringthespeech.TheseDFTsarethen collectedintoamatrixwith512rowsandasmanycolumnsasthereare.02second long chunks in the voice. With a given chunk, our Harmonic Detection algorithm hastheextremelydifficulttaskofaccuratelyandconsistentlyidentifyingthefirst harmonicofthevoice.Withthatinformationinhand,theprogramreconstructsa new DFT representation for the current chunk by first sliding the first harmonic downthespectrumbythedesiredshiftinpitch,andthenfollowingupwithallof theotherharmonics,shiftingeachonebyanincrementalmultipleofthefirstshift. Afterallofthechunkshavebeenprocessedandputintoamatrix,thisnewmatrixis dematricizedinordertoconverttheinformationbackintothetimedomainasanew stringofdigitalsamplesthatrepresentthefreshlymanipulatedvoice.
147
English++ 3 Detailed System Model: Step-by-Step DFT Discrete
The pitch synthesizer relies on several algorithms to properly alter the pitch of a person’svoicewithoutmutilatingitsclarity.
FourierTransform
3.1 Matricize First,thesignalismatricized,atermwecoinedtorepresentthetaskoftransforming thestringofspeechsamplesintoamatrixwhosecolumnseachrepresentthespectrum ofanoverlappingrectangularwindow,orchunk,ofthesignal.Eachportionofthe voiceiscontainedtwiceinthisinformationsinceexactlyonehalfofeachchunkis overlappedandcontainedwithinanadjacentchunk.Next,eachcolumnofthematrix isprocessedseparately,meaningweattempttochangethecharacteristicsofthevoice onepieceatatimeanddosoredundantly.
3.2 Harmonic Detection Nowthatwehaveisolatedthespectrumofachunkofoursignal,weuseaharmonic FFT
detectortofindthefirstharmonicofthevoiceatthatparticularpointintime.This
FastFouriertransform
taskisharderthanitfirstappearsanditslevelofaccuracymakesthesinglebiggest contributiontothefunctionalityandaccuracyofthepitchsynthesizerasawhole. Voicedvowelnoisesaretheonlypartsofspeechthatcontainpitch,sotheyneedto beprocesseddifferentlythantherestofthesignal.However,sincetherearemany periodsofnoiseaswellasvoiced(sandzsounds)andunvoiced(likefandt)fricatives alongside these important voiced vowel noises, the harmonic detector must wade througheachchunkandfirstdeterminewhetherornotitisdealingwithavoiced vowelnoise.Ifso,itcomputestheindexofthefirstharmonicofthesamplebytaking theDFTofthefirsthalfofthemagnitudeoftheDFToftheoriginalsignalchunk. TheresultingspectrumwillhaveaverylargeDCcomponentwhichrepresentsthe grab bag of frequencies present in the original signal, as well as repeating peaks correspondingtotheonlyperiodicaspectoftheoriginalDFTthesignal’sharmonics. Therefore,theharmonicdetectorcomparestheDCamplitudewiththenextbiggest peak,determiningsimultaneouslywhetherornotthischunkislikelytobeavoiced vowelnoiseandifsothefrequencyofitsfirstharmonic.
3.3 Frequency Shift With this information in hand, our program determines how far each and every frequencymustbeshifted.Sinceyouinterpretthepitchofavoiceasthefrequencyof itsfirstharmonic,thefirstharmonicisshiftedbyexactlythedesiredresult.Inturn, thefrequencyofeveryharmonicisamultipleofthefirst,sothesecondharmonic
148
mustbeshiftedtwiceasfarasthefirst;thethirdisshiftedthreetimesasfar,andso
English++ on.Infact,weusetheindexofthefirstharmonictodeterminehowmucheachand everyfrequencyintheoriginalchunkwillshifttobuildupthefirsthalfoftheDFT forournew,processedchunk.Wearetryingtoalterthepitchwithoutaffectingthe
matricize
lengthofthesound,sothisstretchedoutDFTmustbecutoffathalfthelengthofthe
changingsound
originalDFT,atwhichpointwehavethecompletedversionofthefronthalfofthe
intopartsandwriting
newDFT.Tocompletethesecondhalf,werelyontheDFT’ssymmetryproperties,
intoamatrix
notingthatouroriginalandfinalsoundsignalsarebothpurelyreal.Therefore,the realportionoftheDFTismirroredaboutthemiddle,andtheimaginaryportionis mirroredandflipped.Finallywehavecompletelyprocessedthegivenwindowofthe originalsignal.
3.4 Reconstruction To reconstruct the original signal, these processed DFT’s each become a column of anothermatrixwhichisthendematricizedbytakingtheinverseFFTofeachspectrum andplacingthemsidebysideintoanewsignalthathasthesamelengthastheoriginal. Theonlydifferenceofcoursebeingthatthevoiceinthesignalhasbecomeashighor aslowasthedesiredshift.
Pitch Shifted Speech Examples
Unalteredvoice
Original
PitchShiftedVoice
UpDown
149
English++
Exercises Pre-reading questions 1.Whatkindsofdigitalmusicformatsareyoufamiliarwith? • KindsofdigitalmusicwhichIamfamiliarwithareasfollows:wav,ogg,mpc,flac,aiff, raw,au,gsm,dct,vox,acc,mp4/m4a,mp3,wma,wav,ra,ram,dss,msv,dvf,mp4. 2. Doyouknowhowdigitalaudioisstored? • ThoughaWAVfilecanholdcompressedaudio,themostcommonWAVformat containsuncompressedaudiointhepulse-codemodulation(PCM)format.PCM audioisthestandardaudiofileformatforCDs,containingtwochannelsof44,100 samplespersecond,16bitspersample.SincePCMusesanuncompressed,lossless storagemethod,whichkeepsallthesamplesofanaudiotrack,professionalusers oraudioexpertsmayusetheWAVformatformaximumaudioquality.WAVaudio canalsobeeditedandmanipulatedwithrelativeeaseusingsoftware. 3. Howdoyouunderstandtheword“pitch”? • tosetataparticularpitch,ordeterminethekeyorkeynoteof(amelody), • thedegreeofheightordepthofatoneorofsound,dependingupontherelative rapidityofthevibrationsbywhichitisproduced, • theparticulartonalstandardwithwhichgiventonesmaybecomparedinrespect totheirrelativelevel, • apparentpredominantfrequencysoundedbyanacousticsource.
Comprehension questions 1. Explainthesewords: • to(de)matricize
tochangelinearintomatrix
• harmonic
pertainingtoharmony,asdistinguishedfrommelodyandrhythm;anacoustical frequencythatishigherinfrequencythanthefundamental.
2. Whatisthepitchcorrectionalgorithmusedfor? • Itisusedforchangingthepitchofvoicesignals. 3. Whataretheonlypartsofspeechthatcontainpitch? • Vowels. 4. ExplaintheabbreviationsDFT,FFT,DC • DFT-DiscreteFourierTransform • FFT-FastFourierTransform • DC-DirectCurrent
150
English++
Possible topics for discussion 1. Inwhatkindsofsituationsdoyouthinkthisalgorithmmightbeused? • Pitchcorrectionhasnumerousapplicationsandiscommonlyusedtoaddharmony to certain words or phrases without re-recording those words or phrases again andagainatthenecessarypitches.Dependingonthespecificmodelused,various vocaleffectscanbeadded
Possible difficulties
Thearticlecontainsalotoffieldspecificinformation.
151
English++
Software Development Process Wikipedia
Numberofwords
2330
Computersciencecontent
High
Mathcontent
Low
Businesscontent
Medium
Englishlanguagecomplexity
High
Learning objectives • torecognizedifferencesbetweentheIterativeandWaterfallProcessofsoftware development • tobeabletogiveexamplesoftheIterativeProcess • tounderstandthewholeprocessfromthecustomer’sordertoimplementation • toacquirebasicvocabularylinkedwiththesoftwaredevelopmentprocess
Sub-areas covered • Softwareengineering • Softwaredevelopmentmethodologies
Keywords • software-ingeneral,computerprograms • hardware-allthephysicalpartsofthecomputer • developer-personwhodevelopsthesoftware • agiledevelopment-awayofbuildingsoftware • code - (coding) refers to the process of transforming a concept into a program code • maintenance-“lookingafter”thewrittensoftware • bug-anerrorinsoftware,somethingthatspoilstheflowoftheprogram • up-front(design,analysis,requirements)-theoldestmethodofbuildingsoftware
Summary The text deals with the problem of software development. It starts with a short description of some standards (methodologies) that were introduced to unify the process of creating software. In a section entitled: “The Main Steps of Software Development”, the reader is introduced to the typical steps that a team follows
152
whiledevelopingsoftware.Foreachstepintheprocess,thereisabriefdescription of its basic characteristics. Then the text describes two different approaches to
English++ softwaredevelopment,inwhichthepreviouslylistedstepsareapplied.Thefinalpart discussestheiterativedevelopmentprocessanditsthreemaintypes.Thissection alsopresentssomeadvantagesanddisadvantagesoftheiterativeprocesscompared withthe“WaterfallProcess”modelofdesign,describedearlierinthetext. Tekstdotyczyproblematykitworzeniaoprogramowania.Nawstępie,opisanesąstandardy(metodologie)jakiezostaływprowadzonebyujednolicićtenproces.Wnastępnej części, zatytułowanej “Main Steps Of The Software Development”, przybliżone zostajągłównekroki,którymizwyklepodążazespółtworzącyoprogramowanie.Kroki teopatrzonesąkrótkimiopisamiichcechlubproblemów,jakiezesobąniosą.Dwie ostatnie części tekstu opisują dwa różne podejścia do tworzenia oprogramowania, wktórychwykorzystanesąopisanewcześniejkroki.Wostatniejczęści,opisującejiteracyjnyprocesprojektowaniaprzedstawionesątrzyspośródjegonajważniejszychodmian(AgileSoftwareDevelopment,ExtremeProgrammingiTestDrivenDevelopment). Częśćtaprzedstawiatakżeniektórezaletyorazwadyiteracyjnegoprocesuprojektowania w zestawieniu w modelem projektowania “Waterfall Processes” opisanym wcześniej.
Pre-reading questions 1. Whatkindofjobdoyouseeyourselfholdingfiveyearsfromnow? 2. Doyouknowanycompaniesdevelopingsoftware?Wouldyouliketojoinanyofthem? 3. How do you imagine work is organized in these companies? What software developmentmethodsdoyouknow? 4. Haveyouusedanyofthesemethodssofar?
153
English++
Software Development Process
A software development process is a structure imposed on the development of a softwareproduct.Synonymsincludesoftwarelifecycleandsoftwareprocess.There areseveralmodelsforsuchprocesses,eachdescribingapproachestoavarietyoftasks oractivitiesthattakeplaceduringtheprocess. A growing body of software development organizations implement process methodologies.Manyofthemareinthedefenseindustry,whichintheU.S.requires aratingbasedon‘processmodels’toobtaincontracts.Theinternationalstandardfor describingthemethodofselecting,implementingandmonitoringthelifecyclefor softwareisISO12207. software
The Capability Maturity Model (CMM) is one of the leading models. Independent
ingeneral
assessmentsgradeorganizationsonhowwelltheyfollowtheirdefinedprocesses,not
computerprograms
onthequalityofthoseprocessesorthesoftwareproduced.CMMisgraduallybeing replacedbyCMMI.ISO9000describesstandardsforformallyorganizingprocesses withdocumentation. ISO15504,alsoknownasSoftwareProcessImprovementCapabilityDetermination (SPICE),isa“frameworkfortheassessmentofsoftwareprocesses”.Thisstandardis aimedatsettingoutaclearmodelforprocesscomparison.SPICEisusedmuchlike CMMandCMMI.Itmodelsprocessestomanage,control,guideandmonitorsoftware development. This model is then used to measure what a development organizationorprojectteamactuallydoesduringsoftwaredevelopment.Thisinformationis analyzedtoidentifyweaknessesanddriveimprovement.Italsoidentifiesstrengthsthat canbecontinuedorintegratedintocommonpracticeforthatorganizationorteam. SixSigmaisamethodologytomanageprocessvariationsthatusesdataandstatistical analysistomeasureandimproveacompany’soperationalperformance.Itworksby identifyingandeliminatingdefectsinmanufacturingandservice-relatedprocesses. The maximum permissible defects is 3.4 per one million opportunities. However, SixSigmaismanufacturing-orientedandneedsfurtherresearchonitsrelevanceto
154
softwaredevelopment.
English++ The Main Steps of Software Development Domain Analysis Oftenthefirststepinattemptingtodesignanewpieceofsoftware,whetheritbe
hardware
anadditiontoanexistingsoftware,anewapplication,anewsubsystemorawhole
allthephysicalparts
newsystem,is,whatisgenerallyreferredtoas“DomainAnalysis”.Assumingthatthe
ofthecomputer
developers(includingtheanalysts)arenotsufficientlyknowledgeableinthesubject areaofthenewsoftware,thefirsttaskistoinvestigatetheso-called“domain”ofthe software.Themoreknowledgeabletheyareaboutthedomainalready,thelessthe workrequired.Anotherobjectiveofthisworkistogettheanalysts(whowilllater trytoelicitandgathertherequirementsfromthearea)expertsorprofessionalsto speakwiththeminthedomain’sownterminologyandtobetterunderstandwhatis beingsaidbythesepeople,otherwisetheywillnotbetakenseriously.So,thisphase isanimportantpreludetoextractingandgatheringtherequirements.Thefollowing quotecapturesthekindofsituationananalystwhohasn’tdonehishomeworkwell mayfaceinspeakingwithaprofessionalfromthedomain:“Iknowyoubelieveyou understoodwhatyouthinkIsaid,butIamnotsureyourealizewhatyouheardisnot whatImeant.”
Software Elements Analysis Themostimportanttaskincreatingasoftwareproductisextractingtherequirements. Customerstypicallyknowwhattheywant,butnotwhatsoftwareshoulddo,while incomplete,ambiguousorcontradictoryrequirementsarerecognizedbyskilledand experiencedsoftwareengineers.Frequentlydemonstratinglivecodemayhelpreduce theriskthattherequirementsareincorrect.
Specification Specificationisthetaskofpreciselydescribingthesoftwaretobewritten,possiblyin arigorousway.Inpractice,mostsuccessfulspecificationsarewrittentounderstand andfine-tuneapplicationsthatwerealreadywell-developed,althoughsafety-critical software systems are often carefully specified prior to application development. Specificationsaremostimportantforexternalinterfacesthatmustremainstable.
Software architecture The architecture of a software system refers to an abstract representation of that system.Architectureisconcernedwithmakingsurethesoftwaresystemwillmeet therequirementsoftheproduct,aswellasensuringthatfuturerequirementscan beaddressed.Thearchitecturestepalsoaddressesinterfacesbetweenthesoftware
155
English++ systemandothersoftwareproducts,aswellastheunderlyinghardwareorthehost operatingsystem.
Implementation (or coding) Reducingadesigntocodemaybethemostobviouspartofthesoftwareengineering job,butitisnotnecessarilythelargestportion.
Testing Testingofpartsofsoftware,especiallywherecodebytwodifferentengineersmust worktogether,fallstothesoftwareengineer.
Documentation An important (and often overlooked) task is documenting the internal design of softwareforthepurposeoffuturemaintenanceandenhancement.Documentation ismostimportantforexternalinterfaces.
Software Training and Support developer
Alargepercentageofsoftwareprojectsfailbecausethedevelopersfailtorealizethatit
personwhodevelops
doesn’tmatterhowmuchtimeandplanningadevelopmentteamputsintocreating
thesoftware
softwareifnobodyinanorganizationendsupusingit.Peopleareoccasionallyresistant tochangeandavoidventuringintoanunfamiliarareaso,asapartofthedeployment phase, it is very important to have training classes for the most enthusiastic softwareusers,shiftingthetrainingtowardstheneutralusersintermixedwiththeavid supporters,andfinallyincorporatetherestoftheorganizationintoadoptingthenew software.Userswillhavelotsofquestionsandsoftwareproblemswhichleadstothe nextphaseofsoftware.
Maintenance Maintainingandenhancingsoftwaretocopewithnewlydiscoveredproblemsornew requirementscantakefarmoretimethantheinitialdevelopmentofthesoftware. Notonlymayitbenecessarytoaddcodethatdoesnotfittheoriginaldesignbutjust determining how software works at some point after it is completed may require significanteffortbyasoftwareengineer.About60%ofallsoftwareengineeringwork ismaintenance,butthisstatisticcanbemisleading.Asmallpartofthatisfixingbugs. Mostmaintenanceisextendingsystemstodonewthings,whichinmanywayscan beconsiderednewwork.
156
English++ Waterfall processes Thebest-knownandoldestprocessisthewaterfallmodel,wheredevelopers(roughly) followthesestepsinorder: • staterequirements • analyzerequirements • designasolutionapproach
agiledevelopment awayofbuildingsoftware
• architectasoftwareframeworkforthatsolution • developcode • test(perhapsunitteststhensystemtests) • deploy • post-implementation. After each step is finished, the process proceeds to the next step, just as builders don’trevisethefoundationofahouseaftertheframinghasbeenerected.Thereisa misconceptionthattheprocesshasnoprovisionforcorrectingerrorsinearlysteps (forexample,intherequirements).Infactthisiswherethedomainofrequirements managementcomesinwhichincludeschangecontrol.Thisapproachisusedinhigh riskprojects,particularlylargedefensecontracts.Theproblemsinwaterfalldonot arise from “immature engineering practices, particularly in requirements analysis and requirements management”. Studies of the failure rate of the DOD-STD-2167 specification,whichenforcedwaterfall,haveshownthatthemorecloselyaproject followsitsprocess,specificallyinup-frontrequirementsgathering,themorelikely theprojectistoreleasefeaturesthatarenotusedintheircurrentform.
Iterative processes Iterative development prescribes the construction of initially small but ever larger portionsofasoftwareprojecttohelpallthoseinvolvedtouncoverimportantissues earlybeforeproblemsorfaultyassumptionscanleadtodisaster.Iterativeprocesses arepreferredbycommercialdevelopersbecauseitallowsapotentialofreachingthe designgoalsofacustomerwhodoesnotknowhowtodefinewhattheywant. Agile software development processes are built on the foundation of iterative development.Tothatfoundationtheyaddalighter,morepeople-centricviewpoint thantraditionalapproaches.Agileprocessesusefeedback,ratherthanplanning,as theirprimarycontrolmechanism.Thefeedbackisdrivenbyregulartestsandreleases oftheevolvingsoftware. Agile processes seem to be more efficient than older methodologies, using less programmertimetoproducemorefunctional,higherqualitysoftware,buthavethe drawbackfromabusinessperspectivethattheydonotprovidelong-termplanning capability. However, polls show gains, sometimes significant. For example, a sur-
157
English++ vey, published in August 2006 by Version One and Agile Alliance and based on polling more than 700 companies shows the following benefits of Agile approach (http://www.agilejournal.com/articles/from-the-editor/agile-survey-results%3a-solid -experience-and-real-results.html). The survey was repeated in August 2007 with about 1,700 respondents (http://www.agilejournal.com/articles/from-the-editor/ agile-survey-results%3a-widespread-adoption,-emphasis-on-productivity-and-quality. html).Herearesomeresults: code(coding) refers
1. Accelerated time to market.
totheprocessof
1. 2006:10%orhigherimprovementsreportedby86%ofrespondents
transformingaconcept
2. 2007:10%orhigherimprovementsreportedby90%ofrespondents
intoaprogramcode
3. 2006:25%orhigherimprovementsreportedby60%ofrespondents 4. 2007:25%orhigherimprovementsreportedby54%ofrespondents
2. Increased productivity. 1. 2006:10%orhigherimprovementsreportedby87%ofrespondents 2. 2007:10%orhigherimprovementsreportedby83%ofrespondents 3. 2006:25%orhigherimprovementsreportedby55%ofrespondents 4. 2007:25%orhigherimprovementsreportedby55%ofrespondents
3. Reduced software defects. 1. 2006:10%orhigherimprovementsreportedby86%ofrespondents 2. 2007:10%orhigherimprovementsreportedby85%ofrespondents 3. 2006:25%orhigherimprovementsreportedby55%ofrespondents 4. 2007:25%orhigherimprovementsreportedby54%ofrespondents
4. Reduced cost. 1. 2006:10%orhigherimprovementsreportedby63%ofrespondents 2. 2007:10%orhigherimprovementsreportedby28%ofrespondents 3. 2006:25%orhigherimprovementsreportedby26%ofrespondents 4. 2007:25%orhigherimprovementsreportedby28%ofrespondents Thestabilityofresultsonabroadersetofrespondentssuggeststhatweseetheactual trend.
Among other interesting improvements reported were: •Enhancedabilitytomanagechangingpriorities •AlignmentbetweenITandbusinessgoals •Improvedteammorale
158
•Reducedprojectrisk
English++ Thereisalsoaninterestingchartathttp://versionone.com/Resources/AgileBenefits. asp that shows Agile development value proposition in comparison to traditional development. ExtremeProgramming,XP,isthebest-knowniterativeprocess.InXP,thephasesare carriedoutinextremelysmall(or“continuous”)stepscomparedtotheolder,“batch” processes.The(intentionallyincomplete)firstpassthroughthestepsmighttakea dayoraweek,ratherthanthemonthsoryearsofeachcompletestepintheWaterfallmodel.First,onewritesautomatedtests,toprovideconcretegoalsfordevelopment.Nextiscoding(byapairofprogrammers),whichiscompletewhenallthetests
maintenance
pass,andtheprogrammerscan’tthinkofanymoreteststhatareneeded.Designand
“lookingafter”
architectureemergeoutofrefactoring,andcomeaftercoding.Designisdonebythe
thewrittensoftware
samepeoplewhodothecoding.(Onlythelastfeature-mergingdesignandcode-is commontoalltheotheragileprocesses.)Theincompletebutfunctionalsystemis deployedordemonstratedfor(somesubsetof)theusers(atleastoneofwhichison thedevelopmentteam).Atthispoint,thepractitionersstartagainonwritingtestsfor thenextmostimportantpartofthesystem. Test Driven Development (TDD) is a useful output of the Agile camp but raises a conundrum.TDDrequiresthataunittestbewrittenforaclassbeforetheclassis written.Therefore,theclassfirstlyhastobe“discovered”andsecondlydefinedin sufficient detail to allow the write-test-once-and-code-until-class-passes model that TDDactuallyuses.ThisisactuallycountertoAgileapproaches,particularly(so-called) AgileModeling,wheredevelopersarestillencouragedtocodeearly,withlightdesign. Obviously, to get the claimed benefits of TDD, a full design down to class and
bug
responsibilities(capturedusing,forexample,DesignByContract)isnecessary.This
anerrorinsoftware,
countstowardsiterativedevelopment,withadesignlockeddown,butnotiterative
somethingthatspoils
design-asheavyrefactoringandre-engineeringnegatetheusefulnessofTDD.
theflowoftheprogram
Whileiterativedevelopmentapproacheshavetheiradvantages,softwarearchitects are still faced with the challenge of creating a reliable foundation upon which to develop. Such a foundation often requires a fair amount of up-front analysis and prototyping to build a development model. The development model often relies uponspecificdesignpatternsandentityrelationshipdiagrams(ERD).Withoutthis upfrontfoundation,iterativedevelopmentcancreatelongtermchallengesthatare significantintermsofcostandquality. Criticsofiterativedevelopmentapproachespointoutthattheseprocessesplacewhat maybeanunreasonableexpectationupontherecipientofthesoftware:thatthey must possess the skills and experience of a seasoned software developer. The approachcanalsobeveryexpensiveifiterationsarenotsmallenoughtomitigaterisk; akin to… “If you don’t know what kind of house you want, let me build you one
159
English++ and see if you like it. If you don’t, we’ll tear it all down and start over”. By analogythecriticarguesthatup-frontdesignisasnecessaryforsoftwaredevelopment asitisforarchitecture.Theproblemwiththiscriticismisthatthewholepointof up-front(design,analysis,
iterativeprogrammingisthatyoudon’thavetobuildthewholehousebeforeyouget
requirements)
feedbackfromtherecipient.Indeed,inasenseconventionalprogrammingplacesmore
–theoldestmethodof
ofthisburdenontherecipient,astherequirementsandplanningphasestakeplace
buildingsoftware
entirelybeforethedevelopmentbegins,andtestingonlyoccursafterdevelopment isofficiallyover. Infact,arelativelyquietturnaroundintheAgilecommunityhasoccurredonthe notionof“evolving”thesoftwarewithouttherequirementslockeddown.Intheold world this was called requirements creep and never made commercial sense. The Agilecommunityhassimilarlybeen“burnt”because,intheend,whenthecustomer asksforsomethingthatbreaksthearchitecture,andwon’tpayforthere-work,the projectterminatesinanAgilemanner. These approaches have been developed along with web based technologies. As such,theyareactuallymoreakintomaintenancelifecyclesgiventhatmostofthe architecture and capability of the solutions is embodied within the technology selectedasthebackboneoftheapplication.
160
English++
Exercises Pre-reading questions 1. Whatkindofjobdoyouseeyourselfholdingfiveyearsfromnow? • computerprogrammer/softwaredeveloper,graphicdesigner,scientist 2. Doyouknowanycompaniesdevelopingsoftware?Wouldyouliketojoinanyof them? • IBM,Google,Microsoft,Sabre,Motorola,Onet,Interia 3. How do you imagine work is organized in these companies? What software developmentmethodsdoyouknow? • methods:forexample,iterative(extremeprogramming) 4. Haveyouusedanyofthesemethodssofar?
Comprehension questions 1. WhatistheideabehindTestDrivenDevelopment? • Writingtestsforallthestepsofsoftwaredevelopment,fromplanningtocoding. 2. WhatarethemainbenefitsofusingAgileMethods? • Betterproductivity,reductionofsoftwaredefects,costreduction,reducedproject risk. 3. WhatisthemainaimofintroducingtheSPICEstandard? • Tosimplifythecomparisonofdifferentdevelopmentmodels. 4. WhatistheaimofutilizingtheSixSigmamethodology,andhowcanithelpthe performanceofsomekindsofcompanies? • TheaimofusingtheSixSigmamethodologyistoimprovetheperformanceof a company. The use of this methodology can identify and eliminate defects in manufacturingandservice-relatedprocesses. 5. Which of the software development steps involve most contact with the customer?(possibletopicfordiscussion) • Softwareelementsanalysis,Specification,Softwaretrainingandsupport. 6. What kind of projects often requires the use of the Waterfall Process of softwaredevelopment? • Usuallyhigh-riskprojects. 7. Whatisthefunctionofrequirementsmanagement,mentionedinreferenceto WaterfallProcess? • Tocontrolchangesandcorrectmistakesduringrequirementsestablishing. 8. Withreferencetoiterativeprocesses,whatisagiledevelopmentmainlybasedon? • It is mainly based on the feedback given by the customer, who is repeatedly providedwithconstantlyevolvingsoftware. 9. Whatconditionmustthecodingprocessfulfilbeforeitcanbecompleted? • Theimplementedparthastopassallthetestsdesignedbeforecoding.
161
English++ Further exercises 1. Studentsworkintwoteams:A/B.GroupAarethecustomers,groupBthedevelopers. Imaginehowtheiterativeprocessofdevelopmentworksonanyapplication(e.g. buildingahouse)andsimulateit.Prepareaveryshortreportwhichsumsupthe negotiationsbetweentheteams. 2. Prepareacomparisonbetweeniterativeandwaterfallprocesses.Writeitdownin tableform.Focusingonthedifferences,answerthefollowingquestions: • Whichfeaturesofthesetechniquesdoyouthinkarebetter? • Doyouuseanyofthem?Whichonesandwhy?
Possible topics for discussion 1. Doyouagreewiththecriticsoftheiterativeprocesses? 2. Whatarethestepsofsoftwaredevelopmentthatareindispensableforcreatinga goodacademicproject? 3. Imaginethatyouarethemanagerofateamofseveralpeople.Writetheoutline ofaprojectthatyouhaveheardaboutduringyourstudies.Howwouldyoudivide theworkwithinyourteamtomakethefinalproductperfect?
Possible difficulties In some parts of the text the language is complicated, so intensive reading is required.
162
English++
English++ English for Computer Science Students
Listening Chapter
163
English++
164
English++
What is Artificial Intelligence? Basic Questions John McCarthy
Runningtime
17’41
Computersciencecontent
Medium
Mathcontent
Low
Englishlanguagecomplexity
Medium
Learning objectives • tounderstandwhatexactlyismeantbythetermartificialintelligence(AI) • tobeawareofthecurrentsituationinAIsystemsandthepossibilitiesforfuture development • tounderstandgeneralAItheories
Keywords • confine-todefineboundaries;tolimittheextent(ofanactivity) • computational-adj.1.involvingcomputers,2.thatcanbecomputed • correlate-tohaveaclosesimilarity,connectionorcausalrelationshipwith • heuristichypothesis-ahypothesisthathasaveryhighprobabilityofbeingtrue onthebasisofreasoningandpastexperience • cognitivescience-thescientificstudyofmindorintelligencebasedonrelevant fields,includingpsychology,philosophy,neuroscience,linguistics,anthropology, computerscience,andbiology • incoherent-confusedandinconsistent;illogical • computationalcomplexity-anareaofcomputerdesigndealingwiththeproblems ofalgorithmsandtheirabilitytosolveagivenproblem
Pre-listening questions 1. Howwouldyoudefine“intelligence”? 2. Haveyoueverthoughtofcomputerprogramsasbeing“intelligent”? 3. Doyouthinkthatcomputersormachineswilleverbeasintelligentashumans? 4. Are you afraid of the nightmare scenario in which machines have control over people,possiblyleadingtotheannihilationofthehumanrace?
165
English++
Summary Thistext,intheformofaninterview,iswrittenbyProf.JohnMcCarthyofStanford University,whoisanauthorityinthefieldofAIandwasthefirsttousethisterm. ItcoversthemainideasofAIanditsdifferencesfromhumanintelligenceaswellas describingAIinthecontextofbiology,psychologyandevenphilosophy.Intheinterview ProfessorMcCarthyanswersbasicquestionsaboutartificialintelligence. Ciekawy tekst opisujący podstawowe i bardzo ogólne zagadnienia z problemu sztucznejinteligencji.Jegoniewątpliwymwaloremjestfakt,iżpomimoogólnejtreści dotykaondziedzintakichjak:psychologia,naukikognitywneczyzłożonośćobliczeniowa.Możnawnimznaleźćpytania,któremógłbyzadaćcałkowitylaikizadowolić sięichodpowiedzią,jednocześnieinteresująciinformatyków.Dodatkowo,ponieważ tekstjesttakogólny,możezachęcićstudentówdoposzukiwaniabardziejzaawansowanychtekstównatematAI.TekstjestnapisanywformieFAQ,imożesłużyćjako przybliżenietejformypisanegotekstu.
166
English++ Transcript
What is Artificial Intelligence? Basic Questions Q.Whatisartificialintelligence? A. It is the science and engineering of making intelligent machines, especially
correlate
intelligentcomputerprograms.Itisrelatedtothesimilartaskofusingcomputersto
tohaveaclosesimilarity,
understandhumanintelligence,butAIdoesnothavetoconfineitselftomethods
connectionorcausal
thatarebiologicallyobservable.
relationshipwith
Q.Yes,butwhatisintelligence? A.Intelligenceisthecomputationalpartoftheabilitytoachievegoalsintheworld. Varyingkindsanddegreesofintelligenceoccurinpeople,manyanimalsandsome machines. Q.Isn’tthereasoliddefinitionofintelligencethatdoesn’tdependonrelatingit tohumanintelligence? A.Notyet.Theproblemisthatwecannotyetcharacterizeingeneralwhatkindsof computational procedures we want to call intelligent. We understand some of the mechanismsofintelligenceandnotothers. Q.IsintelligenceasinglethingsothatonecanaskayesornoquestionIsthis machineintelligentornot? A. No. Intelligence involves mechanisms, and AI research has discovered how to make computers carry out some of them and not others. If doing a task requires onlymechanismsthatarewellunderstoodtoday,computerprogramscangivevery impressiveperformancesonthesetasks.Suchprogramsshouldbeconsideredsomewhatintelligent. Q.Isn’tAIaboutsimulatinghumanintelligence? A.Sometimesbutnotalwaysorevenusually.Ontheonehand,wecanlearnsomething abouthowtomakemachinessolveproblemsbyobservingotherpeopleorjustby observingourownmethods.Ontheotherhand,mostworkinAIinvolvesstudyingthe problemstheworldpresentstointelligenceratherthanstudyingpeopleoranimals. AIresearchersarefreetousemethodsthatarenotobservedinpeopleorthatinvolve muchmorecomputingthanpeoplecando. Q.WhataboutIQ?DocomputerprogramshaveIQs? A.No.IQisbasedontheratesatwhichintelligencedevelopsinchildren.Itisthe ratiooftheageatwhichachildnormallymakesacertainscoretothechild’sage.
167
English++ The scale is extended to adults in a suitable way. IQ correlates well with various measuresofsuccessorfailureinlife,butmakingcomputersthatcanscorehighon IQtestswouldbeweaklycorrelatedwiththeirusefulness.Forexample,theabilityof achildtorepeatbackalongsequenceofdigitscorrelateswellwithotherintellectual abilities,perhapsbecauseitmeasureshowmuchinformationthechildcancompute with at once. However, digit span is trivial for even extremely limited computers. However,someoftheproblemsonIQtestsareusefulchallengesforAI. Q.Whataboutothercomparisonsbetweenhumanandcomputerintelligence? Arthur R. Jensen [Jen98], a leading researcher in human intelligence, suggests as a heuristichypothesisthatallnormalhumanshavethesameintellectualmechanismsand thatdifferencesinintelligencearerelatedtoquantitativebiochemicalandphysiological conditions.Iseethemasspeed,shorttermmemory,andtheabilitytoformaccurate andretrievablelongtermmemories.WhetherornotJensenisrightabouthumanintelligence,thesituationinAItodayisthereverse.Computerprogramshaveplentyofspeed andmemorybuttheirabilitiescorrespondtotheintellectualmechanismsthatprogram designers understand well enough to put in programs. Some abilities that children normallydon’tdeveloptilltheyareteenagersmaybein,andsomeabilitiespossessedby twoyearoldsarestillout.Thematterisfurthercomplicatedbythefactthatthecognitive sciencesstillhavenotsucceededindeterminingexactlywhatthehumanabilitiesare.Very likelytheorganizationoftheintellectualmechanismsforAIcanusefullybedifferent from that in people. Whenever people do better than computers on some task or computersusealotofcomputationtodoaswellaspeople,thisdemonstratesthatthe programdesignerslackunderstandingoftheintellectualmechanismsrequiredtodothetask efficiently. Q.WhendidAIresearchstart? heuristichypothesis
A. After WW II, a number of people independently started to work on intelligent
ahypothesisthat
machines.TheEnglishmathematicianAlanTuringmayhavebeenthefirst.Hegave
hasaveryhighprobability
alectureonitin1947.HealsomayhavebeenthefirsttodecidethatAIwasbest
ofbeingtrue
researchedbyprogrammingcomputersratherthanbybuildingmachines.Bythelate
onthebasisofreasoning
1950s,thereweremanyresearchersonAI,andmostofthemwerebasingtheirwork
andpastexperience
onprogrammingcomputers. Q.DoesAIaimtoputthehumanmindintothecomputer? A.Someresearcherssaytheyhavethatobjective,butmaybetheyareusingthephrase metaphorically.Thehumanmindhasalotofpeculiarities,andI’mnotsureanyone isseriousaboutimitatingallofthem.
168
English++ Q.WhatistheTuringtest? A. Alan Turing’s 1950 article Computing Machinery and Intelligence [Tur50] discussedconditionsforconsideringamachinetobeintelligent.Hearguedthatifthe machinecouldsuccessfullypretendtobehumantoaknowledgeableobserverthen youcertainlyshouldconsideritintelligent.Thistestwouldsatisfymostpeoplebut notallphilosophers.Theobservercouldinteractwiththemachineandahumanby teletype(toavoidrequiringthatthemachineimitatetheappearanceorvoiceofthe person),andthehumanwouldtrytopersuadetheobserverthatitwashumanand themachinewouldtrytofooltheobserver. TheTuringtestisaone-sidedtest.Amachinethatpassesthetestshouldcertainly
computationalcomplexity
beconsideredintelligent,butamachinecouldstillbeconsideredintelligentwithout
anareaof
knowing enough about humans to imitate a human. Daniel Dennett’s book
computerdesign
Brainchildren[Den98]hasanexcellentdiscussionoftheTuringtestandthevarious
dealingwiththeproblems
partialTuringteststhathavebeenimplemented,i.e.withrestrictionsontheobserver’s
ofalgorithms
knowledgeofAIandthesubjectmatterofquestioning.Itturnsoutthatsomepeople
andtheirability
areeasilyledintobelievingthataratherdumbprogramisintelligent.
tosolveagivenproblem
Q.DoesAIaimathuman-levelintelligence? A.Yes.Theultimateeffortistomakecomputerprogramsthatcansolveproblems andachievegoalsintheworldaswellashumans.However,manypeopleinvolvedin particularresearchareasaremuchlessambitious. Q.HowfarisAIfromreachinghuman-levelintelligence?Whenwillithappen? A.Afewpeoplethinkthathuman-levelintelligencecanbeachievedbywritinglarge numbersofprogramsofthekindpeoplearenowwritingandassemblingvastknowledge basesoffactsinthelanguagesnowusedforexpressingknowledge.However,mostAI researchersbelievethatnewfundamentalideasarerequired,andthereforeitcannot bepredictedwhenhuman-levelintelligencewillbeachieved. Q.Arecomputerstherightkindofmachinetobemadeintelligent? A.Computerscanbeprogrammedtosimulateanykindofmachine.Manyresearchers inventednon-computermachines,hopingthattheywouldbeintelligentindifferent ways than the computer programs could be. However, they usually simulate their inventedmachinesonacomputerandcometodoubtthatthenewmachineisworth building.Becausemanybillionsofdollarshavebeenspentinmakingcomputersfaster andfaster,anotherkindofmachinewouldhavetobeveryfasttoperformbetterthan aprogramonacomputersimulatingthemachine.
169
English++ Q.Arecomputersfastenoughtobeintelligent? A.Somepeoplethinkmuchfastercomputersarerequiredaswellasnewideas.My ownopinionisthatthecomputersof30yearsagowerefastenoughifonlyweknew howtoprogramthem.Ofcourse,quiteapartfromtheambitionsofAIresearchers, computerswillkeepgettingfaster. Q.Whataboutparallelmachines? A. Machines with many processors are much faster than single processors can be. Parallelismitselfpresentsnoadvantages,andparallelmachinesaresomewhatawkward toprogram.Whenextremespeedisrequired,itisnecessarytofacethisawkwardness. Q. What about making a child machine that could improve by reading and by learningfromexperience? cognitivescience
A.Thisideahasbeenproposedmanytimes,startinginthe1940s.Eventually,itwill
thescientificstudy
bemadetowork.However,AIprogramshaven’tyetreachedthelevelofbeingableto
ofmindorintelligence
learnmuchofwhatachildlearnsfromphysicalexperience.Nordopresentprograms
basedon relevantfields, includingpsychology, philosophy,neuroscience, linguistics, anthropology, computerscience, andbiology
understandlanguagewellenoughtolearnmuchbyreading. Q. Might an AI system be able to bootstrap itself to higher and higher level intelligencebythinkingaboutAI? A.Ithinkyes,butwearen’tyetatalevelofAIatwhichthisprocesscanbegin. Q.Whataboutchess? A. Alexander Kronrod,a Russian AI researcher, saidChess isthe Drosophilaof AI. Hewasmakingananalogywithgeneticists’useofthatfruitflytostudyinheritance. Playingchessrequirescertainintellectualmechanismsandnotothers.Chessprograms nowplayatgrandmasterlevel,buttheydoitwithlimitedintellectualmechanisms compared to those used by a human chess player, substituting large amounts of computationforunderstanding.Onceweunderstandthesemechanismsbetter,wecan buildhuman-levelchessprogramsthatdofarlesscomputationthandopresentprograms.Unfortunately,thecompetitiveandcommercialaspectsofmakingcomputers playchesshavetakenprecedenceoverusingchessasascientificdomain.Itisasif thegeneticistsafter1910hadorganizedfruitflyracesandconcentratedtheirefforts onbreedingfruitfliesthatcouldwintheseraces. Q.WhataboutGo? A.TheChineseandJapanesegameofGoisalsoaboardgameinwhichtheplayers take turns moving. Go exposes the weakness of our present understanding of the
170
intellectualmechanismsinvolvedinhumangameplaying.Goprogramsareverybad players,inspiteofconsiderableeffort(notasmuchasforchess).Theproblemseems
English++ tobethatapositioninGohastobedividedmentallyintoacollectionofsub-positions which are first analyzed separately followed by an analysis of their interaction. Humansusethisinchessalso,butchessprogramsconsiderthepositionasawhole. Chess programs compensate for the lack of this intellectual mechanism by doing thousandsor,inthecaseofDeepBlue,manymillionsoftimesasmuchcomputation. Soonerorlater,AIresearchwillovercomethisscandalousweakness. Q.Don’tsomepeoplesaythatAIisabadidea? A. The philosopher John Searle says that the idea of a non-biological machine be-
confine
ingintelligentisincoherent.HeproposestheChineseroomargumentwww-formal.
todefineboundaries;
stanford.edu/jmc/chinese.html The philosopher Hubert Dreyfus says that AI is
tolimittheextent
impossible. The computer scientist Joseph Weizenbaum says the idea is obscene,
(ofanactivity)
anti-humanandimmoral.Variouspeoplehavesaidthatsinceartificialintelligence hasn’t reached human level by now, it must be impossible. Still other people are disappointedthatcompaniestheyinvestedinwentbankrupt. Q. Aren’t computability theory and computational complexity the keys to AI? [Notetothelaymanandbeginnersincomputerscience:Thesearequitetechnical branchesofmathematicallogicandcomputerscience,andtheanswertothequestion
computational 1.involvingcomputers 2.thatcanbecomputed
hastobesomewhattechnical.] A.No.Thesetheoriesarerelevantbutdon’taddressthefundamentalproblemsof AI.Inthe1930smathematicallogicians,especiallyKurtGödelandAlanTuring,establishedthattheredidnotexistalgorithmsthatwereguaranteedtosolveallproblems incertainimportantmathematicaldomains.Whetherasentenceoffirstorderlogic isatheoremisoneexample,andwhetherapolynomialequationinseveralvariables hasintegersolutionsisanother.Humanssolveproblemsinthesedomainsallthe time,andthishasbeenofferedasanargument(usuallywithsomedecorations)that computersareintrinsicallyincapableofdoingwhatpeopledo.RogerPenroseclaims this.However,peoplecan’tguaranteetosolvearbitraryproblemsinthesedomains either.SeemyReviewofTheEmperor’sNewMindbyRogerPenrose.Moreessays andreviewsdefendingAIresearchareinmybookConceptsofLogicalAI[McC96a]. Inthe1960scomputerscientists,especiallySteveCookandRichardKarpdeveloped thetheoryofNP-completeproblemdomains.Problemsinthesedomainsaresolvable, butseemtotaketimeexponentialinthesizeoftheproblem.Whichsentencesof propositionalcalculusaresatisfiableisabasicexampleofanNP-completeproblem domain.HumansoftensolveproblemsinNP-completedomainsintimesmuchshorter thanisguaranteedbythegeneralalgorithms,butcan’tsolvethemquicklyingeneral. WhatisimportantforAIistohavealgorithmsascapableaspeopleatsolvingproblems. Theidentificationofsubdomainsforwhichgoodalgorithmsexistisimportant,buta
171
English++ lotofAIproblemsolversarenotassociatedwithreadilyidentifiedsubdomains. incoherent
The theory of the difficulty of general classes of problems is called computational
confused
complexity.Sofarthistheoryhasn’tinteractedwithAIasmuchasmighthavebeen
andinconsistent;illogical
hoped.SuccessinproblemsolvingbyhumansandbyAIprogramsseemstorelyon propertiesofproblemsandproblemsolvingmethodsthattheneitherthecomplexity researchersnortheAIcommunityhavebeenabletoidentifyprecisely.AlgorithmiccomplexitytheoryasdevelopedbySolomonoff,KolmogorovandChaitin(independently ofoneanother)isalsorelevant.Itdefinesthecomplexityofasymbolicobjectasthe lengthoftheshortestprogramthatwillgenerateit.Provingthatacandidateprogram is the shortest or close to the shortest is an unsolvable problem, but representing objectsbyshortprogramsthatgeneratethemshouldsometimesbeilluminatingeven whenyoucan’tprovethattheprogramistheshortest.
172
English++
Exercises Pre-listening questions 1. Howwouldyoudefine“intelligence”? 2. Haveyoueverthoughtofcomputerprogramsasbeing“intelligent”? 3. Doyouthinkthatcomputersormachineswilleverbeasintelligentashumans? 4. Are you afraid of the nightmare scenario in which machines have control over people,possiblyleadingtotheannihilationofthehumanrace? •Notetakingexercises. Listentotherecordingandanswerthefollowingquestions: 1. Whatdoeshumanintelligencedependon? • “ArthurR.Jensen,aleadingresearcherinhumanintelligence,suggestsasaheuristic hypothesisthatallnormalhumanshavethesameintellectualmechanismsandthat differencesinintelligencearerelatedtoquantitativebiochemicalandphysiological conditions.Iseethemasspeed,shorttermmemory,andtheabilitytoformaccurate andretrievablelongtermmemories.” 2. Whatisthemainadvantageofcomputersoverpeopleandviceversa? • computationpower(computer) • abstractthinking(human) 3. WhatisthemainaimoftheTuringtest? • “Alan Turing’s 1950 article Computing Machinery and Intelligence [Tur50] discussedconditionsforconsideringamachinetobeintelligent.Hearguedthatif themachinecouldsuccessfullypretendtobehumantoaknowledgeableobserver thenyoucertainlyshouldconsideritintelligent.Thistestwouldsatisfymostpeople but not all philosophers. The observer could interact with the machine and a humanbyteletype(toavoidrequiringthatthemachineimitatetheappearance orvoiceoftheperson),andthehumanwouldtrytopersuadetheobserverthat itwashumanandthemachinewouldtrytofooltheobserver.TheTuringtestis aone-sidedtest.Amachinethatpassesthetestshouldcertainlybeconsidered intelligent,butamachinecouldstillbeconsideredintelligentwithoutknowing enoughabouthumanstoimitateahuman.” 4. InwhatwayshaveresearcherstriedtobuildanAIsystemsimilartohuman intelligence? • “Afewpeoplethinkthathuman-levelintelligencecanbeachievedbywritinglarge numbersofprogramsofthekindpeoplearenowwritingandassemblingvastknowledge basesoffactsinthelanguagesnowusedforexpressingknowledge.However,most AIresearchersbelievethatnewfundamentalideasarerequired,andthereforeit cannotbepredictedwhenhuman-levelintelligencewillbeachieved.”
173
English++ Thesamequestionscanbeaskedwhenthetextisusedforareadingexercise.
Possible topics for discussion 1. HowhasAIbeendepictedinbooksandfilms?(s-f) 2. IsAIanethicalormoralissue?(ethical) 3. WhateffectcouldAIhaveonreligion? 4. Do you think machines with AI could ever be programmed to have religious consciousnessorreligiousfeelings?
Reading suggestions Artificial Intelligence by Patrick Henry Winston, 2003, Addison Wesley Publishing Company.
Possible difficulties Althoughinthisinterviewthequestionsarebasic,theanswersarequitedenseand formal.
174
English++
Agile Software Development from IT Conversation
Runningtime
5’36
Computersciencecontent
Medium
Businesscontent
Medium
Englishlanguagecomplexity
Medium
Learning objectives • tobecomefamiliarwithcertaincharacteristicsofAgilemethodologyincomparison withothersusedinthesoftwaredevelopmentprocess • to understand how the introduction of Agile methodology can influence a company’swork
Sub-areas covered • Softwaredevelopment • AgileMethodology
Keywords • software-programswhichrunonacomputer • AgileSoftwareDevelopment-aconceptualframeworkforsoftwaredevelopment whichpromotesdevelopmentiterationsthroughoutthelife-cycleoftheproject • softwaredevelopmentprocess-astructureimposedonthedevelopmentofa software product. Synonyms include software life cycle and software process. Thereareseveralmodelsforsuchprocesses,eachdescribingapproachestoavarietyoftasksoractivitieswhichtakeplaceduringtheprocess. • pairprogramming-asoftwaredevelopmenttechniqueinwhichtwoprogrammers worktogetheratonekeyboard.Onetypesincodewhiletheotherreviewseach lineofcodeasitistypedin.Thepersontypingiscalledthedriver.Theperson reviewing the code is called the observer or navigator. The two programmers switchrolesfrequently. • contract-alegallybindingexchangeofpromisesoragreementbetweenparties whichisenforceablebylaw • softwaredocumentation(orsourcecodedocumentation)-writtentextwhich accompaniescomputersoftware.Itexplainseitherhowitoperatesorhowtouse it,andmaymeandifferentthingstopeopleindifferentroles.
175
English++
Pre-listening questions 1. Howdoyoustartyoursoftwareprojects?Doyouhaveaplanordoyousimply startcoding? 2. Doyouknowanysoftwaredevelopmentmethodologies?Describethem. 3. Howwouldyouimaginecollaboratingwithcustomersinsoftwareprojects?
Summary This recording is part of an interview with Alistair Cockburn conducted by Doug Kaye. Alistair Cockburn talks about the main characteristics of Agile methodology used in software development. He also points out the differences between this methodologyandothersutilizedinsoftwareproduction.Beinganexpertindesigning withAgilemethodology,hesuggestssomepracticeshehasdevelopedhimself.
Audio clip I InthisclipAlistairCockburnemphasizestheimportanceofcommunication,cooperation and good interaction between people during the process of creating a project. He mentionstoolssupportinggoodcommunicationandexplainshowtoplananddesign projectsusingAgilemethodology.
Audio clip II Thisconcernscollaborationwithcustomersandhowtomakecontracts.
Audio clip III AlistairCockburnexplainshowtomakeplansandbeflexibleaboutadjustingthem tochangingsituationsduringaproject.
Audio clip IV Thispartoftheinterviewdiscussestheimportanceofdocumentationincapturingthe intentofthedevelopers.AlistairCockburnmentionsdifferentformsofdocumentation andgivestheexampleofmakingvideorecordingsofdevelopers’discussions. Nagranie jest fragmentem wywiadu z Alistairem Cockburnem przeprowadzonym przezDougaKayea.AlistairCockburnmówiogłównychcechachmetodologiiAgile wzastosowaniachwrozwojuoprogramowania.Podkreślatymsamymróżnicemiędzy tą metodologią a innymi, znajdującymi zastosowanie w wytwarzaniu oprogramowania. Jako osoba o dużym doświadczeniu w projektowaniu z wykorzystaniem tej metodologii,zalecaonrównieżwypracowaneprzezsiebiepraktyki.
176
English++ Fragment I W tym fragmencie Alistair Cockburn podkreśla znaczenie komunikacji i kooperacji pomiędzy twórcami projektu i podaje przykłady narzędzi wspierających dobrą komunikację.OpowiadaontakżeosposobachplanowaniaiprojektowaniawmetodologiiAgile.
Fragment II Fragmenttraktujeowspółpracyzklientamiiosposobachzawieraniaumów.
Fragment III Alistair Cockburn mówi o sposobie planowania i elastycznego dostosowywania planówdozmieniającejsięsytuacjiwczasietrwaniaprojektu.
Fragment IV Tenfragmentwywiadutraktujeoznaczeniurobieniadokumentacjiwceluuchwyceniaintencjitwórców.AlistairCockburnwymieniaróżneformydokumentacjiipodaje przykładnagraniavideodyskutującychprogramistów.
177
English++ software programswhichrun onacomputer
Transcript
Audio clip I Wevalueindividualsandinteractionsoverprocessesandtools.Theideathereis,uh,
Agile
youknow,it’sfunny,ifyoulookattheargumentsintheAgileworld,they’reallover
SoftwareDevelopment
process,theXPprocess,theScrumprocess,theCrystalprocess,whatever.Sowedotalk
aconceptualframework
aboutprocess,andwecherry-pickourtoolsverycarefully.AndIjustwroteanarticle
forsoftwaredevelop-
for Crosstalk Magazine on the Agile toolkit; cherry-pick them very carefully, want
mentwhichpromotes
themverypointedandveryefficientwithclearlydemonstratedvalueandsoon.But,
developmentiterations
whenwegetdowntoit,theheartofwhatmakesagoodprojectworkisnotjustthe
throughout
individualpeoplethatyouhavethere,butthewayinwhichtheyinteractwitheach
thelife-cycleoftheproject
other.Sowehighlightindividuals’interactionsandsowetalkalotaboutcollocation, collaboration.Italkalotaboutmorale,amicability,community.Ifyougotothetoolset,
Software
nowyouwantcollaborationtoolsthatallowmultiplemodesofcommunication,you
developmentprocess
wantsound,youwantvideo,youwantarchiving,youwantonlinechat;youwant
astructureimposedon
allofthesethingsatthesametime.Soyou’rewatchingit;there’salotofworkshop-
thedevelopment
basedactivitiesinAgileDevelopment.Planningisnotdonebytheprojectmanager
ofasoftwareproduct.
sittingaloneinaroom,butit’sisdonebytheentiregroupofpeoplewho,whether
Synonymsinclude
it’scoarsegrainorfinegrain,you’relookingatthesetofthingsthatneedtobedone
softwarelifecycle
andjostlingeachothereithertothinkofsomethingnewortochangetheirestimates
andsoftwareprocess.
orsuggestsolutionsorsomethinglikethat.That’sdoneindesign,also.There’spair
Thereareseveral
programming, there’s all sorts of things, but the emphasis is very, very strong on
modelsforsuch processes,eachdescribing approachestoavariety oftasksoractivities whichtakeplace duringtheprocess.
increasing,ifyouwill,thebrain-to-braincommunication.
sound
Audio clip II Customer collaboration over contract negotiation. So, yeah, there’s a place for contracts, not to pretend like you can’t ever do contracts, but even better than a contract is if everybody gets on the same side of the table and they work together. So this idea of collaboration not just within the team, but collaboration across organizationalboundaries,inparticularwiththesponsorsandendusers,thenyou can actually optimize, for instance, the requirements. You could discover that the requirementsaswrittenaren’twhatthepeoplereallywant.Sonowifyou’reouthere inacontractsituation,youhavetotalkaboutchangingthecontract.Ifyou’reina customer-collaboration-systemsituation,youcanworktogetheranddecidewhether tomakeachangeintherequirementsornot.That’scustomercollaboration.
sound
178
English++
Audio clip III
pairprogramming
Respondingtochangeoverfollowingaplan.Sowhileweallagreethatplanningisa
asoftwaredevelopment
usefulactivity,theplanrarelysurvives,sortof,threedaysintotheproject.It’smost
techniqueinwhich
ofthetimebetweenthreedaysandaweekaftertheplanisbuilt,it’soutofdate,
twoprogrammers
something’shappened.Andsothisresponding-to-changeideaiswhatIcallpaying
worktogether
attentiontocurrentreality.Youcomeintotheprojectoneday–youknow,whatever
atonekeyboard.
you’refacedwith,itcouldbeanything-wedon’tgethungupon,say:well,butthe
Onetypesincode
plansaidsomething;wego,hmmm!Okay,sowhat’sthebestthingtodonowinthe
whiletheother
currentsituation?Dowe,infact,followtheplanordowechangetheplan,orwhatdo
reviewseachlineofcode
wedo?Sorespondingtochangeoverfollowingtheplanactuallyhasanimplication
asitistypedin.
thatwedoalotmoreplanning,butwedoitcollaborative,quickandeithertypically
Thepersontyping
short-timehorizon,fine-grainedandsometimeslong-timehorizoncoarse-grained,if
iscalledthedriver.
thatmakessensetoyou
Thepersonreviewing thecodeiscalledthe
sound
observerornavigator. Thetwoprogrammers
Audio clip IV
switchrolesfrequently.
Alistair Cockburn: And ‘adequate’ now becomes the question. So what would be a barely sufficient amount of documentation? When would it be done? What would
itlookliketohelpthefuturepeoplecomeon?Thatisareallytoughquestion,it’s
Contract
a really ugly one and, typically, people don’t do enough. So I’m looking for really
alegallybinding
inexpensivewaystodothis,andIthinkwhite-boardphotos,videotapesofdesigners
exchangeofpromises
discussingatthewhiteboard,thatkindofthing,maygiveusahandleongettingthis.
oragreement betweenparties,
DougKaye:Thatalsohastheadvantagethatitcapturestheintentofthedevelopers,
whichisenforceable
whichsometimescanbemorevaluablethantheactualcode.Afterall,thecodeis
bylaw
there. AlistairCockburn:Classically,classicallyimpossibletocatch.Idon’tknowhowmany
Softwaredocumentation
researchprojectsI’veseenwheretheyhaveasanintenttofindawaytocapturethat.
(orsourcecode
Butifyouhave,forinstance,somebodyfromtheteamwho’sgotthesoftwareand
documentation)
somebodyfromadifferentteamwhodoesn’tknowthesoftware,andtheytakesome
writtentextwhich
aspectofthesystemandtheygooverthedesignforit,what’llhappenistheperson
accompanies
whoknowsthedesignwillsay,“Well,basicallyitworkslikethis”,andsketchsome
computersoftware.
stuff out. And then the other person will interrupt and ask questions, “Well, why
Itexplainseitherhowit
notthis,andwhynotthat,andwhataboutthis,andwhataboutthat?”,justasthe
operatesorhowtouseit,
newcomerdeveloperwouldwanttoask,too.Andthentheconversationgetsmore
andmaymeandifferent
convoluted and complex and deeper as they go. And if you have that all on video
thingstopeople
tape,theninasenseyou’vegotthisveryrichconversationintothefuturethatyou
indifferentroles.
canarchive.
sound
179
English++
Exercises Pre-listening questions 1. Howdoyoustartyoursoftwareprojects?Doyouhaveaplanordoyousimply startcoding? 2. Doyouknowanysoftwaredevelopmentmethodologies?Describethem. 3. Howwouldyouimaginecollaboratingwithcustomersinsoftwareprojects?
Comprehension questions Audio clip 1 1. Whatisthebasisofcreatingagoodproject? • interaction,collaboration,morale,asenseofcommunity 2. Howistheideaofinteractionrealizedduring:
a.planning?(workingasagroup;brainstorming,etc.)
b.design?(pairprogramming)
3. Whichtoolsareusedtohelpcommunication? • sound,video,archiving,onlinechat,etc.
Audio clip 2 4. Whatdoestheideaofcustomercollaborationfocuson? • workingoutthecontractinco-operationwithcustomer
Audio clip 3 5. Istheplanforaprojectunchangeable?Whathappensifthesituationduring aprojectchanges? • no;thereneedstobeflexibleadjustmenttothesituationandquickre-planning
Audio clip 4 6. Whatarethedifferentformsofdocumentationduringaproject?Giveexamples. (white-board photos, videotapes of designers discussing at the white board,traditionalwrittendocumentation) 7. Whatisthemainpurposeofdoingdocumentation? • capturingtheintentionsofadeveloper
Possibile topics for discussion 1. IsAgilesoftwaredevelopmentalwaysthebestwaytomakesoftware?
(advantages/disadvantages)
2. OneoftheprioritiesinAgileiscustomercollaboration.Howwouldyouimaginethis
180
collaborationifyouweredevelopingsoftwareforbillionsofpeoplearoundtheglobe? 3. Howwouldyoudesigntheprocessofpreparingdocumentationtomakethisless time-consuming?
English++
Open News Episode 25 from A Weekly Open Source News Podcast Runningtime
4’05
Computersciencecontent
High
Businesscontent
Medium
Englishlanguagecomplexity
Medium
Learning objectives • tobecomefamiliarwiththespectrumofGoogle’sbusinessactivity • tounderstandtheimportanceofcopyrightlawandwhatmaybetheconsequences ofbreakingit
Sub-areas covered • Operatingsystems • Copyrightlaw
Keywords • software-programsrunonacomputer • Google-anAmericanpubliccorporationwhosedomainisopen-sourcesoftware andwhoseearningrevenuefromadvertisingrelatedtoitsInternetsearch,webbased e-mail, online mapping, office productivity, social networking and video sharingactivities. • desktop(computer)-apersonalcomputerusedathomeorwork(stationary) • bug-anerrorinsoftware,somethingthatinterfereswiththeflowoftheprogram • downloading - getting/transferring files (software, music, films, etc.) from a remotecomputerviatheInternet • OS(OperatingSystem)-apieceofsoftwarethatisresponsibleforthemanagementofacomputerand,aboveall,runningprograms(examples:MSWindows, Linux,MacOS) • BitTorrent-aprotocolforsharinganddistributingcomputerfilesviatheInternet
181
English++
Summary Part 1 Goobuntu Confirmed ThisaudioclipisabouttheintroductionoftheoperatingsystemdesignedbyGoogle tothemarket.
Part 2 Windows As Punishment Thisaudiocliptellsthestoryofthemanwhowasconvictedofillegallydownloading afilmviatheInternetandthenforcedtousetheMSWindowsoperatingsystemas partofhissentence.
Część 1 Goobuntu Confirmed TreściąnagraniajestinformacjaowprowadzanymnarynekprzezfirmęGooglesystemieoperacyjnym.
Część 2 Windows As Punishment Nagranie opowiada historię osoby, która będąc oskarżoną o nielegalne ściągnięcie filmuprzezInternet,zostałazmuszonadoużywaniaSOWindows,cobyłorezultatem wyroku.
Pre-listening questions 1.WhatisthemainareaofGoogle’sbusinessactivity? 2.WhoarethemainrivalsofMicrosoft’sWindowsoperatingsystem?Whatmakes themevermorepopular?
182
English++ Transcript
software programsrunon
Goobuntu Confirmed TherehavebeenrumorsfloatingaroundforyearsnowthatGooglewouldreleaseits
acomputer
owndesktopoperatingsystemtocompetewithMicrosoftWindows.Wellnowthe existenceofGoogleoperatingsystemhasbeenconfirmed.Accordingtotheregister. co.uk, Google is preparing its own distribution of Linux for the desktop in a possiblebidtotakeonMicrosoftinitscorebusiness-desktopsoftware.Aversionof the increasingly popular Ubuntu desktop Linux distribution, based on Debian and theGnomedesktop,itisknowninternallyas‘Goobuntu’.Googlehasconfirmeditis workingonadesktopLinuxprojectcalledGoobuntu,butdeclinedtosupplyfurther details,includingwhattheprojectisfor.It’spossiblethatit’sjustoneofthetoysGoogleplexengineersplaywithonFridays,whentheygettimeofffrombuffingthesearch enginecodeorfilteringoutentriesaboutTiananmenSquare.Itcouldbeforwiderdeploymentsonthecompany’sowndesktops,asanalternativetoMicrosoft,butstillfor internaluseonly.Butit’spossibleGoogleplanstodistributeittothegeneralpublic,asa freealternativetoWindows.Googlehasalreadydemonstratedaninterestinbuildinga presenceonthedesktop.AtCESLasVegaslastmonth,itannouncedtheGooglePack,a collectionofdesktopsoftwarebundledtogetherforeasydownloading.WhateverGoogle’sintentions,theinputofGoogleengineersanddevelopers,writingnewfeaturesand fixingbugs,willbeahugeboosttotheUbuntuproject.
Google anAmericanpublic corporationwhosedomain isopen-sourcesoftware andwhoseearning revenuefrom advertisingrelated toitsInternetsearch, web-basede-mail, onlinemapping, officeproductivity, socialnetworking andvideosharing activities.
sound
Windows As Punishment ManyLinuxusersstilluseMicrosoftWindowsinoneformoranother.Someofus, includingmyself,useWindowsstrictlyforgaming.OthersareforcedtouseWindows atwork.ButwhatifyouwerelegallyrequiredtouseWindowsandonlyWindows? Well that’s what happened this week, according to vnunet.com. An article by Iain
desktop(computer) apersonalcomputer usedathomeorwork (stationarycomputer)
Thomsonstates: AmanconvictedofillegallydownloadinganepisodeofStarWarshasbeentoldthat hecannolongerusehiscomputerwithanUbuntuLinuxoperatingsystem.ScottMcCauslandpleadedguiltylastyearto‘conspiracytocommitcopyrightinfringement’
bug
and‘criminalcopyrightinfringement’bydownloadingStarWars:EpisodeIIIillegally.
anerrorinsoftware,
Heservedfivemonthsinprisonandisnowon
somethingthat
probation,buthasbeentoldthat
hecannotusehisLinuxcomputer. “Ihadameetingwithmyprobationofficertodayandhetoldmethathehadtoinstall
interfereswiththeflow oftheprogram
monitoringsoftwareonmyPC.Nobigdealtome;that’spartofmysentence,”he wroteonhisLostandAloneblog.“However,themonitoringsoftwaredoesn’tsupport
183
English++ downloading
Linux.SohetoldmethatifIwanttouseacomputer,IwouldhavetouseanOSthat
getting/transferringfiles
thesoftwarecanbeinstalledon,whichbasically meansMicrosoftandmonitoring
(software,music,films,etc.)
softwareornocomputer.IuseUbuntu7.04now,andtheyaretryingtoforcemeto
fromaremotecomputer
switch.”
viatheInternet OS(OperatingSystem) apieceofsoftware thatisresponsible
McCausland,alsoknownas‘sk0t’,(orS-K-zero-T),wasthefirstpersontobejailedfor BitTorrentuseandwasamemberoftheElitetorrentssitethatwasshutdownbythe FBIin2005.Heclaimedthathe’snottryingtosubvertrestrictionsplacedonhim,but doesnotseewhyheshouldhavetobuyawhole newoperatingsystemtodoso.
forthemanagement
“Thetermsofmypleastate:‘IconsenttoperiodicchecksofmyPCbymyprobation
ofacomputerand,
officerand/ortheinstallationofsoftwaretomonitormyinternetactivity,’”hewrote.
aboveall,
“Iamconsentingtoallofit,butitjustsohappensthattheOSIusemightnotbe
runningprograms(examples:
supported by the software they use to monitor. So I do not feel (neither does my
MSWindows,Linux,
lawyer)thatthegovernmentcanforcemetoswitchOS.”
MacOS)
McCausland has now started an appeal on his website to cover the cost of buying Windows.
BitTorrent aprotocolforsharing anddistributing computerfiles viatheInternet
184
sound
English++
Exercises Goobontu confirmed Pre-listening questions 1.WhatisthemainareaofGoogle’sbusinessactivity? • developmentoftheInternetsearchengine,webservicessuchasGmail,Google News, iGoogle and stand-alone applications like Google Earth, Google Desktop, Hello,Picasaandsoon 2.WhoarethemainrivalsofMicrosoft’sWindowsoperatingsystem?Whatmakes themevermorepopular? • themainrivalsareUnix-basedsystemsandMacOS-theirgrowingpopularitycan beattributedtotheirsecurityandeaseofuse
Comprehension questions 1.WhatsystemistheGoogleOSbasedon? • ItisbasedonUbuntuLinuxdistribution. 2. What does the speaker imply when he mentions filtering out entries about TiananmenSquare? • HeimpliesthatGoogleagreedtoblue-penciltheinformationaboutthetragedyin TiananmenSquarewhenenteringtheChinesemarket). 3.DoesGoobuntupresentanimmediatethreattothecurrentpopularityofthe MicrosoftWindowsoperatingsystem? • No,becausethissystem[Goobuntu]isdesignedonlyforinternalusewithinGoogle andsofarthereisonlyapossibilitythatitwillbedistributedittothegeneral public). 4.WhichproductwillenableGoogletoplayamoreimportantroleinthedesktop applicationsmarket? • GooglePack,thecollectionoffree,usefuldesktopapplications
Possible topics for discussion 1. Whatistheroleofcompetitioninthedomesticandglobalmarket? 2. WouldGoogle’soperatingsystemhaveachanceofwinningacompetitionwith Windows?DiscusshowGooglecouldmakethishappen.
Windows as punishment Pre-listening questions 1.Whatarethemeansbywhichagovernmentcanprotectcopyrightlawonthe Internet?
185
English++ • Itcan,forexample,takeawayaperson’scomputerandsearchitforsoftwareor filesthattheownerdoesnothavetherighttouse.Itcanalsoinstallmonitoring software on someone’s PC or monitor Internet traffic in a specific network to watchoutforpeopledownloadingillegally.
Comprehension questions 1.WhatwasScottMcCauslandaccusedof? • hewasaccusedofviolatingcopyrightlawbydownloadingStarWarsEpisodeIII illegally. 2.HowlongdidMcCauslandspendinprison? • fivemonths. 3.WhywasMcCauslandforcedtousetheMicrosoftWindowsoperatingsystem? • hehadtohavemonitoringsoftwareinstalledonhiscomputerwhichwascompatibleonlywithWindows. 4.WhathadScottMcCauslandbeenaccusedof? • illegalBitTorrentuse.
Possible topics for discussion 1.Whatisyouropinionaboutthesentencethatforcepeopletobuysomething?
186
English++
Open News Episode 29 from A Weekly Open Source News Podcast
Runningtime
6’23
Computersciencecontent
High
Businesscontent
Medium
Englishlanguagecomplexity
High
Learning objectives • tobecomefamiliarwithrecentdevelopmentsinopensourcesoftware • tounderstandtheimportanceofpatentsforsoftware • toknowhowtheOSIinstituteworksinparticularcases
Sub-areas covered • NewsfromtheITworld • Opensourcetechnologies.
Keywords • Suse,RedHat,Ubuntu-examplesoflinuxdistributions • SCO - a software company formerly called Caldera Systems and Caldera Inter- national.AfteracquiringtheSantaCruzOperation’sServerSoftwareandServices divisions, as well as UnixWare and OpenServer technologies, the company changeditsfocustoUNIX.Lateron,CalderachangeditsnametoTheSCOGroup toreflectthatchangeinfocus. • userinterface-theaggregateofmeansbywhichpeople,theusers,interactwith the system, a particular machine, device, computer program or other complex tools.Theuserinterfaceprovidesmeansofinput,allowingtheuserstomanipulateasystemandoutput,allowingthesystemtoproducetheeffectsoftheusers’ manipulation. • softwarelicense(UKspelling:licence)-thereareseveralimportantITlicenses likeGNUGPL(opensource),MozillaPublicLicenseorMicrosoftPublicLicense • Firefox-oneofthemostpopularwebbrowsers(afterInternetExplorer) • MPL-MicrosoftPublicLicence • MRL-MicrosoftReciprocalLicence
187
English++
Summary This is a podcast with interesting news from the open source community. In this recordingwehearabout: • somerecentdevelopmentsinbrief • Patents(thelegalbattlebetweenMSandRedHat) • Mozilla’splanstodevelopamobilebrowser • OSI’sapprovalofMSlicenses
Jesttopodcastzciekawymiinformacjamizeświataopensource.Wtymmateriale możemyusłyszećkilkakrótkichwiadomości: • patentyiwojnapomiędzyMSaRedHatem • Mozillachcewyprodukowaćwersjęprzeglądarkinatelefonykomórkowe • OSIakceptujelicencjeMicrosoftu
188
English++ Transcript
softwarelicense (UKspelling:licence)
First,herearesomenewsbriefs.
thereareseveral importantITlicenses
If you’ve been wanting to learn more about Ubuntu, now’s your chance. Ubuntu
likeGNUGPL
thisweekannouncedUbuntuOpenWeek,“aweek-longseriesofonlineworkshops”,
(opensource),
whereyoucanchatwithdevelopers,attendtrainingsessions,andeventalktoMark
MozillaPublicLicense
Shuttleworth himself. You can find out more at wiki.ubuntu.com/UbuntuOpen-
orMicrosoftPublicLicense
Week. ItappearsthatFirefoxisgaininggroundonInternetExplorer,atleastifyou’reaBitTorrentuser.Isohunt,apopularBitTorrentindexingsite,reportedontheirblogthis weekthatFirefoxusersonisohunt.comedgedoutIEusersforthefirsttimesince theyhavebeenmonitoring.
Firefox oneofthemostpopular
Apparently officials in Amsterdam have been testing Open Source applications to
webbrowsers
seeiftheyarereadyforprimetime.Thisweekthetestingcommitteegavethegreen
(afterInternetExplorer)
lightandnowover10,000PCscanstartusingOpenSourcesoftware.Anyincremental costsofrunningtheopensourcesoftwarewillbeoffsetbysavingsinlicensefeesthat wouldhavebeenpaidtoMicrosoft. Andnowontothemainstoriesoftheweek. Itwasabigweekforpatentlitigationanditallstartedwithmorethreateningwords
MPL
fromSteveBallmerofMicrosoft.AccordingtoTomSandersonvnunet.com,Microsoft
MicrosoftPublicLicence
chiefexecutiveSteveBallmerhaswarnedusersofRedHatLinuxthattheywillhave topayMicrosoftforitsintellectualproperty.“PeoplewhouseRedHat,atleastwith respecttoourintellectualproperty,inasensehaveanobligationtocompensateus,” BallmersaidlastweekatacompanyeventinLondondiscussingonlineservicesin theUK.RedHathasrepeatedlystatedthatitwillnotengageinapatentlicensing
Suse,RedHat,Ubuntu
dealsimilartotheNovell-Microsoftpartnership,referringtoitasan‘innovationtax’.
examplesoflinux
Microsofthasbeenthesecondmostaggressivepartyinpursuingallegedintellectual
distributions
property claims against Linux and open source in general. The firm ranks behind SCO, which failed in its attempt to prove that it owns the intellectual property to Linuxandnowfacesbankruptcy.MicrosoftinkedapartnershipwithNovelllastyear inwhichNovellagreedtolicenseMicrosoft’sintellectualpropertyinexchangefor a patent pledge to users of Novell’s SuSE Linux. Ballmer praised Novell at the UK
MRL
eventforvaluingintellectualproperty,andsuggestedthatopensourcevendorswill
Microsoft
beforcedtostrikesimilardealswithotherpatentholders.
ReciprocalLicence
sound Mozilla,thecompanybehindpopularopensourceapplicationslikeFirefoxandThunderbird, announced this week that it will develop a mobile browser for cell phones
189
English++ andotherdevices.AccordingtoanarticlebyCadeMetzonregdeveloper.co.uk,Mozilla SCO
is prepping a mobile version of Firefox, the world’s most popular open-source web
asoftwarecompany
browser.“PeopleaskusallthetimewhatMozilla’sgoingtodoaboutthemobileweb,”
formerlycalledCaldera
readsablogpostfromVice-PresidentofengineeringMikeSchroepfer,“andI’mvery
SystemsandCaldera
excitedtoannouncethatweplantorockit.”Hesaysthecompanywillintroducea
International.
mobileversionofFirefoxatsomeunspecifieddateafterDecember31,2007.Itwill
Afteracquiringthe
runFirefoxextensions,anddeveloperswillhavethepowertobuildtheirownappsfor
SantaCruzOperation’s
thebrowserviaMozilla’suserinterfacelanguage,calledXUL.AsSchroepferpointsout,
ServerSoftwareand
aMozilla-basedbrowserisalreadyavailableforNokia’sN800wirelesshandheld.But
Servicesdivisions, aswellasUnixWare andOpenServer
thecompanyhasyettodecidewhichdevicesMobileFirefoxwillrunon.
sound
technologies,thecompany
It was announced yesterday that the OSI has approved two Microsoft licenses as
changeditsfocustoUNIX.
open source licenses. According to infoworld.com, the board of the Open Source
Lateron,Calderachanged
Initiative, or OSI, has approved two Microsoft licenses that will allow proprietary
itsnametoTheSCO
sourcecodetobeshared,amovethatislikelytoinspireprotestandspurcontroversy
Grouptoreflectthat
fordie-hardopensourceproponents.TheMicrosoftPublicLicense,orMPL,andthe
changeinfocus
MicrosoftReciprocalLicense,orMRL,twoofMicrosoft’s“sharedsource”licenses,are nowviableOSIlicensesfordistributingopensourcecodealongsidemorewidelyused
userinterface
communitylicensessuchastheGNUGeneralPublicLicenseandtheMozillaPublic
theaggregateofmeans
License.“Today’sapprovalbytheOSIconcludesatremendouslearningexperience
bywhichpeople,
forMicrosoft,andIlookforwardtoourcontinuingparticipationintheopensource
theusers,interactwith
community,” said Microsoft general manager of Windows Server Marketing and
thesystem,aparticular
PlatformStrategyBillHilfinapressstatement.RedHatexecutiveMichaelTiemann,
machine,device,
whoalsoservesaspresidentoftheOSI,saidTuesdaythatwhilesomeinthecom-
computerprogram
munity balked at the OSI accepting licenses from a company that historically has
orothercomplextools.
notbeenopensourcefriendly,intheend,thelicensesspokeforthemselves.“They
Theuserinterface
dohavetwolicensesthatwentthroughthecommunityprocessanddidsustainthe
providesmeansofinput,
opensourcedefinition,”hesaid.“I’vereceivedthreee-mailsinthelasthourfrom
allowingtheusersto
peoplewhosay,‘ToheckwiththeOSI,youguysarejustnowpawnsinMicrosoft’s
manipulateasystemand
game. You have made a deal with the devil,’” he said. However, Tiemann believes
output,allowingthe
theOSIhadaresponsibilitytobefairandimpartialinlettingMicrosoftsubmititsli-
systemtoproducethe
censes.“Whatwouldyouthinkofaclubthatwouldsay,‘Wewon’ttakeanymembers
effectsoftheusers’
thatcomefromthecityofChicago,eveniftwopeopleinChicagomeetthecriteria
manipulation.
forentry?’”heposited.“Wesaidfromtheoutsetthatwewouldbefairand,tobe honest,somepeoplesaid,‘No,youdon’t’”.Tiemannsaiditremainstobeseenifany companiesotherthanMicrosoftwilllicensecodeunderMPLorMRL.“However,”he said,“ifMicrosoftplanstoembedpatentedtechnologyinsoftwarelicensedunderan OSI-approvedlicenseandcallitopensource-assomeopensourceproponentsfear
190
-theyhadbetterthinktwice.”
English++
Exercises •Answer
the following questions
1. WhowillbeusingopensourcesoftwareinAmsterdam? • officials 2. WhatisSteveBallmer’spositioninMicrosoft? • Microsoftchiefexecutive 3. WhendoesMozillaplantointroduceanewversionoftheirwebbrowser? • sometimeafterthe31stDecember2007 4. Namesomeopensourcelicenses. • GNUGPL • MozillaPublicLicense • MicrosoftPublicLicense 5. WhatistheOSI? • TheOpenSourceInitiative •Listen
to the recording and fill the gaps
Newsinbrief 1. UbuntuthisweekannouncedUbuntuOpenWeek,“aweek-longseriesof[online workshops]” 2. ItappearsthatFirefoxisgaininggroundonInternetExplorer,atleastifyou’rea [BitTorrent]user. 3. Isohunt,apopularBitTorrentindexingsite,reportedontheirblogthisweekthat Firefoxuserson[isohunt.com]edgedoutIEusers. 4. Anyincrementalcostsofrunningtheopensourcesoftwarewillbeoffsetbysavingsin[licensefees]thatwouldhavebeenpaidtoMicrosoft.
StoryOne 1. PeoplewhouseRedHat,atleastwithrespecttoour[intellectualproperty], 2. RedHathasrepeatedlystatedthatitwillnotengageina[patentlicensingdeal] similartotheNovell-Microsoftpartnership,referringtoitasan[innovationtax]. 3. ThefirmranksbehindSCO,whichfailedinitsattempttoprovethatitownsthe intellectualpropertytoLinuxandnowfaces[bankruptcy].
191
English++ StoryTwo 1. Mozillaispreppingamobileversionof[Firefox],theworld’smostpopular[opensource]webbrowser. 2. People ask us all the time about what Mozilla’s going to do about the [mobile web]. 3. ItwillrunFirefox[extensions],anddeveloperswillhavethepowertobuildtheir ownappsforthebrowserviaMozilla’s[userinterfacelanguage],calledXUL. 4. AsSchroepferpointsout,aMozilla-basedbrowserisalreadyavailableforNokia’s N800[wirelesshandheld].
StoryThree 1. Theboardofthe[OpenSourceInitiative],orOSI,hasapprovedtwoMicrosoft licenses… 2. TheMicrosoftPublicLicense,orMPL,andthe[MicrosoftReciprocalLicense],r MRL,twoofMicrosoft’s“sharedsource”licenses… 3. …said Microsoft general manager of Windows Server Marketing and [Platform Strategy]BillHilfinapressstatement. 4. Theydohavetwolicensesthatwentthroughthe[communityprocess]anddid sustaintheopensourcedefinition 5. However,hesaidifMicrosoftplanstoembed[patentedtechnology]insoftware licensedunderanOSI-approvedlicenseandcallitopensource…
Possible topics for discussion • WhatdoyouknowabouttheGPLorMPLlicenses? • Doyoulikeusingfreesoftware?Yes,why.No,why.
192
English++
Open News Episode 31 from A Weekly Open Source News Podcast
Runningtime
6’04
Computersciencecontent
Medium
Businesscontent
Medium
Englishlanguagecomplexity
Medium/High
Learning objectives • toacquireknowledgeonopensourcesoftwareusage • tobecomefamiliarwithlicencingandwhateffectitmayhaveonopensource
Sub-areas covered • Opensourceissues • FOSSsoftware
Keywords • Podcast-aseriesofdigital-mediafileswhicharedistributedovertheInternetusing syndicationfeedsforplaybackonportablemediaplayersandcomputers • Gnome-oneofthebiggestwindowmanagersforLinux • FOSS - the acronym for Free and Open Source Software, software that can be used,studied,andmodifiedwithoutrestriction • OHA-OpenHandsetAlliance™,agroupofmorethan30technologyandmobile companieswhohavedevelopedAndroid,thefirstcomplete,open,andfreemobile platform • LiSP-TheLinuxPhoneStandardsForum,aconsortiumfoundedbyagroupof telephony operators, device manufacturers, silicon and software vendors who haveastrategicfocusonLinuxtelephony
193
English++
Summary ThisisanaudiopodcastwithnewsfromtheFOSSworld. Clip1. This clip is about film-makers using open-source software and the main reasonsforthemdoingso. Clip 2. This is about Google’s purchase of the mobile phone platform company Android.Itcontainsdifferentopinionsaboutthisdevelopmentanddiscussesthe possibleconsequencesandsignificanceforthemobileLinuxcommunity. Clip3. This is a report on running the Linux system on school computers in Macedonia. Jesttoaudiopodcastzwiadomościamizeświatawolnegooprogramowania Fragment 1. W tym fragmencie zawarto informację o używaniu oprogramowania open-source przez twórców filmów, a także przedstawiono główne przyczyny takiej tendencji. Fragment2.Tenfragmentdonosiozakupieniuplatformytelefoniikomórkowejprzez firmęGoogle.Przedstawionownimróżneopinienatentemat,atakżeznaczenieimoż- liwekonsekwencjetegofaktudlaspołecznościtwórcówwolnegooprogramowania. Fragment 3. Ten fragment zawiera informację o wprowadzeniu systemu Linux wszkolnychkomputerachwcałejMacedonii.
194
English++ Transcript Moreandmorefilm-makersareturningtoopen-sourcesoftwaretomeetthedemanding
Podcast
needsoftheirproductionenvironments.LisaHoover,inanarticleonlinuxinsider.
aseriesofdigital-media
com,writes:’Sincetheadventofthemusic(Thespeakersays‘music’butthisisa
fileswhicharedistributed
mistakefor‘movie’.)industry,theprocesshasremainedlargelyunchanged.Awriter
overtheInternetusing
createsascript,findssomeonewillingtoinvestmoneyinproducingit,andadirector
syndicationfeeds
isbroughtintooverseethefilm’sproduction.’Whilethatprocessisstilltypicalof
forplaybackonportable
mostmovie-makingventures,moreandmoreindependentfilmmakersareturning
mediaplayers
towardopensourcetoolsandmethodstoproducetheirprojects.Formanyfilmmakers,
andcomputers
theeconomicsalonemakeopensourcefilmmakinganattractiveoption.Whenfree orlow-costproductiontoolslikeCinePaintandBlenderarecombinedwithfreehostingserviceslikeInternetArchive,writersandfilmmakersarefreetofocusonfilm production rather than financing. Some filmmakers are even going beyond simply sharingideas,andarealsosharingthefootagethey’veshot.“Itmakessensewhen resourcescanbesharedandcostscanbecut,”writerandindependentfilmdirector Valentin Spirik told LinuxInsider. “I also see a lot of potential for remix-related projectswherethesourcefootageisusedinmanydifferentproductions.Rightnow
Gnome
thisisanichegenreonline,butitmightjustbethefutureofinteractivestorytelling.”
oneofthebiggest
sound
windowmanagersfor Linux
YoumayhaveheardrecentlythatGooglepurchasedthemobilephoneplatformcompany Android,butwhatdoesthatmeanforcomapnieslikeOpenMocoandTratec,whoare tryingtodeveloptheirownplatformsbasedonopen-sourcesoftware.Accordingtoa storybyPhilManchesteratregdeveloper.co.uk:WhilethemobileLinuxcommunity hasreactedpositivelytoGoogle’sAndroid,thenewplatformhasalsogivensome causeforconcern.Thearrivalofagiantplayerwithveryclearideasofrolesitwants mobileLinuxtofillwasboundtoruffleafewfeathersand,despitepublicproclamationsofwelcomeandsupport,theLinuxestablishmentisshowingafewcracks.Like
FOSS
itornot,Googlehasachievedsomethingthatnoneoftheestablishedknittingcircles
theacronymforFree
hasmanagedsofar:ithascreatedasingletargetplatformfordeveloperstoaimfor.
andOpenSource
But a unified standard does not necessarily play well with the established mobile
Software,
Linuxplayers.TheLiPSorL-i-P-SForum,forexample,saysthatit“regardsOHAas
softwarethatcanbeused,
complementary”andacknowledgesthatAndroidandtheOHAhaveconfirmedthe
studied,andmodified
popularityofLinuxinmobileandembeddedapplications.LiPSalsosaysthatAndroid
withoutrestriction.For
sharesitsmission“toreducefragmentationamongLinux-basedmobileplatforms”
furtherinfoseewikipedia
-onlywithadifferentapproach.WhileLiPSaimstounifythedevelopmentofmobile Linuxthroughopenstandards,itseestheAndroidandOHAteamasworkingtothe sameendwithsharedcode.ButelsewhereLiPSgeneralmanagerBillWeinberghas expressedconcernsaboutthelimitationsofGoogle’suseoftheApachelicensefor Androidandsuggeststhatfarfromreducingfragmentation,Androidmightincrease
195
English++ OHA
it.MorganGillis,executivedirectoroftheLiMoFoundation,saidpubliclythathewel-
OpenHandsetAlliance™,
comedGoogle’smoveandalsoseestheroleoftheOHAascomplementary.“Google’s
agroupofmorethan
angleis,”hesaid,“focusedontheend-userexperienceandbringingtheWebtomobile
30technologyand
deviceswhiletheLiMoFoundationwantstocreateacommonmiddlewareplatform
mobilecompanies
to underpin mobile applications.” But in the same interview he pointed out that
whohavedeveloped
thoseinthemobileLinuxareahaveastarkchoice:“WorkwithGoogle,orthinkvery
Android,
seriouslyabouthowtoachievethenext-generationmobileinternetexperiencefor
thefirstcomplete,open,
theircustomersontheirown.”Thenextsixmonthswillcertainlybecriticalinthe
andfreemobile
growthofAndroidecosystem.Itcouldhavethesamegalvanisingeffectonmobile
platform
application development that Windows had on PC applications in the late 1980s. Developers need to pick it up and create some compelling applications to match theappealof,say,Apple’siPhone.Butdespitetheconcernsoverlicensingandthe possibilities of a broader long-term agenda from Google, it would be hard (and, perhaps,foolish)tobetagainstit.
sound Apparently,theMacedoniangovernmentisgoingforLinuxinabigway.According toanarticleontheubuntu.comwebsite,theMacedoniaMinistryofEducationand LiSP TheLinuxPhone StandardsForum, aconsortiumfounded byagroupoftelephony operators,device manufacturers,siliconand softwarevendorswho haveastrategicfocus onLinuxtelephony
Sciencewilldeploymorethan180,000workstationsrunningCanonical’subuntu7.04 aspartofits“ComputerforEveryChild”project. TheMacedonia“ComputerforEveryChild”projectisoneofthelargestknownthin client and desktop Linux deployments ever undertaken. Half of elementary and secondary Macedonia students attend school in the morning, and half attend in the afternoon, so 180,000 workstations will allow for one classroom computing deviceperstudentfortheentireRepublic’spublicschoolpopulation.Thefirst7000 computers pre-installed with Ubuntu were shipped on September 4th 2007. The Ubuntuoperatingsystemwillrunon160,000virtualPCterminalsand20,000PCs (which also support a student on the attached monitor) supplied by NComputing andprocuredandinstalledbyTheHaierCompany,adiversifiedmanufacturerand PCmakerbasedinChina.Theprojectwillenablearangeofinnovativeeducational programs,includinginteractiveweb-basedclassesinwhichspecializedexpertsteach lessons in such areas as mathematics, biology, chemistry and physics to multiple schoolsandclassroomsaroundthecountry.
196
English++
Exercises •Answer
the following questions
1.Whatarefilm-makersincreasinglyusingtosmooththewayfortheirprojects? • opensourcesoftware 2.Whichopensourcetoolsandservicesarementionedasbeingusedbyfilmmakers?.Whatfunctionsdotheyperform?Doyouknowofanyotherexamples?
Examplesfromlistening:
• CinePaint-opensourcepaintingandimageretouchingprogramdesignedtowork bestwith35mmfilmandotherhighresolutionhighdynamicrangeimages. • Blender-opensource,crossplatformsuiteoftoolsfor3Dcreation. • InternetArchive-nonprofitorganisationestablishedtopreservewebsitesbytakingregular“snapshots”.TheWaybackMachineprovideslinkstoolderversionsof awebpage. •Listen
to the recording and fill the gaps
1. WhilethemobileLinuxcommunityhasreactedpositivelyto[Google’sAndroid]. 2. Likeitornot,Googlehasachievedsomethingthatnoneoftheestablished[knittingcircles]hasmanagedsofar.LiPSalsosaysthatAndroidsharesitsmissionto reduce[fragmentationamongLinux-based]mobileplatforms 3. WhileLiPSaimsto[unify]thedevelopmentofmobileLinuxthroughopenstandards 4. MorganGillis,executivedirectorofthe[LiMoFoundation]… 5. mobiledeviceswhiletheLiMoFoundationwantstocreateacommon[middlewareplatform]tounderpinmobileapplications. 6. Thenextsixmonthswillcertainlybecriticalinthegrowthof[Androidecosystem]. 7. Developersneedtopickitupandcreatesome[compellingapplications]tomatch theappealof,say,Apple’siPhone. •Listen
to the recording and fill the gaps
1. TheMacedoniaMinistryofEducationandSciencewilldeploymorethan180,000 workstationsrunningCanonical’sUbuntu7.04aspartofits[ComputerforEvery Child]project. 2. TheMacedonia“ComputerforEveryChild”projectisoneofthelargestknown thinclientand[desktopLinux]deploymentseverundertaken 3. Thefirst7000computers[pre-installed]withUbuntuwereshippedonSeptember4th2007 4. The Ubuntu operating system will run on [160,000 virtual PC terminals] and 20,000PCs
197
English++ 5. The project will enable a range of innovative educational programs, including interactive[web-basedclasses]
Possible topics for discussion 1.Shouldfilm-makersuseopensourceratherthancommercialsoftware?
2.Isopen-sourcesoftwarethebestchoiceforschoolcomputers?Giveargumentsfor andagainstthisproposal.
198
English++
English++ English for Computer Science Students
Presentation Chapter
199
English++
200
English++
Presentation Chapter Thischapterdealsbrieflywithadifficulttaskofspeakinginpublic. WehopethatthetipswhichweworkedoutduringourEnglishclasseswillbehelpful tothoseofyouwhoareplanningtomakepresentationsinEnglish.Tomakethattask easierarepertoireof‘presentationphrases’isincluded.Youcanmakeareasonable selectionofusefulphrasestostartyourpresentation,developitsmainpointsand finishitsuccessfully. This part of the book is accompanied by a DVD with a slide show produced by English++ team. “Successful presentations. A few tips from English++” presents examples of well-prepared and well-done presentations. Obviously, you canalwaysimproveonethingoranother,butthepointisnottocriticize,butlearn. AsEnglish++projectleaderIamgratefultothosewholetususetheirownmaterial forthepurposeofthethisbook. The slide show also includes some clips which show a little bit less effective productions.Why?Seeforyourself.Naturally,youshouldtakethemwithapinchof salt,butperhapsthereissomethinginit.
201
English++
How to Give a Successful Presentation? Practical information Pre-preparation. Selecting the topic and materials An essential task in a pre-preparatory phase is to ask yourself the following questions: • Whatisthepurposeofmypresentation? • WhatarethemainpointsthatIwouldliketogetacross? Startgettingreadyforyourpresentationafewweeksbeforeyouareduetospeak. Collectthematerialsonthebasisofwhichyouwouldliketopreparethepresentation. Makeawisechoiceoutofthecollectedmaterials. Preparereliablebibliography(theauthor’sname,thetitleofthearticle/book,ayearof itspublication,thewebsiteaddress,whenthematerialwasretrieved,etc.). Fromthematerialselectthekeywordsforyourpresentationanddonotforgettoput themonthehandout.
Preparation • Makethefirstplanofthepresentation(youcanmodifyitlater) • Rememberaboutalogicalstructureofthepresentation:
Introduction-say,whatyou’regoingtosay
MainBody-sayit;developtheabovementionedissue(s).
Conclusions-sumupwhatyou’vejustsaid
• Makethefirstdraftofyourpresentation.Readitcarefully.Ifthereisinformation notrelatedtothetopic,removeit. • Ifthereareissueswhichyoucannotexpressinapreciseorclearway,probablyit isbecauseyoudonotreallyunderstandthemyourself.Soitisbetternottotalk aboutthem. • Neverreadfromyournotes.Youshouldknowwellthematerialyouwanttopresent. Ifyoudonotknowit,maybeyoushouldnotgoforgivingapresentation. • Prepareasetofnumberedcluecards,onwhichyoucanwritethemainpointsor/ andkeywordsandwhichwillhelpyouduringthepresentation.Makesurethaton
202
yourcluecardsyou’vemarkedanappropriatevisualaid(atransparencyorslide), whichyouaregoingtorefertoinyourpresentation.
English++ • Findtimetorehearseagainandagain! Bydoingthatyouaregoingtomakeyourselffamiliarwithyourownvoice,to checkandadjustthepresentingtime,toseewhethervisualaids(ifyouusethem) actuallyillustrateyourpresentationandwhetheryoucoordinatewelltheirusage withwhatyousay.Ifyouhaveproblemswithaforeignlanguageinwhichyou present the material, it could be better not to use visuals at all. Otherwise the chancethatsomethinggoeswrongisbiggerthanwhenyouconcentratesolelyon theoralaspectofthepresentation. • Keeptothetime!Donotexceedthetimelimit.
Itisbettertoshortenthepresentationbytwominutesratherthanextenditby twominutes.Rememberthatexceedingthetimelimitmaymeantakingthenext speaker’stime.Andthisisreallyunfair!
• Followtheplanofyourpresentation!
Do not digress! Usually digressions take more time than we think. Successful presentershave“spontaneousdigressions”wellthoughtoverandwellplanned.
• Leavetimeforquestionsfromtheaudience.
Questionsmayhelpyoutogetyourmessageacrossbetter.
• Designgoodvisualstohelpyougetyourmessageacrossmoreefficiently.
Rememberthattattyvisualswillleaveasimilarimpressiononthelisteners.
Visual aids should speak for themselves illustrating your point. Give listeners timetotakethemin. Reading out what you have written on a transparency or slideiscounterproductive.Visualsarealwayswelcomed–theymayhelptocatchthe audience’sattention,butifyoudonotfeelcomfortablewiththem,giveyourselfmore timeforpractice.
Visual aids Therearedifferenttypesofvisuals.Thechoicedependsonthetypeofpresentation andyourneeds. • OHPtransparencies-overheadprojectortransparencies • PresentationsinPowerPoint • Flipcharts • Whiteboardandmarker • Video • Shortepisodesorscenesfromfilms • 35mmslides • Realobjects,whichyoucanprovidelistenerswithtoexplorethem Rememberthatbadlypreparedand/orbadlyusedvisualscanruinyourpresentation! Makesureyouknowinadvancehowtoconnecttheequipmentandwhattodoto haveadesiredslideordiagramonthescreen.Sometimes,duringrealpresentations
203
English++ atechnicianisdesignatedtooperatetheequipment.Inthatcasemakesurethathe understandsyoursignals,whichyouaregoingtosendwhenyouwish,forexample, tochangeaslide. Slidesandtransparenciesshouldcontainminimuminformationwhichisneededto illustrateyourpoint.Toomuchonaslidemakesitunreadableanddivertsaudience’s attentionfromwhatyousay. Aslideissaidtobereadableifitcontainsnomorethantenwordsin18ptTimes Romanfontorbiggerandwhichcanbereadwithoutaprojectorfromthedistanceof twometers.Neveruseasyourvisualspagesphotocopiedfrombooksorothermaterials. Theyarenotadaptedforsuchusage,nottomentionthefactthattheydonnotprove yourprofessionalism. Fortransparencies,usemultiplecolours,butbecarefulwithorangeandyellow-they donotcomeoutwellonthescreen.Onslides,thetextisofteninyelloworwhite colour on the blue background. Avoid adding/drawing information on a presented transparency.Whilespeakingavoidindicatingwithyourfingeroramarker.Apointer andthescreendothatjobmuchbetter. Turnoffaprojectorifyoudonotneeditforthenextfewminutes.Twominutesisthe maximumtimethatthesameslideshouldbeshownonthescreen.
Presentation – dress rehearsal Presentationshouldnottakeplacewithoutpracticingitearlieralotoftimesinfront ofamirroror/andwithataperecorder.Observingyourselfandlisteningtoyourself “inaction”isstressful,butveryformative.Itprovidesyouwiththematerialonwhich youcangraduallydevelopyourpresentationalskillsandcompetencies. Acoupleoffinaltips: • Speakclearly. • Avoidraisedvoice,whisperingormumbling“underyournose”. • Trytomaintainyournaturalpaceofspeakingtypicalforanofficial,noteveryday situation. • Makepausesinplaceswhichyouconsidercriticalforyourpresentation;thistreatment emphasizesthecrucialinformationyouwishtotransmittotheaudience. • Trytocontrolyourbodylanguage;avoidexcessivegesticulation. • Keepaneyecontactwithyourlistenersbutdonotfocusononepersononly. • Don’tturnbacktotheaudienceifyouwanttoshowsomethingonthescreenand don’t‘talktothescreen’either. • Don’tstandinthelightofaprojectorcoveringthescreen.
204
• Observeyouraudience’sreactions–maybeyoushouldshortenthepresentation
English++ bytwominutesandmoveontoconclusions. • Don’tforgettothanktheaudiencefortheirattentionandencouragethemtoask questions.Ifyouarenotsureabouttheanswerofifyousimplydonotknowit, don’tbeafraidtoadmitthat,butsuggestthesourceinwhichtheanswercanbe found. • Enjoyyourpresentation.Trytotreatitasyournewexperienceandshowyour enthusiasm! Goodluck!
205
English++
Repertoire of presentation phrases Part one – introduction 1. Signaling the start OK,then,shallwestart? OK,then,I’dliketobegin. Let’sstart…
2. Greeting Goodmorning/afternoon,ladiesandgentlemen/everyone. Thankyouforcoming. I’mveryhappythatyou’vecomeheretoday.
3. Self-introduction Firstofall,I’dliketointroducemyself. Mynameis… Letmestartwithjustafewwordsaboutmyself/myownbackground. I’m…………….(name)from……………(country/city). I’mfrom………..(organisation). Iworkasa…………..(job)for…………….(organisation). Istudy………(subject)at…………….(university).I’minmythirdyear. Irepresent…………/I’marepresentativeof…
4.Introducing the subject Today,I’mgoingtotalkabout… I’dliketotalktoyoutodayabout… I’mgoingtopresenttherecent…/informyouabout…/describe… Thesubject/focus/topicofmytalk/presentation/speechis…
5. Stating the purpose Weareheretodaytodecide/learnabout/discuss… Theaim/objective/purposetodayistoupdateyouon…/giveyouthebackground to… InmypresentationtodayI’llbediscussing…/I’mgoingtoexplain… WhatI’dliketodotodayistopresent…
6. Outline (main points/sequencing/length) 206
I’vedividedmypresentationintofourparts/sections.Theyare… Mypresentationwillconsistof…
English++ Right,I’dliketobeginwithmyfirstpoint. Firstly/Firstofall………………..Iwill… Secondly/then/next…………….Iwouldliketo… Thirdly/andthenwecometo… Afterthat/later……………………I’mgoingtotalkabout/lookat… Finally/lastly/lastofallI’dliketoanalyze/discuss/lookat/consider/explain/tellyou about/showyouhow/speaktoyouabout…
7. Inviting questions I’dbegladtoansweranyquestionsattheendofmytalk. Ifyouhaveanyquestions,pleasefeelfreetointerrupt.
Part two – main body 1. Ordering Areachingtheendofonepoint Right,I’vetalkedabout/mentioned… We’velookedat… That’sallIhavetosayabout… Thatcovers… Bmovingontothenextpoint Nowwecometo…Thatbringsusto… I’dliketomoveon/drawyourattentiontomynextpoint. Let’smoveonto… Let’slooknowat…ThenextthingI’dliketotalkaboutis…
2. Giving reasons Themainexplanationforthisis… Therearetworeasons/explanationsforthis.First,…Second,… Thiscanbeexplainedbytwofactors.Firstly,…Secondly,… Thisisdueto… Onereasonforthisis… Anotherreasonis…
3. Developing the point Wheredoesthattakeus? Let’slookatthisinmoredetail. Whatdoesthatmeanforus?
207
English++ 4. Giving examples Agoodexampleofthisis… Toillustratethispoint,… TosupportwhatI’vesaid… I’dliketogiveyousomeexamples… forinstance…forexample…suchas…like…
5. Referring to visuals Take/Havea… Let’s… I’dlikeyoutolookatthistransparency/graph/table/piechart/flowchart/barchart/ diagram/chart I’dliketodrawyourattentionto… Thisshows/represents… Asyoucansee… Ifyoulookat…youcanseefromthetransparency,etc.that… Letmeshowyou… Couldyoulookatyourhandouts… Thenextslide/picture/graphshows…
6. Relating ideas A showing consequence therefore…so…consequently…becauseofthis…asaresult….
B comparing similarly…inthesameway… onesimilarity/differencebetween………isthat…
C contrasting but…however…although…nevertheless… eventhough…despite/inspite(ofthefactthat)…whereas/ while… incontrastto…bycontrastwith…ontheotherhand…
D highlighting inparticular…especially… –changingthewordorder,e.g.:‘Whatwasimportantwasthefinalconclusion.’ (insteadof:‘Thefinalconclusionwasimportant.’)
208
English++ –repeatingkeywords,e.g.:‘Weneedtocomparepastachievementsandpresent achievements.’ (instead of ‘We need to compare past and present achievements.’)
E showing an additional argument moreover…inadditiontothis…notonly…butalsofurthermore…
Part three – ending 1. Signaling the end Thatbringsmetotheendofmypresentation. Thatcompletesmypresentation. ThatcoversallIwant/wantedtosaytoday. BeforeIstop/finish,letmejustsay…
2. Summarizing Letmejustrunoverthekeypointsagain. I’llbrieflysummarizethemainissues. Tosumup… Let’srecap,shallwe? IfIcanjustsumupthemainpoints… Finally,I’dliketogoover/review… Firstly,Italkedabout………Secondly,Idiscussed……Thirdly,Ilookedat……
3. Concluding Inconclusion… I’dliketoconcludebysaying… Asaconclusion,I’dliketo… I’dliketoleaveyouwiththefollowingthought/idea.
4. Closing Thankyouforyourattention/beingsoattentive/listening. Itwaspleasuretalkingtoyou… Iwillbegivingyouhandouts. Youwillfindhandoutsattheentrance. Therearecopiesonthetable.
209
English++ 5. Inviting questions Arethereanyquestions? Haveyougotanyquestions?
6. Asking questions CouldIgobacktothepointyoumadeabout…? Iwasinterestedinyourcommenton… Yousaidthat… Couldyousayalittlemoreaboutthat? Couldyouclarifywhatyousaidabout…? I‘dliketoaskabout… MayIaskyouaquestion? I’minterestedinyouropinionabout… DoyoumindifIaskyou… I’minterestedtoknow…
7. Handling questions A clarifying IfIunderstandyoucorrectly,youaresaying/asking… Ididn’tquitecatchthat. Couldyougooverthatagain? I’mnotsurewhatyou’regettingat. Sorry,I’mnotsurewhatyoumean.
B playing for time That’sagood/interesting/difficultpoint/question/comment. I’mgladyouraisedthatpoint.
C saying you don’t know I’msorryIdon’thavethatinformationatthismoment. I’mafraidIdon’tknowatthemoment.
D avoiding giving answers Perhapswecoulddealwiththatlater. Canwetalkaboutthatonanotheroccasion? I’mafraidthat’snotmyfield. Idon’thavethefigureswithme. I’msureMr/Ms…couldanswerthisquestion.
210
I’llgetbacktoyouiftimepermits.
English++ E checking if the questioner is satisfied Doesthatansweryourquestion? Isthatclear? Canwegoon?
F concluding the questions Right,ifnobodywantstoaskanythingelse,Ithinkwecanfinishhere. Right,iftherearenomorequestions… Thankyou.
211
English++
212
English++
English++ English for Computer Science Students
Appendixes
213
English++
214
English++
Appendix A
Mathematical terminology
Listen to the recording algebra
algebra
algorithm
algorytm
analyzeanalytical
analizowaćanalitycznyobliczeniowy
approximation
przybliżenieaproksymacja
arc
łuk
area
poleobszar
argument
argumentwsensie:dowód,argument(funkcji)
assert
dowieść
assumption
założenie
averagemean
średnia
axisaxes(pl)
oś
ballunitball
kulakulajednostkowa
binomial
dwumian(Newtona)
brace
{}
squarebracket
[]
cancel
anulować,skreślić
commonfraction
ułamekzwykły
complexnumber
liczbazespolona
cube
sześcian[podnieśćdosześcianu]
cuberoot
pierwiasteksześcienny
curve
krzywa
data
dane
215
English++
216
decimalfraction
ułamekdziesiętny
deduce
wywnioskowaćwydedukować
derive(v)derivation(n)
wyprowadzać(np.wzór)
derivative(n,adj)
pochodnapochodny
diagonal(n,adj)
przekątnadiagonalnyprzekątny
dimension
wymiar
divide
dzielić
differential(n,adj)
różniczkaróżniczkowy
domain(ofafunction)
dziedzinafunkcji
edge
krawędź
equivalent
równoważny
estimate(v,n)
szacowaćszacunekliczbaszacunkowa
even
parzysty(oliczbie)
exponent
wykładnik(potęgowy)
exponentialfunction
funkcjawykładnicza
factor
czynnikwspółczynnikmnożnik
factorial
silnia
finite
skończony
fraction
ułamek
hypotenuse
przeciwprostokątna
imageofafunction
obrazfunkcji
imaginarynumber
liczbaurojona
infinite(set)
nieskończony(zbiór)
infinity
nieskończoność
integer
liczbacałkowita
integral(n,adj)
całkacałkowy
interval
interwałprzedział
leg
boktrójkątarównoramiennego
obliczaniepochodnej
English++ logarithm
logarytm
logarithmic(function)
funkcjalogarytmiczna
mapping (one-to-onemapping)
odwzorowanie(wzajemniejednoznaczne)
matrixmatrices(pl)
macierz
median
mediana
meetingpoint
punktprzecięcia
midpoint
środek
minus
minusznakodejmowania
multiplication
mnożenie
numerator
licznik(ułamka)
oblique
ukośny
obtuseangle
kątrozwarty
obtuse-angledtriangle
trójkątrozwartokątny
odd
nieparzysty(oliczbie)
parallel
równoległy
percent
procent
permutation
permutacja
plane(n,adj)
płaszczyznapłaski
planefigure
figurapłaska
polygon
wielobokwielokąt
polynominal
wielomian
proposition
twierdzenieteza
probability
prawdopodobieństwo
pyramid
ostrosłup
sphere
sfera
quadrangle
czworokąt
quadrant
ćwiartka
quotient
iloraz
217
English++ raisetothex-thpower
podnieśćdox-tejpotęgi
realnumber
liczbarzeczywista
rhombrhombus
romb
rightangle
kątprosty
root
pierwiastek
roundbrackets parentheses trapezium
trapez
vertex
wierzchołek
sine
sinus
cosine
cosinus
tangent(n,adj)
stycznastyczny
tangentofanangle
tangenskąta
cotangentofanangle
cotangenskąta
Abbreviations: n-noun-rzeczownik v-verb-czasownik adj-adjective-przymiotnik pl-plural-liczbamnoga
218
()
English++
Appendix B
Mathematical formulas
Manyuniversitiesstresstheimportanceofstudyingmathematicsduringcomputer sciencecourses,mainlyinthefirstyear.Thepointissimplynottomakestudents ^ learnsomethingdifficultandperhaps,somewhatboringbuttogivethemtheability tousetheuniversallanguageofmathematics,withoutwhichcomputersciencecould notexist.So,whynottolearnmathematicalformulasinEnglishtoenableyoutouse themintheglobalworldofscience?
Listen to the recording 1.
a+b
aplusb
addition
2.
a-b
aminusb
subtraction
3.
a*b
amultipliedbyb
multiplication
4.
a/b
adividedbyb
division
5.
a
nota
6.
a^b
aandb
7.
a b
aorb
8.
a b
aisorthogonal/perpendiculartob
9.
a||b
aisparalleltob
10.
a A
aiscontainedinA
11.
a2
araisedtothesecondpowerasquared
12.
ax
araisedtothexthpoweratothepowerofx
13.
a b
aislessthanorequaltob
14.
a>c
aisgreaterthanc
15.
2x+4=8
2xplus4equals/isequalto8
16.
2/8=1/4
2over8equals1over4
17.
|-5|=5
theabsolutevalueof-5equals5
219
English++ 18.
logab=c
thelogarithmofbtothebaseaequalsc
19.
A B
AincludesBBisasubsetofA
20.
x Ax B
21. 22.
220
an
forallxinAxiscontainedinBxisinBxliesinB
thenthrootofasquareroot
asubn
English++
Appendix C
Greek alphabet TheGreekalphabetisthebasisofwhatusedtobeaveryimportantand,insomeways, universallanguageinancientEurope.Nowadays,thisalphabetconstitutesasignificant partoftheuniversallanguageofmathematics.Asmathematicsisfundamentaltomost modernsciences,withcomputerscienceforemostamongthem,itisvitaltobefamiliar withit.
Listen to the recording Greekletter
Englishname
Α α
Alpha
Β β Γ γ
∆ δ Ε ε
Ζ ζ
Η η Θ θ Ιι
Κ κ Λ λ
Μ µ Ν ν Ξ ξ
Ο ο
Π π Ρ ρ
Beta Gamma Delta Epsilon Zeta Eta Theta Iota Kappa Lambda Mu Nu Xi Omicron Pi Rho
221
English++ Σ σ ς Τ τ
Υ υ
Φ φ Χ χ
Ψ ψ Ω ω
222
Sigma Tau Upsilon Phi Chi Psi Omega
English++
English++ English for Computer Science Students
Glossary
223
English++
224
English++
English++ Glossary This glossary contains entries for the keywords or key terms cited in bold in English++book.Theyhavebeenselectedfromthereadingandlisteningtextsand thentheirdefinitionshavebeenprovidedbythemembersofEnglish++team.
agiledevelopment-awayofbuilding software
autonomousdifferentialequation
AgileMethodology-aparticular
equationswhichdoesnotdependon theindependentvariable
methodofproducingsoftware, emphasizingself-organizingteams
-asystemofordinarydifferential
bandwidth-theamountofdatathat
andbroadcustomer-programmer
canbetransferredthroughaspecific
contact
pathinthenetwork(usually
AgileSoftwareDevelopment-aconceptual
expressedinkb/s[kilobits persecond])
frameworkforsoftwaredevelopment whichpromotesdevelopment
Baroktrojan-thistrojanhorsegathers
iterationsthroughoutthelife-cycle
informationsuchasusername,IP
oftheproject
addressandpasswords,andattempts
alignment-theadjustmentofanobject
tosendtheinformationtothe creatorofthevirus
inrelationtootherobjects,orastatic orientationofsomeobjectorsetof
binarycode-codeusingastringof 8binarydigitstorepresentcharacters
objectsinrelationtoothers Api-asourcecodeinterfacethatan
BitTorrent-aprotocolforsharing
operatingsystem,libraryorservice
anddistributingcomputerfiles
providestosupportrequestsmade
viatheInternet
bycomputerprograms
bot-aprogramusedontheInternet
artery-oneofthetubesthatcarries
thatperformsarepetitivefunction suchaspostingamessageto
bloodfromthehearttotherestof thebody ASP(ActionServerPages)-Microsoft’s
multiplenews-groupsorsearching forinformationornews
firstserver-sidescriptenginefor
botnet-acollectionofsoftwarerobots,
dynamically-generatedwebpages
orbotslinkedandcooperatingwith eachother
225
English++ broadcast-theactionofsendingdata byonecomputerinthenetworkto
infilms,televisionprograms,
allothercomputersthatareavailable
commercialsandsimulation
insidethenetwork buffer-aregionofmemoryusedto
computervision-abranchofartificial intelligencethatdealswithcomputer
temporarilyholddatawhileitisbeing
processingofimagesfromthereal
movedfromoneplacetoanother
world
buffercache-acollectionofdata duplicatingoriginalvaluesstored
confine-todefineboundaries;tolimit theextent(ofanactivity)
elsewhereorcomputedearlier,where
contract-alegallybindingexchangeof
theoriginaldataisexpensivetofetch
promisesoragreementbetween
(owingtolongeraccesstime)orto
partieswhichisenforceablebylaw
compute,comparedtothecostof readingthecache bug-anerrorinsoftware,something thatspoilstheflowoftheprogram CAD-ComputerAidedDesign Cauchyproblem-seeIVP circuitswitchingnetwork-anetwork inwhichcomputersestablishaconstantbandwidthconnectionbefore theystarttoshareanydata code,coding-referstotheprocessof
cookbook-abookofrecipesandsolutions fordifferentproblemsonwriting software,usuallyconnectedwitha particularprogramminglanguage andplatform correlate(with)-tohaveaclose similarity,connectionorcausal relationshipwith cybervandalism-cyberattacksthat defacewebpages cyberwar-theusageofcomputersand
transformingaconceptintoapro-
theInternetinconductingwarfarein
gramcode
thecyberspace
cognitivescience-thescientificstudy ofmindorintelligencebasedon relevantfields,includingpsychology,
database-softwaredesignedfor holdinglargeamountsofdata databaseschema-adescriptionofthe
philosophy,neuroscience,linguistics,
tablesandviewsinadatabase
anthropology,computerscience,and
togetherwiththerelationships
biology
betweenthem
computational-adj.1.involving computers,2.thatcanbecomputed computationalcomplexity-anareaof
DBA-databaseadministrator;themain roleofadatabaseadministratorhas todowithoverseeingtheinstallation
computerdesigndealingwiththe
andongoingfunctionofsoftware
problemsofalgorithmsandtheir
onasystemdesignedforusebya
abilitytosolveagivenproblem
numberofusers
ComputerGeneratedImagery(CGI)-an
226
computergraphics)tospecialeffects
decoratorpattern-adesignpatternthat
applicationofthefieldofcomputer
allowsnew/additionalbehaviourtobe
graphics(or,morespecifically,3D
addedtoanexistingclassdynamically
English++ DenialofService-akindofcyberattack -aprogrammingmethodologywhichis whichresultsinunavailabilityof
verycloselyconnectedwiththeAgile
service;itusestwomethods:forcing
style
thetargetedcomputer(s)toreset,thus
FFT-FastFouriertransform
consumingitsresourcessuchthatit
Firefox-oneofthemostpopularweb
cannolongerprovideitsintended service;orobstructingthe
browsers(afterInternetExplorer) FOSS-theacronymforFreeandOpen
communicationmediabetweenthe
SourceSoftware;thesoftwarethat
intendedusersandthevictimso
canbeused,studied,andmodified
thattheycannolongercommunicate
withoutrestriction
adequately designpattern-ageneralrepeatable
gamut-acompleterangeorextent generalsolution-ageneralsolutionof
solutiontoacommonlyoccurring
adifferentialequationisthesetof
probleminsoftwaredesign;adesign
allofitsparticularsolutions,often
patternisnotafinisheddesignthat
expressedusingaconstantC(orK)
canbetransformeddirectlyinto
whichcouldhaveanyfixedvalue
code;itisadescriptionortemplate forhowtosolveaproblemthatcan beusedinmanydifferentsituations desktop-apersonalcomputer
Gnome-oneofthebiggestwindow managersforLinux GNU-acomputeroperatingsystem composedentirelyoffreesoftware,
usedathomeorwork(stationary)
initiatedin1984byRichardStallman
developer-personwhodevelopsthe
Google-anAmericanpubliccorporation
software
whosedomainisopen-source
DFT-DiscreteFourierTransform
softwareandwhoseearningrevenue
differentiable-arealfunctionissaid
fromadvertisingrelatedtoits
tobedifferentiableatapointifits
Internetsearch,web-basede-mail,
derivativeexistsatthatpoint
onlinemapping,officeproductivity,
differentialequation-amathematical equationforanunknownfunctionof oneorseveralvariablesthatrelates
socialnetworkingandvideosharing activities GPL-awidelyusedfreesoftware
thevaluesofthefunctionitselfand
license,originallywrittenbyRichard
ofitsderivatives
StallmanfortheGNUproject
discrete-notsupportingorrequiring
GUI(GraphicalUserInterface)-atype
thenotionofcontinuity;discrete
ofuserinterfacewhichallowspeople
objectsarecountablesetssuchas
tointeractwithacomputerandcom-
integers
puter-controlleddevices
downloading-getting/transferringfiles (software,music,films,etc.)froma remotecomputerviatheInternet extremeprogramming(XP)
hacktivism-combinationofwords: “hack(er)”and“activism” hardware-allthephysicalpartsofthe computer
227
English++ heterogenous-consistingofvarious partsthatareverydifferentfromeach other heuristichypothesis-ahypothesisthat
kernel-thecentralcomponentofmost computeroperatingsystems(OS); itsfunctionsincludemanagingthe
hasaveryhighprobabilityofbeing
system’sresources(the
trueonthebasisofreasoningand
communicationbetweenhardware
pastexperience
andsoftwarecomponents)
homogeneouslineardifferential
keyframe-(orkeyframe)inanimation
equation-adifferentialequation
andfilmmakingisadrawingwhich
issaidtobehomogeneousifthere
definesthestartingandending
isnoisolatedconstantterminthe
pointsofanysmoothtransition
equation,e.g.,eachtermin
texture-abitmapimageapliedtoa
adifferentialequationforyhasyor
surfaceincomputergraphics
somederivativeofyineachterm identitymap-adatabaseaccessdesign patternusedtoimproveperformance
Linuxkernel-Unix-like operatingsystemkernel LiSP-TheLinuxPhoneStandards
byprovidingacontext-specific
Forum,aconsortiumfoundedbya
in-memorycachetoprevent
groupoftelephonyoperators,device
duplicateretrievalofthesameobject
manufacturers,siliconandsoftware
datafromthedatabase
vendorswhohaveastrategicfocus
incoherent-confusedandinconsistent, illogical IVP(initialvalueproblem)-anordinary differentialequationtogetherwith specifiedvalue,calledtheinitial condition,oftheunknownfunction atagivenpointinthedomainofthe solution Internet-aglobalnetworkconnecting millionsofcomputers Internetprovider-acompanythatsells bandwidthandaccesstotheInternet interval-asetofrealnumberswiththe propertythatanynumberthatlies betweentwonumbersinthesetis alsoincludedintheset;forexample,
228
positivenumbersisalsoaninterval
onLinuxtelephony mainframe-computerusedbylarge companiesforcriticaloperationslike financialtransactionprocessing maintenance-“lookingafter”thewritten software malware-softwaredesignedtoinfiltrate ordamageacomputersystem withouttheowner’sinformed consent mathematicalmodel-anabstractmodel thatusesmathematicallanguageto describeasystem matricize-changingsoundintoparts andwritingintoamatrix matrix-arectangulartableofelements
thesetofallnumbersxsatisfying0
(orentries),whichmaybenumbers