Programmierkurs Vorlesung 00 M.Sc. Laslo Hunhold 9. Oktober 2019 - Institut für Informatik
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Programmierkurs Vorlesung 00 M.Sc. Laslo Hunhold Institut für Informatik Universität zu Köln 9. Oktober 2019 M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 1
Einführung M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 2
Abbildung: Konrad Zuse (1910-1995) mit dem Z3 (1941) (Quelle: Stadtarchiv Hünfeld) M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 3
Was ist Informatik? Informatik: „Informatik ist die Wissenschaft von der systematischen Verarbeitung und Speicherung von Informationen, besonders der automatischen Verarbeitung mit Hilfe von Computern.“, Gesellschaft für Informatik e.V. I Theorie: Analyse von Algorithmen, Datenstrukturen, etc. (siehe Informatik I+II) I Anwendung: Abstraktion, Programmierung, etc. (Programmierkurs) Daten (Input) → Computer → Daten (Output) Programmierung: „Einstellung“ des Computers auf die gewünschte Verarbeitung von (Eingabe-)Daten. M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 4
Programmierablauf 1. Problemerfassung (Eingabedaten/Gewünschte Ausgabedaten) Jan/e ... Dez/e Internet 59.99 ... 26.85 Kraftstoff 181.74 ... 110.22 Tabelle: Finanzübersicht 2018 Gegeben: Tabelle „Finanzübersicht 2018“ Gesucht: Gesamtausgaben für Kraftstoff 2018 2. Entwurf eines Lösungsverfahrens („Algorithmus“) Summiere in Zeile „Kraftstoff“ von Spalte „Jan“ bis „Dez“ 3. Realisierung des Lösungsverfahrens („Implementierung“) summe = 0.0; for (i in ’Jan’..’Dez’) { summe += tabelle[’Kraftstoff’][i]; } output(summe); 4. Testen M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 5
Übersetzung/Interpretierung Wir möchten unseren Quellcode „...for (i in ’Jan’..’Dez’)...“ auf dem Computer ausführen (= in Anweisungen umwandeln). Verschiedene Vorgehensweisen (je nach Programmiersprache; unterstrichen ist das „Kompilat“): Direktübersetzung (z.B. C, C++, C#): I Quellcode Compiler −→ Maschinencode = Anweisungen I Am schnellsten, aber spezifisch für Betriebssystem/Architektur Interpretierung (z.B. Python, JavaScript, PHP): I Quellcode Interpreter −→ Anweisungen I Unspezifisch, aber Interpretierung langsam Bytecodeübersetzung (z.B. Java): I Quellcode Compiler −→ Bytecode Virtuelle Maschine −→ Anweisungen I Unspezifisch und schneller als Interpretierung M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 6
Java-Programmierung OpenJDK 11 (Java Development Kit), enthält u.a. I Compiler (javac), wandelt .java-Dateien (Quellcode) in .class-Dateien (Bytecode) um I Java Runtime Environment (JRE) (java), führt Bytecode aus (Virtuelle Maschine), gibt es auch eigenständig I Java Archiver (jar), zum Zusammenpacken von .class-Dateien Eclipse Java IDE (Integrated Development Environment) (optional) I Entwicklungsumgebung für Java I Editor und graphische Benutzeroberfläche für das JDK M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 7
„Hallo Welt“ in Java 1 public class HalloWelt { 2 p u b l i c s t a t i c v o i d main ( S t r i n g a r g s [ ] ) { 3 System . o u t . p r i n t l n ( " H a l l o Welt ! " ) ; 4 } 5 } "HalloWelt.java" I public: Zugriffsmodifikator (später) I class HalloWelt: Klassendeklaration „HalloWelt“ (Dateiname=Klassenname.java, Klassenname wird groß geschrieben) I public, static: (später) I void: Kein Rückgabewert I main(String args[]): main-Methode (Einstiegspunkt), muß genau einmal im Programm vorkommen I System.out.println(); Anweisung gibt Argument in der Konsole aus I Anweisungen enden immer mit einem Semikolon M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 8
Struktur eines Java-Programms Java-Programm public class Klasse1 { public class Klasse2 { public class KlasseN { ... ... ... } } } ... Klasse1.java Klasse2.java KlasseN.java Abbildung: Jedes Java-Programm besteht aus einer oder mehreren Klassen. M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 9
Zusammenfassung I Begriff der Informatik I Programmierablauf I Programmübersetzung (Compiler, Interpreter, Quellcode, Maschinencode, Bytecode) I Java-„Hallo Welt“-Programm und -Programmstruktur M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 10
Literatur Für Anfänger I Hans-Peter Habelitz: Programmieren lernen mit Java: Der leichte Einstieg für Programmieranfänger. Rheinwerk Computing, 5. Auflage, 2017 (geringer Preis) I Kai Günster: Einführung in Java. Rheinwerk Computing, 2. Auflage, 2017 (geringer Preis) I Christian Ullenboom: Java ist auch eine Insel. Rheinwerk Computing, 14. Auflage, 2018 Für Fortgeschrittene I Michael Inden: Der Weg zum Java-Profi. dpunkt.verlag, 4. Auflage, 2017 (großer Tiefgang) I Kathy Sierra , Bert Bates: Java von Kopf bis Fuß. O’Reilly Verlag, 1. Auflage, 2006 (Klassisch) M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 11
Organisatorisches M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 12
Allgemeines Webseite I https://informatik.uni-koeln.de/hunhold/ I Informationen, Vorlesungsfolien, Übungen I Regelmäßiger Aufruf wird erwartet Sprechstunde I Montags, 11:00-12:00 Uhr I Keine Anmeldung notwendig I In meinem Büro (siehe Webseite) Kontakt I hunhold@informatik.uni-koeln.de I Es werden keine fachlichen Fragen per E-Mail beantwortet Skript I Kein Skript, aber Folien I Empfehlung: Notizen mit Vorlesungs- & Foliennummern (z.B. 00/3) M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 13
Credit Points 6 CP I Wirtschaftsinformatik I Alle Vorlesungen und Übungen prüfungsrelevant 3 CP I Wirtschaftsmathematik, Nebenfach Informatik, Studium Integrale, Schülerstudenten I Vorlesungen und Übungen prüfungsrelevant nur bis zum 18. Dezember 2019 I Freiwillige Weiterteilnahme empfohlen M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 14
Klausur Form I Keine Zulassung nötig I Papierklausur (keine eKlausur, ohne Hilfsmittel) I 90 Minuten (3CP und 6CP) Termine I Klausur: Dienstag, 11. Februar 2020, 9:00-10:30 Uhr I Nachklausur: Donnerstag, 19. März 2020, 9:30-11:00 Uhr I Räume werden rechtzeitig bekanntgegeben Anmeldung I Ab ca. 4 Wochen vorher I Per KLIPS (Wirtschaftsinformatik, Wirtschaftsmathematik, Nebenfach Informatik) I Per Formular (Studium Integrale, Schülerstudenten) I Prüfungsamt kontaktieren bei Rückfragen zur Anmeldung I Abmeldung bis 1 Woche vorher M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 15
Übungen Übungsblätter I Veröffentlichung: Freitags um 12:00 Uhr I 1 Woche Bearbeitungszeit I Erstes Blatt: 11. Oktober 2019 Abgaben I Keine Abgaben; freiwillige Bearbeitung I Freiwillige Einsendung von (auch fehlerhaften) Lösungen an den Übungsleiter für Rückmeldungen I Einsendefrist: Freitags um 12:00 Uhr Übungsgruppen I Besprechung des abgegebenen Übungsblatts I Diskussion eingesendeter (auch fehlerhafter) Lösungen (freiwillig) I Eigenen Computer mitbringen! I Beginn: In der Woche ab dem 14. Oktober 2019 (Einrichtung OpenJDK/Eclipse) I Übungsleiter: Erik Faulhaber, Marvin Pogoda, Simon Wolf M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 16
Übungsgruppenanmeldung Allgemeines I Öffnet heute (9. Oktober 2019) um 15:30 Uhr, schließt am Freitag (11. Oktober 2019) um 12:00 Uhr I Keine Matrikelnummer (Schüler, etc.)? Eine unbelegte Zahl 0****** wählen Reservierte Termine (daraus 6 Übungsgruppen) a Montags 16:00 Uhr b Dienstags 12:00 Uhr c Dienstags 14:00 Uhr d Mittwochs 12:00 Uhr e Mittwochs 16:00 Uhr f Donnerstags 12:00 Uhr g Freitags 12:00 Uhr Angabe Präferenz (2 Angabemöglichkeiten) 1. Präferenzliste: Liste von Buchstaben a-g (mindestens 3), absteigende Reihenfolge, kommagetrennt, keine Leerzeichen (Beispiel: e,d,c,b) 2. „Anker“-Matrikelnummer (Beispiel: 7822552) M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 17
Übungsgruppenzuteilung I Zuteilung bis Freitag (11. Oktober 2019) um 20:00 Uhr I Bildung von 6 Übungsgruppen (beliebteste Termine; einer fällt weg) I Bekanntmachung im Loginbereich des Übungsservers I Gruppenwechsel nur mit Tauschpartner M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 18
Abbildung: Apollo Guidance Computer (1966) (Quelle: NASA Photo Archive) M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 19
Sie können auch lesen