Versteht man so was als Normalmensch?

Hier ist der ungarische Bubble-Sort Tanz. Beim Bubble Sort geht es darum Elemente zu sortieren. Dazu vergleicht man immer 2 Elemente die nebeneinander liegen und vertauscht sie wenn das linke größer als das rechte ist. Das macht man jetzt immer wieder, bis man nichts mehr vertauscht hat, und die Elemente sind sortiert.

Jetzt ist die Frage, versteht man das mit diesem Video eigentlich besser?
http://www.youtube.com/watch?v=lyZQPjUT5B4

Ich würde sagen, die Leute die das verstehen, haben definitiv das Zeug, zumindest zum Hobbyprogrammierer. Das was in diesem Tanz gezeigt wird ist eine der Grundlagen der Informatik. Es wird ein Sortieralgorithmus gezeigt, sprich eine systematische Vorangehensweise wie man Dinge sortiert.

Der Bubblesort ist doch wirklich einfach: Eine Liste wird sortiert, indem sie durchlaufen wird und dabei die zwei jeweiligen Nachbarelemente verglichen & ausgetauscht werden, sodass bald das größte Element hinten steht. Danach wird die Prozedur mit dem Teilfeld vor dem hintersten Element wiederholt, usw. Gibt viel kompliziertere und effizientere Sortieralgorithmen. Viel mehr frage ich mich, was der Sinn dieses Threads sein soll.

Ich versteh dein Problem eigentlich nicht, der Bubblesort Algorithmus ist ja ein sehr leichter Sortieralgorithmus, den Menschen bestimmt schon vor dem Informatikzeitalter gekannt und angewandt haben.
Wer das versteht und ein bisschen Programmieren kann, kann natürlich ein sehr amateurhafter Hobbyprogrammierer sein, aber was hat das mit dem Tanz zu tun, und welchen Sinn macht der Thread dazu?
Bzw. um die Threadfrage zu beantworten: Ja, den Bubblesort versteht bestimmt auch der “Normalmensch”.

Naja die Logik dahinter zu Verstehen ist wirklich nicht schwer. Die Umsetzung als Programm hingegen ist schon ein ganzes Stück komplizierter.

Also ich hatte im Maschinenbaustudium nur absolute Informatikgrundlagen, und selbst da ist man nach einigen Vorlesungen in der Lage einen Bubblesort beispielsweise mit C++ umzusetzen. Ich würde also nicht behaupten, dass es sehr schwer ist ihn umzusetzen. Da gibt es schon andere Kaliber :wink:

Viele Leute behaupten, Informatik sei sehr schwierig. Ich möchte jetzt einfach mal wissen, wie viele Leute denn wirklich Schwierigkeiten mit solch einem Thema haben.

Vor 20 Jahren hätte ich noch fragen können “Kannst Du programmieren?”. Leider ist es ja längst nicht mehr so, dass die Leute die Interesse an Informatik haben, sich damit auch gut beschäftigen können. Moderne Modesprachen wie C, Java, PHP, etc sind keine Lehrsprachen. Es ist relativ schwierig in ihnen zu erlernen wie ein Rechner funktioniert. Auch gibt es heute in vielen Schulen keine verpflichtende Informatik mehr, die Rechner starten kein BASIC mehr, usw.

Deshalb programmieren heute weniger Leute als früher, und ich frage mich, werden die Leute nur “dümmer”, oder fehlt ihnen einfach nur die Möglichkeit.

Ja, nach dem Video ist das Verfahren eindeutig klar. Ich habe nur erst gebraucht, zu verstehen, dass die sich einfach von 0 bis 9 sortieren.

Aber ich glaube, das ist doch ein sehr simples Verfahren. Aber die entscheidende Kunst in der Informatik dürfte es doch nicht sein, bestehende Verfahren irgendwie nachvollziehen zu können, sondern je nach Lage ein eigenes Verfahren entwickeln zu können.

Ob das Bubble-Sort-Verfahren nun vor der Informatik schon angewendet wurde, bezweifel ich. Unser Gehirn sortiert zumindest Zahlen nach einem anderen komplexeren System. Wir analysieren allgemein die ab- und aufsteigenden Tendenzen der Werte im Überblick und machen auch größere Sprünge bei der Einordnung.
Die Schwierigkeit in der Informatik liegt da wohl, dass man mit den begrenzten und vollkommen ungewohnten Operationen der Programmiersprachen ein Verfahren entwickelt

Die Umsetzung als Programm hingegen ist schon ein ganzes Stück komplizierter.

Meiner Meinung nach ist das ein Problem der heutigen Programmiersprachen. Die sind eher auf die tägliche Benutzung ausgelegt, nicht auf den Lerneffekt.
In BASIC war das damals beispielsweise relativ einfach:


100 vert=0
110 FOR n=0 TO 8
120 IF v[n]<v[n+1] THEN GOTO 170
130 x=v[n]
140 v[n]=v[n+1]
150 v[n+1]=x
160 vert=vert+1
170 NEXT n
180 IF vert>0 THEN GOTO 100

