<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>socialnerds.org</title>
	<atom:link href="http://www.socialnerds.org/feed" rel="self" type="application/rss+xml" />
	<link>http://www.socialnerds.org</link>
	<description>less can be hell of a lot more.</description>
	<lastBuildDate>Fri, 04 May 2012 07:52:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>A Perfect Circle &#8211; Imagine</title>
		<link>http://www.socialnerds.org/archives/487</link>
		<comments>http://www.socialnerds.org/archives/487#comments</comments>
		<pubDate>Fri, 04 May 2012 07:49:45 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[music]]></category>
		<category><![CDATA[a perfect circle]]></category>
		<category><![CDATA[tomahawk]]></category>

		<guid isPermaLink="false">http://www.socialnerds.org/?p=487</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://toma.hk/embed.php?artist=A+Perfect+Circle&amp;title=Imagine" frameborder="0" width="160" height="200"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.socialnerds.org/archives/487/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software Entwicklung 2 – 3</title>
		<link>http://foop.at/software-entwicklung-2-3/</link>
		<comments>http://foop.at/software-entwicklung-2-3/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 09:14:14 +0000</pubDate>
		<dc:creator>dominik</dc:creator>
				<category><![CDATA[JKU]]></category>
		<category><![CDATA[Softwareentwicklung 2 VO]]></category>

		<guid isPermaLink="false">http://foop.at/?p=139</guid>
		<description><![CDATA[Abstrakte Klassen bei Handschrift in Klammern einschließen. sobald eine abstrakte Methode, ist die Klasse als abstrakt zu kennzeichnen. Interfaces nicht static (weil static methoden statisch gebunden sind; d.h sie können nicht überschrieben werden) auch Konstanten erlaubt (eher selten); Interface Methoden können implementiert oder geerbt werden, durch abstrakte Methoden implementiert werden. typtest: instanceOf() in UML &#060;&#060;interface&#062;&#062; [...] <a href="http://foop.at/software-entwicklung-2-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Abstrakte Klassen</p>
<p>bei Handschrift in Klammern einschließen.<br />
sobald eine abstrakte Methode, ist die Klasse als abstrakt zu kennzeichnen.</p>
<p>Interfaces</p>
<p>nicht static (weil static methoden statisch gebunden sind; d.h sie können nicht überschrieben werden)<br />
auch Konstanten erlaubt (eher selten);</p>
<p>Interface Methoden können implementiert oder geerbt werden, durch abstrakte Methoden implementiert werden.</p>
<p>typtest: instanceOf()</p>
<p>in UML &lt;&lt;interface&gt;&gt;</p>
<p>Subclassing vs Subtyping<br />
Subclassing: &#8220;Codevererbung&#8221;<br />
Subtyping: &#8220;Schnittstellenvererbung&#8221;; zB Interfaces</p>
<p>Werden verwendet um unverwandte Klassen gleich behandeln zu können.</p>
<p>Interfaces vs. abstrakte Klassen:<br />
Abstrakte Klassen können auch konkrete Methoden und Datenfelder enthalten; Interfaces nicht<br />
Abstrakte Klassen erlauben keine Mehrfachvererbung</p>
<p>Interface compeareTo; negative 0 oder positiv<br />
Interface Comparator;  Wenn man Objekete vergleichen will deren Klasse nicht Comparable implementiert.<br />
Interface java.lang.Runnable<br />
Macht eine Klasse zu einem Thread<br />
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://foop.at/software-entwicklung-2-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Algo 1 – 3</title>
		<link>http://foop.at/algo-1-3/</link>
		<comments>http://foop.at/algo-1-3/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 10:43:24 +0000</pubDate>
		<dc:creator>dominik</dc:creator>
				<category><![CDATA[Algorithmen und Datenstrukturen 1]]></category>
		<category><![CDATA[JKU]]></category>

		<guid isPermaLink="false">http://foop.at/?p=136</guid>
		<description><![CDATA[Bestandteile des Anfangs- und Endzustands Vorsicht bei globalen Variablen &#8211; side effects. Eingangs-, Ausgangs- und Übergangsgröße Übergangsgrößen werden geändert  Eingangsgrößen werden benutzt Ausgangsgrößen werden erzeugt    irrelevant, hat in der Spezifikation nichts zu suchen Dateien als Bestandteile der Schnittstelle Dateiname Pfad Format Dateistruktur Satzaaufbau Feldinhalte: Datentypen, Wertebereiche, Bedeutung Zustands- und Überführungsschema Eingabe -&#062; f -&#062; [...] <a href="http://foop.at/algo-1-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Bestandteile des Anfangs- und Endzustands</p>
<p>Vorsicht bei globalen Variablen &#8211; side effects.</p>
<p>Eingangs-, Ausgangs- und Übergangsgröße</p>
<p>Übergangsgrößen werden geändert  Eingangsgrößen werden benutzt</p>
<p>Ausgangsgrößen werden erzeugt    irrelevant, hat in der Spezifikation nichts zu suchen</p>
<p>Dateien als Bestandteile der Schnittstelle<br />
Dateiname<br />
Pfad<br />
Format<br />
Dateistruktur<br />
Satzaaufbau<br />
Feldinhalte: Datentypen, Wertebereiche, Bedeutung</p>
<p>Zustands- und Überführungsschema<br />
Eingabe -&gt; f -&gt; Ausgabe<br />
salopp Eingabe + Funktion = Ausgabe<br />
Aus zwei Teilen ergibt sich der dritte.</p>
<p>Zustandsschema:<br />
statisch<br />
gegebene Eingabe und gewünstche Ausgabe<br />
Wie scheint nicht auf; abstrakt; Implementierer erfüllt Lücke;<br />
schwierig zu spezifizieren (alle zustände sind anzugeben);<br />
z.B: p,q e ℝ; ges.: x&#8230;..<br />
wenn Anfangs- und Endzustand gut formal beschrieben werden können; es nur wenige Wege zum ZIeel gibt.</p>
<p>Überführungsschema:<br />
gegebene Eingabe und auszuführende Funktion<br />
dynamisch; Ausgabe ergibt sich aus Funktion<br />
Beschreibt den Weg<br />
oft genauer<br />
Sonderfälle leichter zu erkennen<br />
Gibt Hinweise auf den Lösungsweg<br />
Gefahr der Überspezifikation; Beschränkt Implementierer; kann bessere Lösungswege vereiteln<br />
Beispiel: Lösungsformel quadratische Gleichung<br />
wenn Aktion wichtiger als Ergebnis</p>
<p>In der Praxis oft vermischung der 2 Formen</p>
<p>Abstraktionsgard:</p>
<p>verbal &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- formal<br />
Ungangssprache unscharf                mathematische Ausdrücken präzise<br />
mehrdeutig                                         eindeutig, widerspruchsfrei<br />
verständlich                               schwer verständlic<br />
(Hausverstand) (Experten)<br />
ausschweifend knapp</p>
<p>Beispiel<br />
oder: umgangsprachlich (exklusiv), mathematisch(inklusiv)<br />
bei Wind und Regen oder Schnee</p>
<p>Algorithmen mit Gedächtnis<br />
weichen von klassischer Definition ab</p>
<p>Trennung in zwei Funktionen<br />
1. Berechnung des Ergebnisses<br />
2. Berechung des Folgezustands (Zustandsüberführungsfunktion)</p>
<p>Mealy vs Morreautomaten</p>
<p>Wie wird der Anfangszustand eingestellt?</p>
<p>Wie wird der Zustand von Aufruf zu Aufruf gerettet?</p>
<p>statische vs. dynamische Variablen<br />
dynamisch: bei Prozedureintritt erzeugt, danch undefiniert<br />
statisch: bei Porgammstart erzeugt; von Prozeduren unabhängig</p>
<p>lokal vs globale Variablen<br />
lokal: nur in der aktuellen Prozedur bekannt<br />
global: überall bekannt</p>
<p>Dynamische Voribalen sind immer lokal<br />
Globale Variablen sind immer statisch<br />
Lokale Varablen können auch statisch sein.</p>
<p>Lokale statischen Variablen in Jana:<br />
A(&#8230;.) {<br />
static int x = 0 // Wertzuweisung passiert nur einmal<br />
&#8230;<br />
}</p>
<p>Zustandsgrößen in realen Progarmmierprachen (in Jana-Notation dargestellt)<br />
in C, C++ wie in JANA</p>
<p>in Java: außerhalb des Algorithmus in der Klasse<br />
ein privates Gedächtnis nur für einen Algorithmus in Java nicht möglic</p>
<p>(6) Ideal in objektorientierten Sprachen</p>
<p>Algorithemn mit Gedächtnis haben &#8220;side effects&#8221;<br />
Wirkung Größen, die nicht in der PArameterleste aufscheinen<br />
Reihenfolge der Aufrufe können eine Rolle spielen</p>
<p>if (A()&amp;&amp;B() || !A()&amp;&amp;!B()) {&#8230;}<br />
problematisch wenn A() od. B() mit Gedächtnis sind und Zustand wechseln<br />
sicherheitshalber in Variable zwischenspeichern</p>
<p>Komplexität</p>
<p>Komplexität =? Aufwand<br />
Auffasungen in der Informatik: Laufzeit, Seicher, Struktur Komplexität<br />
Hier: Laufzeitkomplexität Laufzeit t = f(n)<br />
n: Problemgröße</p>
<p>n<br />
eine ganze Zahl, charakterisiert den Umfang der Aufgabe<br />
typisch: Menge zu verarbeitender Daten (z.B Länge eines Textes oder Feldes)<br />
bei numerischen Aufgaben auch:<br />
Stellenanzahl von Zahlen</p>
<p>Komplexität eines gegebenen Algorithmus<br />
Wie verhält sich die Laufzeit des Algorithmus in Abhängigkeit von der Problemgröße?<br />
Auch zum Verglich mehrerer Algorithmen:<br />
Welcher ist (für welche Problemgrößen)schneller?</p>
<p>Komplexität eines Problems<br />
Gibt es eine Schranke die nicht unterboten weredn kann?</p>
<p>Laufzeitanalyse<br />
Grobanalyse; Feinanalyse<br />
Grazanalyse ist von Sprache und Maschine unabhängig</p>
<p>&nbsp;<br />
&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;<br />
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://foop.at/algo-1-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Elektronik Vorlesung 3</title>
		<link>http://foop.at/elektronik-vorlesung-3/</link>
		<comments>http://foop.at/elektronik-vorlesung-3/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 09:15:59 +0000</pubDate>
		<dc:creator>dominik</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[JKU]]></category>

		<guid isPermaLink="false">http://foop.at/?p=134</guid>
		<description><![CDATA[Grundlagen C Spannung zwischen zwei Klemmen, Widerstand; Strom fängt zu fließen an; Spannung am Widerstandn sinkt Q=CU Kondensator ist die Anordnung; Kapazität ist .. Einheit ist Farad Farad ist As/volt ?? i(t) = C * (duc(t)/dt) An einer Kapazität kann die Spannung nicht springen 100 Prozent geladen ist eine Kapazität erst im unendlichen Differenzialgleichung Uq [...] <a href="http://foop.at/elektronik-vorlesung-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Grundlagen C</p>
<p>Spannung zwischen zwei Klemmen, Widerstand; Strom fängt zu fließen an; Spannung am Widerstandn sinkt</p>
<p>Q=CU</p>
<p>Kondensator ist die Anordnung; Kapazität ist ..<br />
Einheit ist Farad<br />
Farad ist As/volt ??</p>
<p>i(t) = C * (duc(t)/dt)</p>
<p>An einer Kapazität kann die Spannung nicht springen<br />
100 Prozent geladen ist eine Kapazität erst im unendlichen</p>
<p>Differenzialgleichung<br />
Uq = RC*(duc(t)) /(dt) + uc(t)<br />
-&gt; DGL</p>
<p>Lösungsansatz uc(t) = A*exp(B*t) + D<br />
uc(t = 0) =0<br />
Endbedingung uc(t= undendlich) = Uq Leerlauf</p>
<p>duc(t)/dt = AB*exp(B*t)</p>
<p>Herleitung von uc(t) = -Uq*exp(-t/RC) + Uq = Uq(1-exp&#8230;&#8230;&#8230;.Prüfungsrelevant</p>
<p>Kapazitäten verantwortilch für beschränkungen in Digtaltechnik (timing, Prozesszr, GHZ) Transistoren haben Kapazität.</p>
<p>Strom identisch beim Laden und Entladen der Kapazität</p>
<p>Kapazität in Serie wie Widerstand parallel<br />
Kapazität prallel wie Widerstand in Serie</p>
<p>MOSFET Transistor<br />
NMOS und PMOS Transistor<br />
p = Löcher ?<br />
n =Elektronen ?</p>
<p>L = Kanallänge</p>
]]></content:encoded>
			<wfw:commentRss>http://foop.at/elektronik-vorlesung-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Softwareentwicklung 2 Übung – 2</title>
		<link>http://foop.at/softwareentwicklung-2-ubung-2/</link>
		<comments>http://foop.at/softwareentwicklung-2-ubung-2/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 10:23:37 +0000</pubDate>
		<dc:creator>dominik</dc:creator>
				<category><![CDATA[Softwareentwicklung 2 Übung]]></category>

		<guid isPermaLink="false">http://foop.at/?p=132</guid>
		<description><![CDATA[Dynamische Bindung, statt super kann man this.bla = bla; abkürzen @Override toString() hashCode() equals(Object other) Eclipse kann hashCode() und equals() erzeugen protected zur Übung Simulation; Prozesse und Ressourcen worker private static final long WORKTMME_MIn = 10; &#160; protected Wker(String name) { super(name); &#160; zlublic void drill() { wait(rand(WORTIME_MIN, WoRTIMe_MAX&#8221;)&#8221; &#8220;drillingn&#8221;)j } } Drilling exectue() { [...] <a href="http://foop.at/softwareentwicklung-2-ubung-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dynamische Bindung,</p>
<p>statt super kann man<br />
this.bla = bla; abkürzen</p>
<p>@Override<br />
toString()<br />
hashCode()<br />
equals(Object other)</p>
<p>Eclipse kann hashCode() und equals() erzeugen<br />
protected</p>
<p>zur Übung<br />
Simulation; Prozesse und Ressourcen</p>
<p>worker</p>
<p>private static final long WORKTMME_MIn = 10;</p>
<p>&nbsp;</p>
<p>protected Wker(String name) {<br />
super(name);</p>
<p>&nbsp;</p>
<p>zlublic void drill() {</p>
<p>wait(rand(WORTIME_MIN, WoRTIMe_MAX&#8221;)&#8221; &#8220;drillingn&#8221;)j</p>
<p>}</p>
<p>}</p>
<p>Drilling<br />
exectue() {</p>
<p>Worker machine = requent(Worker.class);<br />
Driller drille = requst(drille.class);<br />
worker.drill<br />
drilll&#8230;.</p>
<p>KFZ Werkstätte<br />
Reperatur<br />
5-10 Sek<br />
5-10 Mst<br />
120-140 HB,Geselle<br />
5-10 Mst<br />
5-10 Sek</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://foop.at/softwareentwicklung-2-ubung-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Softwareentwicklung 2 – 2</title>
		<link>http://foop.at/softwareentwicklung-2-2/</link>
		<comments>http://foop.at/softwareentwicklung-2-2/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 09:25:00 +0000</pubDate>
		<dc:creator>dominik</dc:creator>
				<category><![CDATA[JKU]]></category>
		<category><![CDATA[Softwareentwicklung 2 VO]]></category>

		<guid isPermaLink="false">http://foop.at/?p=129</guid>
		<description><![CDATA[Vererbung Baustein wiederverwenden passt nicht genau programming by difference vererbt: methoden, felder nicht vererbt: Konstruktor (man kann aber super callen super(h, m, s)) private Felder werden unsichtbar vererbt pulic class ClockTimer extents Timer gleiche Signatur heißt überschreiben man kann aber super Methode noch aufrufen super.bla(foo) (super.super.bla(foo)) geht nicht autom. super-calls: wird automatisch eingefügt A() wird [...] <a href="http://foop.at/softwareentwicklung-2-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Vererbung</p>
<p>Baustein wiederverwenden passt nicht genau<br />
programming by difference</p>
<p>vererbt: methoden, felder<br />
nicht vererbt: Konstruktor (man kann aber super callen super(h, m, s))<br />
private Felder werden unsichtbar vererbt</p>
<p>pulic class ClockTimer extents Timer</p>
<p>gleiche Signatur heißt überschreiben<br />
man kann aber super Methode noch aufrufen super.bla(foo) (super.super.bla(foo)) geht nicht</p>
<p>autom. super-calls: wird automatisch eingefügt A() wird immer aufgerufen auch wenn superklasse keinen hat -&gt; Fehler -&gt; Lösung superklasse explizit aufrufen: A(bla,foo,bar)</p>
<p>Datenfelder können überschrieben werden. super.bla kann noch angesprochen werden (überschreiben von feldern ist nicht sinnvoll, lieber andere Namen geben)</p>
<p>protected: etwas lockerer als package, in allen Unterklassen noch sichtbar; Aufhebung des Information Hiding</p>
<p>Klassen kompatibel machen</p>
<p>Vererbung ist transitiv<br />
Vererbung ist eine ist-Beziehung</p>
<p>Vererbung bedeutet Typerweiterung<br />
Vererbung bedeutet Typspezialisierung</p>
<p>static type vs dynamic type<br />
Timer timer = new ClockTimer(0,1,30,12)<br />
Timer = statischer Typ; ist dem Compiler bekannt, bestimmt welchen Elemente der Klasse sichtbar sind<br />
ClockTimer  = dynamischer Typ; dem Compiler unbekannt; Bestinmmt welche Methode aufgerufen wird</p>
<p>Typedescriptor; unsichbares Feld; kannn über timer.getClass(); angesprochen werden; Informationen über Klasse</p>
<p>Abrgrage des dynamischen Types zur Laufzeit<br />
instanceof(bla)<br />
Typumwandlung(TypeCast)<br />
(ClockTimer)timer = if (timer instanceof ClocTimer || itmer == null)&#8230;&#8230;<br />
else throw new ClassLastExcetion() //geprüft!</p>
<p>Mehrfach Vererbung<br />
nicht unterstüzt; namenkonflikt; deadly diamond of death, Ineffizienz, komplexe Klassenhirachie</p>
<p>Klasse Object<br />
Basisklasse</p>
<p>Dynamische Bindung<br />
zur Laufzeit wird entschieden welche Methode wirklich aufgerufen wird</p>
<p>Überschriebene Felder werden statisch gebunden</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://foop.at/softwareentwicklung-2-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Algo Übung 1 – 1</title>
		<link>http://foop.at/algo-ubung-1-1/</link>
		<comments>http://foop.at/algo-ubung-1-1/#comments</comments>
		<pubDate>Wed, 14 Mar 2012 12:41:51 +0000</pubDate>
		<dc:creator>dominik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://foop.at/?p=127</guid>
		<description><![CDATA[Darstellungsarten von Algorithmen Umgangsprache jeder verstehts; unbegrenzte Ausdrucksmöglichkeiten nicht eindeutig, schwer umsetzber (kein Complier vorhanden) Stilistierte Prosa anandereiung Schritte; nur ein Ende Aktionen besser erkennbar Struktur nicht sichtbar Beispiel Sieb des Eratosthenes Prosa: S1: Initialisierung: Erzeuge Feld sieve[1:n-1] vom Typ boolean und setze ale Werte auf true. S2: 10ausstraicheen: setzee sieve[1] &#060;- false undsetze i [...] <a href="http://foop.at/algo-ubung-1-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Darstellungsarten von Algorithmen</p>
<p>Umgangsprache<br />
jeder verstehts; unbegrenzte Ausdrucksmöglichkeiten<br />
nicht eindeutig, schwer umsetzber (kein Complier vorhanden)</p>
<p>Stilistierte Prosa<br />
anandereiung Schritte; nur ein Ende<br />
Aktionen besser erkennbar<br />
Struktur nicht sichtbar</p>
<p>Beispiel<br />
Sieb des Eratosthenes</p>
<p>Prosa:<br />
S1: Initialisierung: Erzeuge Feld sieve[1:n-1] vom Typ boolean und setze ale Werte auf true.<br />
S2: 10ausstraicheen: setzee sieve[1] &lt;- false undsetze i -2<br />
S3: Aussieben: setze alle Felder in sieve, deren index ein Viefaches von i sit (und die kleiner als n sind) aus false<br />
S4: Vorrücken: setze i auf den nächtses index eines Feldes, dessen Inhalt true ist ung gehe zu S3. Is kein weiteres true-Feld vorhanden, gehe zu S5<br />
SR: Ausgabe: durchlaufe das Feld sive und gib jene Indizes i aus, in dessen zugehörgen Felder der Wert true steht</p>
<p>Ablaufdiagramm:<br />
Graphische Darstellung<br />
Symbole (Aktionen)<br />
Pfeile (Steuerfluss)</p>
<p>siehe Folien für Darstellung</p>
<p>Struktugramm<br />
zwingen zur besser Strukturierung<br />
schwer zu erstellen</p>
<p>Algorithmenbeschreibungssprache<br />
Jana<br />
Halbformale Beschreabungsweise</p>
<p>Algorithmus Kopf und Aufruf<br />
Name des Algorithmus<br />
Pfeile für EIngangs-, Ausgangs- und Übergangs-Parameter<br />
&#8230;.</p>
<p>Programmiersprache<br />
exakt<br />
es kommt auf jedes Symbol an<br />
gute Programmiersprachen erlauben die einfache LEsbarkeit von Algorithmen<br />
Parametiertypen können weggelassen weren falls eindeutig<br />
keine Breakanweisung bei switch<br />
for (i e α) //element<br />
immer int, float<br />
final (für Konstanten)<br />
static (für Gedächtnis)<br />
int[1:n] feld1<br />
int[-2:] größe unbestimmet oberer index k<br />
int feld3[] 0 bis unendlich<br />
type Month =(1..12) nur 1 bis 12 erlaubt</p>
<p>Wichtig für Übung<br />
Lokale Variablen immer deklarieren<br />
Arrays können auch mit char indiziert werden<br />
for &#8211; Schleife sehr flexibel // sets definieren<br />
repeat { read(ch eof) } until (eof)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://foop.at/algo-ubung-1-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Algo 1 – 2</title>
		<link>http://foop.at/algo-1-2/</link>
		<comments>http://foop.at/algo-1-2/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 23:21:46 +0000</pubDate>
		<dc:creator>dominik</dc:creator>
				<category><![CDATA[Algorithmen und Datenstrukturen 1]]></category>
		<category><![CDATA[JKU]]></category>

		<guid isPermaLink="false">http://foop.at/?p=119</guid>
		<description><![CDATA[Abstraktionsschichten Black Box: von Außen, z.B in der Zukunft zu entwickelnn Grobstruktur: Lösungsidee Detail: für Algorithmusanalyse Black Box Beispiel Median (sort wird nicht erklärt) Grobstruktur sort(liste n) { for (i=l&#8230;n-l) { Suche das kleineste Element listen[k] in liste [i:n] Vertausche liste[k] mit liste[i] } } kommt Lösung näher Veranschaulicht das Verfahren, lässt Implementierungsdetails aus. Detailsicht [...] <a href="http://foop.at/algo-1-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Abstraktionsschichten</p>
<p>Black Box: von Außen, z.B in der Zukunft zu entwickelnn<br />
Grobstruktur: Lösungsidee<br />
Detail: für Algorithmusanalyse</p>
<p>Black Box<br />
Beispiel Median (sort wird nicht erklärt)</p>
<p>Grobstruktur<br />
sort(liste n) {<br />
for (i=l&#8230;n-l) {<br />
Suche das kleineste Element listen[k] in liste [i:n]<br />
Vertausche liste[k] mit liste[i]<br />
}<br />
}<br />
kommt Lösung näher<br />
Veranschaulicht das Verfahren, lässt Implementierungsdetails aus.</p>
<p>Detailsicht<br />
Ausforulierung der informell gehaltenen Teile:<br />
sort(liste n) {<br />
for (i=l..n-l) {<br />
k=i<br />
for (j=i+l&#8230;n) {<br />
if (liste[j] &lt; liste [k]) { k = j}<br />
}<br />
liste[k]&lt;-&gt; liste [i] // &lt;-&gt; Vertauschungsauktion<br />
}<br />
}</p>
<p>Welche Abstraktionsschicht für welchen Zwech?</p>
<p>Common Mistake: zu viel Detail am Anfang<br />
Grundregel: so abstrakt wie möglich denken, nicht mehr Details als nötig</p>
<p>Black Box: Betonung des Schnittstellenaspekts; wie soll der Algorithmus benutzt werden; Vision</p>
<p>Grobstruktur: für die ersten Enwurfsschitte; erklären;</p>
<p>Detail: genauer Ablauf, Sprach- oder Maschinendetails</p>
<p>Bestandteile von Algorithmen<br />
Was sind unsere Atome?</p>
<p>for vs while<br />
for- und while-schleife sind sematisch äquivalent.</p>
<p>Semantische Äquivalenz</p>
<p>for- und while-Schleife heißen semantisch äquivalent wenn gleiche Anfangs und Folgezustände.</p>
<p>ZFA -&gt; FS -&gt; ZFE und ZWA -&gt; WS -&gt; ZWE gilt:<br />
&#8230;&#8230;&#8230;&#8230;.</p>
<p>switch/case = Kaskade von if<br />
if-Kaskade langsamer<br />
trotzdem semantisch Äquivalent; nur Wirkung zählt</p>
<p>Benötigte Bausteine<br />
1. Elementaraktion</p>
<p>Aktion kann sein:<br />
Zweisung: x = ausdruck<br />
E/A-Anweisung: read(war eof); write(wert)<br />
Ausfruf: sort(liste n)<br />
nichts: {} leere Anweisung</p>
<p>2. Sequenz<br />
Schritte</p>
<p>3. Binäre Verzweigung<br />
Bedingung, ja nein, kommt am Ende wieder zusammen, neinzweige dürfen leer sein</p>
<p>4. Abweisschleife<br />
while Schleife; eso lange Bedingung erfüllt ist, Inhalt 0 oder mehrmals ausgeführt.</p>
<p>D-Diagramm (D nach Dijkstra)<br />
die oben gennanten 4 Bausteine reichen um alle Algorithmen zu formulieren -&gt; Ablaufdiagramme heißen D-Diagramme.</p>
<p>Gegensatz: Spaghetti-Struktur (Sprungmarken)</p>
<p>Beweis (nach Knuth)<br />
Zerlegung in Blöcke, Nummerierung, state,<br />
while sate != 0 &#8211; swictch case state 1, state 2 state 3,<br />
jana hat kein break</p>
<p>Eigenschaften<br />
nur noch eine Schleife<br />
einzelne Fälle enthalten nur noch Sequenzen (eventuell binäre Verzweigung am Ende)<br />
Funktiontiert für jeden Algorithmus<br />
Für Praxis nicht geeignet, notfalls für C-Programm mit goto -&gt; Java</p>
<p>?andere Formen: Codeverdopplung</p>
<p>Beispiel: n+1/2 Schleife</p>
<p>while (true) { //endlos<br />
Lesen<br />
if (Ende) {break}<br />
Verarbeiten<br />
}<br />
Codeverdopplung:</p>
<p>Lesen<br />
while (!Ende) {<br />
Verarbeiten<br />
Lesen<br />
}<br />
Unangenehm: schwer zu warten; unlogisch</p>
<p>Schaltervarible:</p>
<p>nochDaten = true<br />
while (nochDaten) {<br />
Lesen<br />
nochDaten =! Ende<br />
if (nochDaten) {Verarbeiten}<br />
}<br />
unangenehm: 2 Prüfungen für nochDaten</p>
<p>Spezifikation</p>
<p>Zweck<br />
Schnittstellenbeschreibung<br />
Aufgabenbeschreibung<br />
&#8230;.</p>
<p>Spezifikation</p>
<p>&nbsp;</p>
<p>Spezifikation | Entwurf Implementierung Test (40 Entwurf, 20 Implementierung, 40 Test)<br />
Dokumentation</p>
<p>mit Lösungsideen  anfangen, verennen dokumentieren, testen dokumentieren ausbessern dokumentieren</p>
<p>Spezifikationsdokument (Vertrag)</p>
<p>Was soll eigentlich eentwickelt werden?<br />
Worauf ist zu achten?<br />
Was kann vorausgesetzt werden?<br />
Was gilt als richtig, was als falsch?</p>
<p>Der Begriff &#8220;Spezifikation&#8221;<br />
Salopp: Aufgabenstellung<br />
Dokument: Anfordungsdefinition, Pflichtenheft<br />
juristisches Doukment<br />
von Vertragspartnern gemeinsam verfasst (Auftraggeber, Entwickler)</p>
<p>Spezifikation          Implementierung<br />
Aufgabe &#8211; Lösung<br />
WAS? &#8211; WIE?<br />
von außen &#8211; von innen<br />
Black box &#8211; Details<br />
Schnittstellen &#8211; Algorithmen</p>
<p>Eigenschaften guter Spezifikation<br />
einfach: kein Farchjargon<br />
eindeutig: verdammt schwierig<br />
vollständig:kein Interpretationsspielraum in wesentlichen Punkten<br />
minimal: kei &#8220;Wie&#8221; behandeln</p>
<p>Funktionale Anforderungen: Was<br />
NichtFunktionale Anforderungen: Qualitätskriterien</p>
<p>funktionale Anforderungen<br />
Was?<br />
Ausgabe&#8230;<br />
bla&#8230;.</p>
<p>Teile Schnittstellenbeschreibung<br />
Aufrufschnittstelle<br />
Parameter<br />
Systemzustand<br />
Dateien<br />
Geräte<br />
Systemumgebung: welche Klassen dürfen nicht benützt werden?<br />
Benutzerschnittstelle</p>
<p>Programm vs Prozedur<br />
Programm: selbständig ablauffähig; Anwendersicht<br />
Prozedur: bestandteil, nicht ablauffähig;</p>
<p>Schnittstellen von Prozeduren<br />
Aufruf -&gt; Parameter -&gt;Prozedur (liefert Daten zurück)??<br />
Variablen ??l<br />
Dateien &lt;-&gt; Prozedur??<br />
Systemumgeben &lt;-&gt; Prozedur??<br />
&#8230;</p>
<p>Prozedur<br />
Aufgabe: stichwortartige Beschreibung (eine Zeile, kurz, pregnant)<br />
Aufruf: Name, Parameter, Funktionswert<br />
Eingangsgrößen: Eingangsparameter mit ihren Datentypen und ihre Bedeutung<br />
Ausgangsgrößen: Ausgangsparameter wie Eingangsgößen<br />
Funktion: wie steheln Eingang und Ausgangsrößen in verbindung<br />
Fehler: was tun bei Fehler?</p>
<p>Folgerungen<br />
ZA muss zur Lösung reichen<br />
Der Algorithums darf sonst nichts ändern<br />
keine Annahmen (ausserhalb der Spezifikation)<br />
idealerweise Sicherheitsprüfung</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://foop.at/algo-1-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hair of Hydra</title>
		<link>http://www.socialnerds.org/archives/456</link>
		<comments>http://www.socialnerds.org/archives/456#comments</comments>
		<pubDate>Tue, 13 Mar 2012 16:38:49 +0000</pubDate>
		<dc:creator>memvar3000</dc:creator>
				<category><![CDATA[videos]]></category>
		<category><![CDATA[konus kalamanda]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[puredata]]></category>
		<category><![CDATA[seoul]]></category>

		<guid isPermaLink="false">http://www.socialnerds.org/?p=456</guid>
		<description><![CDATA[Konus Kalamanda X Donghoon Yi live 21 FEZ 2012 A ROOFTOP, Seoul http://negativtower.tumblr.com/]]></description>
			<content:encoded><![CDATA[<p><iframe width="584" height="329" src="http://www.youtube.com/embed/YAgldIj255E?fs=1&#038;wmode=transparent&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p>Konus Kalamanda X Donghoon Yi</p>
<p>live</p>
<p>21 FEZ 2012</p>
<p>A ROOFTOP, Seoul</p>
<p><a href="http://negativtower.tumblr.com/">http://negativtower.tumblr.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.socialnerds.org/archives/456/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TRASH ATTACK</title>
		<link>http://www.socialnerds.org/archives/429</link>
		<comments>http://www.socialnerds.org/archives/429#comments</comments>
		<pubDate>Tue, 13 Mar 2012 15:15:29 +0000</pubDate>
		<dc:creator>memvar3000</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[konus kalamanda]]></category>
		<category><![CDATA[music]]></category>

		<guid isPermaLink="false">http://www.socialnerds.org/?p=429</guid>
		<description><![CDATA[15 MÄRZ 2011 21Uhr KAPU KONUS KALMANDA live außerdem A.T.M.(automated trash machine) MC BROKO SE MUSTARD TERRORISTS DJANE BOT LIVE PERFORMANCE by unnamed people VOLXKÜCHE DELUXE http://www.kapu.or.at/event/2012/03/15/trash_trash_trash http://negativtower.tumblr.com/]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.socialnerds.org/wp-content/uploads/2012/03/TRASHATTACK.jpg"><img src="http://www.socialnerds.org/wp-content/uploads/2012/03/TRASHATTACK-697x1024.jpg" alt="" width="584" height="857" class="alignnone size-large wp-image-470" /></a></p>
<p>15 MÄRZ 2011 21Uhr</p>
<p>KAPU</p>
<p>KONUS KALMANDA live</p>
<p>außerdem</p>
<p>A.T.M.(automated trash machine)</p>
<p>MC BROKO</p>
<p>SE MUSTARD TERRORISTS</p>
<p>DJANE BOT</p>
<p>LIVE PERFORMANCE by unnamed people</p>
<p>VOLXKÜCHE DELUXE</p>
<p>http://www.kapu.or.at/event/2012/03/15/trash_trash_trash</p>
<p>http://negativtower.tumblr.com/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.socialnerds.org/archives/429/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

