Einführung in die Programmierung

Chair of Software Engineering
EinführungindieProgrammierung
Prof.Dr.BertrandMeyer
Vorlesung 1: Willkommen & Übersicht
ZielederVorlesung
NacherfolgreichemAbschlussdieserVorlesungwerdenSie:
Ø 
Ø 
Ø 
Ø 
Ø 
DieSchlüsselkonzeptedesProgrammierenskennen
VieleverschiedeneProgrammierproblemeaus
verschiedenenBereichenlösenkönnen
EinigegrundsätzlichenHardware-und
Softwarewerkzeugekennen
EineProgrammiersprachebeherrschen:Eiffel
DieGrundkonzeptedesDesigns,derImplementierung
undderWartungvonSoftwaresystemenkennen
(“softwareengineering”)
2
Übermich
AnderETHseitEnde2001,ProfessorfürSoftwareEngineering
GrossteilmeinerKarriereinderIndustrie,zuletztbeiEiffelSoftwarein
SantaBarbara,Kalifornien
ProfessoranderUniversityofCalifornia,SantaBarbarainden80ern
Forschungsthemen:SoftwareEngineering,Programmiersprachen,OO
Programmierung,NebenläufigeProgrammierung(concurrency),
Programbeweise,Testen,Entwicklungsumgebungen,Persistenz
Kontaktdaten:
Ø E-mail:[email protected],Büro:RZJ22
Ø Sekretariat:ClaudiaGünthart,0446328346
[email protected],Büro:RZJ7
Sprechstunden:MittwochswährenddesSemesters,kontaktierenSieFrau
Günthart
3
Sprache
DieSprachefürdieseVorlesungistSÜF
4
GeschwindigkeitaufDeutsch
5
DerTurbo-Knopf(nichtnochgefunden)
6
AufderpositivenSeite
JOKE-!
7
30Sekunden
8
DasTeamderAssistenten
MarcoPiccioni
(BackOfficeandTA)
FelixLaufenberg
AlexeyKolesnichenko
SandroMarcon
(KoordinatorandTA)
LoicCiccone
SalvatorediGirolamo
JanHązła
YuPei(Max)
RomanSchmocker
PetarTsankov
TimLinggi
SonjaMenzi
NicolasTruessel
ChristianVonrüti
LorinWeilenmann
PhilippWirth
MarieWoon
9
BackOffice
MarcoPiccioni
10
Koordinator
AlexeyKolesnichenko
11
GruppeJimGray:MarcoPiccioni
Mailingliste:[email protected]
E-mail:[email protected]
12
GruppeEdsgerDijkstra:AlexeyKolesnichenko
Mailingliste:[email protected]
E-mail:[email protected]
13
GruppeJohnvonNeumann:(Max)YuPei
Mailingliste:[email protected]
E-mail:[email protected]
14
GruppeNoamChomsky:LoicCiccone
Mailingliste:[email protected]
E-mail:[email protected]
15
GruppeNiklausWirth:SalvatorediGirolamo
Mailingliste:[email protected]
E-mail:[email protected]
16
GruppeAlanTuring:JanHązła
Mailingliste:[email protected]
E-mail:[email protected]
17
GruppeTonyHoare:RomanSchmocker
Mailingliste:[email protected]
E-mail:[email protected]
18
GruppeJohnBackus:PetarTsankov
Mailingliste:[email protected]
E-mail:[email protected]
19
GruppeVintonCerf:FelixLaufenberg
Mailingliste:[email protected]
E-mail:[email protected]
20
GruppeKristenNygaard:TimLinggi
Mailingliste:[email protected]
E-mail:[email protected]
21
GruppeLinusTorvalds:SandroMarcon
Mailingliste:[email protected]
E-mail:[email protected]
22
GruppeAdaLovelace:SonjaMenzi
Mailingliste:[email protected]
E-mail:[email protected]
23
GruppeAdeleGoldberg:NicolasTruessel
Mailingliste:[email protected]
E-mail:[email protected]
24
GruppeGeorgeBoole:ChristianVonrüti
Mailingliste:[email protected]
E-mail:[email protected]
25
GruppeDonaldKnuth:LorinWeilenmann
Mailingliste:[email protected]
E-mail:[email protected]
26
GruppeDennisRitchie:PhilippWirth
Mailingliste:[email protected]
E-mail:[email protected]
27
GruppeBarbaraLiskov:MarieWoon
Mailingliste:[email protected]
E-mail:[email protected]
28
Übungsgruppen
SiefülleneineUmfrageaus.DenLinkdazufindensieaufder
Webseite,oderwirdIhnenheuteNachmittagperE-Mail
geschickt.Siewählenzwischen
Ø  DreiNiveaus
Ø  ZweiSprachen
TragenSiesichbisMittagauf
mystudies.ethz.chfürdenKursein,um
dasEmailzuerhalten
FüllenSiedieUmfragebisDonnerstagAbendaus.
AmMontagfindenSiedieEinteilungindie
ÜbungsgruppenaufderWebseite
FallsSieguteGründefüreinenGruppenwechsel
haben:fragenSieAlexey
29
Sprachen
UnsereAssistentensprechenverschiedeneSprachen:
Ø  Deutsch
Ø  Englisch
Ø  Italienisch
Ø  Chinesisch
Ø  Russisch
Ø  …
DieÜbungsgruppenwerdenaufdeutschoderaufenglisch
gehalten.
30
Stundenplan
Vorlesungen:
Ø  Montags,13:15–15:00,HGE7
Ø  Dienstags,8:15–10:00,HGE7
Übungsstunden:
Ø  17Gruppen
•  Mittwoch,8:15–10:00,inverschiedenenRäumen
•  Mittwoch,15:15–17:00,inverschiedenenRäumen
31
WebseitederVorlesung
Webseite:
http://se.ethz.ch/courses/2015b_fall/eprog/
àZweimalwöchentlichanschauen
DeutscheundEnglischeVersionen,beidesindaktuell
Vorlesungsunterlagen:
Ø  FolienderVorlesung
Ø  Buch:TouchofClass
SiehenächsteFolie
Übungsunterlagen:
Ø  Übungen
Ø  Musterlösungen
32
DasBuchzurVorlesung
33
Online-VersiondesBuches
MöglichausdemNetzderETH
URL:sieheVorlesungswebseite
34
Buchverkauf:nächstenMontag(inderPause)
Montag,21.9.15um14:00
vordemHörsaalHGE
35
NeufürdiesesJahr
DerInfo-1MOOC(3rdedition,2015/2016)
http://webcourses.inf.ethz.ch/se_courses/
introduction_to_programming/main_page/
DeredXMOOC(3rdedition),startetam22.September2015,
https://www.edx.org/course/computing-art-magic-scienceethx-cams-2x
(MarcoPiccioni)
36
ElektronischeForen
Diskussionsforen:
HilfeforumfürdiegesamteVorlesung:
http://forum.vis.ethz.ch/
MailinglistefürjedeÜbungsgruppe
RatschlägeundRegeln:
Ø 
Ø 
Ø 
BenutzenSiedasVIS-ForumunddieMailinglisten!Programmierenzu
lernenistschwierig:NutzenSiejedeHilfe,dieIhnenangebotenwird.
EsgibtkeinenGrund,schüchternzusein.Esgibtkeinedummen
Fragen.
Kritikistwillkommen,seienSieaberimmerfreundlichundhaltenSie
sichandieEtiquette.
37
FallsSieeinenLaptopbrauchen…
DasNEPTUN-ProgrammderETHverkauftLaptopszuguten
Preisen
Thinkpad(Lenovo),HPoderApple
SiewählendasBetriebssysstem:Windows,Linux,MacOS
ZeitlichbegrenzterVerkauf:siehewww.neptun.ethz.ch
38
Übungen
DieÜbungensindeinwichtigerBestandteilderVorlesung
Ø  EineÜbungproWoche(ca10insgesamt)
Ø  ZweiMockexams
FürIhreÜbungsabgabesolltenSie:
Ø  nachweisen,dassSiedieAufgabenzulösenversucht
haben
AbsenzenwegenMilitärdienstoderKrankheit:kontaktierenSie
IhrenAssistenten.
39
Benotung
DieGrundregelnsindvonderETHdiktiert,dieFeinheitenvonuns
bestimmt:
Ø  DieNoteberuhtaufderLeistunginderPrüfungvom
kommendenAugust
40
DieSoftware
DieÜbungenbauenaufderBibliothekTrafficauf
Anwendungsgebiet:öffentlicherVerkehrineiner
Stadt(benutztZürichalsBeispiel)
Übung1(aufderWebseite)führtSiedurchdie
InstallationvonEiffelStudioundzeigtTraffic
41
EntdeckenSieTraffic
42
Warnung
Natürlichistnichtallesperfekt.
TrafficbeinhaltetwahrscheinlichFehler(“bugs”),unddasBuch
wahrscheinlichauch.
(Fehlerliste:http://touch.ethz.ch->Errata)
Aber:
Ø  Wirversuchen,dieFehlersoschnellwiemöglichzu
korrigieren.
Ø  SchiebenSiebeimAusprobierendieSchuldjeweilsnicht
zuerstderSoftwareindieSchuhe.Vielleichtfolgtsie
blossIhrenAnweisungen.
43
WeshalbdieseLehrmethode?
MitanderenLehrmethodenwürdenSienurmitkleinenselber
geschriebenenProgrammenarbeiten
WirverwendeneinvorgegebenesSoftwaresystem;benutzenSie
diesesalsBeispielundInspiration
SiebenutzendieSoftwaredurchihreabstraktenSchnittstellen
(auchbekanntalsVerträge(contracts))
SieverwandelnsichvomKonsumentenzumProduzenten:
outside-in
TrafficistgrafischundmachtSpass!
ImbestenFallverstehenSieamEndediegesamteSoftware.
DannkönnenSieauchneueshinzufügen
44
Programmiererfahrung
FallsSiebereitsprogrammierthaben,nutzenSiediesenVorteil,
aberseienSieauchoffenfüreineneueSichtweise;erkunden
SieTraffic
FallsSienochnieprogrammierthaben,keineAngst;eskann
anfangsschwierigsein,aberSiewerdenesschaffen.
MathematischesWissenistgenausonützlichwie
Programmiererfahrung
45
VorkenntnisseeinesInformatikstudentenimerstenSemester(2003-2008)
2008
FrühereJahre
Erfahrungmit ≤2Jahre:1%
Computern 2bis4Jahre:3%
5bis9Jahre:34%
≥10Jahre:62%
(1%,3%,4%,1%,6%)
(39%,35%,48%,35%)
(61%,62%,48%,63%)
Programmier-Keine:18%
erfahrung
(0%,0%,0%,1%)
(12%,19%,18%,14%)
KeineOOP:22%
(20%,26%,33%,38%)
≥100Klassen:17%
(8%,11%,15%,10%,5%)
46
VorkenntnisseeinesInformatikstudentenimerstenSemester
ErfahrungmitComputern
2-4 yrs: 4%
≥10 Jahre:
54%
Programmiererfahrung
5-9 Jahre:
42%
Durschnittüber6Jahre,2003-2008
47
EinpaarRegeln
KeinWeb-Browsing,Emailusw.inderVorlesung
KeinepersönlicheGespräche
48
Mindsopen…
…Laptopsclosed.
49
Ratschläge
Ø 
Ø 
Ø 
BesuchenSiealleVorlesungen
LesenSiedieUnterlagen—dasBuchunddieFolien—
jeweilsvordenVorlesungen
(Bem.:FolienwerdenhäufignachderVorlesung
aktualisiert)
NehmenSieeineDruckversionderFolienmitundmachen
SiesichNotizen
Ø 
BesuchenSiealleÜbungsstunden
Ø 
MachenSiealleÜbungen
Ø 
FallsSieetwasnichtverstehen,fragenSienach
(esgibtkeinedummenFragen)
50
PersönlicheRatschläge
Erfolgreichstudieren(insbesondereanderETH):
Ø  Siebestimmenselbst,wasSiewanntun
Ø  NutzenSiedieMöglichkeitenderETH
•  TalksgehaltenvonForschernvonanderenUnis
•  Konferenzen
•  Bibliotheken
•  Experimente
•  Projekte
Ø  SprechenSiemitProfessorenundAssistenten
Ø  LesenSiedieWebseitendesDepartementsunddesChair
ofSoftwareEngineering
Ø  HaltenSieAusschaunachVorlesungenmitProjektenund
anderenMöglichkeiten,individuellzuarbeiten
51
NochmehrpersönlicheRatschläge
Ø 
BesuchenSiedieVorlesungen
BesuchenSiedieÜbungsstunden
LesenunddruckenSiedieFolienvorderStunde
MachenSiesichNotizen
SchliessenSiesichzuStudiengruppenzusammen
BesuchenSieauchVorlesungenzuinformatikfremden
Themen,vorallemwährenddenerstenzweiJahren
BereitenSiesichfrühaufdiePrüfungvor
Ø 
BewahrenSieeinekritische,forschendeEinstellung
Ø 
Ø 
Ø 
Ø 
Ø 
Ø 
52
ZielederVorlesung
NacherfolgreichemAbschlussdieserVorlesungwerdenSie:
Ø 
Ø 
Ø 
Ø 
Ø 
DieSchlüsselkonzeptedesProgrammierenskennen
VieleverschiedeneProgrammierproblemeaus
verschiedenenBereichenlösenkönnen
DiegrundsätzlichenHardware-undSoftwarewerkzeuge
kennen
EineProgrammiersprachebeherrschen:Eiffel
DieGrundkonzeptedesDesigns,derImplementierung
undderWartungvonSoftwaresystemenkennen
(“softwareengineering”).
53
Themen
Ø  WasistSoftware?
Ø Vererbung
Ø  Objekte&Programme
Ø Generik
Ø  Schnittstellenund
Ø Rekursion
dasKlassenkonzept
Ø Datenstrukturen
Ø  LogikundVerträge
Ø Ereignisgesteuerte
(contracts)
Programmierung&Agents
Ø  DasLaufzeitmodell:
Ø TopologischesSortieren
Objekterzeugung,Referenzen Ø EinführunginsSoftware
Ø  Syntaxbeschreibung
Engineering
Ø  Kontrollstrukturen
54
DieIndustriederreinenIdeen
55
SoftwareingenieurebauenMaschinen
DieseMaschinenkannmannichtberühren,tretenoderfallen
lassen:siesindimmateriell
AberessindtrotzdemMaschinen
WirnennensieProgrammeoderSysteme
UmeinProgrammauszuführen,benötigtmaneinematerielle
Maschine:einenComputer
ComputerundtechnischeGeräte:Hardware
ProgrammeundderdamitverbundeneintellektuelleWert:
Software
56
Software,wohinmanauchschaut
Banken:verwaltetMillionenvonKonti
Handel:entscheidetüberKaufundVerkauf
Verkehr:kontrolliertZüge,überwachtFlugzeuge...
Ø  EinigeAutosbeinhaltetSoftwaremitMillionenvon
ZeilenProgrammcode
Reisen:Flug-,Zug-,undHotelbuchungen
Kommunikation:Telefonie,Internet,…
Behörden:verwaltetSteuern,überwachtGesetze...
Gesundheitswesen:verwaltetKrankenakten,überwachtGeräte
Unterricht
Unterhaltung
Information
usw.
57
Computerüberall…
Banken
Flugzeuge,Autos…
Waschmaschinen
Smartphone
Drucker
Morgen:IhrT-Shirt…
58
ComputerinallenGrössen,FarbenundFormen
http://www.go-gulf.com/wp-content/themes/go-gulf/blog/60seconds.jpg
59
Computer
ComputersinduniverselleMaschinen.Sieführendas
Programmaus,dasIhnengegebenwird.
IhreVorstellungskraftistdieeinzigeGrenze
DiegutenNachrichten:
Ø 
IhrComputertutgenaudas,wasinIhremProgramm
steht
60
Programmeerstellenundausführen
EinProgrammierer
schreibtein
Programm
das
einBenutzer
Programmierer:schreibtProgramme
Benutzer:führtProgrammeaus
aufeinem
Computer
ausführt
61
Programmeerstellenundausführen
einen
Computer
EinProgrammierer
benutzt
zum
Schreiben
eines
Programms
das
einBenutzer
aufeinem
Computer
ausführt
62
Programmeerstellenundausführen
einen
Computer zum
EinProgrammierer
benutzt
Schreiben
eines
Programms
das
Benutzer
aufihren
Computern
ausführen
63
Programmeerstellenundausführen
Programmierer
zum
Computer Schreiben
benutzen
eines
Programms
das
Benutzer
aufihren
Computern
ausführen
64
Computer
ComputerssinduniverselleMaschinen.Sieführendas
Programmaus,dasIhnengegebenwird.
IhreVorstellungskraftistdieeinzigeGrenze
DiegutenNachrichten:
Ø 
Ø 
IhrComputertutgenaudas,wasinIhremProgramm
steht
Ertutessehrschnell
65
Moore’s“Gesetz”
Etwaalle18Monate:VerdopplungderRechenleistungbeigleichbleibendem
Preis
(IstdasdieAussagevonMoore’sGesetz?)
(Nein:VerdopplungderAnzahlTransistoren)
66
Moore’sGesetz(Quelle:Intel)
67
Moore’s“Gesetz”
Etwaalle18Monate:VerdopplungderRechenleistungbeigleichbleibendem
Preis
Geschwindigkeit Intel-Prozessoren
3.8 GHz
1 GHz
Pentium IV:
1.3 GHz
(1Hertz=1Taktzyklus/Sekunde)
Pentium: 133 MHz
100 MHz
80486: 50 MHz
80386: 33 MHz
10 MHz
1 MHz
1970
bis 1 GHz: 26 Jahre
von 1 bis 2 GHz: 8 Monate
8008: < 1 MHz
1980
1990
2000
68
Microprozessoren(Quelle:Intel)
69
Typicaltimes*
1nanosecond(ns)=10-9second,1millisecond(ms)=10-3
second:
Ø  Basiccomputeroperation 1ns
If this were 1 second…
100ns
Almost 2 minutes
Diskaccess:oneitem
1MB
Ø  SSDaccess:4K
1MB
10ms
20ms
0.15ms
1ms
4 months
8 months
Half a month
Ø 
Localpacketsend
0.5ms
One week
Ø 
PacketsendEuropeàUS 150ms
Ø 
Mainmemoryaccess
Ø 
2 days
Almost 5 years
*AfterPeterNorvig,formoreseehttps://gist.github.com/jboner/2841832;thanksalsotoErik
Meijer
70
LegendenundEntschuldigungen
“Computersindintelligent”
Tatsache:Computersindwederintelligentnoch
dumm.SieführenProgrammeaus,dievonMenschen
entwickeltwurden.DieseProgrammespiegelndie
IntelligenzihrerAutorenwieder.
DieGrundoperationeneinesComputerssind
elementar(speicherneinesWertes,addierenzweier
Zahlen…).
“DerComputeristabgestürzt”
“DerComputererlaubtdasnicht”
“DerComputerhatIhreDateiverloren”
“DerComputerhatIhreDateikaputtgemacht” 71
ComputermachenkeineFehler*....
Ø 
Ø 
ProgrammemachenauchkeineFehler
ProgrammierermachendieFehler
*Hardwarekannzwardefektsein,aberdasistvielseltenerderFallals
FehlerinderSoftware
72
Computer
ComputersinduniverselleMaschinen.SieführendasProgrammaus,das
Ihnengegebenwird.
DieeinzigeGrenzeistIhreVorstellungskraftundIhreSorgfalt
DiegutenNachrichten:
Ø 
IhrComputertutgenaudas,wasinIhremProgrammsteht
Ø 
Ertutessehrschnell
DieschlechtenNachrichten:
Ø 
IhrComputertutgenaudas,wasinIhremProgrammsteht
Ø 
Ertutessehrschnell
“Toerrishuman,buttoreallymess
thingsuptakesacomputer”
73
The“BlueScreenOfDeath”
74
Softwarezuschreibenistschwierig
Ø  Programme“stürzenab”
Ø  WennProgrammenichtabstürzen,bedeutetdasnicht
unbedingt,dasssierichtigfunktionieren
Ø  FehlerhafteProgrammehabenMenschenumgebracht,z.B.
medizinischeGeräte
Ø  Ariane5Rakete,1996:$10Mia.verloren,wegeneinem
einfachenProgrammfehler
Ø  USPatriot-Raketen,1990:28Soldatengetötet,wegeneinem
numerischenFehler
Ø  ProgrammierersindfürdiekorrekteFunktionsweiseihrer
Programmeverantwortlich
Ø  DerZweckdieserVorlesungistesnichtnurIhnen
programmierenbeizubringen,sonderndassSiegut
programmierenlernen.
75
Learningtoprogramwell
76
Ariane5
http://www.youtube.com/watch?v=kYUrqdUyEpI
Programm-Fehler:sehen
Ø  Jean-MarcJézéquel&BertrandMeyer:DesignbyContract:
TheLessonsofAriane,inComputer(IEEE),vol.30,no.1,
January1997,pages129-130,
archive.eiffel.com/doc/manuals/technology/contract/ariane/.
77
WasComputertun
Speichernundwiederabrufen
Ø 
Speicher
Operationenausführen
Ø 
Restder
Welt
Kommunikations
-geräte
Prozessoren
Prozessoren
Kommunikation
Ø  Kommunikationgeräte
Speicher
Speicher,ProzessorenundKommunikationsgerätegehörenzurHardware
78
GenerellerAu‚au
Kommunikationsgeräte
Restder
Welt
Prozessoren
Auch“CPU”
Tastatur,Maus,Bildschirm,
Netzwerkkarte...
Speicher
“Core”-Speicher,Festplatten...
“Persistent”oderauchnicht
79
Computer
ComputersinduniverselleMaschinen.SieführendasProgrammaus,das
Ihnengegebenwird.
+
(Universelle
Maschine)
Programm
=
Spezialisierte
Maschine
Software
80
InformationundDaten
Informationist,wasSiewollen,z.B.Text
oderMusik
DatensindInformationen,diefürden
Computerkodiertsind,z.B.imMP3Audioformat
•  Daten:MengevonSymbolenauf
demComputergespeichert
•  Informationen:Interpretationder
DatenfürmenschlicheZwecke
81
VerarbeitungvonDatenundInformation
DatenwerdenimSpeichergehalten
EingabegeräteproduzierenDatenausInformationen
AusgabegeräteproduzierenInformationenausDaten
Information
Daten
Information
Eingabe
Computer
Ausgabe
Daten
Prozess
Daten
82
WoistdasProgramm?
+
Programm
=
Spezialisierte
Maschine
(Universelle
Maschine)
83
WobefindetsicheinProgramm?
SpeicherprogrammierteComputer:DasProgrammbefindet
sichimSpeicher
Ø  “Executabledata”
EinProgrammkannimSpeicherinverschiedenenFormen
vorhandensein:
Ø  Quellcode:vonMenschenlesbar(Programmiersprache)
Ø  Maschinencode:vomComputerausführbar
EinCompilerübersetztQuellcodeinMaschinencode
DerComputer
(genauer:diePlattformausComputer+Betriebssystem)
findetIhrProgrammimSpeicherundführtesaus
84
SoftwareEngineering
SchreibenvonSoftware,diefolgendeEigenschaftenbesitzt:
Ø  Korrekt
Machtwassiesoll!
Ø  Erweiterbar
Einfachzuändern!
Ø  Lesbar
VonMenschen!
Ø  Wiederverwendbar
DasRadnichtwiedererfinden!
Ø  Robust
ReagiertangemessenaufFehler
Ø  Sicher
GegenAngreifer
85
Betriebssysteme:Quellcodeumfang
Anzahl Codezeilen (Mio.)
Debian 3.1: 213!
Debian 2.2: 55
Vista: 50
50
Windows XP: 45
Windows 2000: 40
40
Red Hat 7.1: 30
30
20
10
Windows 98: 18
Windows 95: 15
Solaris 7: 12
Red Hat 6.2: 17
Windows NT: 4 M
Windows 3.1: 3 M
1990 Linux: 10 K
1992
Unix V7: 10K
1995
1998
2000 2001
2006
86
Softwarezuschreibenistschwierig
Esistschwierig,einkorrektesProgrammzuschreiben
“Trial-and-error”istineffizient
87
SoftwarezuschreibenmachtSpass
EntwerfenundentwickelnSieIhreeigenenMaschinen
LebenSieIhreKreativitätundIhrenIdeenreichtumaus
ProgrammerettenLebenundhelfen,dieWeltzueinem
besserenOrtzumachen
ErlebenSiedasGefühl,wenneinProgramm,dasSie
geschriebenhaben,funktioniert
88
DieSoftware
DieÜbungenbauenaufderBibliothekTrafficauf
Anwendungsgebiet:öffentlicherVerkehrineiner
Stadt(benutztZürichalsBeispiel)
Übung1(aufderWebseite)führtSiedurchdie
InstallationvonEiffelStudioundzeigtTraffic
89
EntdeckenSieTraffic
90
Warnung
Natürlichistnichtallesperfekt.
TrafficbeinhaltetwahrscheinlichFehler(“bugs”),unddasBuch
wahrscheinlichauch.
(Fehlerliste:http://touch.ethz.ch->Errata)
Aber:
Ø  Wirversuchen,dieFehlersoschnellwiemöglichzu
korrigieren.
Ø  SchiebenSiebeimAusprobierendieSchuldjeweilsnicht
zuerstderSoftwareindieSchuhe.Vielleichtfolgtsie
blossIhrenAnweisungen.
91
WeshalbdieseLehrmethode?
MitanderenLehrmethodenwürdenSienurmitkleinenselber
geschriebenenProgrammenarbeiten
WirverwendeneinvorgegebenesSoftwaresystem;benutzenSie
diesesalsBeispielundInspiration
SiebenutzendieSoftwaredurchihreabstraktenSchnittstellen
(auchbekanntalsVerträge(contracts))
SieverwandelnsichvomKonsumentenzumProduzenten:
outside-in
TrafficistgrafischundmachtSpass!
ImbestenFallverstehenSieamEndediegesamteSoftware.
DannkönnenSieauchneueshinzufügen
92
WarumwirEiffelbenutzen
Ø 
Ø 
Ø 
Ø 
Ø 
Ø 
Ø 
Einfaches,reinesObjektmodell
DesignbyContractMechanismen
ErlaubtIhnenaufBegriffe,nichtdieSpracheselbst,zu
fokussieren
Geringes«Sprachgepäck»
GuteEntwicklungsumgebung(EiffelStudio)
Portabilität:Windows/Linux/Mac
Realismus:Eiffelistkeine«akademische»Sprache
EiffelbereitetSiedaraufvor,andereO-OSprachenwennnötig
zustudieren,z.B.C++,Java,C#
DieseVorlesunglehrtnichteineProgrammiersprache,sondern
dieProgrammierung
93
WarumnichtJava?
ErstesJavaProgramm:
class First {
public static void main(String args[])
{ System.out.println("Hello World!"); } }
Du wirst verstehen,
wenn du aufwächst!
Tue wich ich sage,
nicht wie ich tue!
94
Erstes Eiffel programm
class
PREVIEW
inherit
ZURICH_OBJECTS
feature
explore
-- Show city info and route.
do
-- “To be filled in (by you!)”
end
end
95
WarumnichtJava?
Ø 
WarumnichtC++?
Ø 
WarumnichtRuby?
Ø 
WarumnichtPython?
Ø 
WarumnichtC#?
Ø 
WarumnichtC?
Ø 
WarumnichtFortran?
Ø 
WarumnichtCobol?
Ø 
…
96
EinenJobfinden
IndenkommendenJahrenwerdenSieallewichtige
Programmiersprachenlernen
GuteArbeitgebersuchennichtspezifischeKenntnisse,sondern
starkeIngenieur-undSystemfähigkeit
VieleLeutekönnenProgrammeschreiben
(tatsächlich:ca.24Millionen)
ArbeitsgebersuchenLeute,dieguteProgrammeschreiben
können
97
BiszurnächstenVorlesung
LesenSieKapitel1und2vonTouchofClass
SchauenSiesichdieFoliendernächstenzweiVorlesungen(2
und3)an
98