Programmieren I Überblick Institut für Angewandte Informatik KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Übersicht Modul „Programmieren“ Programmieren I (1. Semester) 4 Vorlesungs- und Übungsstunden / Woche 1 Stunde begleitetes Selbststudium / Woche 6,25 (!) weitere Stunden Selbststudium / Woche Keine Klausur Programmieren II (2. Semester) 4 Vorlesungs- und Übungsstunden / Woche 1 Stunde begleitetes Selbststudium / Woche 6,25 (!) weitere Stunden Selbststudium / Woche Klausur für beide Semester : 8+2 Semesterwochenstunden, 9 ECTS-Punkte (Credit Points) 2 W. Geiger, W. Süß, T. Schlachter, C. Schmitt Institut für Angewandte Informatik Das sagt der Studienplan (1) – Ziele/Kompetenzen Siehe Modulbeschreibung "Programmieren (T2INF1004)", S. 15/16 Grundelemente der prozeduralen Programmierung und objektorientierten Programmierung kennen lernen Selbständig ein Programmdesign entwerfen Programme codieren Systematisches Testen und Fehlersuche durchführen Verschiedene Strukturierungsmöglichkeiten in einer modernen Programmiersprache kennen lernen Verschiedener Datenstrukturen und ihre Anwendungsmöglichkeiten Beispielhaft in eine Programmierumgebung einarbeiten und diese einsetzen Existierenden Code analysieren und beurteilen Logik und Boolsche Algebra in der Programmierung anwenden können 3 W. Geiger, W. Süß, T. Schlachter, C. Schmitt Institut für Angewandte Informatik Das sagt der Studienplan (2) – Inhalte Kenntnisse in prozeduraler Programmierung Algorithmenbeschreibung Datentypen Operatoren E/A-Operationen Kontrollstrukturen Funktionen Stringverarbeitung Strukturierte Datentypen Dynamische Datentypen Dateiverarbeitung Rekursion Speicherverwaltung 4 W. Geiger, W. Süß, T. Schlachter, C. Schmitt Institut für Angewandte Informatik Das sagt der Studienplan (3) – Inhalte Kenntnisse in objektorientierter Programmierung Idee und Merkmale der objektorientierten Programmierung Objektorientierter Programmentwurf Klassenkonzept Operatoren / Methoden Überladen von Operatoren / Methoden Vererbung und Überschreiben von Operatoren / Methoden Polymorphismus Template Klassenbibliotheken Speicherverwaltung (Garbage Collector) 5 W. Geiger, W. Süß, T. Schlachter, C. Schmitt Institut für Angewandte Informatik Und was machen wir tatsächlich? Programmieren I Programmiersprache Java Entwicklungsumgebungen, Java Packages Primitive Datentypen, Operatoren und Ausdrücke Kontrollstrukturen Arrays Objektorientierte Programmierung Klassen und Objekte Strings und Wrapperklassen Methoden Programmdokumentation Vererbung, Polymorphismus Fehlerbehandlung (Exceptions) Input/Output 6 W. Geiger, W. Süß, T. Schlachter, C. Schmitt Institut für Angewandte Informatik Und was machen wir tatsächlich? Programmieren II Grafische Benutzeroberflächen (Swing) Abstrakte Klassen, Interfaces und innere Klassen Ereignisverarbeitung (Events) Gestalten eigner grafischer Komponenten (Zeichnen) Datenstrukturen, Collection-Framework, generische Datentypen Aufzählungstypen (enum) Nebenläufigkeit (Threads) Arbeiten mit XML- und JSON-Dokumenten JUnit-Testing (testgetriebene Softwareentwicklung) 7 W. Geiger, W. Süß, T. Schlachter, C. Schmitt Institut für Angewandte Informatik Was machen wir nicht? Entwurf größerer Programmsysteme Software-Engineering Algorithmen-Entwurf und -bewertung Theoretische Informatik I+II 8 W. Geiger, W. Süß, T. Schlachter, C. Schmitt Institut für Angewandte Informatik Ablauf der Vorlesungen ca. 10-20 % Wiederholung (Lösung Übungsaufgaben) ca. 50-60 % Vorlesung (neuer Stoff) ca. 30-40 % Übungen (Übungsaufgaben) Selbststudium 1 Übungsstd. „begleitetes Selbststudium“ (Übungen) ca. 0-5 h Heimarbeit (insb. Fertigstellung Übungsaufgaben) [Zur Erinnerung: Studienplan: „+6,25h“] 9 W. Geiger, W. Süß, T. Schlachter, C. Schmitt Lernerfolg Institut für Angewandte Informatik Prinzipien Fragen stellen (jederzeit!), Diskussionen anzetteln Learning by doing („Programmieren lernt man nur durch Programmieren!“) Laptop notwendig Vertraute Umgebung nutzen eigener Laptop Betriebssystem und IDE nach eigenem Gusto Gegenseitige Hilfe s. „anderen erklären“ Hilfe bei Fragen und Problemen Eigenverantwortung („Selber groß!“) 10 W. Geiger, W. Süß, T. Schlachter, C. Schmitt Institut für Angewandte Informatik Prüfung Klausur nach dem 2. Semester und der folgenden Praxisphase (voraussichtlich Anfang Oktober) 120 Minuten Programmieraufgabe Bearbeitung auf eigenem Laptop, Abgabe: Quellcode Hilfsmittel: Folien, Übungsaufgaben mit eigenen und Musterlösungen „Probeklausuren" am Ende des 1. und 2.Semesters „Echte“ Bedingungen Standortbestimmung Ohne Bewertung 11 W. Geiger, W. Süß, T. Schlachter, C. Schmitt Institut für Angewandte Informatik Literatur „Java (1. u. 2. Band)“, Heusch, RRZN Hannover „Grundkurs Programmieren in Java“, Ratz et al., ISBN 978-3-446-44073-9 Heusch Ratz „Java ist auch eine Insel“ (12. Aufl.), C. Ullenboom, ISBN 978-38362-4119-9 http://www.tutego.de/javabuch/Java-ist-auch-eine-Insel/10/ (10. Aufl.) „Java als erste Programmiersprache“, Joachim Goll et al., ISBN 9783-8348-1857-7 Java-Tutorials (von Oracle) (zu diversen Themen) http://docs.oracle.com/javase/tutorial/index.html API-Dokumentation (von Oracle) http://docs.oracle.com/javase/8/docs/api/ Und: Das Netz ist Dein Freund 12 W. Geiger, W. Süß, T. Schlachter, C. Schmitt Institut für Angewandte Informatik Online-Ressourcen von uns Dozenten Vorlesungsfolien: www.iai.kit.edu/~werner.geiger/programmieren.html Übungsblätter (mit Aufgaben) und Musterlösungen: www.iai.kit.edu/~javavorlesung/dhbw/aufgaben.html Kontakt: [email protected] [email protected] [email protected] [email protected] 13 W. Geiger, W. Süß, T. Schlachter, C. Schmitt Institut für Angewandte Informatik