Hallo, ich weiß daß diese Mail total OT ist, hoffe aber trotzdem hier Hilfe bekommen zu können. Ich will für die Schule eine "BLL" (Besondere lernleistung) anfertigen, und das im Bereich Informatik, speziell etwas Programmieren. Diese Arbeit soll die Arbeit von einem Grundfach in einem Jahr sein, also schon aufweniger. Speziell würde ich C++/Qt bevorzugen. Wenn da jemand eine Idee hätte was man schreiben könnte? Es müsste in gewisser Weise inovativ sein, sprich kann es also nirgends abkupfern können. Wenn Mathematik nicht eine Hauptfunktion des Programms wäre, würde es micht nicht stören. ;) Wie gesagt, sollte schon aufweniger sein und auch gut anschaulich sein; denke da ein wenig an Netzwerk, Internet. Nungut, hoffe es stört sich hier niemand zu sehr an der Anfrage von mir. Grüße, Freddy
Hi Freddy! Frederic Wiesenbach schrieb am 06.10.2004 17:37 :
Speziell würde ich C++/Qt bevorzugen. [...] Wie gesagt, sollte schon aufweniger sein und auch gut anschaulich sein; denke da ein wenig an Netzwerk, Internet.
1. Soll das eine Gruppenarbeit werden oder werden mehrere (wie viele?) Schüler an dem Projekt arbeiten? Wie viele Stunden (incl. Hausaufgaben) haben die Schüler zur Verfügung? 2. Meinst du wirklich, dass eine GUI für Programmier-Einsteiger sinnvoll ist? Ich fände es wesentlich wichtiger, die Grundlagen des Programmierens bzw. der Objektorientierung bzw. der Protokollimplementierung zu vermitteln, bevor ich die Schüler mit den Problemen des GUI-Entwurfs konfrontiere. 3. Welche Vorkenntnisse haben die Schüler? 4. Sollen fremde libs benutzt werden oder soll alles von Grund auf selbst programmiert werden? 5. Braucht die Schule nicht vielleicht eine nützliche Netzwerkanwendung, die gleich in diesem Rahmen produziert werden könnte? Alles in allem hast du da ganz schön viel Arbeit vor dir, wenn das Ergebis wirklich brauchbar werden soll ;-) Gruß, Michael
Am Mittwoch, 6. Oktober 2004 18:18 schrieb Michael Wenger:
Hi Freddy!
Frederic Wiesenbach schrieb am 06.10.2004 17:37 :
Speziell würde ich C++/Qt bevorzugen. [...] Wie gesagt, sollte schon aufweniger sein und auch gut anschaulich sein; denke da ein wenig an Netzwerk, Internet.
1. Soll das eine Gruppenarbeit werden oder werden mehrere (wie viele?) Schüler an dem Projekt arbeiten?
Einzelarbeit.
Wie viele Stunden (incl. Hausaufgaben) haben die Schüler zur Verfügung?
Die Schüler? Hopla, kleines Missverständniss: Ich will die BLL machen, bin selbst Schüler.
2. Meinst du wirklich, dass eine GUI für Programmier-Einsteiger sinnvoll ist?
Einsteiger bin ich nicht ganz. [...]
3. Welche Vorkenntnisse haben die Schüler?
normale Delphi- und VB-Geplänkel aus der Schule, selbst hab mir noch C++ und mySQL beigebracht, bin gerade bei Qt.
4. Sollen fremde libs benutzt werden oder soll alles von Grund auf selbst programmiert werden?
primär selbst, natürlich könnte ich die Qt-Klassen benutzen. Ich sollte halt was "neues" schreiben, was auch die Lehrkräfte, die leider nur Pascal und Delphi können, nachprüfen könnten.
5. Braucht die Schule nicht vielleicht eine nützliche Netzwerkanwendung, die gleich in diesem Rahmen produziert werden könnte?
Das Netzwerk brächten die. *G*
Alles in allem hast du da ganz schön viel Arbeit vor dir, wenn das Ergebis wirklich brauchbar werden soll ;-)
Ja, das ist auch der Sinn davon. Geht ja auch 20% in mein schriftl. Abi ein. :) Grüße, Freddy
Hi Freddy! Frederic Wiesenbach schrieb am 06.10.2004 18:32 :
Am Mittwoch, 6. Oktober 2004 18:18 schrieb Michael Wenger:
Frederic Wiesenbach schrieb am 06.10.2004 17:37 :
Wie viele Stunden (incl. Hausaufgaben) haben die Schüler zur Verfügung?
Die Schüler? Hopla, kleines Missverständniss: Ich will die BLL machen, bin selbst Schüler.
Oja. Mir war BLL kein Begriff. Ich dachte, du wärst ein Lehrer, der sich gerade überlegt, wie er seine Schüler im nächsten Jahr quälen kann ;-) Anforderung: C++/Qt, möglichst mit Netzwerkbezug oder gar Clustering. Möglichst innovativ und mit möglichst wenig Libs (bis auf GUI-Libs natürlich), Aufwand ca. 1 Mannjahr. Ich hoffe, das umreißt deine Vorstellungen in etwa. Was mir jetzt gerade eingefallen ist, ist ein oft unterschätztes Problem: Ein Programm, das Stundenpläne automatisch zusammenstellt. Ich höre dich schon sagen: "Das ist doch Pipifax!" Das ist es aber leider nicht, wenn man verschiedene Abhängigkeiten zu berücksichtigen hat, z.B.: - die Klassen sollten möglichst keine Freistunden haben - Lehrer möchten auch gerne keine Freistunden haben, da sie dann früher wieder nach Hause können bzw. erst später in die Schule kommen müssen - bestimmte Fächer (z.B. Sport) können nur in bestimmten Räumen stattfinden. Doppelbelegung ist nicht möglich. ... Wenn du noch ein bisschen überlegst, werden dir viele weitere Abhängigkeiten einfallen, die das Problem sehr schnell sehr komplex werden lassen. Die Anforderungen an das Programm wären zum einen die Berechnung eines möglichst guten Stundenplans für alle Klassen der Schule. Zum anderen wäre natürlich die grafische Darstellung sehr wichtig, da man Stundenpläne auch sehen und ausdrucken will. Vielleicht könnte man die Stundenpläne sogar per Drag&Drop o.ä. manuell nachbearbeiten... Das wirklich große Problem ist der Algorithmus zur Berechnung der Stundenpläne. Der kann wahnsinnig viel Rechenzeit verschlingen. Dafür wäre eine Clusterlösung sicherlich sehr vorteilhaft. Allerdings ist das Parallelisieren gerade dieser Aufgabe alles andere als einfach. Ich weiß nicht, ob es überhaupt schon jemandem gelungen ist bzw. ob es ein solches System auf dem Markt gibt. Du kannst ja mal bei deinem Direktor anklopfen und ihn ausquetschen, wie er seine Stundenpläne im Moment erstellt und was er gerne automatisiert hätte. Hier ist beschrieben, warum und wie sich die FH-Darmstadt ein ähnliches System gebastelt hat: http://www.fbi.fh-darmstadt.de/~kreling/Stundenplanungssystem.htm Gruß, Michael
Hallo, On Thursday 07 October 2004 16:51, Frederic Wiesenbach wrote:
Stundenplan.
Ja, das hat er mir auch vorgeschlagen, das leider reine Algorithmenentwicklung und da habe ich nichtmal einen Ansatz wie ich das lösen könnte...
Theoretische Informatik besteht aus Algorithmenentwicklung. Wie willst du das umgehen? Komplexität brauchst du in jedem Fall und diese ist bei jedem Programm wichtig. Ein Ansatz ist übrigens einfach: RTFM bzw. kauf dir ein mathematisches Buch über Ablaufplanung bzw. Schedulingprobleme. Dies fällt unter kombinatorische Optimierung. Diese ist ein diskretes Problem. Ganz grob gesagt ist das Mathematik, um die du hoffentlich nicht herumkommst. Jedenfalls glaube ich, dass so eines eine gute Grundlage wäre. Ich mache meine besondere Lernleistung in knapp zwei Jahren lieber in Mathematik über Heiraten und spare mir damit die Implentierung des ganzen. Ferdinand
Hi Ferdinand! Ferdinand Ihringer schrieb am 07.10.2004 17:51 :
On Thursday 07 October 2004 16:51, Frederic Wiesenbach wrote:
Stundenplan.
Ja, das hat er mir auch vorgeschlagen, das leider reine Algorithmenentwicklung und da habe ich nichtmal einen Ansatz wie ich das lösen könnte...
Theoretische Informatik besteht aus Algorithmenentwicklung. Wie willst du das umgehen? Komplexität brauchst du in jedem Fall und diese ist bei jedem Programm wichtig.
Ein Ansatz ist übrigens einfach: RTFM bzw. kauf dir ein mathematisches Buch über Ablaufplanung bzw. Schedulingprobleme. Dies fällt unter kombinatorische Optimierung. Diese ist ein diskretes Problem.
Ich würde mir eher ein Buch zu Graphentheorie kaufen. Dies ist mWn ein Graphfärbungsproblem: http://www.matheboard.de/lexikon/F%E4rbung_von_Graphen,definition.htm Desweiteren ist natürlich der Begriff "Greedy-Algorithmen" in diesem Zusammenhang sehr wichtig.
Ganz grob gesagt ist das Mathematik, um die du hoffentlich nicht herumkommst.
:D Ich glaube, das Problem ist schon ein bisschen viel verlangt von einem Gymnasiasten. - Es sei denn, er möchte sich zukünftig auch richtung Informatik-Studium orientieren. Dort würde er vieles, was er heute dabei lernen würde, wieder antreffen. Gruß, Michael
Am Donnerstag, 7. Oktober 2004 18:18 schrieb Michael Wenger:
Ein Ansatz ist übrigens einfach: RTFM bzw. kauf dir ein mathematisches Buch über Ablaufplanung bzw. Schedulingprobleme. Dies fällt unter kombinatorische Optimierung. Diese ist ein diskretes Problem.
Ich würde mir eher ein Buch zu Graphentheorie kaufen. Dies ist mWn ein Graphfärbungsproblem: http://www.matheboard.de/lexikon/F%E4rbung_von_Graphen,definition.htm
IMHO handelt es sich auf jeden Fall um ein Optimierungsproblem, hier wären dann Stichworte wie Lineare Programmierung etc. angesagt, weiterhin dürfte es sich um ein NP-vollständiges Problem handeln, so dass
Desweiteren ist natürlich der Begriff "Greedy-Algorithmen" in diesem Zusammenhang sehr wichtig.
Du mit Greedy nicht weit kommst. Hier sind andere Heuristiken und Approximations-Schemata interessant. Das Problem ist sicherlich eine Herrausforderung, aber auf algorithmischer Ebene, die Implementierung dürfte anschliessend relativ einfach werden. Andreas
Hi Andreas! Andreas Loesch schrieb am 07.10.2004 19:00 :
IMHO handelt es sich auf jeden Fall um ein Optimierungsproblem, hier wären dann Stichworte wie Lineare Programmierung etc. angesagt, weiterhin dürfte es sich um ein NP-vollständiges Problem handeln, so dass [...] Du mit Greedy nicht weit kommst. Hier sind andere Heuristiken und Approximations-Schemata interessant.
Hm? Gerade weil dieses Problem NP-vollständig ist, ist doch "Greedy" eine Lösungsmöglichkeit.
Das Problem ist sicherlich eine Herrausforderung, aber auf algorithmischer Ebene, die Implementierung dürfte anschliessend relativ einfach werden.
ACK. Gruß, Michael
Hi Michael, *, Am Donnerstag, 7. Oktober 2004 23:08 schrieb Michael Wenger:
Andreas Loesch schrieb am 07.10.2004 19:00 :
IMHO handelt es sich auf jeden Fall um ein Optimierungsproblem, hier wären dann Stichworte wie Lineare Programmierung etc. angesagt, weiterhin dürfte es sich um ein NP-vollständiges Problem handeln, so dass [...] Du mit Greedy nicht weit kommst. Hier sind andere Heuristiken und Approximations-Schemata interessant.
Hm? Gerade weil dieses Problem NP-vollständig ist, ist doch "Greedy" eine Lösungsmöglichkeit.
Greedy liefert eine Lösung, die aber beliebig weit von einem Optimum entfert ist. Insbesondere habe ich bei NP-Problemen noch keine guten Greedys gesehen. Aber der Witz besteht ja darin eine möglichst gute Löusung zu produzieren. Hier sind also Approximationsschemata (mit etsprechendem Gütebeweis :) ) oder eine ganz klassische Branch-and-Bound-Lösung sicherlich mit besseren Ergebnissen gesegnet. Als reines Graphenproblem sehe ich das eigendlich weniger, Wenn man das Problem als Graphenproblem beschreiben will, könnte man ein Maximales Matching über je n-Knoten draus bauen (Fach - Lehrer - StundeInRaum - Klasse) aber maximale Matchings bei n>2 sollten auch NP-Vollständig sein :) sonst hätten wir ein Klasse Problem beseitigt. Zusätzlich fehlen dann die Nebenbedingungen, dass nur bestimmte Lehrer irgendwas unterrichten können, dass alle Zeiten geblockt sein müssen (minimale Lücken) etc.. Andreas
Hallo Michael, On Thursday 07 October 2004 18:18, Michael Wenger wrote:
Hi Ferdinand!
Ferdinand Ihringer schrieb am 07.10.2004 17:51 :
On Thursday 07 October 2004 16:51, Frederic Wiesenbach wrote:
Stundenplan.
Ja, das hat er mir auch vorgeschlagen, das leider reine Algorithmenentwicklung und da habe ich nichtmal einen Ansatz wie ich das lösen könnte...
Ein Ansatz ist übrigens einfach: RTFM bzw. kauf dir ein mathematisches Buch über Ablaufplanung bzw. Schedulingprobleme. Dies fällt unter kombinatorische Optimierung. Diese ist ein diskretes Problem.
Ich würde mir eher ein Buch zu Graphentheorie kaufen. Dies ist mWn ein Graphfärbungsproblem: http://www.matheboard.de/lexikon/F%E4rbung_von_Graphen,definition.htm
Sagte ich ja. Ein Schudelingproblem kann man natürlich immer als Graphen interpretieren. ;-) Sehr schön sind da IMHO die Bücher von Dieter Jungnickel.
Ich glaube, das Problem ist schon ein bisschen viel verlangt von einem Gymnasiasten. - Es sei denn, er möchte sich zukünftig auch richtung Informatik-Studium orientieren. Dort würde er vieles, was er heute dabei lernen würde, wieder antreffen.
Also eine besondere Lernleistung, von der ich weiß, ist der Bau eines Celli. Ich selber möchte irgendetwas graphentheoretisches nehmen. Alternativ kann er sich immer noch mündlich oder in einer Präsentation prüfen lassen. Da gibt dann der Lehrer das Thema konkret vor, aber er muss nicht eine besondere Lernleistung erbringen. Ferdinand
Hallo Freddy, sag doch mal etwas genauer, um was es gehen soll? Sollst Du was ganz neues entwickeln, eine neue Lösungsmethode, einen guten Algorithmus oder sollst Du nur die Lösung eines Problems (bei meiner Facharbeit waren das z.B. Berechnung von Pi nach Buffon und der Monte Carlo Methode) umsetzen? Was sind die weiteren Vorraussetzungen? Kann es in der Schule nur an Win32-PCs nachgemacht werden? Das ist nämlich gar nicht so ganz ohne! Eine Sache mit der Du die Lehrer sicher beeindrucken könntest, wäre eine komplexe bzw. zeitaufwändige Berechnung (z.B. die Monte Carlo Methode im kubischen Raum) als Clusterlösung. Da hättest Du Mathe und Netzwerk/Internet in einem. Also wenn Dus etwas präzisieren könntest, könnten wir Dir sicher besser helfen. philipp
Am Mittwoch, 6. Oktober 2004 22:36 schrieben Sie:
Hallo Freddy,
Hi
sag doch mal etwas genauer, um was es gehen soll?
Es geht ja leider noch nicht um was genaueres. Ich würde nur gerne noch eine BLL machen; dauer 1 Jahr.
Sollst Du was ganz neues entwickeln, eine neue Lösungsmethode, einen guten Algorithmus oder sollst Du nur die Lösung eines Problems [...] umsetzen?
egal. was, es muss nur neu sein und einen Aufwand von einem Jahr haben.
Was sind die weiteren Vorraussetzungen?
Es anschaulich machen und beeindrucken, da die Lehrer kein C++ können und ich kein Delphi oder Pascal machen will/werde.
Kann es in der Schule nur an Win32-PCs nachgemacht werden?
Nein, kann das auch auf ner Linux-Maschiene vorführen. [...]
Eine Sache mit der Du die Lehrer sicher beeindrucken könntest, wäre eine komplexe bzw. zeitaufwändige Berechnung (z.B. die Monte Carlo Methode im kubischen Raum) als Clusterlösung.
Das liest sich schonmal nicht schlecht. Clustering wäre da auch ein interessanter Kandidat.
Also wenn Dus etwas präzisieren könntest, könnten wir Dir sicher besser helfen.
Wie oben schon geschrieben, wenn ich mein Thema habe bin ich schonmal glücklich.
philipp Danke, Dir, Phillip, war schon ne gute Anregung.
Guten Nacht, Freddy
Hi, Am Do, 2004-10-07 um 00.52 schrieb Frederic Wiesenbach:
Sollst Du was ganz neues entwickeln, eine neue Lösungsmethode, einen guten Algorithmus oder sollst Du nur die Lösung eines Problems [...] umsetzen?
egal. was, es muss nur neu sein und einen Aufwand von einem Jahr haben.
Darfst Du selbst wählen oder wirds Dir wenigstens grob vorgegeben?
Es anschaulich machen und beeindrucken, da die Lehrer kein C++ können und ich kein Delphi oder Pascal machen will/werde.
Kann gar keiner C++ oder nur die meisten nicht. Bei mir wars so, dass ein anderer Lehrer, der C konnte, den Informatikteil der Facharbeit korrigiert hat.
Kann es in der Schule nur an Win32-PCs nachgemacht werden?
Nein, kann das auch auf ner Linux-Maschiene vorführen.
Gut, das heißt dann ja schon mal, dass Du auch auf reinrassige Linux-Libraries zugreifen kannst.
Das liest sich schonmal nicht schlecht. Clustering wäre da auch ein interessanter Kandidat.
Wenn Du Clustern willst, musst Du das nur von vorn herein bedenken. Es lassen sich nämlich nicht alle Probleme per Cluster lösen. Überleg Dir also am besten auch andere Sachen! Spontan fällt mir noch ein winziges Chatprogramm ein, mit dem man mathematische Diskussionen führen kann, also auch komplexere Formeln dastellen kann. Wahrscheinlich wäre das aber schon zu viel Arbeit.
Danke, Dir, Phillip, war schon ne gute Anregung.
Kein Ursache! philipp
Am Donnerstag, 7. Oktober 2004 01:19 schrieb Philipp Otte:
Hi,
Am Do, 2004-10-07 um 00.52 schrieb Frederic Wiesenbach: [...] Darfst Du selbst wählen oder wirds Dir wenigstens grob vorgegeben?
Ich darf selbst was vorschlafen, er muss es nur noch absegnen und dann die Bedingungen aushandeln.
Es anschaulich machen und beeindrucken, da die Lehrer kein C++ können und ich kein Delphi oder Pascal machen will/werde.
Kann gar keiner C++ oder nur die meisten nicht. Bei mir wars so, dass ein anderer Lehrer, der C konnte, den Informatikteil der Facharbeit korrigiert hat.
Da kann keiner C++, oder C, muss also schon beeindrucken und dann natürlich auch nachweisbar 100% Eigenbau sein. [...]
Wenn Du Clustern willst, musst Du das nur von vorn herein bedenken. Es lassen sich nämlich nicht alle Probleme per Cluster lösen. Überleg Dir also am besten auch andere Sachen! Spontan fällt mir noch ein winziges Chatprogramm ein, mit dem man mathematische Diskussionen führen kann, also auch komplexere Formeln dastellen kann. Wahrscheinlich wäre das aber schon zu viel Arbeit.
mmh. Wie gesagt, Sammel nur mal Ideen, hoffe was gescheites durchbringen zu können. Ich leg mich dann mal hin. n8 @ all freddy
Halloele!
Was sind die weiteren Vorraussetzungen? Es anschaulich machen und beeindrucken, da die Lehrer kein C++ können und ich kein Delphi oder Pascal machen will/werde.
Um mal etwas anderes zu nennen als Problemstellungen aus der theoretischen Informatik (wie weiter oben): Versuch doch mal Deinen eigenen RayTracer zu schreiben. Sowas ist natuerlich grundsaetzlich nichts neues, solche Aufgaben tauchen aber in Uebungen und/oder Praktika in einem Informatik-Studium des oefteren auf. Man koennte es also auch in einem eventuellen Studium gebrauchen, da einem mit der Arbeit die Prinzipien klar werden. Das ganze laesst sich schoen anschaulich praesentieren und kann Eindruck machen, wenn man neben den einfachen Algorithmen noch ein paar Extras einbaut.... zum Beispiel das zu rendernde Objekt gleichzeitig in 3D darstellt. Man dreht und transformiert die Szene solange bis man eine Ansicht hat, die man dann auf Knopfdruck rendern laesst. Sowas kann man sich in den verschiedenen FrontEnds zum PovRay ansehen. OpenGL-Wissen kann man im Bereich der graphischen Datenver- arbeitung in einem Informatikstudium auch gut brauchen. Oder man erweitert des RayTracing durch Radiosity Techniken. Diese Mischung ist selbst nach so langer Zeit und vielen vorhandenen Anwendungen immernoch Teil der Forschung. Als Beispiel: http://www.igd.fhg.de/igd-a4/projects1.html.de Ein 'Gewust wie' oder 'Hab ich schon mal selbst gemacht' ist immer gut, wenn man sich spaeter in die Richtung orientieren will! :-)
Das liest sich schonmal nicht schlecht. Clustering wäre da auch ein interessanter Kandidat.
Rendering laesst sich wunderbar parallelisieren! :-) Gruss, Wolfgang
Am Fr, 2004-10-08 um 17.41 schrieb Wolfgang Schotte:
Versuch doch mal Deinen eigenen RayTracer zu schreiben. Sowas ist natuerlich grundsaetzlich nichts neues, solche Aufgaben tauchen aber in Uebungen und/oder Praktika in einem Informatik-Studium des oefteren auf. Man koennte es also auch in einem eventuellen Studium gebrauchen, da einem mit der Arbeit die Prinzipien klar werden.
Das ist doch mal ne coole Idee. Interessant wird das sicher auch, wenn Du eine Plot-Funktion hinzufügst, um z.B. Funktionen mit 2 Variablen darzustellen. Dann ist es auch noch sinnvoller und man kann doch interessante Flächen erzeugen. Das RayTracing wird, neben vielen anderen Teilen der Grafik in Zhigang Xiangs und Roy A. Plastocks Buch "Computergrafik" beschrieben.
Das ganze laesst sich schoen anschaulich praesentieren und kann Eindruck machen, wenn man neben den einfachen Algorithmen noch ein paar Extras einbaut.... zum Beispiel das zu rendernde Objekt gleichzeitig in 3D darstellt. Man dreht und transformiert die Szene solange bis man eine Ansicht hat, die man dann auf Knopfdruck rendern laesst. Sowas kann man sich in den verschiedenen FrontEnds zum PovRay ansehen.
Also Eindruck wird so etwas sicher schinden.
Rendering laesst sich wunderbar parallelisieren! :-)
Genau! Und um ein GUI musst Du Dich ja auch noch kümmern. Also das wäre sicher etwas im Umfange einer BLL, wenn auch es nicht etwas komplett neues wäre. Prinzipiell sollte man sich natürlich davon entfernen, bestehenden Code zu übernehmen. Und wenn Du auch noch die Cluster-Libs selbst schreibst, dann sollten die schon zufrienden sein. philipp
participants (6)
-
Andreas Loesch
-
Ferdinand Ihringer
-
Frederic Wiesenbach
-
Michael Wenger
-
Philipp Otte
-
Wolfgang Schotte