Den Text hat man einfach so in seinen Computer getippt, dann RUN eingetippt und das Programm lief. Vorher konnte man natürlich noch das Array v belegen und gegebenenfalls die Arraygröße festlegen.
Das ist leider bei Sprachen wie C++ nicht mehr ganz so einfach. Da gibt es ziemlich viele Sachen, wie beispielsweise das Einbinden der Standardbibliotheken, die für einen Anfänger jetzt wirklich verwirrend und demotivierend sind. Früher hat Programmieren einfach mehr Spaß gemacht. Man hat was getippt, und schon hat das der Computer gemacht. :slight_smile:

Naja, ich studiere wie gesagt kein Informatik, aber soweit ich weiß lernt man dort sehr wohl noch die absoluten Grundlagen. Für den Ottonormalverbraucher sind umfangreiche Einblicke in die Funktionsweise eines PCs ja gar nicht möglich, da man wohl gar nicht die Zeit hat sich so ausgiebig mit diesem Thema zu beschäftigen. Die sogenannten “Modesprachen” erleichtern das Programmieren doch ungemein, weshalb ich dein Problem nicht verstehen kann. Deshalb kann ich auch deinen Schluss nicht nachvollziehen, dass heute weniger Leute programmieren. Gerade dadurch, dass es eben für viel mehr Menschen, eben auch Hobbyprogrammierer, zugänglich ist, würde ich behaupten, dass immer mehr programmieren.
PC, und somit die Programme, werden immer leistungsfähiger, woran sich eben auch die Programmiersprachen anpassen müssen.
Wobei du recht hast, dass Informatik öfter in den Lehrplan aufgenommen werden sollte. Fast jeder Mensch hat tagtäglich mit Computern zu tun, somit wäre es ganz gut schon in der Schule fundierte Grundlagen mitzubekommen, wenn man es sich schon nicht selbst beibringt.
Ich bin zwar noch relativ jung, aber würde behaupten, dass ich zu den ersten Generationen gehöre die mit den ersten massenkompatiblen Computern und auch dem Internet aufgewachsen ist. Dadurch, dass ich z.B. deswegen nie einen Ansprechpartner bei Problemen gehabt habe, habe ich mich schon immer sehr ausgiebig mit diesem Thema beschäftigt, und verfüge daher über weit gestreute Grundlagen und bin eigentlich immer da, wenn Familie oder Bekannte Probleme mit dem PC haben. So ist es bei den meisten meiner Freunde.
Wenn ich mir jetzt meinen Bruder anschaue, der eigentlich erst recht mit PC aufgewachsen ist, so hat er von der Materie absolut keine Ahnung. Er kann surfen, zocken und und ICQ chatten, aber sobald irgendwo irgendein Problem auftaucht hat er keine Ahnung was er zu tun hat. Weil er sich nie damit beschäftigt hat, sondern bei einem Problem einfach immer jemand anderen gefragt hat. Das ist schon irgendwie schade…

Das war nicht so schwer. Das hier ist nicht so leicht:
[spoiler]1. Es gibt fünf Häuser mit je einer anderen Farbe.

  1. In jedem Haus wohnt eine Person einer anderen Nationalität.

  2. Jeder Hausbewohner bevorzugt ein bestimmtes Getränk, raucht eine bestimmte Zigarettenmarke und hält ein bestimmtes Haustier.

  3. Keine der fünf Personen trinkt das gleiche Getränk, raucht die gleichen Zigaretten oder hält das gleiche Tier wie einer seiner Nachbarn.

Frage: Wem gehört der Fisch?

Ihre Hinweise:
Der Brite lebt im roten Haus
Der Schwede hält einen Hund
Der Däne trinkt gerne Tee
Das grüne Haus steht links vom weißen Haus
Der Besitzer des grünen Hauses trinkt Kaffee
Die Person, die Pall Mall raucht, hält einen Vogel
Der Mann, der im mittleren Haus wohnt, trinkt Milch
Der Besitzer des gelben Hauses raucht Dunhill
Der Norweger wohnt im ersten Haus
Der Marlboro-Raucher wohnt neben dem, der eine Katze hält
Der Mann, der ein Pferd hält, wohnt neben dem, der Dunhill raucht
Der Winfield-Raucher trinkt gerne Bier
Der Norweger wohnt neben dem blauen Haus
Der Deutsche raucht Rothmans
Der Marlboro-Raucher hat einen Nachbarn, der Wasser trinkt[/spoiler]
weiß jemand die Antwort ?

Also Informatik oder Programmieren muss man dringend trennen von der Fähigkeit Software zu bedienen. Ich habe keinerlei Ahnung von Informatik, außer dass ich weiß, dass mit irgendwelchen Code-Kürzel sowas wie eine hoch-komplexe Formel entwickelt wird und dann mit anderen Befehlen Ergebnisse/Zeichen ausgegeben werden. Das hindert mich nicht daran, so gut wie jedes Programm ohne Probleme zu bedienen.
Heutige Programme sind so komplex, dass eh keiner den Code im Kopf haben kann. Also geht es bei der Bedienung nicht darum, die innere programmierte Logik nachzuvollziehen, sondern die Logik des Designs der Bedienungsoberfläche. Und das lernt man durch Erfahrung mit den verschiedensten Programmen.

