Programmiertechnik 1 - dcl.hpi.uni-potsdam.de · Andreas Polze 4 Definition der Gesellschaft für...
Transcript of Programmiertechnik 1 - dcl.hpi.uni-potsdam.de · Andreas Polze 4 Definition der Gesellschaft für...
AndreasPolze 1
Programmiertechnik1
Unit1:Informatik– einÜberblick
AndreasPolze 2
Ablauf
• WasistInformatik?• Algorithmenbegriff• TechnischeInformatik• TheoretischeInformatik• PraktischeInformatik• AngewandteInformatik• StudiumamHPI• EinordnungderLV• Bits,Bytes,Worte,Dateien• Informationvs.Daten• topdownvs.bottomup
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 3
WasistInformatik?
• Abgeleitetvon“Information”,“Automatik”,“Mathematik”(1960erJahre)– MaschinelleInformationsverarbeitung– Kybernetik– ElektronischeDatenverarbeitung(EDV)– Information(Communication)Technology(IT,ICT)
• Informatik– eineWissenschaft– ComputerScience,ComputerEngineering,SoftwareEngineering– Computerwissenschaften
• Organisationen– GesellschaftfürInformatik(GI)– AssociationforComputingMachinery(ACM),TuringAward
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 4
DefinitionderGesellschaftfürInformatik
• InformatikistdieWissenschaftvondersystematischenundautomatisiertenVerarbeitungvonInformation.
• SieerforschtgrundlegendeVerfahrensweisenderInformationsverarbeitungundallgemeineMethodenihrerAnwendungindenverschiedenenBereichen.
• FürdieseAufgabenwendetdieInformatikvorwiegendformaleundingenieurmäßigorientierteTechnikenan.
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 5
Informatik:VerschiedeneSichtennachBalzert
• Position1:Mathematisch-logischeOrientierung– ComputerarbeitennachformalenPrinzipien,Programmierermüssensichalsodie
FormalismenaneignenundrealeProblemeindenFormalismusübertragen.
• Position2:IngenieurwissenschaftlicheOrientierung– InformatikersolltenwieIngenieurearbeiten,alsosystematischeVorgehensweisen
(Planung,Modellierung)aufkonkretepraktischeProblemeanwenden.
• Position3:EvolutionäreOrientierung– EineexakteFormalisierungdespraktischenProblemsistoftnichtmöglich.Deshalbsind
Versucheformalen,geplantenVorgehensgescheitert.ManmussdasakzeptierenundinseinerArbeitvorhersehen.
• Position4:PartizipativeOrientierung– ComputererfüllenbestimmteFunktioneninnerhalbmenschlicherTätigkeitsbereiche.
DerInformatikermusssichalsomitdemsozialenKontextdesArbeitsplatzes,derArbeitsverteilungusw.beschäftigen.
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 6
Algorithmenbegriff
• Rechnen– Zahlen– Grundrechenarten->trivial?– RömischeZahlenbisinsspäteMittelalter– AdamRiese,1524,Rechenbuch,Dezimalsystem(urspr.Indien)
(1492-1559,Annabergi.Erzgeb.)• Algorithmus
– mechanischausführbaresRechenverfahren– Al-Chwarizmi(780-850,Persien),BuchüberAlgebra
• EigenschafteneinesAlgorithmus– BestehtausmehrerenSchritten– Wiederholungen– Endlichkeit?,Komplexität?– SchattendaseininderMathematik(„Grundrechenarten“)
• GrundlagederInformatik– undderprogrammiertenInformationsverarbeitung
Unit1:Informatik- einÜberblick,Programmiertechnik1
Al-Chwarizmi auf einer sowjetischen Briefmarke anlässlich seines 1200. Geburtstags (de.wikipedia.org)
AndreasPolze 7
EigenschaftenvonAlgorithmen
• Abstraktion,Parameter– AlgorithmuslöstKlassevonProblemen
• Finitheit:BeschreibunghatendlichLänge– AlgorithmusbenötigtinjedemSchrittnur
endlichvielPlatz
• Terminierung– ResultatstehtnachendlichvielenSchrittenfest
• Determinismus(deterministischerAlg.)– ZujedemZeitpunktbestehthöchstenseine
MöglichkeitderFortsetzung
• Determiniertheit– gleicheResultatebeigleichenEingaben
• ZujedemAlgorithmusexistierenunendlichvieleverschiedeneäquivalenteAlgorithmen
Unit1:Informatik- einÜberblick,Programmiertechnik1
Euklid(300v.Chr.)– ggT(p,q)(ältesternichttrivialerAlg.)
1)x=p/q,Restr2)r==0à ggT=q
Terminierungr!=0à p=q
q=x
Bsp:ggT(1071,1029)=21
1071=1*1029+421029=24*42+2142=2*21+0
AndreasPolze 8
TeilgebietederInformatik
• TechnischeInformatik• PraktischeInformatik• TheoretischeInformatik• AngewandteInformatik
• “Bindestrich”-Informatiken:– Bio-Informatik,Geo-Informatik– Wirtschaftsinformatik,medizinischeInformatik– LinguistischeInformatik
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 9
StichwortezurInformatik
Unit1:Informatik- einÜberblick,Programmiertechnik1
TechnischeI. PraktischeI. TheoretischeI. AngewandteI.• Elektr.Schaltungen• Speicher,• Signalübertragung,• Schaltnetze,• Schaltwerke,• Prozessoren• Mikroprogrammierung• Rechnerarchitektur• Rechnernetze• Parallelrechner
• Algorithmen• Datenstrukturen• Programmiermethoden(strukturierteP.,objekt-orientierteP.)
• ProgrammiersprachenundCompiler
• Betriebssysteme(DOS,UNIX,Mach,Windows,Linux,MacOSX)
• Softwaretechnik• Mensch-Maschine-Kommunikation(HCI)
• Automatentheorie• TheoriederformalenSprachen
• Berechenbarkeit• Komplexitätstheorie• AlgorithmenanalyseTheoriederProgrammierung
• AutomatischePro-grammsynthese
• FormaleSemantik
• Informationssysteme• Grafik• KI• DigitaleSignalverarbeitung
• SimulationundModellierung
• Textverarbeitung,Büroautomatisierung
• ERP• AnwendungeninWirtschaft,Verwaltung,Medizin,Geisteswiss.,Kunst....
AndreasPolze 10
TechnischeInformatik
• Rechnerarchitektur– KonstruktionvonRechnern– Prozessorarchitektur,-entwurf– Parallelisierung– Befehlssatz,Datenformate
• Rechnerkommunikation– Übertragungsmedien– Router,Switches,Firewalls– Netzwerkprotokolle– DefinitionundStandardisierung
• BindegliedzurElektrotechnik– Schaltungstechnik
Unit1:Informatik- einÜberblick,Programmiertechnik1
Xilinx_S6-SP601board(de.wikipedia.org)
AndreasPolze 11
Rechenmaschinen
• MechanischeRechenmaschinenfürGrundrechenarten– Schickard(1592-1635)– Pascal(1623-1662)– Leibniz(1646-1716)
• Problem:Fehleranfälligkeit– Feinmechaniknochnichtweitgenugfortgeschritten
• MechanischeBürorechenmaschineAnno1900– HermanHollerith(1860-1929),Lochkarte– SeineTabulatingMachineCompany...
• fusionierte1911mitderComputingScaleCorporationundderInternationalTimeRecordingCompany zurComputingTabulatingRecordingCorporation(CTR)
– CTRwurde1924umbenanntin
• VierfesteProgramme...Unit1:Informatik- einÜberblick,Programmiertechnik1
Nachbau der Rechenmaschine von Schickard (1623)
de.wikipedia.org
Maschinen nach Hermann Hollerith 1890Lochkartenleser, Zählwerk, Sortierer,
Locher; de.wikipedia.org
AndreasPolze 12
Programmierbarkeit;Geschichte
• Computerfreiprogrammierbarà erfordertProgrammspeicher– Programmà Algorithmus– Prozeßà ausgeführtesProgramm
• 1805Jacquard-Webstuhl– Steuerung(Programmierung)durchgelochteHolzplättchen
• 1792-1871CharlesBabbage– MechanischeRechenmaschine– Idee:ProgrammenachJacquard-Prinzipspeichern(techn.Mängel)– Lochkartenmaschinensetztensichdurch(Sortieren,Tabellieren,Addieren)
• KonradZuse(1910-1995)– 1934Idee:dualesZahlensystemzumRechnennutzen
• bislang:fürjedeRechenstelle10mech.Positionen(Zahnräder,Zahnstangen)– RelaisrechnerZ3,Z4– Anfangder1940erJahre
• Programmiersprache:„Plankalkül“ (1945/46)
• 1944Aiken,USA– RöhrenrechnerMarkI,Dezimalsystem,Schaltzeitenvon0,1ms(Relais:100ms)
• 1946Eckert/Mauchly,Univ.ofPennsylvania– ElektronenrechnerENIAC18000Röhren,1500Relais(....bugs)– ElectronicNumericalIntegratorAndComputer
Unit1:Informatik- einÜberblick,Programmiertechnik1
Zuse
AndreasPolze 13
ArtderProgrammspeicherung?• Bislang:
– Zuse– Lochstreifen,Eniac– Steckbretter(wieTelefonvermittlung)
• JohnvonNeumann(1902-1957),Ungarn,USA
– ProgrammimSpeicherdesRechnersablegen– RechnerhattenohnehinSpeicherfür
Zwischenergebnisse
• 1949EDSAC– CambridgeUniversity,erster„von-Neumann-
Rechner“• StandderKunst1950:
– ZweiwertigeZuständeanstellezehnwertigerDaten
– ElektronikersetztMechanik– ProgrammimSpeicherdesRechners
Unit1:Informatik- einÜberblick,Programmiertechnik1
Rechnergenerationen
1 Bis1960.;Pionierzeit,ElektronenröhrenAddition:100-1000MikrosekundenSpeicher:<1000ZahlenPraktischkeineSoftware
2 Bis1970.;Transistoren,Ferritkern-,Band-,Trommel-,PlattenspeicherFORTRAN,Cobol,maschinenunabhängigeBetriebssysteme,Stapelbetrieb.10000Instruktionen/sec
3 Bis1980.;TeilweiseintegrierteSchaltkreise(LSI),Timesharing,Terminals,Bildschirme,grafischeDatenverarbeitung,Großrechner,Einchip-Prozessoren,8-bitArchitektur(Z80)500000Instruktionen/sec
4 heutige.;HochintegrierteSchaltungen(VLSI),16/32/64-bitArchitekturen,MultiCore/ManyCore,Netzwerke,Parallelrechner,TBSpeicher>1000000Instruktionen/sec
5 Optische,biologischeSysteme,Quantencomputer,hochparalleleSysteme
AndreasPolze 14
PraktischeInformatik
• ProgrammesteuernRechner– Software,leichtveränderbar(?)– MaschinennaheProgrammierung,Assembler– HöhereProgrammiersprachen,Compiler– AbstrakteDatenstrukturen,Algorithmen
• Softwaretechnik– Modellierung,GenerierungvonProgrammen– Compilerbau,Interpreter,Laufzeitumgebungen– Versionierung,Wartung,Refaktorisierung,Lebenszyklus
• Programmiersprachen- Portabilität– Imperativ:FORTRAN,ALGOL,Basic,Cobol,Pascal,C,Modula-2,Javascript,
Ruby,Python,Perl– Objekt-Orientiert:Simula,Smalltalk,Objective-C,C++,Eiffel,Java,C#– Logisch(deklarativ)/Funktional:Prolog,Lisp,Scheme,ML
Unit1:Informatik- einÜberblick,Programmiertechnik1
infoworld.com
AndreasPolze 15
Programmiersprachen
• Amhäufigstenbenutzt:C,Java,C++,PythonUnit1:Informatik- einÜberblick,Programmiertechnik1
aboutprogrammers.org
AndreasPolze 16
TheoretischeInformatik
• AutomatentheorieundformaleSprachen– EndlicheAutomaten,fiktiveMaschinen
• endlicheMengeinternerZustände• „Eingabewort“ zeichenweiseeinlesen,ZustandsübergangbeijedemZeichen• BeiZustandsübergang„Ausgabesymbol“ ausgeben,Eingabewortakzeptieren
– AutomatenmitSpeicher• Kellerautomaten,Turingmaschine
– Church-Turing-These:alleberechenbarenFunktionendarstellbar– HalteproblemderTuring-Maschinenichtentscheidbar
• Berechenbarkeitstheorie– WelcheProblemesindmitMaschinenlösbar?
• Komplexitätstheorie– RessourcenbedarfvonalgorithmischbehandelbarenProblemenauf
verschiedenenmathematischdefiniertenformalenRechnermodellen– Speicherbedarf,Laufzeit,O(1),O(n),O(n3)
Unit1:Informatik- einÜberblick,Programmiertechnik1
Turing-Maschine
AndreasPolze 17
Turing-Maschine• Bestandteile:
– unendlichlangesSpeicherbandmitunendlichvielensequentiellangeordnetenFeldern• JedesFeldspeichertgenaueinZeichen• Blanksymbolbedeutet„leeresFeld“• BlanksymbolgehörtnichtzuderMengederEingabezeichen.
– programmgesteuerterLese- undSchreibkopf,dersichaufdemSpeicherbandfeldweisebewegtundZeichenverändert
• EingabeaufdemBandwirdnachProgrammmodifiziert– StartpositionistamAnfangdesEingabeworts– MankannbestimmteZuständealsEndzuständedefinieren
Turingmaschinebleibtdannstehen
• Arbeitsweise:– Lese-Schreib-KopfliestaktuellesZeichen,
• überschreibtdiesesmiteinemanderen(oderdemgleichen)Zeichen• bewegtsichdanneinFeldnachlinksoderrechtsoderbleibtstehen.
– WelchesZeichengeschriebenwirdundwelcheBewegungausgeführtwird,wirddurcheinezuderTuringmaschinegehörendeFunktiondefiniert
• ZuBeginnbefindetsichdieTuringmaschineineinemvorgegebenenStartzustandundgehtbeijedemSchrittineinenneuenZustandüber
• Turing-MaschinehatendlichvieleZustände
Unit1:Informatik- einÜberblick,Programmiertechnik1
Turing-Maschine
AndreasPolze 18
Beispielprogramm
• ProgrammschreibtaufinitialleeresBandzweiEinsen• FunktionderTuring-Maschineisttabellarischgegeben(Quelle:RosarioVanTulpe)
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 19
AngewandteInformatik
• EinsatzvonRechnernimLeben– Textverarbeitung,Tabellenkalkulation– Email,online-banking,Web
• NeueAnwendungsgebietefürneueWerkzeuge– Smartphone,Organizer,Pablet-PCs– MobileLagerhaltung,intelligenterTerminkalender
• „Schnittstellen-Disziplin“ (bspw.Wirtschaftsinformatik)– ZuWirtschaftswissenschaften,Betriebswirtschaftslehre– AbbildungvonGeschäftsprozessen– BuchhaltunginrelationalenDatenbanksystemen– Enterprise-Resource-Planning-Systemen– InformationEngineering,Informationsmanagement
Unit1:Informatik- einÜberblick,Programmiertechnik1
Transforming cutting-edge research into innovation!
SAPEntwicklung
Unternehmen
Forschung & Wissenschaf
t
Partner
AndreasPolze 21
IT-SystemEngineeringInformatikamHPI
• BachelorofScience(6Semester)• MasterofScience(4Semester)• Doktorandenprogramm:
– Forschungskollegon„Service-OrientedSystemsEngineering“
Unit1:Informatik- einÜberblick,Programmiertechnik1
Vertiefungsgebiete
•BusinessProcess&EnterpriseTechnologies•HumanComputerInteraction&ComputerGraphicsTechnology•Internet&SecurityTechnology•OperatingSystems&InformationSystemsTechnology•SoftwareArchitecture&ModelingTechnology
AndreasPolze 22
9:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
Mo Di Mi Do Fr
ab 21.10.
Lehrveranstaltungen BachelorWintersemester 2017/18
(Vorlesungszeitraum 16.10.2017 - 09.02.2018)
Stand: Stand 10.08.20171. Sem. 3. Sem.
9.00 Uhr:
Internet Security –
Weak-nesses and Targets
MeinelGarwon
HS 2
Wirtschaft-liche
Grundlagen HölzleHS 1
Wirtschaft-liche
Grundlagen HölzleHS 1
D-School Advanced
Track
- Zu terminlichen und räumlichen Abweichungen an einzelnen Veranstaltungstagen beachten Sie bitte die HPI-Website (Lehrinhaltsbeschreibungen, Verlegungsplan) -
HPI - Kolloquium
HS 1
D-School Advanced
Track
Soft-Skills-Kolloquium
KrohnHS 1
D-School Basic Track
D-School Basic Track
5. Sem.
Software-architekturHirschfeld
HS 2
Web-Program-
mierung und Web-Frame-
worksMeine/Bauer
H-E.51
Mathematik I – Diskrete Strukturen und LogikMeinel/Tietz
HS 1Bitte HPI-Website beachten
Recht für Ingenieure II
Krohn HS 2
16.10/23.10/06.11/13.11/
20.11.
Fachspez. Englisch Level
2MeierA-1.2
Einführung in die Program-miertechnik I
PolzeHS 1
POIS (Prozess-orientierte Informat.-Systeme)
Weske HS 3
Übung Software-technik II (Raum nach Absprache)
Software-architekturHirschfeld
HS 2
Betriebs-systeme I
PolzeHS 3
Übung Theor. Inf. I
A-1.2
Übung Internet
Security -Weaknesses and Targets
H E.51
Übung Mathe I
A-1.2 A-1.1
ÜbungMod I
A-2.1
Fachspez. Englisch Level 1MeierA-1.2
Betriebs-systeme I
PolzeHS 3
Freiwillige Übung
Grundlagen digitaler SystemeWollowski
HS 1
Einführung in das Design Thinking Siehe web seite d school
Weinberg/Nicolai D-School
Projektentwicklung und Management Durchgänge: Göttel
05./06./07.Mrz;08./09./10.Mrz; 12./13./14.Mrz. 2018 H E.51
Durchgänge: Schmitz/Kulesza05./06./14.Mrz;07./08./15.Mrz;09./10./16.Mrz;
A 1.1 (Zuordnungen und Räume s. auch HPI-Website)
Big Data Analytics
MüllerHS 2
Software-technik II
UflackerHS 3
Software-technik II
UflackerHS 3
ÜbungModel-
lierung I
A 1.1
Übung Internet
Security -Weaknesses and Targets
H E.51
HCI Project Seminar on Robotics,
Haptics, and 3D PrintingBaudisch H-2.57
Grafikpro-grammierung mit OpenGL
und C++ Döllner,
Limberger, Buschmann
H 2.57
Sonder-termineRecht für Ing.
IIKrohn HS 2
23.11.201730.11.201707.12.201714.12.2017
Big Data Analytics
MüllerHS 2
Theoretische Informatik I
FriedrichHS 2
Programmier-sprachen:
Entwurf und Implementierung
HirschfeldA 1.1
POIS (Prozess-orientierte Informat.-Systeme)Weske HS 2
Einführung in die Program-miertechnik I
PolzeHS 1
Modellierung IGieseHS 1
Algorithmic Problem SolvingFriedrich/Lenzner
HS 2
Übung Modellie-
rung IH 2.58
Übung Mathematik I
A-1.2A-1.1
Grundlagen digitaler SystemeWollowski
HS 1
Übung Theoret.
Informatik IA-1.1A-1.2
3D-Computer-grafik ITrappHS 2
Überzeugend Präsentieren – Der erste Eindruck zählt (Einsteiger)
Dieball27./28.Feb; 20./11.Feb. 2018
A-1.1
Lerntechniken und Strategien zur Prüfungsvorbereitung
Potzner15.-17.Mrz 2018
A-1.1
Modellierung IGieseHS 1
Mathematik I – Diskrete
Strukturen und Logik
Meinel/TietzHS 1
Bitte HPI-Website beachten
Grundlagen digitaler SystemeWollowski
HS 1
3D-Computer-grafik ITrapp HS 2
InformationVisualization
Techniques for Industry 4.0
Döllner, Hagedorn,
Klimke A 2.1
Übung Modellierung I
A-2.1Und A-2.2
Übung PT IA-2.2
Studienbe-gleitendes SeminarH 2.58H-E.52A 1.1
Business Process
SimulationWeske/ Pufahl
A 2.2
Business Process
SimulationWeske/ Pufahl
A 2.2
Building Physical Devices Baudisch H 2.57
Übung Theoretische Informatik I
A-1.2
Datenbank-systeme II
NaumannHS 2
Datenbank-systeme II
NaumannHS 3
Beautiful Data
Naumann G 3.E 15/16
Big Data SecurityAnalytics
ChengH-2.57
Identitäts-managementMeinel/Tietz
A-1.1
Test-Driven Learning
AssignmentMeinel/StaubitzH-2.57
Graphen-theorie
Friedrich, Lagodzinski
A-1.2
Studienbe-gleitendes Seminar
A 2.1A 1.1A 2.2
Building Physical Devices Baudisch H 2.57
Übung Theor. Inf. I
A-2.2.
Übung PT I
A-1.1A-1.2A-2.1
ÜbungMod I
A-1.1
Übung PT I
A-2.1.
Studien-begleitendes
Seminar
A-2.2
Übung Internet
Security -Weaknesses and Targets
H E.51
LehreindiesemSemester
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 23
LehreindiesemSemester
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 24
AblaufProgrammiertechnik1
• Vorlesung:– Di13:30-15:00,HS1– Do09:15-10:45,HS1
• Übung:– Zweiwöchentlich,Do09:15-10:45– Übungsgruppenbilden(2Mitglieder)– Übungsaufgaben
• 50%derPunktejederAufgabenseriemüssenzurPrüfungszulassungerreichtwerden(einAufgabenblattdarfignoriertwerden)
• Aufgabenabgabesystem:https://www.dcl.hpi.uni-potsdam.de/submit/(AnmeldungmitHPI-NutzerkontoundHPI-OpenID-Provider)
• Prüfung:– KlausuramSemesterende
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 25
Kursziele
• Ziel:Erwerb/VertiefungderFertigkeitenzurProgrammentwicklung(Programmierung)
• ErlernenvonFertigkeit(nachWikipedia):– nichtnurabhängigvonBegabung/Talenten,sondernauchÜbung– bereitsErlerntem(Kenntnisse,Erfahrungen,Reife,Kompetenz)– weitereninnerenVoraussetzungen(Motivation,Wille)
• KonkreteZiele:Verinnerlichungvon– KonzeptenderstrukturiertenProgrammierung– BegriffdesabstraktenDatentyps– UmgangmitProgrammierwerkzeugen– SyntaxundSemantikvonC,PrologundJava
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 26
Literatur
• BrianW.Kernighan,DennisM.RitchieTheCProgrammingLanguage,PrenticeHall,1988
• AxelT.SchreinerSystemProgrammierunginUNIX,Band1,Teubner-VerlagStuttgart,1986.
• Gumm,SommerEinführungindieInformatik.OldenburgVerlag,2004
• Barnes,MichaelKöllingObjectsFirstwithJava- APracticalIntroductionusingBlueJ.PrenticeHall,2004
• BroyInformatik- EinegrundlegendeEinführung.Band1,Springer1998
• BalzertLehrbuchGrundlagenderInformatik.Elsevier2005
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 27
InhaltderLehrveranstaltung
• Unit1:InformatikalsFachgebiet– TechnischeInformatik– TheoretischeInformatik– PraktischeInformatik– AngewandteInformatik– StudiumamHPI,EinordnungderLV– Bits,Bytes,Worte,Dateien– Informationvs.Daten– topdownvs.bottomup
• Unit2:Rechnerarchitektur– Aussagenlogik– Schaltnetze,Schaltwerke– Register– vonNeumannRechner– CPU,ALU,CU– Instruktionsverarbeitung– OpCode-Formate,RTL– Instruktionsarten– Ein- undAusgabe
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 28
InhaltderLehrveranstaltung(contd.)
• Unit3:Informationsdarstellung– UniversalitätbinärerDaten– Abtasttheorem– ganzeZahlen– 1erKomplement,2erKomplement– Gleitkommaformate– ASCII,EBCDIC– Unicode
– Unit4:Programmiersprachen– Spezifikation,Algorithmen,Programme– ImperativeProgrammierung:
• Modula-2,C– ObjektorientierteProgrammierung:
• Smalltalk,C++,Objective-C,Java– Logische&FunktionaleProgrammierung:
• Prolog,Lisp– FormaleBeschreibungvonProgrammiersprachen:EBNF– EinerstesBeispielinC
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 29
InhaltderLehrveranstaltung(contd.)
• Unit5:WerkzeugeundTechnologien– Interpreter,Compiler– Technologieprogramme:make– Quellcodeverwaltung:sccs,cvs,subversion,git– Debugger:gdb– Test:Check,CUnit– Betriebssysteme
• Unit6:ProgrammierspracheC– IntegraleDatentypen– Operatoren– Ausdrücke– Typdefinitionen– Vorrangregeln
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 30
InhaltderLehrveranstaltung(contd.)
• Unit7:Kontrollfluss– AnweisungenundBlöcke– if-else,else-if,switch– Schleifen:whileandfor,do-while,breakandcontinue– gotoandlabels
• Unit8:FunktionenundProgrammstruktur– Grundlagen,PrinzipFunktionsaufruf,Stack– call-by-value,call-by-ref,call-by-copy– Rückgabewerte– externeVariablen,Scope– headerfilesundÜbersetzungseinheiten– Initialisierung– Rekursion– CPräprozessor
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 31
InhaltderLehrveranstaltung(contd.)
• Unit9:ZeigerundFelder– HeapundStack– ZeigerundAdressen,ZeigerundFunktionen(-argumente)– ZeigerundArrays,Adreßarithmetik
– Beispiel:mallocundAlgorithmenzurSpeicherallokation– MehrdimensionaleFelder– InitialisierungvonFeldern– Kommandzeilenbearbeitung– Funktionszeiger– KomplizierteDeklarationen
– Unit10:Strukturen– Grundlagen– StrukturenundFunktionen– FeldervonStrukturen– ZeigeraufStrukturen– SelbstreferentielleStrukturen– Unions,typedefs,bit-fields– Objekte
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 32
InhaltderLehrveranstaltung(contd.)
• Unit11:Ein- undAusgabe(libc)– StandardEin- undAusgabe– stdio– FormatierteAusgabe– printf– ArgumentlistenvariablerLänge– varargs– FormatierteEingabe– scanf– Dateizugriff- Fehlerbehandlung– stderrundexit– ZeilenweiseEin- undAusgabe– WeitereFunktionen
• Unit12:Betriebssystemschnittstellen– filedescriptors– low-levelI/O– readandwrite– open,creat,close,unlink– lseek– Standardlibrary
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 33
InhaltderLehrveranstaltung(contd.)
• Unit13:ObjektorientierteProgrammierung:Java– VirtuelleMaschinen– Klassen,Objekte,abstrakteDatentypen– Vererbung,virtuelleMethoden– Pakete,Programmeinheiten– Ausnahmebehandlung
• Unit14:LogischeProgrammierung:Prolog(gprolog)– BoolescheLogik– ClosedWorldAssumption– Fakten,Prädikate– Regeln– Listen
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 34
InformationundDaten
• TrennungzwischenäußererDarstellungeinerNachrichtunddemInhaltderNachricht– „Esregnet“– «Дождьидёт»– 下雨
• InformationnennenwirdenabstraktenGehalt(„Bedeutungsinhalt“,„Semantik“)einesDokuments,einerAussage,Beschreibung,Anweisung,NachrichtoderMitteilung.
• DieäußereFormderDarstellungnennenwirdieRepräsentation(konkreteFormderNachricht).
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 35
WastuteigentlicheinComputer?
• FüllevonAnwendungen(aufzählen)– Wettervorhersage– Steuerungssysteme– Schachspiel– Musik,Kinoeffekte
• WiemachteinComputerdas?– WiewirddasSchachspielbedient?– WieistdasProgrammaufgebaut?– WiesinddieInformationenzumSpielstandgespeichert?
(imHauptspeicher,aufderFestplatte)– WiesindNullenundEinseninSpeicherzellenorganisiert?– WelcheelektrischenSignalebeeinflussenTransistorenundWiderständeausdenen
ProzessorundSpeicheraufgebautsind?
• Festlegenauf_eine_Erklärungsebene– Null/Eins– niedrigsteEbenederInformationsverarbeitung– Informationen==Daten
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 36
DarstellungvonInformationen
• VieleFormenderRepräsentation– verabredeteZeichen(„Signale“)– gesprochenesWort(„akustischeDarstellung“)– taktileReize,Wärmewahrnehmung– Zeichnungen– Zeichenfolgen(geschriebenes„Wort“,„Text“)
• Den(häufignurgedanklichen)ÜbergangvonderRepräsentationzurabstraktenInformation,dieDeutungderRepräsentation,nennenwirInterpretation.
• ProzessderInterpretationimGehirn:Verstehen– formalschwierigerfassbar– deshalb:mathematisch-logischeSichtbegnügtsichmitderAbbildungder
RepräsentationaufmathematischesModell– VerständnisdesModellsmussunabhängigerworbenwerden
Unit1:Informatik- einÜberblick,Programmiertechnik1
Information
Daten
Repräsentation Abstraktion
AndreasPolze 37
Bits
• kleinstmöglicheEinheitderInformation• AntwortaufFrage,diezweiMöglichkeitenzulässt
– jaodernein– wahroderfalsch– schwarzoderweiß– helloderdunkel– linksoderrechts
• KodierungderInformation:– FestlegungeinerRepräsentation(einesCodes)– DarstellungvonBits:Binärcode– ZweiZeichen:oft0und1(auch:0undL)
• RepräsentationimComputer:oftdurchLadungen– 0=ungeladen,1=geladen– 0=0Volt,1=5Volt– 0=unmagnetisiert,1=magnetisiert
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 38
Bitfolgen
• RepräsentationvonmehralszweiAntworten:mehrereBits– AuswelcherHimmelsrichtung(Ost,Süd,Nord,West)wehtderWind?– 1.WehtderWindauseinerderRichtungenNordoderOst(ja/nein)?– 2.WehtderWindauseinerderRichtungenWestoderOst(ja/nein)?– 00:Süd,01:West,10:Nord,11:Ost
• MitjedemBitverdoppeltsichdieZahlderAntworten– 3Bits:WindrichtungmitZwischenrichtungen– 000=Süd,001=Südwest,010=West,011=Nordwest,– 100=Nord,101=Nordost,110=Ost,111=Südost– Esgibtgenau2n möglicheBitfolgenderLängen
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 39
Hexziffern
• LangeBitfolgenfürdenMenschenschwererfassbar– Konvention:BitfolgenwerdenzuVierergruppenzusammengefasst
• Statt0100111101100001kannmandann4F61schreiben• 1AF3=6899:
– 1*163 +A*162 +F*161 +3*160
– 1*4096+10*256+15*16+3
Unit1:Informatik- einÜberblick,Programmiertechnik1
0000=0 0001=1 0010=2 0011=3
0100=4 0101=5 0110=6 0111=7
1000=8 1001=9 1010=A 1011=B
1100=C 1101=D 1110=E 1111=F
AndreasPolze 40
Allgemein:ZahlendarstellungineinemPositionssystem
• VerallgemeinerungdesDezimalsystems• ZahlensystemzurBasisN:
– NZiffernmitWertenvon0..N-1– Ziffer:SymbolauseinerSymbolmenge
• Seiamam-1am-2...a2a1a0 eineZiffernfolgezurBasisN,dannistdiedurchdieZiffernfolgedargestellteZahl:am Nm+am-1Nm-1+am-2Nm-2+...+a2 N2+a1 N+a0
• Problem:– DarstellungvonZahlenmitverschiedenerBasisineiner
Programmiersprache– 0xF8(HexinC),21h(HexinModula-2),077(OktalinC)– DarstellungmitunteremIndex9710 =6116 =011000012
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 41
ÜblichePositionssysteme
• Dezimalsystem:– Basis10,Ziffern0,1,2,3,4,5,6,7,8,9
• Binärsystem:– Basis2,Ziffern0,1
• Oktalsystem:– Basis8,Ziffern0,1,2,3,4,5,6,7
• Hexadezimalsystem:– Basis16,Ziffern0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F– oftstattGroßbuchstabenauchKleinbuchstabenverwendet
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 42
BytesundWorte
• RechnerverarbeitenBitsimmerinGruppen:– üblicheGruppengröße:8Bits,16Bits,32Bits,64Bits– heutzutageüblicherweiseVielfachevon8
• Byte:Zusammenfassungvon8Bit– exakteBegriffsdefinitionvariiert– C-Standard:„Byte“ ==„Datenmenge,dieinWertvonTypchargespeichert
wird“– ZurKlarstellungwirdauchderBegriff„Oktett“ (octet)verwendet
• Worte:„Natürliche“ GruppierungvonBitsimRechner– Historisch(16-Bit-Rechner):Wort=2Byte,Doppelwort=4Byte,– Quadwort=8Byte
• Begriffsdefinitionstarkuneinheitlich;– aufeinem32-Bit-Rechnermeintmanoftmit„Wort“ 4Byte(Halbwort:2Byte)
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 43
Dateien
• FolgenvonBytesaufeinemSpeichermedium– (Festplatte,CD-ROM,USB-Stick...)– „Folge“ nurimeinfachsten(weitverbreitetem)Fall– FlexiblereGruppierunganstellesequentiellerFolgenmöglich
(Records,Blöcke,Index-sequentiellerZugriff)
• OrganisationvonmehrerenDateienineinemComputerüblicherweisedurchhierarchischeDateinamen
• InterpretationdesInhaltseinerDateidurchProgrammoderNutzer– ErkennungderArtderDatendurchNamenskonventionen(etwa:
Dateinamensanhänge)oderDateiformat(FestlegungspezifischerBytesetwaamDateianfang)
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 44
Dateigrößen
• Üblich:ZählungderBytes„in“ einerDatei– ohneZählungderBytesinDateinamenundsonstigenDateiattributen
• AbkürzungBfürBytes:245B• GroßeZahlen(z.B.:460146819B)schlechthandhabbar
– Lösungsidee:metrischesSystem(kB=1000B,MB=1000000B)
• Aber:SpeicheristoftinZweierpotenzenorganisiert– SektorgrößeaufFestplatten:512B– GrößeeinesmodernenSpeichermoduls:1073741824B
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 45
Dateigrößen(contd.)
• Lösung:210 =1024≈1000=103
• EinheitenpräfixeähnlichdemmetrischenSystem– 210 =1024=k=kilo (ki=kibi)– 220=1024*1024=M=mega (Mi=Mebi)– 230 =1024*1024*1024=G=giga (Gi=Gibi)– 240 =1024*1024*1024*1024=T=tera (Ti=Tebi)– 250 =1024*1024*1024*1024*1024=P=peta (Pi=Pebi)– 260 =1024*1024*1024*1024*1024*1024=E=Exa (Ei=Exbi)
• DiemathematischfalscheVerwendungistnachwievorüblich– kBalswirdKilobyteausgesprochenundals1024Byteverstanden– Wirdmanchmalauchmetrischrichtigverwendet(etwabeiFestplattengrößen:1GBdann
109B)
• DieIEC(InternationalElectrotechnicalCommission)schlug1996vor,diezweierpotenz-basiertenGrößenordnungenmiteinem„i“ zukennzeichnen
– Verwendung:kiB(Kibibyte),MiB(Mebibyte),GiB(Gibibyte)(AddendumzuIEC60027-2)
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 46
GängigeGrößenordnungen
AnhaltspunktefürdasSpeichernvonDatenaufGeräten:– 200B -Textnotiz– 4kB - dafürbenötigterFestplattenplatz– 100kB - formatierterBrief,Excel-Datei,pdf-Dokument– 1,4MB - KapazitäteinerDiskette– 4MB - Musiktitelimmp3-Format,WindowsProgramm– 40MB - Musiktitelimwav-Format– 700MB - CD-ROMKapazität– 4GB - HauptspeicherimPC,DVD– 16GB - USBStick,SD-Karte– 25GB - Blu-rayDisc(dual-layer:50GB)– 2TB - aktuelleFestplatte
• Komprimierung?,Codierung?
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 47
Ausblick
• DarstellungspeziellerInformationen– Zahlen– Text– Programme– BilderundMusik
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 48
Topdownvs.Bottomup
• Top-down:– EntwurfbeginntmitabstrahiertenObjekten,diedannkonkretisiertwerden– Spezifikation,Modell,abstrakteBeschreibung– SchrittweiseVerfeinerung– Codierung,Test
Versus• Bottom-up:
– EswirdvonDetail-Aufgabenausgegangen,diezurErledigungübergeordneterProzessebenötigtwerden
– Proof-of-concept– SchrittweiseVerallgemeinerung
• RisikodesScheiterns
Unit1:Informatik- einÜberblick,Programmiertechnik1
AndreasPolze 49
Zusammenfassung
• WasistInformatik?– Algorithmenbegriff– TechnischeInformatik– TheoretischeInformatik– PraktischeInformatik– AngewandteInformatik
• StudiumamHPI– FokusSoftwaretechnik– EinordnungderLehrveranstaltung
• Informationsverarbeitung– Bits,Bytes,Worte,Dateien– Informationvs.Daten– Topdownvs.bottomup
Unit1:Informatik- einÜberblick,Programmiertechnik1