<?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=82.113.121.24</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=82.113.121.24"/>
	<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//Spezial:Beitr%C3%A4ge/82.113.121.24"/>
	<updated>2026-11-02T14:46:51Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.6</generator>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=MSDNAA&amp;diff=8345</id>
		<title>MSDNAA</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=MSDNAA&amp;diff=8345"/>
		<updated>2009-05-15T10:26:56Z</updated>

		<summary type="html">&lt;p&gt;82.113.121.24: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die &#039;&#039;&#039;MSDN Academic Alliance&#039;&#039;&#039; ist eine Partnerschaft zwischen dem [[Microsoft]] Developer Network und der [[TU Berlin]]. Über dieses Programm könnt ihr (legal) etliche Microsoft-Software kostenlos herunterladen oder bestellen. Unter den angebotenen Programmen sind diverse Versionen von [[Windows]], Visio, Visual Studio (inkl. Libraries) und Virtual PC.&lt;br /&gt;
Der Dienst steht allen Studenten (und Mitarbeitern) der Fakultät 4 zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Anmeldung erfolgt mit TUBIT oder IRB-Account.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* Die Anmeldung zum Programm findet ihr über die [https://irb.cs.tu-berlin.de:81/auth/?sm=Msdnaa Verwaltung des CS-Accounts]&lt;br /&gt;
* [http://user.cs.tu-berlin.de/msdnaa/ Liste der angebotenen Programme] und weitere Infos&lt;br /&gt;
* [http://msdn40.e-academy.com/DE_207386 Login zum Download]&lt;br /&gt;
* [http://www.studentprogram.de/berlin/DesktopDefault.aspx MSDNAA an anderen Unis] und Veranstaltungen vom MSDN&lt;br /&gt;
&lt;br /&gt;
== Achtung ==&lt;br /&gt;
Der Spamfilter des CS-Accounts frisst in der Standardeinstellung die Mails von der Downloadseite (Bestätigungen, Passwörter), da der MSDNAA-Server falsch konfiguriert ist. Daher sollte in der [https://irb.cs.tu-berlin.de:81/auth/?action=m_spam.pike Spamfilter-Verwaltung] &#039;&#039;&#039;reject_unknown_hostname&#039;&#039;&#039; ausgestellt werden.&lt;br /&gt;
&lt;br /&gt;
== Download ohne Windows ==&lt;br /&gt;
Auf den MSDNAA-Webseiten kann man nicht direkt die ISO-Dateien herunterladen, sondern nur ein Windows-Download-Programm, das den Internet Explorer verwendet, um anschließend die eigentlichen CD-Abbilder auf die eigene Festplatte zu übertragen. Ein Download mit alternativen Betriebssystemen ist nicht vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Neben der offensichtlichen Möglichkeit, für das Herunterladen temporär einen Windows-Rechner zu verwenden, funktioniert der Download auch mit Hilfe von [http://www.winehq.org Wine] (getestet mit Version 1.0) und Firefox [http://www.mozilla.com/en-US/firefox/] (Version 3.0). Dazu meldet man sich unter der [http://msdn40.e-academy.com/DE_207386 oben erwähnten Adresse] an, und lädt die .exe-Datei zu dem gewählten Programm herunter (bspw. &#039;&#039;Windows_XP_Professional_w_SP2.exe&#039;&#039;). Nachdem man sich den Key aufgeschrieben hat, führt man lediglich &#039;&#039;wine Windows_XP_Professional_w_SP2.exe&#039;&#039; aus und gibt den Pfad ein, zu dem das Programm heruntergeladen werden soll. Nach dem Download kann man es mit seinem lieblings Brennprogramm brennen und benutzen.&lt;br /&gt;
&lt;br /&gt;
Sollte dies wieder Erwarten nicht funktionieren, muss wohl doch der Internet-Explorer unter Linux zum Laufen gebracht werden, da die MSDNAA-software ActiveX nutzt, um den Download durchzuführen. (Dies kann sich mittlerweile geändert haben, jedenfalls für einen Teil der Software).&lt;br /&gt;
&lt;br /&gt;
 Ein einfacher Weg dahin ist das Paket &#039;[http://www.tatanka.com.br/ies4linux/page/Main_Page ies4linux]&#039;. Anschließend startet man den Internet Explorer und öffnet darin das Windows-Download-Program.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: Dieses Vorgehen ist legal, auch wenn für jede Installation des Internet Explorers eine legale Windows-Lizenz vorhanden sein muss: Die Lizenz für das Windows, das man da gerade runterlädt, hat man ja schon &#039;erworben&#039; - die Lizenznummer erscheint im Webshop. Damit darf man dann auch legal den IE runterladen und benutzen... :)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Fakultäts-ABC]]&lt;br /&gt;
[[Kategorie:Überleben im Fakultätsnetz]]&lt;/div&gt;</summary>
		<author><name>82.113.121.24</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rekursion_vs._Iteration&amp;diff=9642</id>
		<title>Javakurs/Übungsaufgaben/Rekursion vs. Iteration</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rekursion_vs._Iteration&amp;diff=9642"/>
		<updated>2009-03-17T16:13:13Z</updated>

		<summary type="html">&lt;p&gt;82.113.121.24: /* Aufgabenstellung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das Ziel dieser Aufgabe ist es, dass Ihr möglichst viele Eurer bisher erworbenen Java-Kenntnisse Schritt für Schritt anwendet. Abschließend sollt Ihr noch einen kleinen [[wikipedia:Benchmark|Benchmark]] einer rekursiv und iterativ implementierten Funktion durchführen.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabenstellung ===&lt;br /&gt;
Seht euch die Codebeispiele an und findet heraus, was der Code tut. Schreibt den Code anschließend neu, sodass der Code übersichtlicher und lesbarer ist.&lt;br /&gt;
&lt;br /&gt;
Gegeben ist folgende kleine Funktion:&lt;br /&gt;
&lt;br /&gt;
 public static int doSomethingClever(int a){&lt;br /&gt;
    int b;&lt;br /&gt;
    if(a &amp;lt;= 1){&lt;br /&gt;
       if(a == 1){&lt;br /&gt;
          b = calcSomethingNice(a);&lt;br /&gt;
       }else{&lt;br /&gt;
          b = getSomeSmartInt(a - 1);&lt;br /&gt;
       }&lt;br /&gt;
    }else{&lt;br /&gt;
       return theSmartestMethodsAlwaysNeedRidiculouslyLongNames(a);&lt;br /&gt;
    }&lt;br /&gt;
    return b;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public static int getSomeSmartInt(int c){&lt;br /&gt;
    return ++c;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public static int calcSomethingNice(int d){&lt;br /&gt;
    int i = 1;&lt;br /&gt;
    for(i = d * 11; i &amp;gt; d; i--){&lt;br /&gt;
       i--;&lt;br /&gt;
    }&lt;br /&gt;
    return i;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public static int theSmartestMethodsAlwaysNeedRidiculouslyLongNames(int e){&lt;br /&gt;
    int container = doSomethingClever(e - 1);&lt;br /&gt;
    return container + doSomethingClever(e - 2);&lt;br /&gt;
 }&lt;br /&gt;
   &lt;br /&gt;
Offensichtlich ist hier programmiertechnisch einiges schief gegangen. Denn obwohl der Code richtig funktioniert, ist er nur schwer leserlich. Folgende Fehler wurden gemacht:&lt;br /&gt;
&lt;br /&gt;
*nichtssagende Benennung der Variablen und Methoden,&lt;br /&gt;
*keine Kommentare,&lt;br /&gt;
*übertriebene Auslagerung in Extra-Methoden.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die obige Funktionalität ist [[wikipedia:Rekursion|rekursiv]] implementiert.&lt;br /&gt;
&lt;br /&gt;
All das sollt Ihr jetzt schrittweise ändern:&lt;br /&gt;
&lt;br /&gt;
#Versucht, ohne den PC mit einigen Handsimulationen herauszufinden, was &amp;lt;code&amp;gt;doSomethingClever&amp;lt;/code&amp;gt; eigentlich berechnet.&lt;br /&gt;
#* Hinweis: Beginnt mit kleinen Zahlen wie 0, 1, 2 oder 3 und macht mehrere Durchgänge.&lt;br /&gt;
#* Tipp: Es wird stets das n-te Glied einer bekannten Zahlenfolge berechnet.&lt;br /&gt;
#Integriert zuerst die beiden Hilfsfunktionen &amp;lt;code&amp;gt;getSomeSmartInt&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;calcSomethingNice&amp;lt;/code&amp;gt; in die Hauptfunktion, da beide ziemlich überflüssig sind.&lt;br /&gt;
#Löst die verschachtelte Rekursion von &amp;lt;code&amp;gt;doSomethingClever&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;theSmartest...&amp;lt;/code&amp;gt; auf.&lt;br /&gt;
#Lasst Euch &amp;quot;sprechende&amp;quot; Namen sowohl für die Variablen, Methode(n) und als auch die Klasse einfallen.&lt;br /&gt;
#Fügt ausreichend viele und prägnante Kommentare hinzu, bis das Programm für Euch gut lesbar ist.&lt;br /&gt;
#&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; Holt Euch nun einen &#039;&#039;&#039;Tutor&#039;&#039;&#039; ran, zeigt ihm Euer Programm und diskutiert die Lesbarkeit des Codes. Er kann euch sicherlich nützliche Tipps geben, was Ihr in Zukunft beim Programmieren unbedingt beachten solltet.&lt;br /&gt;
&lt;br /&gt;
== Eine Iterative Alternative ==&lt;br /&gt;
&lt;br /&gt;
Schreibt nun ein Programm, das die gleiche Zahlenreihe nicht-rekursiv berechnet. Verwendet dazu ein Array von Integern und folgende Idee: &lt;br /&gt;
* Initialisiert ein Array, das alle Folgenglieder (bei 0 anfangend) bis zum Gesuchten aufnehmen kann.&lt;br /&gt;
* Berechnet die Folgenglieder in einer Schleife Eurer Wahl aufsteigend bei 0 beginnend und speichert sie in dem Array wie folgt: Folgenglied 0 steht an Position 0 im Array, Folgenglied 1 steht an Position 1 im Array, usw.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Wenn Ihr mit der Programmidee oder der Implementierung Probleme habt, zögert nicht, einen Tutor zu fragen.&lt;br /&gt;
&lt;br /&gt;
== Benchmark und Auswertung ==&lt;br /&gt;
&lt;br /&gt;
Schreibt nun ein letztes kurzes Programm, das zuerst die Folgenglieder 5, 10, 15, 20, 30 und 40 iterativ und dann noch einmal rekursiv berechnet und sofort auf der Console ausdruckt.&lt;br /&gt;
&lt;br /&gt;
Diskutiert die Geschwindigkeitsunterschiede und die möglichen Vorteile der iterativen Implementation mit einem Tutor.&lt;br /&gt;
&lt;br /&gt;
Tipp: Sollte Euer iteratives Programm nicht binnen weniger Sekunden sämtliche Zahlen berechnet haben, lasst unbedingt einen Tutor kurz drüberschauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java]]&lt;br /&gt;
[[Kategorie:Java_Aufgaben]]&lt;/div&gt;</summary>
		<author><name>82.113.121.24</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Brainfuck&amp;diff=9206</id>
		<title>Javakurs/Übungsaufgaben/Brainfuck</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Brainfuck&amp;diff=9206"/>
		<updated>2009-03-17T16:12:17Z</updated>

		<summary type="html">&lt;p&gt;82.113.121.24: /* Aufgabenstellung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Einführung===&lt;br /&gt;
&lt;br /&gt;
Java ist eine komplexe und mächtige Programmiersprache mit der man viele informatische Probleme lösen kann. Doch wie weit kann man den Befehlssatz einer Sprache reduzieren ohne das diese die Eigenschaft verliert, beliebige mathematische Probleme zu lösen? Diese spezielle Eigenschaft wird Turingkomplettheit genannt. Alle Programmiersprachen sind für gewöhnlich turingkomplett, was bedeutet, dass sie jedes berechenbare Problem lösen können. Zu diesen Problemen zählen zum Beispiel sämtliche mathematische Probleme, aber auch Probleme die eher struktureller Natur sind, also auch das Suchen von Einträgen in einer Kontaktliste (nein, der Weltfrieden ist leider nicht berechenbar).&lt;br /&gt;
&lt;br /&gt;
[[wikipedia:Brainfuck|Brainfuck]] ist eine Programmiersprache, die ebenfalls turingkomplett ist, allerdings nur aus &#039;&#039;&#039;acht&#039;&#039;&#039; Befehlen besteht. In dieser Aufgabe könnt ihr selbst einen auf einer Turingmaschine basierten Interpreter für eine eigene kleine Sprache schreiben, die man in einen weiteren Schritt Brainfuck-kompatibel machen kann und damit auch turingkomplett.&lt;br /&gt;
&lt;br /&gt;
===Aufgabenstellung===&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe bauen wir uns eine simple [[wikipedia:Turingmaschine|Turingmaschine]], welche vorgegebenen Programmcode einer eigenen Sprache lesen und auswerten soll. Die Turingmaschine besitzt dabei nur ein Arbeitsband (workingTape) der Länge 10. Es existiert ein Lese/Schreibe-Kopf (head), der über das workingTape gleiten kann, dort Werte ändern und Werte ausgeben soll. Bewegt sich der Kopf über ein Ende des Arbeitsbandes hinaus, so taucht er auf der anderen Seite wieder auf (wenn also z.B der head von Feld 10 auf das 11. Feld bewegt wird, dann soll er wieder auf das 1. zeigen).&lt;br /&gt;
&lt;br /&gt;
Die Maschine selbst wird durch einen einfachen Programmcode gesteuert, der aus 5 Befehlen besteht:&lt;br /&gt;
* &#039;&#039;&#039;&amp;gt;&#039;&#039;&#039; Dieser Befehl bewegt den head ein Feld nach rechts&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;&#039;&#039;&#039; Dieser Befehl bewegt den head ein Feld nach links&lt;br /&gt;
* &#039;&#039;&#039;+&#039;&#039;&#039; Dieser Befehl erhöht den Wert des aktuellen Feldes um 1&lt;br /&gt;
* &#039;&#039;&#039;-&#039;&#039;&#039; Dieser Befehl verringert den Wert aktuelles Feldes um 1&lt;br /&gt;
* &#039;&#039;&#039;#&#039;&#039;&#039; Dieser Befehl gibt den aktuellen Wert auf der Konsole aus&lt;br /&gt;
&lt;br /&gt;
Der Programmcode der die Turingmaschine steuert, soll in einem Array namens &#039;&#039;sourceCode&#039;&#039; stehen, der Code soll Schritt für Schritt durchgegangen und ausgeführt werden. Auf dem Arbeitsband werden Werte vom Typ &#039;&#039;&#039;char&#039;&#039;&#039; gespeichert, die anfangs alle den Wert &#039;a&#039; haben. Der head zeigt am Anfang auf das erste Feld auf dem workingTape.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis 1:&#039;&#039;&#039; char-Werte werden intern als Zahlenwerte gespeichert, deshalb könnt ihr ohne Probleme sowas wie &#039;&#039;&#039;char example = &#039;a&#039;+1;&#039;&#039;&#039; schreiben. Wenn ihr wissen wollt, welche Zeichen durch welche Zahlen repräsentiert werden, dann schaut in die [[wikipedia:ASCII-Tabelle|ASCII-Tabelle]].&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet ihr auch in der Lage sein, mit eurer eigenen Turingmaschine ein &amp;quot;Hello World&amp;quot;-Programm zu schreiben. Wenn ihr eure Turingmaschine eigenständig erweitern wollt, dann schaut euch die Sprache [[wikipedia:Brainfuck|Brainfuck]] an. Brainfuck ist eine Programmiersprache, welche ähnlich arbeitet wie unsere Turingmaschine in dieser Aufgabe.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis 2:&#039;&#039;&#039; Zum Testen verwendet einfach diese Initialisierung der Variable Source-Code. Wenn ihr alles richtig gemacht habt, dann sollten die Buchstaben a, b  und c ausgegeben werden. Die Schreibweise mit den geschweiften Klammern und den Kommawerten legt automatisch ein Array an und füllt es mit den beschriebenen Werten (Deklaration &amp;amp; Initialisierung in einem Schritt):&lt;br /&gt;
 char[] sourceCode = {&#039;#&#039;, &#039;+&#039;, &#039;#&#039;, &#039;+&#039;, &#039;#&#039;};&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== FehlerKategorie ====&lt;br /&gt;
Um den Char um einen Wert zu erhöhen müsst ihr eure Variable zurück casten.&lt;br /&gt;
 char Example = (char)(&#039;a&#039;-1);&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Das stimmt nicht man kann auch das schreiben:&lt;br /&gt;
 char Example = &#039;a&#039; - 1;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Sorry wenn ich das so schreibe, aber das ist die erste Aufgabenstellung wo sich mir der Hintegrund, bzw. der Sinn nicht wirklich erschliesst, wäre jemand der das verstanden hat so freundlich das ganze ein wenig mehr zu erläutern? Das wäre ultranett :&amp;gt;.&lt;br /&gt;
-mw-&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Fehler in NetBeans:&lt;br /&gt;
 workingTape[head]=workingTape[head]+1;&lt;br /&gt;
funktioniert nicht! man muss explizit casten:&lt;br /&gt;
 workingTape[head]=(char)(workingTape[head]+1);&lt;br /&gt;
Mit javac dagegen funktionierts.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java]]&lt;br /&gt;
[[Kategorie:Java_Aufgaben]]&lt;/div&gt;</summary>
		<author><name>82.113.121.24</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Brainfuck&amp;diff=9205</id>
		<title>Javakurs/Übungsaufgaben/Brainfuck</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Brainfuck&amp;diff=9205"/>
		<updated>2009-03-17T16:09:41Z</updated>

		<summary type="html">&lt;p&gt;82.113.121.24: /* Aufgabenstellung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Einführung===&lt;br /&gt;
&lt;br /&gt;
Java ist eine komplexe und mächtige Programmiersprache mit der man viele informatische Probleme lösen kann. Doch wie weit kann man den Befehlssatz einer Sprache reduzieren ohne das diese die Eigenschaft verliert, beliebige mathematische Probleme zu lösen? Diese spezielle Eigenschaft wird Turingkomplettheit genannt. Alle Programmiersprachen sind für gewöhnlich turingkomplett, was bedeutet, dass sie jedes berechenbare Problem lösen können. Zu diesen Problemen zählen zum Beispiel sämtliche mathematische Probleme, aber auch Probleme die eher struktureller Natur sind, also auch das Suchen von Einträgen in einer Kontaktliste (nein, der Weltfrieden ist leider nicht berechenbar).&lt;br /&gt;
&lt;br /&gt;
[[wikipedia:Brainfuck|Brainfuck]] ist eine Programmiersprache, die ebenfalls turingkomplett ist, allerdings nur aus &#039;&#039;&#039;acht&#039;&#039;&#039; Befehlen besteht. In dieser Aufgabe könnt ihr selbst einen auf einer Turingmaschine basierten Interpreter für eine eigene kleine Sprache schreiben, die man in einen weiteren Schritt Brainfuck-kompatibel machen kann und damit auch turingkomplett.&lt;br /&gt;
&lt;br /&gt;
===Aufgabenstellung===&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe bauen wir uns eine simple [[wikipedia:Turingmaschine|Turingmaschine]], welche vorgegebenen Programmcode einer eigenen Sprache lesen und auswerten soll. Die Turingmaschine besitzt dabei nur ein Arbeitsband (workingTape) der Länge 10. Es existiert ein Lese/Schreibe-Kopf (head), der über das workingTape gleiten kann, dort Werte ändern und Werte ausgeben soll. Bewegt sich der Kopf über ein Ende des Arbeitsbandes hinaus, so taucht er auf der anderen Seite wieder auf (wenn also z.B der head von Feld 10 auf das 11. Feld bewegt wird, dann soll er wieder auf das 1. zeigen).&lt;br /&gt;
&lt;br /&gt;
Die Maschine selbst wird durch einen einfachen Programmcode gesteuert, der aus 5 Befehlen besteht:&lt;br /&gt;
* &#039;&#039;&#039;&amp;gt;&#039;&#039;&#039; Dieser Befehl bewegt den head ein Feld nach rechts&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;&#039;&#039;&#039; Dieser Befehl bewegt den head ein Feld nach links&lt;br /&gt;
* &#039;&#039;&#039;+&#039;&#039;&#039; Dieser Befehl erhöht den Wert des aktuellen Feldes um 1&lt;br /&gt;
* &#039;&#039;&#039;-&#039;&#039;&#039; Dieser Befehl verringert den Wert aktuelles Feldes um 1&lt;br /&gt;
* &#039;&#039;&#039;#&#039;&#039;&#039; Dieser Befehl gibt den aktuellen Wert auf der Konsole aus&lt;br /&gt;
&lt;br /&gt;
Der Programmcode der die Turingmaschine steuert, soll in einem Array namens &#039;&#039;sourceCode&#039;&#039; stehen, der Code soll Schritt für Schritt durchgegangen und ausgeführt werden. Auf dem Arbeitsband werden Werte vom Typ &#039;&#039;&#039;char&#039;&#039;&#039; gespeichert, die anfangs alle den Wert &#039;a&#039; haben. Der head zeigt am Anfang auf das erste Feld auf dem workingTape.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis 1:&#039;&#039;&#039; char-Werte werden intern als Zahlenwerte gespeichert, deshalb könnt ihr ohne Probleme sowas wie &#039;&#039;&#039;char example = &#039;a&#039;+1;&#039;&#039;&#039; schreiben. Wenn ihr wissen wollt, welche Zeichen durch welche Zahlen repräsentiert werden, dann schaut in die [[wikipedia:ASCII-Tabelle|ASCII-Tabelle]].&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet ihr auch in der Lage sein, mit eurer eigenen Turingmaschine ein &amp;quot;Hello World&amp;quot;-Programm zu schreiben. Wenn ihr eure Turingmaschine eigentständig erweitern wollt, dann schaut euch die Sprache [[wikipedia:Brainfuck|Brainfuck]] an. Brainfuck ist eine Programmiersprache, welche ähnlich arbeitet wie unsere Turingmaschine in dieser Aufgabe.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis 2:&#039;&#039;&#039; Zum Testen verwendet einfach diese Initialisierung der Variable Source-Code. Wenn ihr alles richtig gemacht habt, dann sollten die Buchstaben a, b  und c ausgegeben werden. Die Schreibweise mit den geschweiften Klammern und den Kommawerten legt automatisch ein Array an und füllt es mit den beschriebenen Werten (Deklaration &amp;amp; Initialisierung in einem Schritt):&lt;br /&gt;
 char[] sourceCode = {&#039;#&#039;, &#039;+&#039;, &#039;#&#039;, &#039;+&#039;, &#039;#&#039;};&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== FehlerKategorie ====&lt;br /&gt;
Um den Char um einen Wert zu erhöhen müsst ihr eure Variable zurück casten.&lt;br /&gt;
 char Example = (char)(&#039;a&#039;-1);&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Das stimmt nicht man kann auch das schreiben:&lt;br /&gt;
 char Example = &#039;a&#039; - 1;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Sorry wenn ich das so schreibe, aber das ist die erste Aufgabenstellung wo sich mir der Hintegrund, bzw. der Sinn nicht wirklich erschliesst, wäre jemand der das verstanden hat so freundlich das ganze ein wenig mehr zu erläutern? Das wäre ultranett :&amp;gt;.&lt;br /&gt;
-mw-&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Fehler in NetBeans:&lt;br /&gt;
 workingTape[head]=workingTape[head]+1;&lt;br /&gt;
funktioniert nicht! man muss explizit casten:&lt;br /&gt;
 workingTape[head]=(char)(workingTape[head]+1);&lt;br /&gt;
Mit javac dagegen funktionierts.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java]]&lt;br /&gt;
[[Kategorie:Java_Aufgaben]]&lt;/div&gt;</summary>
		<author><name>82.113.121.24</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rekursion_vs._Iteration&amp;diff=9641</id>
		<title>Javakurs/Übungsaufgaben/Rekursion vs. Iteration</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rekursion_vs._Iteration&amp;diff=9641"/>
		<updated>2009-03-17T15:58:55Z</updated>

		<summary type="html">&lt;p&gt;82.113.121.24: /* Aufgabenstellung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das Ziel dieser Aufgabe ist es, dass Ihr möglichst viele Eurer bisher erworbenen Java-Kenntnisse Schritt für Schritt anwendet. Abschließend sollt Ihr noch einen kleinen [[wikipedia:Benchmark|Benchmark]] einer rekursiv und iterativ implementierten Funktion durchführen.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabenstellung ===&lt;br /&gt;
Seht euch die Codebeispiele an und findet heraus, was der Code tut. Schreibt den Code anschließend neu, sodass der Code übersichtlicher und lesbarer ist.&lt;br /&gt;
&lt;br /&gt;
Gegeben ist folgende kleine Funktion:&lt;br /&gt;
&lt;br /&gt;
 public static int doSomethingClever(int a){&lt;br /&gt;
    int b;&lt;br /&gt;
    if(a &amp;lt;= 1){&lt;br /&gt;
       if(a == 1){&lt;br /&gt;
          b = calcSomethingNice(a);&lt;br /&gt;
       }else{&lt;br /&gt;
          b = getSomeSmartInt(a - 1);&lt;br /&gt;
       }&lt;br /&gt;
    }else{&lt;br /&gt;
       return theSmartestMethodsAlwaysNeedRidiculouslyLongNames(a);&lt;br /&gt;
    }&lt;br /&gt;
    return b;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public static int getSomeSmartInt(int c){&lt;br /&gt;
    return ++c;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public static int calcSomethingNice(int d){&lt;br /&gt;
    int i = 1;&lt;br /&gt;
    for(i = d * 11; i &amp;gt; d; i--){&lt;br /&gt;
       i--;&lt;br /&gt;
    }&lt;br /&gt;
    return i;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public static int theSmartestMethodsAlwaysNeedRidiculouslyLongNames(int e){&lt;br /&gt;
    int container = doSomethingClever(e - 1);&lt;br /&gt;
    return container + doSomethingClever(e - 2);&lt;br /&gt;
 }&lt;br /&gt;
   &lt;br /&gt;
Offensichtlich ist hier programmiertechnisch einiges schief gegangen. Denn obwohl der Code richtig funktioniert, ist er nur schwer leserlich. Folgende Fehler wurden gemacht:&lt;br /&gt;
&lt;br /&gt;
*nichtssagende Benennung der Variablen und Methoden,&lt;br /&gt;
*keine Kommentare,&lt;br /&gt;
*übertriebene Auslagerung in Extra-Methoden.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die obige Funktionalität ist rekursiv[http://de.wikipedia.org/wiki/Rekursion] implementiert.&lt;br /&gt;
&lt;br /&gt;
All das sollt Ihr jetzt schrittweise ändern:&lt;br /&gt;
&lt;br /&gt;
#Versucht, ohne den PC mit einigen Handsimulationen herauszufinden, was &amp;lt;code&amp;gt;doSomethingClever&amp;lt;/code&amp;gt; eigentlich berechnet.&lt;br /&gt;
#* Hinweis: Beginnt mit kleinen Zahlen wie 0, 1, 2 oder 3 und macht mehrere Durchgänge.&lt;br /&gt;
#* Tipp: Es wird stets das n-te Glied einer bekannten Zahlenfolge berechnet.&lt;br /&gt;
#Integriert zuerst die beiden Hilfsfunktionen &amp;lt;code&amp;gt;getSomeSmartInt&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;calcSomethingNice&amp;lt;/code&amp;gt; in die Hauptfunktion, da beide ziemlich überflüssig sind.&lt;br /&gt;
#Löst die verschachtelte Rekursion von &amp;lt;code&amp;gt;doSomethingClever&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;theSmartest...&amp;lt;/code&amp;gt; auf.&lt;br /&gt;
#Lasst Euch &amp;quot;sprechende&amp;quot; Namen sowohl für die Variablen, Methode(n) und als auch die Klasse einfallen.&lt;br /&gt;
#Fügt ausreichend viele und prägnante Kommentare hinzu, bis das Programm für Euch gut lesbar ist.&lt;br /&gt;
#&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; Holt Euch nun einen &#039;&#039;&#039;Tutor&#039;&#039;&#039; ran, zeigt ihm Euer Programm und diskutiert die Lesbarkeit des Codes. Er kann euch sicherlich nützliche Tipps geben, was Ihr in Zukunft beim Programmieren unbedingt beachten solltet.&lt;br /&gt;
&lt;br /&gt;
== Eine Iterative Alternative ==&lt;br /&gt;
&lt;br /&gt;
Schreibt nun ein Programm, das die gleiche Zahlenreihe nicht-rekursiv berechnet. Verwendet dazu ein Array von Integern und folgende Idee: &lt;br /&gt;
* Initialisiert ein Array, das alle Folgenglieder (bei 0 anfangend) bis zum Gesuchten aufnehmen kann.&lt;br /&gt;
* Berechnet die Folgenglieder in einer Schleife Eurer Wahl aufsteigend bei 0 beginnend und speichert sie in dem Array wie folgt: Folgenglied 0 steht an Position 0 im Array, Folgenglied 1 steht an Position 1 im Array, usw.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Wenn Ihr mit der Programmidee oder der Implementierung Probleme habt, zögert nicht, einen Tutor zu fragen.&lt;br /&gt;
&lt;br /&gt;
== Benchmark und Auswertung ==&lt;br /&gt;
&lt;br /&gt;
Schreibt nun ein letztes kurzes Programm, das zuerst die Folgenglieder 5, 10, 15, 20, 30 und 40 iterativ und dann noch einmal rekursiv berechnet und sofort auf der Console ausdruckt.&lt;br /&gt;
&lt;br /&gt;
Diskutiert die Geschwindigkeitsunterschiede und die möglichen Vorteile der iterativen Implementation mit einem Tutor.&lt;br /&gt;
&lt;br /&gt;
Tipp: Sollte Euer iteratives Programm nicht binnen weniger Sekunden sämtliche Zahlen berechnet haben, lasst unbedingt einen Tutor kurz drüberschauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java]]&lt;br /&gt;
[[Kategorie:Java_Aufgaben]]&lt;/div&gt;</summary>
		<author><name>82.113.121.24</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rekursion_vs._Iteration&amp;diff=9640</id>
		<title>Javakurs/Übungsaufgaben/Rekursion vs. Iteration</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rekursion_vs._Iteration&amp;diff=9640"/>
		<updated>2009-03-17T15:54:47Z</updated>

		<summary type="html">&lt;p&gt;82.113.121.24: /* Aufgabenstellung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das Ziel dieser Aufgabe ist es, dass Ihr möglichst viele Eurer bisher erworbenen Java-Kenntnisse Schritt für Schritt anwendet. Abschließend sollt Ihr noch einen kleinen [[wikipedia:Benchmark|Benchmark]] einer rekursiv und iterativ implementierten Funktion durchführen.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabenstellung ===&lt;br /&gt;
Seht euch die Codebeispiele an und findet heraus, was der Code tut. Schreibt den Code anschließend neu, sodass der Code übersichtlicher und lesbarer ist.&lt;br /&gt;
&lt;br /&gt;
Gegeben ist folgende kleine Funktion:&lt;br /&gt;
&lt;br /&gt;
 public static int doSomethingClever(int a){&lt;br /&gt;
    int b;&lt;br /&gt;
    if(a &amp;lt;= 1){&lt;br /&gt;
       if(a == 1){&lt;br /&gt;
          b = calcSomethingNice(a);&lt;br /&gt;
       }else{&lt;br /&gt;
          b = getSomeSmartInt(a - 1);&lt;br /&gt;
       }&lt;br /&gt;
    }else{&lt;br /&gt;
       return theSmartestMethodsAlwaysNeedRidiculouslyLongNames(a);&lt;br /&gt;
    }&lt;br /&gt;
    return b;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public static int getSomeSmartInt(int c){&lt;br /&gt;
    return ++c;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public static int calcSomethingNice(int d){&lt;br /&gt;
    int i = 1;&lt;br /&gt;
    for(i = d * 11; i &amp;gt; d; i--){&lt;br /&gt;
       i--;&lt;br /&gt;
    }&lt;br /&gt;
    return i;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public static int theSmartestMethodsAlwaysNeedRidiculouslyLongNames(int e){&lt;br /&gt;
    int container = doSomethingClever(e - 1);&lt;br /&gt;
    return container + doSomethingClever(e - 2);&lt;br /&gt;
 }&lt;br /&gt;
   &lt;br /&gt;
Offensichtlich ist hier programmiertechnisch einiges schief gegangen. Denn obwohl der Code richtig funktioniert, ist er nur schwer leserlich. Folgende Fehler wurden gemacht:&lt;br /&gt;
&lt;br /&gt;
*nichtssagende Benennung der Variablen und Methoden,&lt;br /&gt;
*keine Kommentare,&lt;br /&gt;
*übertriebene Auslagerung in Extra-Methoden.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die obige Funktionalität ist [rekursiv]http://de.wikipedia.org/wiki/Rekursion implementiert.&lt;br /&gt;
&lt;br /&gt;
All das sollt Ihr jetzt schrittweise ändern:&lt;br /&gt;
&lt;br /&gt;
#Versucht, ohne den PC mit einigen Handsimulationen herauszufinden, was &amp;lt;code&amp;gt;doSomethingClever&amp;lt;/code&amp;gt; eigentlich berechnet.&lt;br /&gt;
#* Hinweis: Beginnt mit kleinen Zahlen wie 0, 1, 2 oder 3 und macht mehrere Durchgänge.&lt;br /&gt;
#* Tipp: Es wird stets das n-te Glied einer bekannten Zahlenfolge berechnet.&lt;br /&gt;
#Integriert zuerst die beiden Hilfsfunktionen &amp;lt;code&amp;gt;getSomeSmartInt&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;calcSomethingNice&amp;lt;/code&amp;gt; in die Hauptfunktion, da beide ziemlich überflüssig sind.&lt;br /&gt;
#Löst die verschachtelte Rekursion von &amp;lt;code&amp;gt;doSomethingClever&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;theSmartest...&amp;lt;/code&amp;gt; auf.&lt;br /&gt;
#Lasst Euch &amp;quot;sprechende&amp;quot; Namen sowohl für die Variablen, Methode(n) und als auch die Klasse einfallen.&lt;br /&gt;
#Fügt ausreichend viele und prägnante Kommentare hinzu, bis das Programm für Euch gut lesbar ist.&lt;br /&gt;
#&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; Holt Euch nun einen &#039;&#039;&#039;Tutor&#039;&#039;&#039; ran, zeigt ihm Euer Programm und diskutiert die Lesbarkeit des Codes. Er kann euch sicherlich nützliche Tipps geben, was Ihr in Zukunft beim Programmieren unbedingt beachten solltet.&lt;br /&gt;
&lt;br /&gt;
== Eine Iterative Alternative ==&lt;br /&gt;
&lt;br /&gt;
Schreibt nun ein Programm, das die gleiche Zahlenreihe nicht-rekursiv berechnet. Verwendet dazu ein Array von Integern und folgende Idee: &lt;br /&gt;
* Initialisiert ein Array, das alle Folgenglieder (bei 0 anfangend) bis zum Gesuchten aufnehmen kann.&lt;br /&gt;
* Berechnet die Folgenglieder in einer Schleife Eurer Wahl aufsteigend bei 0 beginnend und speichert sie in dem Array wie folgt: Folgenglied 0 steht an Position 0 im Array, Folgenglied 1 steht an Position 1 im Array, usw.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Wenn Ihr mit der Programmidee oder der Implementierung Probleme habt, zögert nicht, einen Tutor zu fragen.&lt;br /&gt;
&lt;br /&gt;
== Benchmark und Auswertung ==&lt;br /&gt;
&lt;br /&gt;
Schreibt nun ein letztes kurzes Programm, das zuerst die Folgenglieder 5, 10, 15, 20, 30 und 40 iterativ und dann noch einmal rekursiv berechnet und sofort auf der Console ausdruckt.&lt;br /&gt;
&lt;br /&gt;
Diskutiert die Geschwindigkeitsunterschiede und die möglichen Vorteile der iterativen Implementation mit einem Tutor.&lt;br /&gt;
&lt;br /&gt;
Tipp: Sollte Euer iteratives Programm nicht binnen weniger Sekunden sämtliche Zahlen berechnet haben, lasst unbedingt einen Tutor kurz drüberschauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java]]&lt;br /&gt;
[[Kategorie:Java_Aufgaben]]&lt;/div&gt;</summary>
		<author><name>82.113.121.24</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2009&amp;diff=11558</id>
		<title>Javakurs2009</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2009&amp;diff=11558"/>
		<updated>2009-03-17T15:42:35Z</updated>

		<summary type="html">&lt;p&gt;82.113.121.24: /* Teilnahmevorraussetzungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&#039;&#039;&#039;[[Javakurs/Übungsaufgaben | --&amp;gt; Zu den Übungsaufgaben &amp;lt;-- ]]&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie vor jedem Sommersemester findet auch in diesen Winterferien wieder ein Javakurs statt.Er wird aus dem OWL Programm der TU Berlin finanziert.&lt;br /&gt;
&lt;br /&gt;
== Termine == &lt;br /&gt;
Der Javakurs findet vom Dienstag, den 24.03.2009 bis einschließlich Freitag,den 27.03.2009 statt.&lt;br /&gt;
&lt;br /&gt;
Die Vorlesungen finden jeweils im H1058 statt. Übungen im TEL106 und TEL206.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
 |- bgcolor=&amp;quot;#D8D8D8&amp;quot;&lt;br /&gt;
 !Zeit&lt;br /&gt;
 !Di 24.03.2009&lt;br /&gt;
 !Mi 25.03.2009&lt;br /&gt;
 !Do 26.03.2009&lt;br /&gt;
 !Fr 27.03.2009&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 |10:00-11:00&lt;br /&gt;
 |bgcolor=&amp;quot;#E8E8E8&amp;quot; |[[Javakurs 2009/Vortrag01 | Vortrag]]&lt;br /&gt;
 |bgcolor=&amp;quot;#E8E8E8&amp;quot; |[[Javakurs 2009/Vortrag03 | Vortrag]]&lt;br /&gt;
 |bgcolor=&amp;quot;#E8E8E8&amp;quot; |[[Javakurs 2009/Vortrag04 | Vortrag]]&lt;br /&gt;
 |bgcolor=&amp;quot;#E8E8E8&amp;quot; |[[Javakurs 2009/Vortrag06 | Vortrag]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 |11:00-12:00&lt;br /&gt;
 |rowspan=2 |Übung&lt;br /&gt;
 |rowspan=2 |Übung&lt;br /&gt;
 |rowspan=2 |Übung&lt;br /&gt;
 |rowspan=2 |Übung&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 |12.00-13:00&lt;br /&gt;
 |- bgcolor=&amp;quot;#FFFFFF&amp;quot;&lt;br /&gt;
 |13:00-14:00&lt;br /&gt;
 |Mittagspause&lt;br /&gt;
 |Mittagspause&lt;br /&gt;
 |Mittagspause&lt;br /&gt;
 |Mittagspause&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 |14:00-15:00&lt;br /&gt;
 |[[Javakurs 2009/Vortrag02 | Vortrag]]&lt;br /&gt;
 | bgcolor=&amp;quot;#F5F5F5&amp;quot; rowspan=3 |Übung&lt;br /&gt;
 |[[Javakurs 2009/Vortrag05 | Vortrag]]&lt;br /&gt;
 | bgcolor=&amp;quot;#F5F5F5&amp;quot; rowspan=3 |Übung&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 |15:00-16:00&lt;br /&gt;
 |rowspan=2 | Übung&lt;br /&gt;
 |rowspan=2 | Übung&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 |16:00-17:00&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Warum teilnehmen? ==&lt;br /&gt;
Der Javakurs richtet sich an Programmier-Anfänger, die gerne Java lernen möchten. Wir haben uns zum Ziel gesetzt, möglichst gut verständliche und vor allem motivierende Lehre zu machen weil wir glauben, dass die Uni-Lehre manchmal zu langweilig ist und deshalb viele Studenten unnötigerweise Probleme haben. Lernen sollte Spass machen, nicht anstrengen.&lt;br /&gt;
&lt;br /&gt;
Hauptsächlich hoffen wir damit den Teilnehmern von MPGI2 einen Kickstart für ihre Vorlesung zu geben, weil es je nach Dozent und Zuhörer manchmal zu schnell und manchmal zu langsam geht. Allerdings steht der Kurs jedem offen!&lt;br /&gt;
&lt;br /&gt;
Wenn du also einfach gerne Java lernen möchtest, dann bist du herzlich eingeladen!&lt;br /&gt;
&lt;br /&gt;
Der Kurs beruht ursprünglich auf der Initiative einiger StudentInnen und wissenschaftlicher Mitarbeiter. Er ist aus der Erfahrung entstanden, dass viele Informatiker in den Übungsaufgaben des 2. Semesters nicht unbedingt Probleme mit dem Stoff des Semesters selbst haben, sich jedoch sehr beim Erlernen der Sprache Java quälen. Die Situation hat sich seitdem zwar etwas geändert, aber vielen, gerade Studenten aus Informatik-fremden Studiengängen ist immer noch die Sprache selbst und nicht die Algorithmen eine Hürde.&lt;br /&gt;
&lt;br /&gt;
Was ursprünglich als rein ehrenamtliches Projekt begonnen hat wird seit 1 Jahr vom OWL-Programm der TU-Berlin gefördert. Der Kurs wird wie im letzten Jahr komplett von engagierten StudentInnen geplant und durchgeführt. Insgesamt stehen euch in den Übungen fünfzehn TutorInnen mit Rat und Tat zur Seite, im Schnitt also einer für fünf bis zehn Studentierende. Aus den Reihen der TutorInnen rekrutieren sich auch unsere Vortragenden in den Vorlesungen. Inzwischen haben wir einiges an Erfahrung sammeln können, überarbeiten aber jedes Jahr die Vorträge neu und unterziehen sie einem Peer-Review Prozess. Wir hoffen, dass wir damit einen möglichst hohe Qualität bieten können.&lt;br /&gt;
&lt;br /&gt;
Der Kurs kann in der Kürze der Zeit bei weitem nicht alle Aspekte von Java beleuchten, hierfür sind weiterführende Lehrveranstaltungen und das Lehrpersonal der Uni da. Er stellt jedoch eine gute Starthilfe dar und hilft vor allem StudentInnen denen der Umgang mit Programmiersprachen noch ein wenig fremd ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Es gibt für diesen Kurs keinerlei Scheine.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt auch keinerlei Anwesenheitspflicht. Dementsprechend entspannt ist allerdings auch die Atmosphäre. :)&lt;br /&gt;
&lt;br /&gt;
== Orga-Team ==&lt;br /&gt;
* Kai&lt;br /&gt;
* Mario&lt;br /&gt;
* Sebastian D.&lt;br /&gt;
* Thaddäus&lt;br /&gt;
&lt;br /&gt;
== Anmeldung ==&lt;br /&gt;
Zum Javakurs muss man sich wie immer&lt;br /&gt;
[https://www.freitagsrunde.org/~florian/javakurs09/ hier anmelden]&lt;br /&gt;
(unverschlüsselt [http://www.freitagsrunde.org/~florian/javakurs09/ hier]).&lt;br /&gt;
&lt;br /&gt;
== Teilnahmevoraussetzungen ==&lt;br /&gt;
Der Javakurs ist für absolute Programmieranfänger konzipiert. Wir setzen keinerlei Programmierkenntnisse voraus. Was wir allerdings vorraussetzen sind rudimentäre Kentnisse wie man einen Computer bedient. Wir bringen euch nicht bei wie ihr eine Datei öffnet oder einen Browser bedient.&lt;br /&gt;
&lt;br /&gt;
Die zweite Voraussetzung ist eine Möglichkeit bzw. ein Account um in den Übungsräumen zu arbeiten. Die Übungen finden in den Rechnerräumen des IRB statt. In diese Rechner kann man sich mit einem TubIT- oder CS-Account einloggen. Wenn du noch keinen TubIT oder CS-Account hast bist du vermutlich auch nicht Student an der TU Berlin. Dann ist die einfachste Lösung für Dich deinen eigenen Laptop mitzubringen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Javakurs2008|alte Seiten des Javakurses 2008]]&lt;br /&gt;
* [[Javakurs 2009/Orgaportal|Orga-Portal]]&lt;br /&gt;
* [[Javakurs 2009/Vortragendenportal|Vortragenden-Portal]]&lt;br /&gt;
* [[Javakurs 2009/Tutorenportal|Tutoren-Portal]]&lt;br /&gt;
* [[Javakurs/Übungsaufgaben|Übungsaufgaben]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Veranstaltungen der Freitagsrunde]]&lt;/div&gt;</summary>
		<author><name>82.113.121.24</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2009&amp;diff=11557</id>
		<title>Javakurs2009</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2009&amp;diff=11557"/>
		<updated>2009-03-17T15:37:29Z</updated>

		<summary type="html">&lt;p&gt;82.113.121.24: /* Teilnahmevorraussetzungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&#039;&#039;&#039;[[Javakurs/Übungsaufgaben | --&amp;gt; Zu den Übungsaufgaben &amp;lt;-- ]]&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie vor jedem Sommersemester findet auch in diesen Winterferien wieder ein Javakurs statt.Er wird aus dem OWL Programm der TU Berlin finanziert.&lt;br /&gt;
&lt;br /&gt;
== Termine == &lt;br /&gt;
Der Javakurs findet vom Dienstag, den 24.03.2009 bis einschließlich Freitag,den 27.03.2009 statt.&lt;br /&gt;
&lt;br /&gt;
Die Vorlesungen finden jeweils im H1058 statt. Übungen im TEL106 und TEL206.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
 |- bgcolor=&amp;quot;#D8D8D8&amp;quot;&lt;br /&gt;
 !Zeit&lt;br /&gt;
 !Di 24.03.2009&lt;br /&gt;
 !Mi 25.03.2009&lt;br /&gt;
 !Do 26.03.2009&lt;br /&gt;
 !Fr 27.03.2009&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 |10:00-11:00&lt;br /&gt;
 |bgcolor=&amp;quot;#E8E8E8&amp;quot; |[[Javakurs 2009/Vortrag01 | Vortrag]]&lt;br /&gt;
 |bgcolor=&amp;quot;#E8E8E8&amp;quot; |[[Javakurs 2009/Vortrag03 | Vortrag]]&lt;br /&gt;
 |bgcolor=&amp;quot;#E8E8E8&amp;quot; |[[Javakurs 2009/Vortrag04 | Vortrag]]&lt;br /&gt;
 |bgcolor=&amp;quot;#E8E8E8&amp;quot; |[[Javakurs 2009/Vortrag06 | Vortrag]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 |11:00-12:00&lt;br /&gt;
 |rowspan=2 |Übung&lt;br /&gt;
 |rowspan=2 |Übung&lt;br /&gt;
 |rowspan=2 |Übung&lt;br /&gt;
 |rowspan=2 |Übung&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 |12.00-13:00&lt;br /&gt;
 |- bgcolor=&amp;quot;#FFFFFF&amp;quot;&lt;br /&gt;
 |13:00-14:00&lt;br /&gt;
 |Mittagspause&lt;br /&gt;
 |Mittagspause&lt;br /&gt;
 |Mittagspause&lt;br /&gt;
 |Mittagspause&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 |14:00-15:00&lt;br /&gt;
 |[[Javakurs 2009/Vortrag02 | Vortrag]]&lt;br /&gt;
 | bgcolor=&amp;quot;#F5F5F5&amp;quot; rowspan=3 |Übung&lt;br /&gt;
 |[[Javakurs 2009/Vortrag05 | Vortrag]]&lt;br /&gt;
 | bgcolor=&amp;quot;#F5F5F5&amp;quot; rowspan=3 |Übung&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 |15:00-16:00&lt;br /&gt;
 |rowspan=2 | Übung&lt;br /&gt;
 |rowspan=2 | Übung&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 |16:00-17:00&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Warum teilnehmen? ==&lt;br /&gt;
Der Javakurs richtet sich an Programmier-Anfänger, die gerne Java lernen möchten. Wir haben uns zum Ziel gesetzt, möglichst gut verständliche und vor allem motivierende Lehre zu machen weil wir glauben, dass die Uni-Lehre manchmal zu langweilig ist und deshalb viele Studenten unnötigerweise Probleme haben. Lernen sollte Spass machen, nicht anstrengen.&lt;br /&gt;
&lt;br /&gt;
Hauptsächlich hoffen wir damit den Teilnehmern von MPGI2 einen Kickstart für ihre Vorlesung zu geben, weil es je nach Dozent und Zuhörer manchmal zu schnell und manchmal zu langsam geht. Allerdings steht der Kurs jedem offen!&lt;br /&gt;
&lt;br /&gt;
Wenn du also einfach gerne Java lernen möchtest, dann bist du herzlich eingeladen!&lt;br /&gt;
&lt;br /&gt;
Der Kurs beruht ursprünglich auf der Initiative einiger StudentInnen und wissenschaftlicher Mitarbeiter. Er ist aus der Erfahrung entstanden, dass viele Informatiker in den Übungsaufgaben des 2. Semesters nicht unbedingt Probleme mit dem Stoff des Semesters selbst haben, sich jedoch sehr beim Erlernen der Sprache Java quälen. Die Situation hat sich seitdem zwar etwas geändert, aber vielen, gerade Studenten aus Informatik-fremden Studiengängen ist immer noch die Sprache selbst und nicht die Algorithmen eine Hürde.&lt;br /&gt;
&lt;br /&gt;
Was ursprünglich als rein ehrenamtliches Projekt begonnen hat wird seit 1 Jahr vom OWL-Programm der TU-Berlin gefördert. Der Kurs wird wie im letzten Jahr komplett von engagierten StudentInnen geplant und durchgeführt. Insgesamt stehen euch in den Übungen fünfzehn TutorInnen mit Rat und Tat zur Seite, im Schnitt also einer für fünf bis zehn Studentierende. Aus den Reihen der TutorInnen rekrutieren sich auch unsere Vortragenden in den Vorlesungen. Inzwischen haben wir einiges an Erfahrung sammeln können, überarbeiten aber jedes Jahr die Vorträge neu und unterziehen sie einem Peer-Review Prozess. Wir hoffen, dass wir damit einen möglichst hohe Qualität bieten können.&lt;br /&gt;
&lt;br /&gt;
Der Kurs kann in der Kürze der Zeit bei weitem nicht alle Aspekte von Java beleuchten, hierfür sind weiterführende Lehrveranstaltungen und das Lehrpersonal der Uni da. Er stellt jedoch eine gute Starthilfe dar und hilft vor allem StudentInnen denen der Umgang mit Programmiersprachen noch ein wenig fremd ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Es gibt für diesen Kurs keinerlei Scheine.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt auch keinerlei Anwesenheitspflicht. Dementsprechend entspannt ist allerdings auch die Atmosphäre. :)&lt;br /&gt;
&lt;br /&gt;
== Orga-Team ==&lt;br /&gt;
* Kai&lt;br /&gt;
* Mario&lt;br /&gt;
* Sebastian D.&lt;br /&gt;
* Thaddäus&lt;br /&gt;
&lt;br /&gt;
== Anmeldung ==&lt;br /&gt;
Zum Javakurs muss man sich wie immer&lt;br /&gt;
[https://www.freitagsrunde.org/~florian/javakurs09/ hier anmelden]&lt;br /&gt;
(unverschlüsselt [http://www.freitagsrunde.org/~florian/javakurs09/ hier]).&lt;br /&gt;
&lt;br /&gt;
== Teilnahmevorraussetzungen ==&lt;br /&gt;
Der Javakurs ist für absolute Programmieranfänger konzipiert. Wir setzen keinerlei Programmierkenntnisse voraus. Was wir allerdings vorraussetzen sind rudimentäre Kentnisse wie man einen Computer bedient. Wir bringen euch nicht bei wie ihr eine Datei öffnet oder einen Browser bedient.&lt;br /&gt;
&lt;br /&gt;
Die zweite Vorraussetzung ist eine Möglichkeit bzw. ein Account um in den Übungsräumen zu arbeiten. Die Übungen finden in den Rechnerräumen des IRB statt. In diese Rechner kann man sich mit einem TubIT- oder CS-Account einloggen. Wenn du noch keinen TubIT oder CS-Account hast bist du vermutlich auch nicht Student an der TU Berlin. Dann ist die einfachste Lösung für Dich deinen eigenen Laptop mitzubringen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[Javakurs2008|alte Seiten des Javakurses 2008]]&lt;br /&gt;
* [[Javakurs 2009/Orgaportal|Orga-Portal]]&lt;br /&gt;
* [[Javakurs 2009/Vortragendenportal|Vortragenden-Portal]]&lt;br /&gt;
* [[Javakurs 2009/Tutorenportal|Tutoren-Portal]]&lt;br /&gt;
* [[Javakurs/Übungsaufgaben|Übungsaufgaben]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Veranstaltungen der Freitagsrunde]]&lt;/div&gt;</summary>
		<author><name>82.113.121.24</name></author>
	</entry>
</feed>