<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stageing.freitagsrunde.org//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=84.191.217.215</id>
	<title>FreitagsrundenWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stageing.freitagsrunde.org//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=84.191.217.215"/>
	<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//Spezial:Beitr%C3%A4ge/84.191.217.215"/>
	<updated>2026-11-02T07:48:41Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.6</generator>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Martin_H%C3%A4cker/Java_Kurs/Tag_1&amp;diff=6727</id>
		<title>Martin Häcker/Java Kurs/Tag 1</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Martin_H%C3%A4cker/Java_Kurs/Tag_1&amp;diff=6727"/>
		<updated>2006-03-22T21:34:42Z</updated>

		<summary type="html">&lt;p&gt;84.191.217.215: /* LE 2: Methoden und Schleifen (RobertB und Sven) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Benutzer:Martin_Häcker/Java_Kurs | &amp;lt;- Zurück zur Übersicht]]&lt;br /&gt;
&lt;br /&gt;
= LE 1: Hello, World! =&lt;br /&gt;
&#039;&#039;&#039;Vortragende:&#039;&#039;&#039; Robert Lubkoll, Felix Schwarz&lt;br /&gt;
&lt;br /&gt;
== Organisatorisches ==&lt;br /&gt;
* Was Passiert&lt;br /&gt;
* Wann passiert was&lt;br /&gt;
* Wie passierts&lt;br /&gt;
* Vorstellung&lt;br /&gt;
* Was ist das genau&lt;br /&gt;
* Wer sind wir: Freiwillig, Umsonst&lt;br /&gt;
* Ziel des Kurses&lt;br /&gt;
* Was sie am Ende können sollen&lt;br /&gt;
* Gruppeneinteilung&lt;br /&gt;
** am Ende der ersten Vorlesung&lt;br /&gt;
** Vorher per e-mail&lt;br /&gt;
&#039;&#039;&#039;Jemand vom Rechnerbetrieb soll bitte da sein, damit wir Login-Probleme lösen können&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== weitere Ideen ===&lt;br /&gt;
* Lernende einbeziehen durch Befragung mit Zetteln, was sie sich vorstellen unter &amp;quot;Programmieren&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Kommentare //, /* */, /** */&lt;br /&gt;
* String: Vormerken, das man hier später klar macht das das auch Objekte und daher Referenzen sind - erstmal ists aber egal, da sie eh Immutable sind&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inhalt (Vorgehen, Beispiele, Ideen) ==&lt;br /&gt;
&lt;br /&gt;
=== Java ===&lt;br /&gt;
==== Wie fangen wir Java an ====&lt;br /&gt;
&lt;br /&gt;
* Hello world&lt;br /&gt;
grobe Struktur der &amp;quot;Umgebung&amp;quot;: keine .sign/.impl Datei sondern nur eine .java&lt;br /&gt;
&lt;br /&gt;
Bildchen für Was ist Was? Syntax zerlegen.&lt;br /&gt;
system.out.println();&lt;br /&gt;
&lt;br /&gt;
* compilieren:&lt;br /&gt;
Was passiert da, wieso erst Compilieren, dann ausführen?&lt;br /&gt;
javac&lt;br /&gt;
java&lt;br /&gt;
&lt;br /&gt;
was für Fehler können auftreten?&lt;br /&gt;
.class&lt;br /&gt;
Klasse heißt anders als Datei &lt;br /&gt;
Compiler falsch aufgerufen&lt;br /&gt;
&lt;br /&gt;
Entscheiden: Zuerst in println rechnen oder zuerst Variablen einführen.&lt;br /&gt;
Semikolons, &lt;br /&gt;
&lt;br /&gt;
* Variablentyp (int) -&amp;gt; Syntax der Deklaration&lt;br /&gt;
Wie darf ein Variablenname aussehen? (Buchstaben,Zahlen, _ )&lt;br /&gt;
* Zuweisung -&amp;gt; Syntax&lt;br /&gt;
man kann Zahlen &amp;gt; 32 direkt eingeben !&lt;br /&gt;
&lt;br /&gt;
* Werte und operatoren +,*,- -&amp;gt; Syntax&lt;br /&gt;
 int zahl1 = 7;&lt;br /&gt;
 int zahl2 = 42;&lt;br /&gt;
 int ergebnis = zahl1 + zahl2;&lt;br /&gt;
 System.out.println(ergebnis);&lt;br /&gt;
