Winter
2010/11 |
GdP - Grundlagen der Programmierung
Vorlesung
Übungen
Montag, 11:00-12:30, RUD 26, 1'306, Dr.A.Zubow
Montag, 13:15-14:45, RUD 26, 1'306, Dr.A.Zubow
Dienstag, 11:00-12:30, RUD 25, 3.113, Dr.W.Müller
Dienstag,
13:15-14:45, RUD 25, 3.113, Dr.W.Müller
Mittwoch, 11:00-12:30, RUD 26, 1'306, Dr.G.Lindemann
Mittwoch, 13:15-14:45, RUD 26, 1'306, Dr.G.Lindemann
Donnerstag, 09:15-10:45, RUD
26, 1'306, Ch.Gierds
Freitag, 11:00-12:30, RUD
26, 1'306, Ch.Gierds
|
Computer Science Department
Systems Architecture Group |
Offizielles Endergebnisse der Klausur vom 8.4.2011:
>>> hier <<<
Offizielles Endergebnisse der Klausur vom
26.02.2011: >>>
hier
<<<
Die nächste Widerholung findet am Ende des
nächsten Wintersemesters statt, wenn die dann von Prof. Bothe neu gelesene
GdP-Vorlesung von ihm geprüft wird.
|
Kurzbeschreibung. Computer und
Dinge die durch sie ermöglicht werden sind überall um uns herum zu
finden. Einige davon sind gross und sichtbar, wie der PC am
Arbeitsplatz. Andere sind eher versteckt, wie die Mikroprozessoren in
Autos und Handys, Programme die Flugzeuge fliegen oder das Telefonnetz
und Stromnetz am laufen halten; ebenso wie die vielen kleine Geräte, die ständig unsere
persönlichen Daten erfassen und verwalten.
Auch wenn viele Studenten später nicht unmittelbar an der Entwicklung
solcher Systeme beteiligt sind, werden Sie doch ständig mit ihnen zu tun
haben. Diese breit angelegte Einführungsvorlesung soll Ihnen auf einer
sehr allgemeinen Ebene erklären, wie Computer aufgebaut sind und wie sie
programmiert werden können. Dabei werden
Sie auch die prinzipiellen Grenzen von Computern kennen lernen.
|
|
|
Überblick-
Einführung in die Praktische Informatik (für
Mono-Bachelor, Kombi-Bachelor und Lehramt).
-
2 Vorlesungen je Woche (jeweils 90
Minuten).
-
Zusätzlich: Übungen / Praktikum
(jeweils 1x je Woche).
Prüfungen
-
Schriftliche Klausur am Ende des
Semesters (nächste Wiederholungsmöglichkeit: 1 Jahr später).
- Um für die Klausur zugelassen zu
werden, müssen
Sie regelmäßig an den Übungen teilnehmen und 50% der für die
Übungsaufgaben vergebenen Punkte erhalten. Ebenso müssen Sie das
Praktikum erfolgreich absolvieren, wofür Sie 50% der für die
Praktikumsaufgaben vergebenen Punkte erhalten müssen. Für beide Teilleistungen erhalten
Sie jeweils einen Übungsschein bzw. einen Praktikumsschein, die Sie
gemeinsam bei der Anmeldung zur Prüfung vorlegen müssen. Scheine aus früheren
Jahren behalten ihre Gültigkeit.
Hinweis 1: Praktikum und Übungen werden unabhängig voneinander
bewertet und müssen beide unabhängig voneinander bestanden werden.
Hinweis 2: Es können keine Punkte zwischen Praktikum und Übungen
transferiert werden. Jede Kategorie zählt für sich.
Hinweis 3: Übungsleiter können für sehr gute Mitarbeit in den
Übungsstunden Zusatzpunkte vergeben (sowohl für Übungen, wie auch
für das Praktikum). Falls Sie geringfügig weniger als die
geforderten 50% der Punkte haben, ist dies ihre einzige Möglichkeit,
um die 50%-Schwelle doch noch zu überspringen.
- Regelmäßige Teilnahme an Vorlesungen
und Übungen sind
selbstverständlich. Längeres unentschuldigtes Fehlen kann (nach
Ermessen des Professors) als Grund für das Versagen der
Prüfungszulassung gewertet werden.
Voraussetzungen
- Keine. Dieser Kurs ist für Anfänger geeignet.
- Zum Erlernen elementarer Fähigkeiten
im Umgang
mit den Computern am Institut empfehlen wir (auf freiwilliger Basis) den
Besuch des Unix-Crash -Kurses, der ca. 1 Monat vor Semesterstart als
2-wöchige Blockveranstaltung durchgeführt wird.
Vorlesung
- Welcome and Overview
|
Introduction - What is a computer? What is computer science? |
- Introduction to Programming
(in Java)
- A Computing Machine (TOY)
|
Number systems. |
|
Toy machine
- Architecture, simple algorithms in
machine language. |
|
Data Encryption
- Short introduction how to encode and to encrypt data
(additional material - not covered in lecture) |
- Object Oriented Programming
(in Java)
- Graphical User Interface (GUI) Programming (in
Java)
- Java Threads
|
Threads - Concurrent
Execution, Synchronization.
(topic excluded from examination)
Further readings: STEIN:
Synchronization. |
- Performance (Execution Times)
of Algorithms
|
Sorting - insert-sort, merge-sort
(quicksort). |
|
Intractability -
NP, P, NP-Completeness, dealing with intractability.
(additional material - not covered in lecture) |
- Algorithms and Data Structures
(a quick tour - in Java)
- Regular Expressions
- Internet (optional, only if time permits)
|
Internet - Communication Networks (TCP/IP),
Client/Server applications, peer-to-peer systems.
(additional material - not covered in lecture)
|
- Scientific Computing
Übungen
Alle zwei Wochen am Montag gibt es ein neues
Aufgabenblatt. Alle Aufgaben werden in der nächsten Übung vom
Übungsleiter erläutert, Sie können Fragen zum Verständnis der
Aufgabenstellung stellen. Innerhalb von 14 Tagen nach Ausgabe müssen
die Aufgaben elektronisch über Goya bis Montag 8:00 Uhr
abgegeben sein.
Nr. |
Ausgabedatum |
Abgabedatum |
Blatt |
Sonstiges |
1 |
25.10.2010 |
08.11.2010 |
[pdf] |
|
2 |
08.11.2010 |
22.11.2010 |
[pdf] |
|
3 |
22.11.2010 |
06.12.2010 |
[pdf] |
|
4 |
06.12.2010 |
20.12.2010 |
[pdf] |
|
5 |
03.01.2011 |
17.01.2011 |
[pdf] |
|
6 |
17.01.2011 |
31.01.2011 |
[pdf] |
|
Praktikum
Webseite
http://www2.informatik.hu-berlin.de/~pinf1/WS1011/
Empfohlene Literatur
Robert
Sedgewick, Kevin Wayne. Introduction to Programming in Java. 2007
Webseite zum Buch:
http://www.cs.princeton.edu/introcs
- D. Knuth. The Art of Computer Programming
Vol.0,
Vo.l1,
Vol.2,
Vol.3,
Vol.4.
Addison Wesley, 1999.
- Robert Sedgewick.
Algorithms in Java, Parts 1-4 and 5. Addison-Wesley, 2002.
- Lynn Andrea Stein. Interactive Programming In
Java. http://www.cs101.org/ipij/
- H. Herold, B. Lurz, J. Wohlrab. Grundlagen der
Informatik. Pearson Studium, 2006.
- G. Krüger. Handbuch der Java-Programmierung.
http://www.javabuch.de/
- Bruce Eckel. Thinking in Java, 2nd edition,
Revision 11 ©2000. Russian Version:
http://www.bruceeckel.by.ru/tij/Contents.html
Java und Eclipse auf Ihrem
Rechner
- JRE / JDK
Sie benötigen auf Ihrem
Computer ein Java Laufzeitsystem (engl. JRE - Java Runtime
Environment; gelegentlich auch JVM - Java Virtual Machine -
genannt), um dort Java-Programme ausführen zu können. Eine
aktuelle JRE können Sie von der Java-Webseite herunterladen:
http://www.java.com/de/download/
.
Da wir aber Java Programme nicht nur ausführen, sondern auch
selbst entwickeln wollen, empfehlen wir Ihnen stattdessen
das JDK - Java Development Kit - herunterzuladen. Das JDK beinhaltet schon eine aktuelle JRE, enthält
darüber hinaus aber auch noch Hilfsprogramme, die für die
Programmentwicklung nützlich sein können.
Anleitung zum
Installieren des JDK
Hinweis 1: Wenn Sie die Plattform auswählen müssen ...
wählen Sie nicht "Windows x64", sondern die 32-bit
Version "Windows". Hinweis 2. Auch wenn das Installationsprogramm es Ihnen
mehrfach anbietet - Sie brauchen sich nirgendwo zu
registrieren. Einfach "wegdrücken".
- Eclipse
Wer regelmäßig Software entwickelt, verwendet meist eine SDE
- Integrated Development Environment - also ein Programm,
das die vielen Arbeitsschritte bei der Softwarenetwicklung
automatisiert und koordiniert. Es gibt viele SDEs und jede
hat ihre spezifischen Vor- und Nachteile. In der Vorlesung
verwenden wir Eclipse. Wir empfehlen das vorkonfigurierte
Paket "Eclipse IDE for Java Developers" herunterzuladen.
Anleitung zum Installieren von Eclipse
Hinweis: Wenn Sie die Plattform auswählen müssen ...
wählen Sie nicht "Windows x64", sondern die 32-bit
Version "Windows".
- SVN/CVS, Subclipse
Mit der Zeit werden Sie sehr viele verschiedene
Java-Programme entwickeln, für einige vielleicht auch noch
mehrere Versionen. Damit man hier den Überblick behält
(auch um später einfach mit anderen Entwicklern im Team
zusammen arbeiten zu können), wird oft ein System zur
Verwaltung von Programmcode verwendet (engl. "revision
control", "version control" oder auch "source
code source control"). Auch für diese Aufgabe gibt es
wieder verschiedene Produkte. In der Vorlesung verwenden wir
SVN/CVS.
Für unseren Anwendungsfall (Java-Software-Entwicklung mit
Eclipse) hat es sich bewährt, das Programm Eclipse durch ein
"Plugin" um die SVN/CVS-Funktionalität zu erweitern.
Anleitung zum Installieren von Subclipse
- "Hello World" und andere
Beispielprogramme
Alle Java-Programme aus der Vorlesung sind als Quelltext
verfügbar. Um (als Start) das Programm "Hello World"
auszuführen, oder ein beliebiges anderes Beispielprogramm,
folgen Sie am besten den folgenden Anweisungen:
Getting
started: Running the "Hello World" example program from the lecture.
Frequently Asked Questions (FAQ)
-
Fehlende Kommandozeilen-Argumente - z.B. bei
IntOps.java
[Antwort]
Wenn ich in Eclipse das Programm
IntOps.java ausführe, dann erscheint in der Konsole die
Fehlerausschrift: Exception in
thread "main"
java.lang.ArrayIndexOutOfBoundsException:
0
- Programm kann Dateien nicht finden - z.B.
DeluxeBoncingBall.java [Antwort]
Wenn ich in Eclipse das Programm
DeluxeBouncingBall.java ausführe, dann erscheint in der
Konsole die Fehlerausschrift:
Exception in thread "main"
java.lang.RuntimeException:
image earth.gif not found
- UTF-8 in Eclipse.
[Antwort]
In den Übungen und im Praktikum sollen alle Java-Programme im
UTF-8 -Format abgeben werden. Wie bekomme ich Eclipse dazu, die
Java-Quelltexte in diesem Format zu spreichern?
Grafischer TOY-Simulator
Spielend Programmieren lernen
mit Kara (für Ihre Kinder / Ihre künftigen Schüler, oder für Sie :-)
Kara basiert auf dem Konzept endlicher Automaten,
ist alltagsnah und trotzdem ein theoretisch fundiertes und mächtiges
Programmiermodell. Verschiedene Programmierumgebungen eröffnen
spielerische Zugänge zu grundlegenden Programmierkonzepten mit
unterschiedlichem Schwierigkeitsgrad für allgemeinbildende Schulen
bis hin zu Diplomstudiengängen in der Informatik. [Kara
Home Page]
ImageMagick
Ist ein leistungsfähiges Werkzeug zum Bearbeiten
von Grafiken. Insbesondere ermöglicht es die Erzeugung von
animierten Bildern (siehe auch VL-Folien)
Download:
http://www.imagemagick.org/
Zusatzmaterial
Kontakt
- Warten Sie mit Fragen, Problemen
oder Hinweisen nicht zu lange. Sprechen Sie uns zeitnah an, wenn wir
noch helfen können.
- Folgende Ansprechpartner sind für
Sie da:
- Vorlesender:
Prof. Jens-Peter Redlich
- Übungsleiter: Dr. Wolf Müller
- Praktikumsleiter: Dr. Klaus Ahrens
|
|
|