...
Die Tips hier gelten übrigens nicht nur in unserem Kontext. Generell steigt die Wahrscheinlichkeit, dass Leute einem helfen, mit der Mühe, die man sich macht, ihnen alle möglicherweise relevanten Informationen zu liefern.
Warum funktioniert mein Test nicht?
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.
...
title | a) Fehler beim Kompilieren |
---|
Falls wir das abgegebene Programm nicht kompilieren konnten, wird diese (oder zumindest eine ähnliche) Fehlermeldung erzeugt:
Für Kompilierfehler gibt es normalerweise zwei Ursachen:
...
Wenn ich Z eingebe, taucht auf dem Bildschirm ein Y auf. Was soll ich tun?
Im GAP kann man zwischen englischem und deutschem Tastaturlayout umschalten. Das macht man, indem man Strg-Shift gleichzeitig drückt.
Warum startet mein Programm nicht?
Du hast ein Programm geschrieben, welches im Prinzip top aussieht, sich aber nicht starten lässt. Zum Beispiel das hier:
Code Block | ||
---|---|---|
| ||
import acm.program.ConsoleProgram;
public class Wubbel extends ConsoleProgram {
public void run() {
println("Yo!");
}
} |
Laut den Beispielen in unserem Buch sollte das Programm laufen. Tatsächlich brauchen wir aber in unserer Vorlesung noch eine sogenannte main
-Methode, die unser Programm startet:
Code Block | ||
---|---|---|
| ||
import acm.program.ConsoleProgram;
public class Wubbel extends ConsoleProgram {
public void run() {
println("Yo!");
}
public static void main(String[] args) {
new Wubbel().start();
}
} |
Nun kann man das Programm wie gewohnt per Rechtsklick → Run As → Java Application starten.
Wie man die main
-Methode ganz schnell durch Eclipse generieren lassen kann steht übrigens im nächsten Eintrag.
Warum sagt Java mir irgendwas von 32 und 64 Bit?
Beim Starten des Programms kommt eine Fehlermeldung wie diese hier:
Code Block |
---|
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\xxxxx\GCMDLN.DLL: Can't load IA 32-bit .dll on a AMD 64-bit platform |
Das liegt oft an einem von zwei Dingen:
- Es fehlt eine
main
-Methode (siehe vorige Frage). - Es wurde versucht, das Programm durch Klick auf den Start-Knopf in Eclipse zu starten. Besser funktioniert es, mit der rechten Maustaste in den Code zu klicken und per Run As → Java Application zu starten. Dann weiß Eclipse nämlich exakt, was zu starten ist, während es beim Klick auf den Start-Knopf gegebenenfalls (falsch) rädt.
Wie kann ich in Eclipse schnell die main
-Methode generieren?
Man kann Eclipse so konfigurieren, dass man zum Schreiben unserer main
-Methode nur acmmain
eingeben muss und dann durch Strg+Leertaste Eclipse bitten kann, die komplette Methode zu implementieren.
Expand | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
|
Warum funktioniert mein Test nicht?
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.
Expand | ||
---|---|---|
| ||
Falls wir das abgegebene Programm nicht kompilieren konnten, wird diese (oder zumindest eine ähnliche) Fehlermeldung erzeugt: Für Kompilierfehler gibt es normalerweise zwei Ursachen:
|
...
Expand | ||||
---|---|---|---|---|
| ||||
Manche Fehlermeldungen beginnen mit "The following output was generated checking the style of your code:" Die meisten Formatierungsprobleme können in Eclipse recht einfach mit Ctrl-Shift-F (Cmd-Shift-F) behoben werden. Es gibt jedoch Ausnahmen, wie die folgenden, wobei wir gerne gerne noch Ergänzungen dieser Liste entgegennehmen:
Hier ist das Problem, dass der Variablenname nicht mit einem Kleinbuchstaben beginnt. Zur Erklärung der Fehlermeldung: "^" steht für den Anfang des Namens, dann soll ein Kleinbuchstabe kommen, dann beliebig viele Buchstaben oder Ziffern, dann mit "$" das Ende des Namens.
Die (in diesem Fall zugegebenermaßen nicht sehr hilfreiche) Fehlermeldung hätte lauten sollen: "'}' should be on the same line as the else keyword". Der Code hier sah folgendermaßen aus:
Die Fehlermeldung verschwindet bei folgendem Code:
| ||||
Expand | ||||
| ||||
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 cds.
Hier ist das Problem, dass der Variablenname nicht mit einem Kleinbuchstaben beginnt. Zur Erklärung der Fehlermeldung: "^" steht für den Anfang des Namens, dann soll ein Kleinbuchstabe kommen, dann beliebig viele Buchstaben oder Ziffern, dann mit "$" das Ende des Namens.
Die (in diesem Fall zugegebenermaßen nicht sehr hilfreiche) Fehlermeldung hätte lauten sollen: "'}' should be on the same line as the else keyword". Der Code hier sah folgendermaßen aus:
Die Fehlermeldung verschwindet bei folgendem Code:
|
Expand | ||
---|---|---|
| ||
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 cds. |
Warum warnt mich Eclipse davor, dass eine "serialVersionUID" fehlt?
Aus Gründen. Ist egal. Das kann man aber ausschalten. Dafür einfach die Anleitung ausklappen…
Expand | ||
---|---|---|
| ||
|
Ich kann schon Java!
...
Kurze Antwort: weil Englisch für Informatiker wichtig ist.
Expand | ||
---|---|---|
| ||
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. |
...
Es ist ok und sogar gewünscht, sich nicht nur mit dem "Personal" sondern auch untereinander über Lösungsstrategien etc. zu unterhalten. Dabei sollte aber bitte Rücksicht auf andere genommen werden. Das insbesondere was die Lautstärke betrifft. Normalerweise funktioniert das auch ganz gut. Wer sich trotzdem nachhaltig gestört fühlt, möge bitte a) die Störer freundlich bitten, leiser zu sein, oder b) sich eine ruhigere Ecke im GAP suchen. Fall c), der/die aufsichtführende Mitarbeiter/in muss um Hilfe gebeten werden, ist auch denkbar, bisher aber noch nicht vorgekommen. Und schließlich: im GAP kann es bei voller Belegung und schlecht eingestellter Lüftung schnell stickig werden. Dann bitte nicht zögern, dies kundzutun; der freundliche, normalerweise testierende Mensch am Dozententisch kann dann z.B. den Technikservice (http://www.inf.uni-kiel.de/de/service/technik-service) oder das Gebäudemanagement (Herr Groth, Tel. 2656) anrufen, in der Regel erfolgt dann schnell Linderung.
...
Soll ich kostbare Lebenszeit für die EvaSys-Umfrage opfern?
Falls zunächst noch nicht klar ist, was die EvaSys-Umfrage ist - kein Problem, gegen Ende des Semesters trudeln diverse Mails ein, typischerweise eine für jede Pflichtlehrveranstaltung, in der man freundlich eingeladen wird, an einer Umfrage teilzunehmen. Die Teilnahme an den Umfragen ist wesentlicher Bestandteil des (Achtung:) Lehrqualitätssicherungsprozesses. Besonders interessant sind typischerweise die Freitextantworten. Nachdem es letztlich um den Studienerfolg geht, sollte gerne insbesondere auf folgende Fragen eingegangen werden: 1. Was hilft mir beim Lernen? 2. Was hindert mich am Lernen? 3. Wie könnte man die unter 2. genannten Punkte verbessern?
...