&lt;br /&gt;
Zuweisung nach Deklaration.&lt;br /&gt;
Variableninhalte ändern sich durch Zuweisung. Zeigen mit sysout.&lt;br /&gt;
&lt;br /&gt;
Das selbe GANZ kurz nochmal mit anderen Operatoren.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sauberes Programmieren&#039;&#039;&#039;&lt;br /&gt;
* Variablen und Identifier-Namen&lt;br /&gt;
** Variablendeklaration - Namen vergeben für Dinge, die man berechnet hat!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
String deklarieren mit &amp;quot;bla&amp;quot; , kein Anführungszeichen im &amp;quot;...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
verknüpfen von Strings (+)&lt;br /&gt;
&lt;br /&gt;
komplizierteres Sysout an selbem Programm&lt;br /&gt;
&lt;br /&gt;
* nicht explizit einführen, sondern nur im If mit Fallunterscheidung&lt;br /&gt;
erweitertes Miniprogramm zur Fallunterscheidung&lt;br /&gt;
* &amp;lt;, &amp;gt;, ==, &amp;lt;=, &amp;gt;= Operatoren &lt;br /&gt;
if mit Operatoren und anderen Variablen&lt;br /&gt;
&lt;br /&gt;
* if -&amp;gt; Syntax&lt;br /&gt;
Minniprogramm zur Fallunterscheidung&lt;br /&gt;
 boolean auwahl = true;&lt;br /&gt;
 if(auswahl) then {&lt;br /&gt;
  System.out.println(&amp;quot;auswahl war true&amp;quot;);&lt;br /&gt;
 else{&lt;br /&gt;
  System.out.println(&amp;quot;auswahl war false&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Kompliziertere Bedingungen (&amp;amp;&amp;amp;, ||, !)&lt;br /&gt;
&lt;br /&gt;
*(double) mit Punkt als Trennzeichen.&lt;br /&gt;
&lt;br /&gt;
*Division mit / und das bei int gerundet wird&lt;br /&gt;
&lt;br /&gt;
*Kommentare&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fehlermeldungen lesen und verstehen&#039;&#039;&#039;&lt;br /&gt;
* Klammer vergessen&lt;br /&gt;
* Semikolon vergessen&lt;br /&gt;
* Klasse heißt anders als Datei&lt;br /&gt;
* Compiler falsch aufgerufen&lt;br /&gt;
&lt;br /&gt;
== Übungsaufgaben ==&lt;br /&gt;
&lt;br /&gt;
[[Robert Lubkoll/Java Kurs/Tag1/Teil1/Aufgaben | Aufgaben]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;cd&#039;&#039; üben (ist drin)&lt;br /&gt;
* Hello World eintippen (kate, gedit, nano, ..) (ist drin)&lt;br /&gt;
* javac / java benutzen (ist drin)&lt;br /&gt;
* Ergebnisse sehen (ist drin)&lt;br /&gt;
&lt;br /&gt;
* Einige Expressions angeben und die Teilnehmer sollen feststellen, was die ausgeben/berechnen würden&lt;br /&gt;
* Das gleiche dann nochmal mit if/else&lt;br /&gt;
* Einen mathematischen Ausdruck in Java übersetzen&lt;br /&gt;
* Fehler einbauen, Fehler finden (laufzeit/compilezeit)&lt;br /&gt;
* [http://www.cs.princeton.edu/introcs/11hello/ Beispiele für Anfängeraufgaben]&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliche Vorschläge ===&lt;br /&gt;
Folgendes sollte in der VL oder Übung angesprochen werden:&lt;br /&gt;
* [http://www.scit.wlv.ac.uk/cbook/chap5.dangling.else.html &amp;quot;Dangling else&amp;quot;-Problem]&lt;br /&gt;
* Semikolon hinter if (hab gelesen, dies sei ein häufiger Fehler bei Anfängern...)&lt;br /&gt;
-- [[Benutzer:Buchholz|Robert Buchholz]] 01:17, 17. Mär 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
= LE 2: Methoden und Schleifen (RobertB und Sven) =&lt;br /&gt;
LE2 Übung mit Zusatzaufgaben und Musterlösung und Vorlesungsfolien [http://user.cs.tu-berlin.de/~svens/files/le2.tar.gz link]&lt;br /&gt;
&lt;br /&gt;
letzte änderungen: folien version1 enthalten (freitag 2006-03-17 10:44)&lt;br /&gt;
&lt;br /&gt;
TODO:&lt;br /&gt;
* LE1 aufgabe benutzen. (delayed)&lt;br /&gt;
&lt;br /&gt;
Benötigete Zeiten:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noch niemand hats probiert?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inhalt ==&lt;br /&gt;
=== Methodik ===&lt;br /&gt;
* Wichtigkeit, dass man Programme in verständliche und sinnvolle Teile unterteilt: &lt;br /&gt;
** dadurch verbesserte test-möglichkeiten (sprich methoden sind auch eine art von modul)&lt;br /&gt;
** verbesserte verständlichkeit([http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-10.html#%25_sec_1.1.8 Procedures as Black-Box Abstractions])&lt;br /&gt;
* Quelltextverkürzung durch schleifen&lt;br /&gt;
** nicht minimierung auf kosten der verständlichkeit&lt;br /&gt;
** was ist aufgabe des entwicklers?&lt;br /&gt;
** und was ist aufgabe des compilers? (vllt. auch nicht?)&lt;br /&gt;
** evtl. ist eine eigene methode sinnvoller/verständlicher?&lt;br /&gt;
&lt;br /&gt;
=== Java ===&lt;br /&gt;
* &#039;&#039;&#039;Typen&#039;&#039;&#039;&lt;br /&gt;
** Arrays&lt;br /&gt;
*** warum, wie und probleme&lt;br /&gt;
** void&lt;br /&gt;
** char?&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Methoden&#039;&#039;&#039;:&lt;br /&gt;
** Namen&lt;br /&gt;
** Aufruf&lt;br /&gt;
** Parameter und Rückgabe -&amp;gt; Call by Value&lt;br /&gt;
** main&lt;br /&gt;
** return&lt;br /&gt;
** Nachtrag Datenstrukturen: void&lt;br /&gt;
** Beispiel: System.out.println()&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Schleifen&#039;&#039;&#039;&lt;br /&gt;
** Blöcke&lt;br /&gt;
** while&lt;br /&gt;
*** Formulieren von Bedingungen&lt;br /&gt;
*** Schleife als zweite Lösung für duplikation von Code&lt;br /&gt;
*** Diskussion Schleife &amp;lt;-&amp;gt; Rekursion&lt;br /&gt;
&lt;br /&gt;
* Anwendung von Schleifen&lt;br /&gt;
* Rekursion &amp;lt;-&amp;gt; Schleifen (Beispiel)&lt;br /&gt;
* Warum/wann Schleifen?&lt;br /&gt;
** als Alternative zu Akkumulator Parametern (Vergleich zu OPAL)&lt;br /&gt;
** wenn die Anzahl der Durchläufe nicht konstant ist&lt;br /&gt;
** for schleife, wann und wozu, einfache beispiele: for(int i = 0; i &amp;lt; 3; i++)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Gute Namen&#039;&#039;&#039;&lt;br /&gt;
** Abstrakter Gedanke: Für den Computer ists wurscht, wie man das was man meint aufschreibt. Wir Menschen dagegen lassen und leicht verwirren&lt;br /&gt;
** abwägen zwischen&lt;br /&gt;
*** aussagekraft des namens&lt;br /&gt;
*** häufigkeit im code&lt;br /&gt;
*** kommentar zu variable(nnamen)&lt;br /&gt;
*** länge des namens&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Testen&#039;&#039;&#039;&lt;br /&gt;
* was ist testen?&lt;br /&gt;
** überprüfung von einigen randwerten =&amp;gt; nachdenken ist erforderlich um interessante fälle zu finden&lt;br /&gt;
** testen ist nicht verifizieren&lt;br /&gt;
* wie in java?&lt;br /&gt;
** System.out.println(..);&lt;br /&gt;
** auskommentieren und schrittweises testen&lt;br /&gt;
* was wird getestet?&lt;br /&gt;
** ausgabe von arrays komplex&lt;br /&gt;
** ausgabe von werten mit text verknüpfen&lt;br /&gt;
** Variablen haben unterschiedliche Werte während das Program läuft!&lt;br /&gt;
&lt;br /&gt;
assertTrue-Methode selber schreiben&lt;br /&gt;
&lt;br /&gt;
== Übungsaufgaben ==&lt;br /&gt;
&lt;br /&gt;
* Methoden definieren, die bestimmte Eigenschaften haben&lt;br /&gt;
* Beispiele dann Abtippen und ausprobieren&lt;br /&gt;
* Sie sollen Nachfragen, wenn sie was anderes hatten (oder sowas)&lt;br /&gt;
* Verschiedene Eingabewerte&lt;br /&gt;
* erste Endlosschleife&lt;br /&gt;
* Fehler für die eingeführten elemente&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Martin_Häcker/Java_Kurs | &amp;lt;- Zurück zur Übersicht]]&lt;/div&gt;</summary>
		<author><name>84.191.217.215</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Robert_Lubkoll/Java_Kurs/Tag1/Teil1/Aufgaben&amp;diff=6964</id>
		<title>Robert Lubkoll/Java Kurs/Tag1/Teil1/Aufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Robert_Lubkoll/Java_Kurs/Tag1/Teil1/Aufgaben&amp;diff=6964"/>
		<updated>2006-03-22T21:09:50Z</updated>

		<summary type="html">&lt;p&gt;84.191.217.215: /* 4.)  Kassenbon.java */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabenblatt Tag1 Teil1 ==&lt;br /&gt;
&lt;br /&gt;
* Melde dich an einer der Suns in den Rechnerräumen an oder logge dich per ssh mit deinem eigenden Notebook in deinen CS-Account ein.&lt;br /&gt;
&lt;br /&gt;
=== 1.) getting started ===&lt;br /&gt;
* Wenn du neu in Unix bist spiele ein wenig mit den Kommandos cd und ls.&lt;br /&gt;
* Lege dir ein Verzeichnis &amp;quot;Javakurs&amp;quot; an und kopiere unsere Vorgaben für Tag1 von .... an diesen Ort.&lt;br /&gt;
* Entpacke die Vorgaben die sich nun in deinem Verzeichnis befinden.&lt;br /&gt;
* Benenne die Datei &amp;quot;gibMirEinenNamen&amp;quot; im entstandenen Verzeichnis &amp;quot;Tag1/Teil1/&amp;quot; in &amp;quot;compiliereMich.java&amp;quot; um.&lt;br /&gt;
*lösche im selben Verzeichnis die Datei &amp;quot;weckMitDieserDatei&amp;quot; und das Verzeichnis &amp;quot;weckMitDiesemVerzeichnis&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* siehe:&lt;br /&gt;
: &#039;&#039;mkdir 	(Verzeichnis anlegen)&#039;&#039;&lt;br /&gt;
: &#039;&#039;cd und ls	(Navigieren)&#039;&#039;&lt;br /&gt;
: &#039;&#039;cp		(kopieren)&#039;&#039;&lt;br /&gt;
: &#039;&#039;mv		(verschieben und umbenennen)&#039;&#039;&lt;br /&gt;
: &#039;&#039;rm und rmdir(Löschen von Dateien und Verzeichnissen)&#039;&#039;&lt;br /&gt;
: &#039;&#039;tar		(packen und entpacken)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 2.) compiling ===&lt;br /&gt;
&lt;br /&gt;
*compiliere die soeben umbenannte Datei &amp;quot;compiliereMich.java&amp;quot; mit javac.&lt;br /&gt;
*Führe das Programm in der entstandenen Datei compiliereMich.class mit java aus.&lt;br /&gt;
&lt;br /&gt;
*siehe:&lt;br /&gt;
: &#039;&#039;javac		(Javaprogramme compilieren)&#039;&#039;&lt;br /&gt;
: &#039;&#039;java		(compilierte Javaprogramme ausführen)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 3.) [[Lubkoll/Java Kurs/Tag1/Teil1/HelloWorld.java | HelloWorld.java]] ===&lt;br /&gt;
*Öffne einen Texteditor deiner Wahl.&lt;br /&gt;
*Schreibe ein Programm das &amp;quot;Hallo Welt&amp;quot; auf der Console ausgibt und teste es.&lt;br /&gt;
&lt;br /&gt;
=== 4.) [[Robert Lubkoll/Java Kurs/Tag1/Teil1/Kassenbon.java | Kassenbon.java]] ===&lt;br /&gt;
TODO: Wie zum Henker lade ich eine Datei in dieses Wiki?? (am besten garnicht, die formatierung kackt dann da eh rum (ja gut das kann man umgehen)aber besser ne file auf irgendeinen webspace am besten cs-netz hochladen.. (siehe LE2) )&lt;br /&gt;
&lt;br /&gt;
*Es soll ein Programm geschrieben werden welches einen Kassenbong auf der Console ausgibt.&lt;br /&gt;
&lt;br /&gt;
Am Anfang des Programmes werden in Form von Variablen folgende Werte festgelegt:&lt;br /&gt;
* Anzahl von mindestens vier verschiedenen Waren die gekauft werden sollen. &lt;br /&gt;
* Einzelpreise der Waren. (Ja, jede Warensorte hat einen anderen Preis)&lt;br /&gt;
* Inhalt des Brieftasche.&lt;br /&gt;
&lt;br /&gt;
Das Programm soll den Gesamtpreis der Eingangs festgelegten Waren ermitteln.&lt;br /&gt;
Übersteigt der Gesamtpreis den Inhalt der Brieftasche wird der Benutzer auf den fehlenden Betrag hingewiesen.&lt;br /&gt;
Reicht der Inhalt der Brieftasche für den Einkauf wird ein Kassenbon ausgegeben der die gekauften Waren mit Anzahl und Preis sowie am Ende den Gesamtpreis auflistet. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Tipp: Erstellt erst ähnlich wie im &amp;quot;Hallo Welt&amp;quot; Programm die Ausgabe des Kassenbons und füllt sie anschließend mit Berechnungen und der Fallunterscheidung.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 5.) [[KassenbonMK2.java]] ===&lt;br /&gt;
*Erstellt eine Kopie eures soeben geschriebenden Programmes.&lt;br /&gt;
*Verändert das Programm so das nun der Kassenbon solange mit Waren gefüllt wird bis der Inhalt der Brieftasche für keine weiteren Einkäufe ausreicht. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Tipp: viele viele Fallunterscheidungen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
* Howtos zu Befehlen schreiben oder finden&lt;br /&gt;
* Howto zum Einloggen per SSH (+ putty unter Win)&lt;br /&gt;
* Verzeichnisstruktur Tag1/Teil1 anlegen&lt;br /&gt;
* gibMirEinenNamen anlegen&lt;br /&gt;
* weckMitDieserDatei und WeckMitDiesemVerzeichnis anlegen&lt;br /&gt;
* compiliereMich.java schreiben&lt;/div&gt;</summary>
		<author><name>84.191.217.215</name></author>
	</entry>
</feed>