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 1Einfü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 3Was 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 4Programmierablauf
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 6Java-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 8Struktur 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 9Zusammenfassung
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 10Literatur
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 11Organisatorisches 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 13Credit 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 14Klausur
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 18Abbildung: Apollo Guidance Computer (1966) (Quelle: NASA Photo Archive) M.Sc. Laslo Hunhold Programmierkurs – Vorlesung 00 19
Sie können auch lesen