Auch wenn ich Bildfehler habe oder ein Spiel ständig chrasht, brauche ich keinerlei Ahnung von Informatik. Ich muss viel eher ein Problemlösungs-schemata durch Erfahrung besitzen.

@User mit arabischen Buchstaben.

Kann man so wie eine Art kleines Sudoku mit Eigenschaften anstatt Zahlen lösen. Zu lösen ist mir aber zu nervig.

Nana Baru, das ist schon etwas kniffliger. :mrgreen: Immerhin ist dass das Einstein Rätsel von dem Einstein sagte das nur 2% der Weltbevölkerung es lösen könnte. Ich nehme mal an, er meinte im Kopf :smt002

@Quoten-Algerier
Diese Aufgabenstellung erinnert mich an etwas:
http://www.pm-magazin.de/m/pm-logik-tra … %A4rz-2011
:wink:

Es ist sogar einfacher als die meisten Sudokus.

Jede Person muss von jeder Eigenschaft genau eines haben. Nichts darf übrig bleiben. Keine der Personen teilt sich eine Eigenschaft mit einer anderen Person. Jeder hat die selbe Anzahl von Eigenschaften.
Das Ausschlussverfahren entspricht dem des Sudokus. Nur halt nicht mit 9 Zahlen, sondern mit Eigenschaften, die aber genauso wenig in einer “Eigenschaften”-Reihe doppelt vorkommen dürfen.

Das Rätsel kann wohl jeder Akademiker vom Ansatz her lösen. Das ganze fehlerfrei zu machen ist natürlich schon schwieriger. Eine falsche Schlussfolgerung, die man als gesichert einträgt und das ganze System kollabiert.
Im Kopf zu lösen, halte ich aber nicht von der Intelligenz abhängig, sondern von der Gedächniskraft.

Ja, das Prinzip sollte jedem klar sein. Aber das ist auch so ein Problem. Die Leute denken immer man müsste nur das Prinzip verstehen dem ist aber nicht so. Viel wichtiger ist selbst auf die Lösung zu kommen und zu verstehen was Einstein damit veranschaulichen wollte. Es gibt übrigens LösungEN und nicht nur eine.

Richtig. Man kann das wie ein Sudoku lösen und wenn es die Standardvariante des Rätsels ist, dann lautet die Lösung:
[spoiler]Der Deutsche[/spoiler]

Zum Eingangspost. Was ist eigentlich dein Anliegen? Was wolltest du mit dieser Frage bezwecken? :smt017

Ok…?
Hä?

Kein Plan. Mathe war eh nie mein Ding. Auch mit dem Tanz wird mir das nicht wirklich klarer.

In BASIC war das damals beispielsweise relativ einfach:

Ist ja nicht so, als wär es in Java sonderlich schwer…^^


for(int i=0; i<feld.length();i++)
{
  for(int j=0;j<feld.length();j++)
  {
    if(feld[j]<feld[j+1])
    {
      tmp = feld[j];
      feld[j] = feld[j+1];
      feld[j+1] = tmp;
    }
  }
}

… Das auszuprogrammieren sollte jeder schaffen der ein Feld, eine Schleife und eine Verzweigung kennt ^^
Edit: Ich bin grad drauf gekommen, das es kein BubbleSort ist. Einen Moment. xD
Edit2: So, jetzt haben wir einen Bubblesort g

Ja, 2 benachbarte Zahlen miteinander vergleichen und die kleinere nach links schieben… Ist wirklich schwer ._.

Ich frag mich vor allem ob es auch einen Quicksort-Tanz gibt? ^^
Den Bubblesort zu kennen kann übrigens sehr nützlich sein, auch wenn man anstrebt amerikanischer Präsident zu werden:
[video]http://www.youtube.com/watch?v=k4RRi_ntQc8[/video]

@izzy_bizzy

Hier mal ein Beispiel dazu aus Wikipedia: http://de.wikipedia.org/wiki/Bubblesort

Die Zahlenreihe 55 07 78 12 42 soll aufsteigend sortiert werden. Die fett gedruckten Zahlen werden jeweils verglichen, ist die links größer als die rechte werden sie vertauscht (blaue Markierung)

55 07 78 12 42 1. Durchlauf
07 55 78 12 42
07 55 78 12 42
07 55 12 78 42 Letzter Vergleich
07 55 12 42 78 2. Durchlauf
07 55 12 42 78
07 12 55 42 78 Letzter Vergleich
07 12 42 55 78
07 12 42 55 78 3. Durchlauf
07 12 42 55 78 Letzter Vergleich
07 12 42 55 78
07 12 42 55 78
07 12 42 55 78 Fertig sortiert.

Auch wenn man nicht viel mit Mathe am Hut hat, ist das System sehr leicht zu verstehen :wink: