Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Erwähne deinen Namen. Im Absender steht oft genug nur "stuIrgendwas". Die wenigsten kennen alle die stu-Nummern all ihrer Studierenden auswendig.
  2. Erwähne, in welcher Übungsgruppe von welcher Veranstaltung du bist (Zeit und Übungsleiterperson).
  3. Liefere alle Informationen mit, die möglicherweise helfen könnten. Wir könnten sie auch im iLearn suchen, aber das ist aufwendig und bei der Anzahl von Mails, die wir so kriegen, schwer machbar und ehrlich gesagt auch einfach nervig. (wink) Bei einer problematischen Abgabe beispielsweise sind folgende Infos praktisch:
    1. Der Quellcode.
    2. Die genaue Testausgabe.
    3. Eventuelle Theorien dazu, was das Problem sein könnte.
    4. Schritte, die bislang nicht zur Problemlösung geführt haben.

...

Zunächst sollten alle Testdurchläufe bei Bedarf eine Fehlermeldung erzeugen. Diese könnt ihr sehen, wenn ihr auf den entsprechenden Durchlauf klickt.
In den meisten Fällen sollte die Fehlermeldung eigentlich schon erklären, was falsch läuft. Ein paar Meldungen können aber trotzdem nochmal erklärt werden.

...

Es kann eine andere Fehlermeldung mit einem Fehlercode angezeigt werden. Üblicherweise ist das kein Fehler von euch (zur Ausnahme siehe b), sondern etwas ist an unserer Infrastruktur kaputt. Bitte meldet solche Fehler bei eurem Übungsgruppenleiter und/oder bei Nis cds (nbw@informatikcds@informatik.uni-kiel.de).

Ich kann schon Java!

Voll gut! Aber erstens haben wir bislang noch niemanden getroffen, der nichts noch hätte dazulernen können, und zweitens haben wir Dinge vorbereitet, um auch Leute mit Vorerfahrung nicht zu langweilen:

...

Für die Glücklichen, die in den praktischen Übungen sitzen und den Aufgabenzettel incl. Bonusaufgabe schon komplett gelöst haben, sind die C4 CAU Coding Challenges sind ein vortreffliches Mittel gegen Langeweile. Die meisten der C4-Aufgaben sind dem alljährlich stattfindenden ACM-ICPC International Collegiate Programming Contest entnommen, an dem übrigens auch Kieler Informatikstudierende teilnehmen können (bei Interesse fragt den Dozenten). Viele der Programmierprobleme setzen eher fortgeschrittene algorithmische Kenntnisse voraus, aber folgende Aufgaben sind auch gut für Einsteiger geeignet:

  • All in All

...

  • Beat the Spread

...

  • Counting

...

  • Fibonacci

...

  • Fibs

...

  • I Love Big Numbers

...

  • Light More Light

...

  • Odd Sum

...

  • Reverse and Add

...

  • The Trip

...

  • Vito's Family

...

  • Word Scramble

...

Für den Anfang empfehlen wir jedoch den Example-Challenge, um sich mit C4 etwas vertraut zu machen.

...

Das fasst ganz gut zusammen, worum es uns geht: wir benutzen Java als das Beispiel, an dem wir Programmieren lernen wollen. Natürlich könnten wir auch andere Sprachen benutzen. Für Java haben wir uns aus verschiedenen , und Sie sollten auf jeden Fall neugierig auf andere Sprachen bleiben - ein paar davon werden Sie auch noch im Laufe Ihres Studiums kennenlernen. Für den Einstieg mit Java haben wir uns aus verschiedenen Gründen entschieden:

  • Wir können an Java alles zeigen, was wir zeigen wollen.
  • Es gibt im Internet viele Ressourcen zu Java.
  • Java ist weiterhin eine der meist verwendeten Sprachen.

Wir könnten jetzt natürlich ewig über die speziellen Vor- und Nachteile von Java gegenüber anderen Sprachen diskutieren, aber ehrlich gesagt verbringen wir unsere Zeit lieber produktiv...

Warum dieses komische ACM Java?

