Programmieren
| Typ: |
Vorlesung |
Links: |
RSS Feed zur VorlesungPraktomatStudierendenportalWebInScribeWebVPNATIS StudentenpoolSCC Pools
|
| Lehrstuhl: |
Fakultät für Informatik |
| Semester: |
Wintersemester 2010/11 |
| Ort: |
Hörsaal am Fasanengarten |
| Zeit: |
Montag, 14:00-15:30 wöchentlich |
| Beginn: |
18.10.2010 |
| Dozent: |
Professor Alexander Pretschner
Organisation: Florian Kelbert |
| SWS: |
2 |
| LVNr.: |
24004 |
| Hinweis: |
Die Vorlesung liefert mit einer Einführung in die systematische Programmierung wesentliche praktische Grundlagen für alle weiterführenden Informatikvorlesungen. Aufbauend auf Überlegungen zum strukturierten und systematischen Entwurf von Algorithmen werden die wichtigsten Konstrukte moderner höherer Programmiersprachen sowie Programmiermethoden erläutert und an Beispielen illustriert. Ein Schwerpunkt der Vorlesung liegt auf der Vermittlung der Konzepte der objektorientierten Programmierung. Als Programmiersprache wird Java verwendet. |
|
Inhalt
- Objekte und Klassen
- Typen, Werte und Variablen
- Methoden
- Kontrollstrukturen
- Rekursion
- Referenzen, Listen
- Vererbung
- Ein/-Ausgabe
- Exceptions
- Programmiermethodik
- Implementierung elementarer Algorithmen (z.B. Sortierverfahren) in Java
Lernziele
Der/die Studierende soll
- grundlegender Strukturen der Programmiersprache Java kennen und anwenden, insbesondere Kontrollstrukturen, einfache Datenstrukturen, Umgang mit Objekten, und Implementierung elementarer Algorithmen.
- grundlegende Kenntnisse in Programmiermethodik und die Fähigkeit zur autonomen Erstellung kleiner bis mittlerer, lauffähiger Java-Programme erwerben.
Literatur
P. Pepper: Programmieren Lernen, Springer, 3. Auflage 2007
Weiterführende Literatur
B. Eckels: Thinking in Java, Prentice Hall 2006
J. Bloch: Effective Java, Addison-Wesley 2008
D. Flanagan: Java in a Nutshell, O'Reilly, 5th Edition 2005
News
Ergebnisse der Abschlußaufgaben & Programmieren für Wiederholer
Die Ergebnisse der Abschlußaufgaben gehen Ihnen heute (17. April) auf die im Praktomat hinterlegte eMail-Addresse zu. Bitte beachten Sie alle weiteren Hinweise in der entsprechenden eMail.
Programmieren für Wiederholer wird im Sommesemester 2012 vom Lehrstuhl Prof. Snelting betreut. Anlaufpunkt ist daher die entsprechende Webseite zur Veranstaltung.
Zweite Abschlußaufgabe veröffentlicht
Die zweite Abschlußaufgabe wurde gestern im Praktomat veröffentlicht.
Programmierberatung und Demo-Code
Bitte beachten Sie die geänderten Zeiten der Programmierberatung während der vorlesungsfreien Zeit. Die Termine finden Sie auf der Webseite zur Vorlesung.
Zusätzlich finden Sie dort nun den Java-Code des am vergangenen Montag live programmierten Fußball-Programms.
Vorlesungsfolien, Lösungsvorschlag und Tutoriumsmaterial
Auf der Webseite zur Vorlesung finden Sie ab sofort
- die Vorlesungsfolien für Montag, 2. Februar, zum Thema "Softwaretechnik"
- den Lösungsvorschlag zu Übungsblatt 6
- die Aufgabenblätter der letzten Tutorien
Erste Abschlußaufgabe veröffentlicht
Die erste Abschlußaufgabe wurde soeben im Praktomat veröffentlicht. Abgabetermin im Praktomat ist am 12.03.2012, 13 Uhr.
Vorlesungsfolien für 30.1.
Auf der Webseite zur Vorlesung finden Sie ab sofort die Folien für kommenden Montag, 30.1., zur Java API.
Vorlesungsfolien für Montag, 23.01.
Auf der Webseite finden Sie ab sofort die Folien zur Vorlesung am kommenden Montag, 23.1.
Lösungsvorschlag Übung 5
Auf der Webseite zur Vorlesung finden Sie nun den Lösungsvorschlag zu Übung 5.
Praktomat Serverumzug
Wegen eines Serverumzugs wird der Praktomat heute (Freitag, 20.1.) zwischen 9 Uhr und voraussichtlich 15 Uhr nicht verfügbar sein.
Ablaufbeispiel Übung 6
Auf Übungsblatt 6 wurde Ablaufbeispiel 1 überarbeitet. Das neue Übungsblatt steht auf der Webseite zum Download bereit.
Programmierberatung Di, 11:30
Beachten Sie, dass die Programmierberatung dienstags um 11:30 bis Semesterende in Raum 010 stattfindet. Da dort keine Rechner vorhanden sind, ist eine Teilnahme nur mit eigenem Laptop möglich.
Vorlesungsfolien für Montag, 16.01.
Auf der Webseite finden Sie ab sofort die Vorlesungsfolien für Montag, 16.01. zu den Thema "Interfaces" und "Generics".
Lösungsvorschlag Übung 4
Der Lösungsvorschlag zu Übung 4 wurde auf der Webseite zur Vorlesung zur Verfügung gestellt.
Vorlesungsfolien für Montag, 09.01.
Auf der Webseite finden Sie ab sofort die Vorlesungsfolien für Montag, 09.01. zum Thema "Fehler und Testen".
Übungsblatt 5, Abschlußaufgaben und Democode
Auf der Webseite zur Vorlesung wurde das fünfte Übungsblatt veröffentlicht. Abgabetermin ist der 16. Januar 2012. Zusätzlich finden Sie auf der Webseite den Javacode zu den Beispielen der heutigen Weihnachtsvorlesung. Beachten Sie außerdem, dass die Rahmenbedingungen sowie -termine der Abschlußaufgaben veröffentlicht wurden. Denken Sie an eine rechtzeitige Anmeldung für den Übungsschein und die Abschlußaufgaben im Studierendenportal. Detaillierte Hinweise hierzu finden Sie auf der Webseite und Übungsblatt 5.
Vorlesungsfolien für Montag, 19.12.
Auf der Webseite finden Sie ab sofort die Vorlesungsfolien für Montag, 19.12. zum Thema "Rekursion".
Hinweise zu Übung 4, Lösungsvorschlag Übung 3
Bitte beachten Sie die geänderten Abgabemodalitäten zu Übungsblatt 4. Die Modalitäten finden Sie auf der neuen Version des Übungsblattes sowie im Praktomat. Außerdem steht auf der Webseite zur Vorlesung nun ein korrigierter Lösungsvorschlag zu Übungsblatt 3 zum Download bereit.
Übungsblatt 4 verfügbar
Das vierte Übungsblatt wurde auf der Webseite zur Vorlesung veröffentlicht. Außerdem finden Sie dort den Lösungsvorschlag zu Übungsblatt 3.
Vorlesungsfolien für Montag, 12.12.
Auf der Webseite finden Sie ab sofort die Vorlesungsfolien für Montag, 12.12. zum Thema "Vererbung". Zusätzlich wurden die Aufgaben des letzten Tutoriums veröffentlicht.
Videoübertragung in -102 wird eingestellt
Bitte beachten Sie, dass die Videoübertragung der Vorlesung in den Hörsaal -102 ab Montag, 12.12. eingestellt wird. Besuchen Sie bitte stattdessen wahlweise den Hörsaal am Fasanengarten oder die Videoübertragung -101.
Programmierberatung
Ab sofort wird eine Programmierberatung zur Vorlesung angeboten. Hierbei werden Tutoren im Praktikumspool -143 bzw -142 (Geb. 50.34) anwesend sein und Ihnen bei Fragen und Problemen mit den Übungs- und Abschlußaufgaben beratend zur Seite stehen werden. Die Zeiten finden Sie auf der Webseite.
Vorlesungsfolien für Montag, 05.12.
Auf der Webseite finden Sie ab sofort die Vorlesungsfolien für Montag, 05.12. zu den Themen "Suchen" und "Sortieren". Zusätzlich wurden die Aufgaben des letzten Tutoriums veröffentlicht.
Übungsblatt 3 verfügbar
Das dritte Übungsblatt wurde auf der Webseite zur Vorlesung veröffentlicht. Außerdem finden Sie dort den Lösungsvorschlag zu Übungsblatt 2 und Informationen zur Praktomat-Prüfung "Checkstyle 2" (Java Code Conventions).
Vorlesungsfolien für Montag, 28.11.
Auf der Webseite finden Sie ab sofort die Vorlesungsfolien für Montag, 28.11. zum den Themen "Referenzen" und "Listen". Zusätzlich finden Sie dort nun die Aufgaben der letzten Tutorien sowie Folien zum Kommentieren, Javadoc sowie zu den Java Code Conventions.
Vorlesung am 21.11. entfällt
Beachten Sie, dass die Programmieren-Vorlesung am kommenden Montag, 21.11., entfällt. Das dritte Übungsblatt wird entsprechend erst am 28.11. veröffentlicht. Der Abgabetermin für das zweite Übungsblatt bleibt hiervon jedoch unberührt. Abgabetermin bleibt der 21.11.
Fehler in Vorlesungsfolien
In den Vorlesungsfolien zu Arrays hatte sich auf Folie 105 ein kleiner Fehler eingeschlichen. Dieser wurde ausgebessert, die neuen Folien stehen zum Download bereit.
Vorlesungsfolien für Montag, 14.11.
Auf der Webseite finden Sie ab sofort die Vorlesungsfolien für Montag, 14.11. zum Thema "Arrays" sowie die Programmieraufgaben des Tutoriums der vergangenen Woche.
Übungsblatt 2 verfügbar
Das zweite Übungsblatt wurde auf der Webseite zur Vorlesung veröffentlicht. Außerdem finden Sie dort den Lösungsvorschlag zu Übungsblatt 1 und Informationen zur Praktomat-Prüfung "Checkstyle 1".
Vorlesungsfolien für Montag, 7.11.
Auf der Webseite finden Sie ab sofort die Vorlesungsfolien für Montag, 7.11. zum Thema "Kontrollstrukturen".
Probleme bei Praktomat mit Package-Informationen
Beachten Sie: Praktomat hat unter Umständen Probleme mit Package-Informationen in Java-Dateien ("package ....;"). Bitte Entfernen Sie sämtliche Package-Informationen aus den Java-Dateien, falls Praktomat Ihre Abgabe mit einem "Internal Server Error" quittieren sollte.
Vorlesungsfolien und Tutoriumsaufgabe
Auf der Webseite zur Vorlesung finden Sie nun die Folien zur Vorlesung vom vergangenen Montag sowie die Programmieraufgaben des Tutoriums der vergangenen Woche.
Folien zu JDK
Auf der Webseite finden Sie nun die in den Tutorien vorgestellten Folien zum JDK.
Vorlesungsfolien und Übungsblatt 1
Auf der Webseite zur Vorlesung finden Sie ab sofort die Folien der heutigen Vorlesung. Zusätzlich wurde das erste Übungsblatt veröffentlicht. Dieses muss bis Montag, 7.11. im Praktomat eingereicht werden.
Vorlesungsfolien vom 17.10.
Auf der Webseite zur Vorlesung finden Sie nun die Folien der ersten Veranstaltung. Bitte beachten Sie auch die PDF-Datei mit allen Anmeldefristen und Terminen.
Programmierberatung
Ab sofort wird eine Programmierberatung zur Vorlesung angeboten. Hierbei werden Tutoren im Praktikumspool -143 (Geb. 50.34) anwesend sein und Ihnen bei Fragen und Problemen mit den Übungs- und Abschlußaufgaben beratend zur Seite stehen werden.
Abschlußaufgaben
Beachten Sie, dass Sie sich im Studierendenportal im Zeitraum von 27.12.2010 bis 23.01.2011 für die Abschlußaufgaben (Prüfungsnummer 199) anmelden müssen.
Ohne eine rechtzeitige Anmeldung im Studierendenportal können Sie an den Abschlußaufgaben nicht teilnehmen.
Eine nachträgliche Anmeldung (nach dem 23.01.2011) ist nicht möglich.
Die erste Abschlußaufgabe wird am 24.01.2011 auf der Webseite zur Vorlesung ausgegeben. Die Abgabe der ersten Abschlußaufgabe erfolgt am 07.03.2011 im Praktomat.
Die zweite Abschlußaufgabe wird am 07.02.2011 ausgegeben. Die Abgabe der zweiten Abschlußaufgabe erfolgt am 21.03.2011 im Praktomat.
Die Abschlussaufgaben müssen mit Praktomat abgegeben werden. Für die Abschlussaufgaben ist eine eigene Oberfläche von Praktomat eingerichtet, die von den Übungsaufgaben getrennt ist. Bei den Abschlussaufgaben können nur lauffähige Java-Programme abgegeben werden, die die Funktionalitätstests bestehen. Ein Beispiel für solche Tests ist die Aufgabe 0 im Übungspraktomaten. Jeder Student muss selbst vor den entsprechenden Terminen auf den Webseiten kontrollieren, ob seine Einreichung erfolgreich war. Eine Nachreichung ist nicht möglich.
Bewertungsrichtlinien für die Abschlussaufgaben
Beide Aufgaben werden jeweils in den Kategorien Funktionalität und Programmiermethodik mit einer Note von A bis E bewertet. Zum Bestehen der Abschlussaufgaben müssen
- beide Aufgaben erfolgreich in Praktomat eingereicht sein und
- der Durchschnitt über beide Aufgaben in Funktionalität besser oder gleich D sein und
- der Durchschnitt über beide Aufgaben in Programmiermethodik besser oder gleich D sein.
Abschreiben und Abschreiben lassen wird bei den Abschlussaufgaben mit der Note F und nicht bestanden bewertet. Auch dann, wenn nur eine der Aufgaben abgeschrieben wurde.
Beispiel 1:
- Aufgabe 1: Funktionalität: A, Programmiermethodik: C
- Aufgabe 2: Funktionalität: C, Programmiermethodik: E
Es gilt also für den Durchschnitt: Funktionalität: B, Programmiermethodik: D ⇒ Bestanden!
Beispiel 2:
- Aufgabe 1: Funktionalität: A, Programmiermethodik: E
- Aufgabe 2: Funktionalität: A, Programmiermethodik: D
Es gilt also für den Durchschnitt: Funktionalität: A, Programmiermethodik: D-E ⇒ Nicht bestanden!
Abschlußaufgaben
| Datum |
Übungsblatt |
Weiterführendes Material |
Abgabe |
| 24.01.2011 |
Abschlußaufgabe 1 |
Terminal.java für Abschlußaufgabe 1 |
07.03.2011 |
| Notenschlüssel |
| 07.02.2011 |
Abschlußaufgabe 2 |
Secret Test 1 |
21.03.2011 |
| Secret Test 2 |
| Secret Test 3 |
| Secret Test 4 |
| Notenschlüssel |
Material zur Vorlesung
Die Materialien zur Vorlesung sind nur KIT-intern verfügbar.
Vorlesungsfolien
| Datum |
Inhalt |
| 18.10.2010 |
Einführung Informatik |
| Organisatorisches |
| 25.10.2010 |
Objekte und Klassen |
| Datentypen und Werte |
| 08.11.2010 |
Konstruktoren und Methoden |
| 15.11.2010 |
Kontrollstrukturen |
| 22.11.2010 |
Arrays |
| 29.11.2010 |
Referenzen |
| Listen |
| 06.12.2010 |
Suchen |
| Sortieren |
| 13.12.2010 |
Vererbung |
| 20.12.2010 |
Rekursion |
| Weihnachtsvorlesung |
| 10.01.2011 |
Exceptions, Assertions, Testen |
| 17.01.2011 |
Interfaces |
| Generics |
| 24.01.2011 |
Wrap Up |
| 31.01.2011 |
Java API |
| 07.02.2011 |
Software Engineering |
Übungsblätter
| Datum |
Übungsblatt |
Weiterführendes Material |
Abgabe |
| 18.10.2010 |
Übungsblatt 1 |
Lösungsvorschlag inkl. Private-Javadoc |
01.11.2010 |
| 08.11.2010 |
Übungsblatt 2 |
Public-Javadoc |
22.11.2010 |
| Terminal.java |
| Lösungsvorschlag inkl. Private-Javadoc |
| 22.11.2010 |
Übungsblatt 3 |
Fließtexte |
06.12.2010 |
| Lösungsvorschlag inkl. Private-Javadoc |
| 06.12.2010 |
Übungsblatt 4 |
Lösungsvorschlag inkl. Private-Javadoc |
20.12.2010 |
| 20.12.2010 |
Übungsblatt 5 |
Terminal.java |
10.01.2011 |
| Lösungsvorschlag inkl. Private-Javadoc |
| 10.01.2011 |
Übungsblatt 6 |
Lösungsvorschlag |
24.01.2011 |
Zusätzliches Material
| Datum |
Material |
| 18.10.2010 |
Fristen & Termine |
| Anmeldung Praktomat |
| 25.10.2010 |
JDK: Installieren, Kompilieren, Ausführen |
| 26.10.2010 |
Installation des VPN Client unter Ubuntu |
| 29.10.2010 |
Tutorium 1: Klassenentwurf Automobil |
| 05.11.2010 |
Tutorium 2: Klassenentwurf Baby und Auswertung von Ausdrücken |
| 08.11.2010 |
Checkstyle 1/2 |
| 12.11.2010 |
Tutorium 3: Auto - Konstruktoren und einfache Methoden |
| 19.11.2010 |
Tutorium 4: Schleifen und Primfaktoren |
| Kommentieren & Javadoc |
| 24.11.2010 |
Java Code Conventions (JCC) & CheckstyleJCC |
| 30.11.2010 |
Tutorium 5: Arrays und Schleifen |
| 03.12.2010 |
Tutorium 6: Kopieren von Arrays |
| 13.12.2010 |
Tutorium 7: Liste |
| Klassendiagramm: Suchmaschine |
| 21.12.2010 |
Kochsche Schneeflocke |
| Brainteaser |
| 10.01.2011 |
Tutorium 9: Vererbung, Überschreiben, Überladen, Binden |
| Tutorium 9: Vererbung und Rekursion |
| 14.01.2011 |
Tutorium 10: Türme von Hanoi und Kniffel |
| 21.01.2011 |
Tutorium 11: Exceptions, Interfaces, Comparable |
| 28.01.2011 |
Tutorium 12: JavaAPI - Comparable, Collections, Comparator, ArrayList, Iterator |
| 07.02.2011 |
Quelltexte zum Fußball-Beispiel |
| Klassendiagramm zum Fußball-Beispiel |
Online verfügbare Literatur
Webseiten
Hier finden Sie Links zu allen Webseiten, die im Zusammenhang mit der Vorlesung relevant sind.
Praktomat
Online-System zur Abgabe und Bewertung der Übungs- und Abschlussaufgaben (nur aus dem Uni-Netz erreichbar).
https://praktomat.info.uni-karlsruhe.de/
Studierendenportal
Anmeldung zum Übungsschein und zu den Abschlussaufgaben.
https://studium.kit.edu/
WebInScribe
Einteilung in die Tutorien.
https://webinscribe.ira.uka.de/
WebVPN
WebVPN zum KIT und Hilfestellungen zum Einrichten des VPN.
https://vpn.kit.edu/
ATIS Studentenpool
Informationen und Benutzerantrag für den Studentenpool der ATIS (Geb. 50.34).
http://www.atis.uka.de/290.php
SCC Pools
Informationen zu den Pool-Räumen des SCC.
http://www.scc.kit.edu/dienste/3271.php