ebook img

Vorkurs Informatik: Der Einstieg ins Informatikstudium PDF

333 Pages·2012·8.276 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Vorkurs Informatik: Der Einstieg ins Informatikstudium

Heinrich Müller | Frank Weichert Vorkurs Informatik Leitfäden der Informatik Herausgegeben von Prof. Dr. Bernd Becker Prof. Dr. Friedemann Mattern Prof. Dr. Heinrich Müller Prof. Dr. Wilhelm Schäfer Prof. Dr. Dorothea Wagner Prof. Dr. Ingo Wegener Die Leitfäden der Informatik behandeln ■ Themen aus der Theoretischen, Praktischen und Technischen Informatik entsprechend dem aktuellen Stand der Wissenschaft in einer systematischen und fundierten Darstellung des jeweiligen Gebietes ■ Methoden und Ergebnisse der Informatik, ausgearbeitet und dargestellt aus der Sicht der Anwendung in einer für Anwender verständlichen, exakten und präzisen Form. Die Bände der Reihe wenden sich zum einen als Grundlage und Ergänzung zu Vorlesungen der Informatik an Studierende und Lehrende in Informatik-Studiengängen an Hochschulen, zum anderen an „Praktiker“, die sich einen Überblick über die Anwendungen der Informatik (-Methoden) verschaffen wollen; sie dienen aber auch in Wirtschaft, Industrie und Verwaltung tätigen Informatikerinnen und Informatikern zur Fortbildung in praxisrelevanten Fragestellungen ihres Faches. www.viewegteubner.de Heinrich Müller | Frank Weichert V orkurs I nformatik Der Einstieg ins Informatikstudium 2., überarbeitete und erweiterte Aufl age STUDIUM B ibliografi sche Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografi e; detaillierte bibliografi sche Daten sind im Internet über <http://dnb.d-nb.de> abrufbar. Prof. Dr. Heinrich Müller 1 978 Diplom in Informatik und in Mathematik, Universität Stuttgart. 1981 Promotion in Informa- tik, Universität Stuttgart. 1987 Habilitation in Informatik, Universität Karlsruhe. 1988 Professor für Praktische Informatik, Universität Freiburg. Seit 1992 Lehrstuhl für Graphische Systeme an der Technischen Universität Dortmund. Dr. Frank Weichert 2000 Diplom und 2010 Promotion in Informatik, Technische Universität Dortmund. Seit 2000 wissenschaftlicher Mitarbeiter am Lehrstuhl für Graphische Systeme an der Technischen Uni- versität Dortmund. 1. Aufl age 2005 2., überarbeitete und erweiterte Aufl age 2011 Alle Rechte vorbehalten © Vieweg+Teubner Verlag | Springer Fachmedien Wiesbaden GmbH 2011 Lektorat: Ulrich Sandten | Kerstin Hoffmann Vieweg+Teubner Verlag ist eine Marke von Springer Fachmedien. Springer Fachmedien ist Teil der Fachverlagsgruppe Springer Science+Business Media. www.viewegteubner.de Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfi lmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Umschlaggestaltung: KünkelLopka Medienentwicklung, Heidelberg Druck und buchbinderische Verarbeitung: AZ Druck und Datentechnik, Berlin Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier Printed in Germany ISBN 978-3-8348-0959-9 Vorwort DiesesBuchistausdemVorkursInformatikentstanden,dervondenAutorenseit2001ander UniversitätDortmundetwaeinenMonatvorBeginnderVorlesungszeitdesWintersemestersver- anstaltetwird.DieIdeezurEinführungeinesVorkursesInformatikkamdurchErfahrungeninder Vorlesung„EinführungindieProgrammierung“imWS2000/2001auf.DieseVorlesung,ander bedingtdurchdenIT-BoomjenerZeitmehrals1000Studierendeteilnahmen,machtebesonders deutlich,dassdieStudienanfängerinnenund-anfängereinesehrunterschiedlicheGrundausbil- dunginInformatikausderSchulemitbringen.DiesmachtdieDurchführungeinerEinführungs- vorlesung,welchefürdieMehrzahlderTeilnehmerinnenundTeilnehmerangemessenist,recht schwer.DasZieldesVorkursesist,eineneinheitlichenKenntnisstandzuerreichen. DerVorkursInformatikanderUniversitätDortmundwirdsehrgutnachgefragt.Etwasmehrals dieHälftederspäterenStudienanfängerinnenundundAnfängerdesFachesInformatiknehmen teil.HinzukommenangehendeStudierendeausanderenFächern(Mathematik,Wirtschaftsinge- nieurwesen,Betriebswirtschaftslehre,Informationstechnik),derenTeilnahmesichjedochoftauf denerstenTeil,eineEinführungindieProgrammierung,beschränkt.Zuerwähnenist,dasssich dasbisherverfügbareFolienskriptauchbeiStudierendendererstenSemestergroßerBeliebtheit erfreut,wieDownload-Zahlenzeigen.AnonymefragebogenbasierteNachfragenzuBeginndes drittenSemesterszeigen,dassderVorkurstrotzderbisdahinnichtnurpositivenPrüfungserfah- rungenderStudierendenvon40%alsnützlichundvon51%etwasnützlicheingestuftwird. Alldieshatunsbewogen,diesesBuchzuschreiben. Dem Vorkurs und dementsprechend diesem Buch liegt das Konzept „vom Konkreten zum Ab- strakten“zugrunde.DabeikonzentriertsichderVorkursimUnterschiedzuregulärenVorlesun- genmehraufdasKonkrete.AbstraktionisteinwesentlicherAspektdesInformatikstudiums,sie erscheintunsabervordemHintergrunddesKonkretenfürangehendeStudierendebessernach- vollziehbar. AufderEntwurfsebenederLösungvoninformatikbezogenenProblemenistdieDarstellungzu- nächstalgorithmenorientiert,dannwerdenGrundkonzeptedesobjektorientiertenEntwurfsskiz- ziert. Diese möglicherweise etwas konventionell wirkende Vorgehensweise erleichtert unserer Meinung nach den Zugang zur Informatik, ähnlich wie Rechnen zugänglicher zur Elementar- mathematikalsMengenlehreerscheint.DerEinführungindieProgrammierungliegteinestark reduzierteDarstellungderProgrammierspracheJavazugrunde.DasZielist,Grundprinzipiender Programmierung zu vermitteln, die zum allgemeinen Kenntnisstand einer Abiturientin oder ei- nesAbiturientengehörensollten,zumindestwenneineVertiefungdesFachesInformatikinder Schulestattgefundenhat. AusgehendvonderProgrammierungwirdzumAufbauvonRechnernundzumZusammenhang zwischen Hard- und Software am Konzept der Übersetzung von Programmen hingeführt. Hier sollein,wennauchvereinfachtes,„Weltbild“derFunktionsweisevonRechnernimSinneeiner vertieftenAllgemeinbildunggeschaffenwerden,dasdenEinstieginmaschinennähereTeiledes Informatikstudiumsvorbereitensoll. Eingebettet in die Darstellung von Programmierung und Rechnerstrukturen ist die Vorstellung wichtigermethodischerKonzeptewiedieRekursionunddieInduktionsowieausgewählterDa- VI tenstrukturen. Die Kenntnis solcher Methoden ist von hoher Bedeutung für das Informatikstu- diumundsolltebeiAbsolventinnenundAbsolventenzumindestvoneinschlägigenschulischen Leistungskursenvorhandensein. DerVorgehensweise„vomKonkretenzumAbstrakten“folgend,führendiemeistenAbschnitte ausgehend von Beispielen, an denen das darzustellende Konzept erläutert wird, zu generalisie- renden Definitionen hin. In den Text ist eine große Anzahl Übungsaufgaben eingearbeitet, die soangeordnetsind,dasssichdieLeserinnenundLeserunmittelbaraktivmitdempräsentierten Konzeptauseinandersetzen können.Dieser AufbausolldasBuch übereinvorkursbegleitendes LehrbuchhinauszumselbstständigenStudiumverwendbarmachen.DieEinleitunggibtentspre- chendeHinweisezurVerwendungdesBuches. Es soll hier die Gelegenheit genutzt werden, Personen und Institutionen zu würdigen, die zur EntstehungdesVorkursesInformatikbeigetragenhaben:dasLandNordrhein-Westfalen,dasim RahmendesSofortprogrammszurWeiterentwicklungdesInformatikstudiumsandendeutschen Hochschulen (WIS) Mittel zur Verfügung gestellt hat, die WIS-Kommission des Fachbereichs InformatikderUniversitätDortmund,diedasProjektdesVorkursesindiesemRahmenalsför- derungswürdigempfand,dieInformatikrechnerbetriebsgruppedesFachbereichsInformatik,die technischeUnterstützungbeiderRealisierungderbisherangebotenenVorkursegegebenhatund schließlichJörgKnoche,„der“Vorkurstutor,dersichinüberausbegeisternderWeiseindieÜbun- genzumVorkurseingebracht,aberauchdiearbeitsintensiveAuswertungderbegleitendenFra- gebögenübernommenhat. Am Zustandekommen des Buches waren zahlreiche Personen beteiligt. Zu nennen sind hier KlausHäming,derdie„fachfremden“Illustrationenerstellthat,diedasBuchetwasauflockern sollen,MarionHolm,diedieTextverarbeitungundRealisierungvielerfachbezogenerGrafiken undTabellenübernommenundzudemdasKorrekturlesenmitübernommenhat,Prof.Dr.Micha- elStark,OliverHengesbach,MartinaVaupel,diedurchinhaltlicheAnregungenundKorrekturle- senoptimierendmitgewirkthaben,undderTeubner-Verlag,insbesonderevertretendurchHerrn Sandten,dersichintensivumdiezahlreichenDinge,diebeiderRealisierungeinesBuchesan- fallen,gekümmerthat.IhnenallenmöchtenwirfürihrenBeitragherzlichdanken. Dortmund,imJuli2005 HeinrichMüller FrankWeichert Vorwort zur zweiten Auflage Die anhaltende positive Resonanz von Teilnehmern und Absolventen des Vorkurses Informa- tik hat uns bewogen, das Buch „Vorkurs Informatik - der Einstieg ins Informatikstudium“ neu aufzulegen. Die Neuauflage ist inhaltlich weitgehend gleich geblieben. Änderungen betreffen im Wesentli- chenpraktischeAspekte.SowurdeneineAnpassungandasaktuelleJavaRuntimeEnvironment durchgeführtundeinneuesKapitelzurVerwendungeinerJava-EntwicklungsumgebungamBei- spielvonEclipseaufgenommen.ImalgorithmischenTeilwurdenAblaufdiagrammedurchStruk- VII togrammeersetzt.DieDarstellungdesobjektorientiertenEntwurfsbefasstsichnunetwasmehr mitUML. DiebeiliegendeCDwurdedurchdieBereitstellungdesdaraufenthaltendenergänzendenMate- rialsimInternetersetzt.Dieserscheintakzeptabel,dadasInternetseitdererstenAuflageallge- genwärtigwurde.ZudemkanndasMaterialaufdieseWeisestetsaktuellgehaltenwerden. NatürlichwurdedieNeuauflageauchzurKorrekturvonFehlerngenutzt,dieüberdieJahrevon aufmerksamen Lesern gefunden wurden, denen dafür gedankt sei. Und schließlich fand eine UmformatierungaufdasneueBuchformatstatt,wobeidasbewährteprinzipielleLayoutimWe- sentlichenbeibehaltenwurde. EinbesondererDankfürdieUnterstützungbeiderÜberarbeitunggehtanFrauHeikeRapp,die insbesondere mit der Elimination von Inkonsistenzen durch die umgesetzten Änderungen be- fasstwar.SchließlichseidiefreundlicheBetreuungdurchFrauKerstinHoffmannvomLektorat erwähnt,diesehrgeholfenhat,dieneueAuflageaufdenWegzubringen. Dortmund,imJuli2011 HeinrichMüller FrankWeichert Inhaltsverzeichnis Einleitung 1 WasistInformatik? 5 1 Informatik 7 1.1 WasistInformatik? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2 TeilgebietederInformatik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Programmierung 13 2 VomProblemüberdenAlgorithmuszumProgramm 15 2.1 VorgehensweisebeiderLösungvonProgrammierproblemen . . . . . . . . . . . 15 2.2 Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3 Beispiel:JüngsterStudierender . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3 Algorithmenentwurf 23 3.1 Beispiel:MinimumeinerMengevonZahlen . . . . . . . . . . . . . . . . . . . . 23 3.2 GrundkonzeptevonAlgorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4 GrundkonzeptederProgrammierung 37 4.1 ProgrammierungundProgrammierspracheJava . . . . . . . . . . . . . . . . . . 37 4.2 GrundstrukturvonJava-Programmen . . . . . . . . . . . . . . . . . . . . . . . . 38 4.3 Beispiel:MinimumeinerMengevonZahlen . . . . . . . . . . . . . . . . . . . . 45 4.4 Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.5 Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.6 OperatorenundAusdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.7 Typkonvertierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.8 AnweisungenundAblaufstrukturen . . . . . . . . . . . . . . . . . . . . . . . . 64 4.9 Konventionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.10 Beispiel:MittelwerteinerFolgevonZahlen . . . . . . . . . . . . . . . . . . . . 72 5 Funktionen 77 5.1 Beispiel:SortiereneinerMengevonZahlendurchMinimumsuche . . . . . . . . 77 5.2 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3 GültigkeitsbereichvonDeklarationen . . . . . . . . . . . . . . . . . . . . . . . 89 X Inhaltsverzeichnis 6 Rekursion 93 6.1 Beispiel:SortiereneinerMengevonZahlendurchMischen . . . . . . . . . . . . 93 6.2 PrinzipderRekursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 7 KlassenundObjekte 109 7.1 Beispiel:SuchenineinemDatenbestand . . . . . . . . . . . . . . . . . . . . . . 109 7.2 Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 7.3 Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 8 ObjektorientierteProgrammierung 137 8.1 ObjektorientierteModellierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 8.2 UML-Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 8.3 Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 8.4 SichtbarkeitvonInformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 8.5 Polymorphismus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 9 Klassenbibliotheken 167 9.1 EinbindenvonKlassenbibliotheken . . . . . . . . . . . . . . . . . . . . . . . . 167 9.2 Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 9.3 Systemzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 9.4 Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 9.5 Paketsichtbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 10 GrafikprogrammierungmitSwing 181 10.1 GrundlagenvongrafischenBenutzungsoberflächen . . . . . . . . . . . . . . . . 181 10.2 EinfacheBenutzungsoberfläche. . . . . . . . . . . . . . . . . . . . . . . . . . . 183 10.3 BeispielfüreinfacheGrafikbefehle . . . . . . . . . . . . . . . . . . . . . . . . . 193 11 AndereProgrammierstile 207 11.1 Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 11.2 ImperativeProgrammierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 11.3 FunktionaleProgrammierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 11.4 LogischeProgrammierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 AlgorithmenundDatenstrukturen 211 12 AsymptotischeAufwandsanalyse 213 12.1 Zeitaufwand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 12.2 Speicheraufwand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 13 Sortieren 219 13.1 SortierendurchMinimumsuche . . . . . . . . . . . . . . . . . . . . . . . . . . 219 13.2 SortierendurchMischen(1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 13.3 Exkurs:VollständigeInduktion . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 Inhaltsverzeichnis XI 13.4 SortierendurchMischen(2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 13.5 EinigeBemerkungenzumSortierproblem . . . . . . . . . . . . . . . . . . . . . 230 14 Mengen 233 14.1 OperationenaufMengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 14.2 MengenverwaltungmitunsortiertemArray. . . . . . . . . . . . . . . . . . . . . 234 14.3 MengenverwaltungmitsortiertemArray . . . . . . . . . . . . . . . . . . . . . . 237 14.4 MengenverwaltungmitausgeglichenembinärenSuchbaum . . . . . . . . . . . . 244 14.5 MengenverwaltungmitHashing . . . . . . . . . . . . . . . . . . . . . . . . . . 251 VomProgrammzumRechner 255 15 HardwareundProgrammierung 257 16 RechnerarchitekturundMaschinensprache 259 16.1 Rechnerarchitektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 16.2 Hauptspeicher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 16.3 Prozessor,BefehlssatzundMaschinensprache . . . . . . . . . . . . . . . . . . . 262 17 Schaltungen 267 17.1 ZweiwertigeInformationsdarstellung. . . . . . . . . . . . . . . . . . . . . . . . 267 17.2 BoolescheFunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 17.3 Schaltungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 18 FormaleSprachenundCompiler 283 18.1 Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 18.2 FormaleSprachenundGrammatiken . . . . . . . . . . . . . . . . . . . . . . . . 284 18.3 SprachtypennachChomsky . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 18.4 Übersetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 18.5 Automaten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 18.6 EndlicherAutomat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 18.7 Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 Anhang 307 A SchlüsselwörterimSprachumfangvonJava 309 B GrundlagenderJava-Programmierumgebung 313 B.1 InstallationderJava-Programmierumgebung . . . . . . . . . . . . . . . . . . . . 313 B.2 AufrufsyntaxderJava-Entwicklungsprogramme . . . . . . . . . . . . . . . . . . 318 B.3 IntegrierteJava-Programmierumgebungen . . . . . . . . . . . . . . . . . . . . . 320 C Literaturverzeichnis 327 Stichwortverzeichnis 329

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.