Insbesondere für diejenigen, welche bereits mit Java gearbeitet haben, mag das "ACM Java" erst einmal befremdlich erscheinen, auch wenn es sich nur in Details von "richtigem Java" unterscheidet. Zunächst einmal ist "ACM Java" aber ganz normales Java, nur dass wir Packages verwenden, die von der "ACM Java Task Force" (JTF) entwickelt worden sind, um den Einstieg in die Programmierung für diejenigen zu erleichtern, welche noch kein Java können. Das Ziel der JTF war, "To review the Java language, APIs, and tools from the perspective of introductory computing education and to develop a stable collection of pedagogical resources that will make it easier to teach Java to first-year computing students without having those students overwhelmed by its complexity." (http://cs.stanford.edu/people/eroberts/jtf/). Insbesondere wird etwas historischer Ballast, den Java von C geerbt hat, versteckt, und Programme werden als Objekte behandelt. Mehr Details finden sich hier. Tatsächlich sind die Unterschiede aber relativ gering, so dass zum einen diejenigen, welche schon Java können, auch keine Probleme mit den ACM Packages haben sollten, und zum anderen diejenigen, welche mit ACM Java eingestiegen sind, den gegen Ende der Vorlesung erfolgenden Umstieg auf normales Java problemlos meistern können sollten.

Und, nebenbei bemerkt – es geht in der Vorlesung, wie weiter oben erläutert, um allgemeine Konzepte der imperativen objektorientierten Programmierung; dies ist kein "Java-Kurs"!

Warum Englisch? Ich finde <beliebige Sprache> besser!

Kurze Antwort: weil Englisch für Informatiker wichtig ist.

Längere Antwort: weil Englisch für Informatiker wichtig ist. Wirklich wichtig. Deswegen auch der entsprechende Hinweis im Studieninformationsblatt (Punkt 5, Voraussetzungen und Kenntnisse) für den Informatik-Bachelor. Englisch ist bereits im Studium nützlich, nachdem hier das "wissenschaftliche Arbeiten" (§2 der Fachprüfungsordnung für den Informatik-Bachelor, in anderen FPOs werden sich ähnliche Begriffe finden) vermittelt werden soll, und die z.B. für Seminar und Abschlussarbeit relevante Literatur zum weit überwiegenden Teil auf Englisch verfügbar ist. Englisch ist auch in InfProgOO nützlich, und das nicht nur, weil viele der zur Verfügung gestellten Materialien (Buch, Folien) auf englisch sind. Etwas weiter geschaut – ein Anspruch dieser Vorlesung ist, dass erfolgreiche Teilnehmende etwas mit "Primärliteratur" wie der Java Language Specification anfangen können, welche, wie die allermeisten Sprachstandards, auf englisch gehalten ist. Auf wichtigen Foren wie Stackoverflow, welche sich Informatiker zu nutze machen können sollten, wird englisch gesprochen. Die Suche nach "programming" auf google liefert zum Zeitpunkt des Schreibens dieser Zeilen ca. 30 mal mehr Treffer als die Suche nach "Programmierung". Die allermeiste Software, ob open-source oder nicht, ist auf englisch dokumentiert und auf englisch "geschrieben" (Kommentare, Namen, etc.). So ist es z.B. auch bei Bewerbungen sicher nicht von Nachteil, wenn man darauf verweisen kann, im Studium von Anfang an (auch) mit englischen Materialien gearbeitet zu haben.

Zum Glück scheint, laut Umfrageergebnissen hierzu, für die allermeisten die Verwendung von Englisch kein erhebliches Problem zu sein, und sehr viele begrüßen ausdrücklich die Verwendung von Englisch. Tatsächlich kann Deutsch in der Informatik auch ziemlich grausam sein, mit Stapelspeichern, Programmbindern, und nicht zuletzt der Müllabfuhr, die die Halde regelmäßig von Abfall befreit. Trotzdem sind wir uns darüber im Klaren, dass Englisch eine zusätzliche Hürde sein kann, neben allen anderen Herausforderungen, die ein Studium so mit sich bringt. Von daher bemühen wir uns, den Einstieg so einfach wie möglich zu machen, z.B., indem Erläuterungen in Vorlesung und Übungen auf deutsch erfolgen, und wir auch auf deutschsprachige Literatur verweisen. Zum Schluss, vielleicht etwas zur Beruhigung, falls sich doch noch jemand Sorgen macht: in der Klausur werden Aufgaben auf englisch und deutsch gestellt, und Antworten können in beiderlei Sprachen verfasst werden.

Warum mosert der Prof, wenn ich meinen Laptop aufklappe und nicht hinten sitze?

Weil es nicht nur Laptopnutzer vom Geschehen ablenkt, sondern auch die Drumherumsitzenden (siehe z.B. Mobile Geräte in der Präsenzlehre: Ablenkung oder Lernchance? Von der unstrukturierten Nutzung von Smartphone & Co. hin zu einem orchestrierten Modell für Vorlesungen (Abschnitt 5.3), Laptop multitasking hinders classroom learning for both users and nearby peers und Why I Just Asked My Students To Put Their Laptops Away). Tatsächlich ist auch für die Laptopnutzer selbst der unmittelbar vorlesungsbezogene Einsatz von Laptops für Vorlesungsmitschriften nicht unbedingt förderlich (siehe z.B. diese Studie und diesen Artikel).

Weswegen schreibt der Prof die Folien ab?

Um einzelne Punkte als besonders wichtig und mitschreibenswert zu kennzeichnen. Wie bereits oben bemerkt sind handschriftliche Notizen nachgewiesenermaßen förderlich für den Lernerfolg. Weiterhin hat der Dozent tatsächlich manchmal einen Plan, wie es innerhalb der Vorlesung weitergehen soll, und auf welche dann bereits an der Tafel festgehaltenen Punkte man später nochmal verweisen kann.

Warum besteht in den praktischen Übungen Anwesenheitspflicht?

Kurze Antwort: wegen der Minitestate. Zitat aus der EvaSys-Umfrage vom WS15/16: "Ich finde das Losverfahren zu den Testaten sehr clever gelöst, da man nicht weiß, wann man geprüft wird und sich grundsätzlich immer vorbereiten muss."

Ganz lange Antwort: zunächst einmal nicht, weil es uns Spaß macht, Anwesenheiten zu kontrollieren, Leute zu gängeln, oder dogmatische Diskussionen über Sinn und Unsinn von Zwängen jeglicher Art während des Studiums und überhaupt zu führen. Tatsächlich ändern die knapp zwei Stunden Anwesenheitspflicht in der Woche, die ca. 10% der für ein 10-ECTS-Modul vorgesehenen nominellen work load entsprechen, wenig daran, dass Eigenmotivation & Selbstorganisation von Anfang an wichtig für ein erfolgreiches Studium sind und die Verantwortung für den Lernerfolg letztlich auf Seiten der Studierenden liegt, auch in InfProgOO.

Warum also dann Anwesenheitspflicht in den praktischen Übungen, wo dies doch in anderen Lehrveranstaltungen kaum verlangt wird, der verantwortliche Dozent (RvH) in anderen Veranstaltungen auch nicht auf die Idee kommt, Anwesenheitspflicht zu fordern, und wir generell bestrebt sind, unsere Angebote so gut zu machen, dass die Veranstaltungen auch ohne Zwang gut besucht sind? Antwort: primär, um einen (relativ) verlässlichen Rahmen für einen regelmäßigen, persönlichen Austausch zwischen Lehrenden und Studierenden zu schaffen, der bei uns unter dem Namen "Minitestate" läuft. "Austausch" mag hier zunächst etwas nach einem Euphemismus klingen, aber genau das ist damit gemeint: wir unterhalten uns und schauen gemeinsam auf Abgaben, damit beide Seiten wissen, wie der Stand ist, und wo evt. noch nachgesteuert werden sollte. O-Ton eines Testanden: "man geht aus einem Testat immer schlauer heraus als man herein gekommen ist."

Es wäre sicher denkbar, die Minitestate auch ohne Anwesenheitspflicht zu regeln, mit individuellen Terminvereinbarungen. Jedoch wäre dies zum einen weniger "clever" im Sinne des Eingangszitats; zum anderen, für uns zugegebenermaßen noch wichtiger, würde dies bei der Anzahl abzunehmender Testate pro Semester (im WS 15/16 waren es 643 an der Zahl) einen noch deutlich größeren administrativen Aufwand bedeuten, selbst wenn wir optimistischerweise annehmen, dass 95% der Terminvereinbarungen reibungslos klappen würden. Aber selbst hierüber würden wir noch nachdenken, wenn wir das Gefühl hätten, dass die Anwesenheitspflicht ein ernsthaftes Problem für Studierende wäre, und das soweit geäußerte Unverständnis der Anwesenheitspflicht (ist vorgekommen, deswegen dieser ausführliche Text) repräsentativ wäre. Tatsächlich scheint jedoch die breite Mehrheit der Vorlesungsteilnehmenden die jetzige Regelung nachvollziehen zu können und als zumutbar zu empfinden. Von 225 anonym abgegebenen Freitextkommentaren, welche in einer laufenden Umfrage im WS 16/17 abgegeben wurden, äußerte sich keiner (in Worten: keiner) zur Anwesenheitspflicht. (Übrigens auch nicht in Sachen "Englisch", siehe oben.) Bei einer Umfrage unter den Klausurteilnehmenden im WS 15/16 haben sich 75 von 113 Befragten explizit für eine Beibehaltung der Anwesenheitspflicht ausgesprochen (für die komplette Umfrage siehe http://www.informatik.uni-kiel.de/~rvh/downloads/UmfrageEndeWS2015-16.pdf). Wir bemühen uns auch, die praktischen Unannehmlichkeiten eines festen Termins in der Woche so gering wie möglich zu halten, auch z.B. unter dem Aspekt der Familienfreundlichkeit. So bekamen bisher immer alle Teilnehmenden von den möglichen Übungsterminen (in der Regel derer 10) einen ihrer Top-3-Wünsche (dank Informatik!), die meisten sogar ihren Erstwunsch. Und wenn es in Einzelfällen harte Zeitkonflikte gegeben hat, haben wir stets einvernehmliche Lösungen gefunden.

...

  •  

So listet z.B. der TIOBE-Index Java seit 2003 auf Platz 1 oder 2; andere Dauerkandidaten für die Top-3 in den letzten dreissig Jahren sind C und C++, die "Vorfahren" von Java. Selbst wenn - unwahrscheinlicherweise - ab heute keine einziges neues Programm mehr in Java  geschrieben werden würde, wird es noch für geraume Zeit (d.h., voraussichtlich, bis auch Sie in den wohlverdienten Ruhestand gehen) reichlich Java-Software geben, für welche Expertise gefragt ist.

Wir könnten jetzt natürlich ewig über die speziellen Vor- und Nachteile von Java gegenüber anderen Sprachen diskutieren, aber ehrlich gesagt verbringen wir unsere Zeit lieber produktiv... 

Warum dieses komische ACM Java?

Insbesondere für diejenigen, welche bereits mit Java gearbeitet haben, mag das "ACM Java" erst einmal befremdlich erscheinen, auch wenn es sich nur in Details von "richtigem Java" unterscheidet. Zunächst einmal ist "ACM Java" aber ganz normales Java, nur dass wir Packages verwenden, die von der "ACM Java Task Force" (JTF) entwickelt worden sind, um den Einstieg in die Programmierung für diejenigen zu erleichtern, welche noch kein Java können. Das Ziel der JTF war, "To review the Java language, APIs, and tools from the perspective of introductory computing education and to develop a stable collection of pedagogical resources that will make it easier to teach Java to first-year computing students without having those students overwhelmed by its complexity." (http://cs.stanford.edu/people/eroberts/jtf/). Insbesondere wird etwas historischer Ballast, den Java von C geerbt hat, versteckt, und Programme werden als Objekte behandelt. Tatsächlich sind die Unterschiede aber relativ gering, so dass zum einen diejenigen, welche schon Java können, auch keine Probleme mit den ACM Packages haben sollten, und zum anderen diejenigen, welche mit ACM Java eingestiegen sind, den gegen Ende der Vorlesung erfolgenden Umstieg auf normales Java problemlos meistern können sollten.

Und, nebenbei bemerkt – es geht in der Vorlesung, wie weiter oben erläutert, um allgemeine Konzepte der imperativen objektorientierten Programmierung; dies ist kein "Java-Kurs"!

Warum Englisch? Ich finde <beliebige Sprache> besser!

Kurze Antwort: weil Englisch für Informatiker wichtig ist.

Längere Antwort: weil Englisch für Informatiker wichtig ist. Wirklich wichtig. Deswegen auch der entsprechende Hinweis im Studieninformationsblatt (Punkt 5, Voraussetzungen und Kenntnisse) für den Informatik-Bachelor. Englisch ist bereits im Studium nützlich, nachdem hier das "wissenschaftliche Arbeiten" (§2 der Fachprüfungsordnung für den Informatik-Bachelor, in anderen FPOs werden sich ähnliche Begriffe finden) vermittelt werden soll, und die z.B. für Seminar und Abschlussarbeit relevante Literatur zum weit überwiegenden Teil auf Englisch verfügbar ist. Englisch ist auch in InfProgOO nützlich, und das nicht nur, weil viele der zur Verfügung gestellten Materialien (Buch, Folien) auf englisch sind. Etwas weiter geschaut – ein Anspruch dieser Vorlesung ist, dass erfolgreiche Teilnehmende etwas mit "Primärliteratur" wie der Java Language Specification anfangen können, welche, wie die allermeisten Sprachstandards, auf englisch gehalten ist. Auf wichtigen Foren wie Stackoverflow, welche sich Informatiker zu nutze machen können sollten, wird englisch gesprochen. Die Suche nach "programming" auf google liefert zum Zeitpunkt des Schreibens dieser Zeilen ca. 30 mal mehr Treffer als die Suche nach "Programmierung". Die allermeiste Software, ob open-source oder nicht, ist auf englisch dokumentiert und auf englisch "geschrieben" (Kommentare, Namen, etc.). So ist es z.B. auch bei Bewerbungen sicher nicht von Nachteil, wenn man darauf verweisen kann, im Studium von Anfang an (auch) mit englischen Materialien gearbeitet zu haben.

Zum Glück scheint, laut Umfrageergebnissen hierzu, für die allermeisten die Verwendung von Englisch kein erhebliches Problem zu sein, und sehr viele begrüßen ausdrücklich die Verwendung von Englisch. Tatsächlich kann Deutsch in der Informatik auch ziemlich grausam sein, mit Stapelspeichern, Programmbindern, und nicht zuletzt der Müllabfuhr, die die Halde regelmäßig von Abfall befreit. Trotzdem sind wir uns darüber im Klaren, dass Englisch eine zusätzliche Hürde sein kann, neben allen anderen Herausforderungen, die ein Studium so mit sich bringt. Von daher bemühen wir uns, den Einstieg so einfach wie möglich zu machen, z.B., indem Erläuterungen in Vorlesung und Übungen auf deutsch erfolgen, und wir auch auf deutschsprachige Literatur verweisen. Zum Schluss, vielleicht etwas zur Beruhigung, falls sich doch noch jemand Sorgen macht: in der Klausur werden Aufgaben auf englisch und deutsch gestellt, und Antworten können in beiderlei Sprachen verfasst werden.

Warum mosert der Prof, wenn ich meinen Laptop aufklappe und nicht hinten sitze?

Weil es nicht nur Laptopnutzer vom Geschehen ablenkt, sondern auch die Drumherumsitzenden (siehe z.B. Mobile Geräte in der Präsenzlehre: Ablenkung oder Lernchance? Von der unstrukturierten Nutzung von Smartphone & Co. hin zu einem orchestrierten Modell für Vorlesungen (Abschnitt 5.3), Laptop multitasking hinders classroom learning for both users and nearby peers und Why I Just Asked My Students To Put Their Laptops Away). Tatsächlich ist auch für die Laptopnutzer selbst der unmittelbar vorlesungsbezogene Einsatz von Laptops für Vorlesungsmitschriften nicht unbedingt förderlich (siehe z.B. diese Studie und diesen Artikel).

Weswegen schreibt der Prof die Folien ab?

Um einzelne Punkte als besonders wichtig und mitschreibenswert zu kennzeichnen. Wie bereits oben bemerkt sind handschriftliche Notizen nachgewiesenermaßen förderlich für den Lernerfolg. Weiterhin hat der Dozent tatsächlich manchmal einen Plan, wie es innerhalb der Vorlesung weitergehen soll, und auf welche dann bereits an der Tafel festgehaltenen Punkte man später nochmal verweisen kann.

Ist das laut/stickig hier im GAP! Was soll ich tun?

...