Mr.Vain Geschrieben 27. April 2011 Geschrieben 27. April 2011 Hallo, ich möchte im kommenden Wintersemester gerne technische INformation (B.Sc.) studieren. Ist es heute immer noch so, dass die Themen an den Unis sehr "trocken" sind und mehr auf Programmieren und theoretische Informatik ausgelegt sind? Gruß Mr.Vain Zitieren
flashpixx Geschrieben 27. April 2011 Geschrieben 27. April 2011 theoretische Informatik ist ein Teil des Studiums, ebenso wie praktische, technische Informatik. Inwieweit man das als "trocken" bezeichnet ist eine Sache. Uni vs FH ist natürlich schon ein Unterschied Zitieren
Wurmi Geschrieben 27. April 2011 Geschrieben 27. April 2011 Informatik ist sowohl an Unis als auch an FH sehr trocken. An Unis wird das ganze fast wie bei den Mathematikern angegangen, daß heißt, der Beweis, daß etwas funktionieren würde ist wichtiger als jemals eine Umsetzung näher zu betrachten. In technischer Info kann der Unterscheid darauf hinauslaufen, daß Du an der Uni Logik machst bis zum Erbrechen (Boole, De Morgan etc...) und nie einen Prozessor oder ein Motherboard zu Gesicht bekommst. An beiden Hochschulen aber wirst Du viel mehr E-Technik und Physik machen als einer, der angewandte Info macht. Programmieren kannst Du an der FH besser lernen als an der Uni, wo vor allem formale Modelle gelehrt werden. Zitieren
Kwaiken Geschrieben 27. April 2011 Geschrieben 27. April 2011 Ich denke, dass man Programmieren nicht "lernen" sollte. Man sollte die grundlegenden Konzepte unabhängig von der Sprache selbst lernen und verstanden haben. Der Rest ist alles nur Syntax und mündet später in kleine Feinheiten und Spezialitäten der einzelnen Sprachen. Wenn man Sprachen/Programmieren im klassischen Sinne lernt, so darf man den ganzen Lernprozess für eine neue Sprache immer widerholen. Zitieren
Wurmi Geschrieben 29. April 2011 Geschrieben 29. April 2011 Ich denke, dass man Programmieren nicht "lernen" sollte. Man sollte die grundlegenden Konzepte unabhängig von der Sprache selbst lernen und verstanden haben. Der Rest ist alles nur Syntax und mündet später in kleine Feinheiten und Spezialitäten der einzelnen Sprachen. Wenn man Sprachen/Programmieren im klassischen Sinne lernt, so darf man den ganzen Lernprozess für eine neue Sprache immer widerholen. Naja, das kann man schon lernen. Ich habe an der FH zum Beispiel einen Java-Vertiefungskurs gemacht und dabei auch viel im Bereich Entwurfsmuster/Parallelität in GUIs/RMI + verteilte Anwendungen etc gelernt. Dieses Wissen kann man auch transferieren, ich denke, daß ich mich dadurch auch schneller in C++, CORBA etc.. zurechtfinden würde. Bei der Theorie an Unis geht es auch darum, daß man neue Konzepte und Sprachen sich ausdenken können soll. Allerdings wirklich brauchen tut diese Kompetenz später nur ein kleiner erlauchter Teil der Informatiker. Kommt drauf an wie puristisch man das mit der Theorie sieht. Wenn man nur Theorie macht, steht man da wie der Linguist mit perfekten Lateinkenntnissen, der in Italien oder Spanien nach dem Weg fragen muß und sich nicht besonders gut dabei anstellt. Natürlich kann selbiger das Spanisch oder Italienisch viel schneller und besser verstehen und lernen als einer ohne den theoretischen Hintergrund. Zitieren
Kwaiken Geschrieben 29. April 2011 Geschrieben 29. April 2011 Bei der Theorie an Unis geht es auch darum, daß man neue Konzepte und Sprachen sich ausdenken können soll. Allerdings wirklich brauchen tut diese Kompetenz später nur ein kleiner erlauchter Teil der Informatiker. Das sehe ich anders. Ich kann mich mittlerweile innerhalb einer viel kürzeren Zeit in eine beliebige Sprache einarbeiten. Kurze Zeit später wird aus dem objektorientierten/imperativen Code ein sprachspezifischer Code, der auch die Feinheiten der neuen Sprache berücksichtigt. Das konnte ich vorher nicht. Aber vielleicht lag es auch nur an mir, who knows. Wenn man nur Theorie macht, steht man da wie der Linguist mit perfekten Lateinkenntnissen, der in Italien oder Spanien nach dem Weg fragen muß und sich nicht besonders gut dabei anstellt. Natürlich kann selbiger das Spanisch oder Italienisch viel schneller und besser verstehen und lernen als einer ohne den theoretischen Hintergrund. Nicht alles was hinkt ist ein Vergleich Ich würde das eher mit jemandem Vergleichen, der z.B. die Konzepte und den Aufbau der slawischen Sprachen intenstiv studiert und es anhand einer bestimmten lernt (analog OOP Konzepte in Java oder imperative an PASCAL). Dann fährt er durch die slawischen Länder (Beispiel Russland, Weissrussland, Ukraine, Polen, Moldavien, Bulgarien) und kann sich dank seiner Kenntnisse ziemlich gut verständigen. Die Analogie zu deinem Vergleich wäre: die Konzepte von OOP lernen und dann in Assembler programmieren. Zitieren
Wurmi Geschrieben 29. April 2011 Geschrieben 29. April 2011 Das sehe ich anders. Ich kann mich mittlerweile innerhalb einer viel kürzeren Zeit in eine beliebige Sprache einarbeiten. (...) Das konnte ich vorher nicht. Aber vielleicht lag es auch nur an mir, who knows. Das ist normal und liegt an der Übung. Aber das hat mit Uni/FH nicht sehr viel zu tun. Man findet halt immer bestimmte Datenstrukturen, Schleifen Fallunterscheidungen etc. pp. Wenn man mehrere Sprachen schon kennt, dann denkt man "wie schreibt man diesen Befehl jetzt nochmal in xxx?" und nicht "Uiih, was ist denn das?". Kurzer Rede langer Sinn: Man muß nicht sich jahrelang Chomksy, Kleene, Turing etc. reingezogen haben, um mit der Zeit immer schneller zu werden. Aber das führt jetzt weh vom Thema. Der Threadersteller kann über diese Frage unzählige Websites von Universitäten und FHs studieren. Ich kann aus meiner eigenen FH-Fernstudiums-Erfahrung sagen, daß wir im Praktikumslabor Assembler und C auf richtigen Chips programmiert und geladen haben und das mir viel Aha-Effekte gebracht hat. Den mathematischen Beweis, daß man sämtliche Schaltungen mit AND, OR und NAND (oder so ähnlich, drei waren es doch, oder ) zusammensetzen kann, habe ich nie kapiert und es war eh nicht Teil des Pflichstoffs. Du kannst ja sagen, was man an der FU im Thema so macht. Zitieren
jjn Geschrieben 29. April 2011 Geschrieben 29. April 2011 An der FH in Flensburg ist die technische Informatik nicht umbedingt so trocken. Man hat halt sehr viel Mathe, Physik und Elektortechnik. Wobei man zu allem auch immer wieder praktische Laborversuche hat. Es gibt auch Projekt wo man z. B. einen Microcontroller oder so programmiert. Ansonsten lernt man viel Digitalelogik, ein wenig C++ Entwurfsmuster und z. B. Suchalgorithmen. Auf die Logik und den Aufbau der ganzen Hardware sind wir auch eingegangen. War mir persönlich zu viel Elektortechnik und Physik, deswegen hab ich auch nur 2 Semester gemacht. Zitieren
Kwaiken Geschrieben 29. April 2011 Geschrieben 29. April 2011 Das ist normal und liegt an der Übung. Aber das hat mit Uni/FH nicht sehr viel zu tun. Kann ich so nicht bestätigen. Ich bin gelernter FIAE und programmiere schon ziemlich lange. Aber erst dir 3 Kurse aus der Uni haben mir "die Augen geöffnet". Ich weiss nicht wie ich es genauer beschreiben soll, aber ich habe einfach immer "gemacht" ohne ein wirklich tiefes Verständnis. Nun geht mir das alles viel, viel leichter von der Hand. Ich kann aus meiner eigenen FH-Fernstudiums-Erfahrung sagen, daß wir im Praktikumslabor Assembler und C auf richtigen Chips programmiert und geladen haben und das mir viel Aha-Effekte gebracht hat. Den mathematischen Beweis, daß man sämtliche Schaltungen mit AND, OR und NAND (oder so ähnlich, drei waren es doch, oder ) zusammensetzen kann, habe ich nie kapiert und es war eh nicht Teil des Pflichstoffs. Du kannst ja sagen, was man an der FU im Thema so macht. In welchem Thema? Technische Informatik? Die besteht aus 2 Kursen. Ich poste mal das grobe Inhaltsverzeichnis des ersten Teils des Kurses und trage den anderen später nach: Grundwissen Graphen Wiederholung für Automaten (Moore + Mealy), Schaltfunktionen, KV Diagramme und andere Darstellungsarten für Schaltfunktionen (binäre Bäume, Wertetabellen, Don't Care, Min/Max/Prim Terme, partielle Definition, KDNF, KNF, Literale, Vollkonjunktion, Volldisjunktion, Träger, Teil-Monome, Klauseln, Prim/Kern/wesentliche Implikanten, Minimalpolynome, etc.), bestimmung nach Quine und McCluskey, Überdeckungsprobleme, Implikantentafeln 1 und 2, Dominierung, Phi-Identitäten und Einsetzungen erweiterter Boolscher Ausdrücke, ordered binary decision Diagramm, Vollständigkeit von Operatorensystemen, Verhältnis Gleichungen und Einsetzungen, Kosten von Schaltungen (obere Größe und Formelgrößen), m<= m', Logik-Gatter, Schaltnetzkomplexität, Tiefe, korrespondierende Schaltnetze und Ausdrücke, Berechnungen im Zweier-Komplement, alles aus Logik-Gattern: MUX, DEMUX, DECODE, ENCODE, Halbaddierer, Volladdierer Carry Chain, Conditional Sum, Multiplizierer, Darstellung rationaler Zahlen in Schaltungen, D/SR Latches (u.a. Speicherglieder), Zeitverhalten, Taktgesteuerte Latches, Auswirkungen Satz- und Haltezeiten, Wirk- und Kippintervalle, FlipFlops (Taktzustand und Taktflankengesteuerte sowie Zweiflankengesteuerte), asynch. Setz und Rücksetzung, Schieberegister und normale Register, deterministische Automaten bis zum Erbrechen, Beweis der Vollständigkeit der Automaten (Moore und Mealy), Überführung ineinander, Zustandstabellen und Zustandsgraphen, Widerspruchsfreiheit, Zustandsminimierung, Hot One, PLAs, E/EPROMS, komplexe Schaltwerke, Entwurf und RTL Notation, ASM Diagramme, Konstruktionsregeln, Beispiele für Konstruktion, Rechen- und Leitwerke, interne und externe Busse, Stackpointer, Aufbau Register, Prozessorregister, Unterprogramme, Interrupts, Daten- und Adressregister, Datenpfade, Schiebemultiplexer, Logische Operationen, Status-Flags, Mikroprogrammierung, Mikrobefehlsformat, Adresserzeugung, Speicherorganisation, Speichererweiterungen. Rest kommt später. Fast alles mit Beweisen (die ich wichtig finde). Ich muss beweisen können, dass meine Lösung funktioniert und dass sie eine bestimmte Schranke einhält. Sonst ist sie nicht viel wert. Zitieren
Kwaiken Geschrieben 29. April 2011 Geschrieben 29. April 2011 (bearbeitet) Hier der Nachtrag. Beide Teile bestehen aus ca. 300 Seiten ohne die geforderte Zusatzliteratur zur Themenvertiefung und Aufgaben. Das Inhaltsverzeichnis des 2. Teils ist: 1 Grundlegende Prozessortechniken 1.1 Rechnerarchitektur 1.2 Befehlssatzarchitekturen 1.2.1 Prozessorarchitektur, Mikroarchitektur und Programmiermodell 1.2.2 Datenformate 1.2.3 Adressraumorganisation 1.2.4 Befehlssatz 1.2.5 Befehlsformate 1.2.6 Adressierungsarten 1.2.7 CISC- und RISC-Prinzipien 1.3 Beispiele für RISC-Architekturen 1.3.1 Das Berkeley RISC-Projekt 1.3.2 Die DLX-Architektur 1.4 Einfache Prozessoren und Prozessorkerne 1.4.1 Grundlegender Aufbau eines Mikroprozessors 1.4.2 Einfache Implementierungen 1.4.3 Pipeline-Prinzip 1.5 Befehls-Pipelining 1.5.1 Grundlegende Stufen einer Befehls-Pipeline 1.5.2 Die DLX-Pipeline 1.5.3 Pipeline-Konflikte 1.5.4 Datenkonflikte und deren Lösungsmöglichkeiten 1.5.5 Steuerflusskonflikte und deren Lösungsmöglichkeiten 1.5.6 Sprungzieladress-Cache 1.5.7 Statische Sprungvorhersagetechniken 1.5.8 Strukturkonflikte und deren Lösungsmöglichkeiten 1.5.9 Ausführung in mehreren Takten 1.6 Weitere Aspekte des Befehls-Pipelining 2 Hochperformante Prozessoren 2.1 Grundtechniken heutiger Prozessoren 2.1.1 Von skalaren RISC- zu Superskalarprozessoren 2.1.2 Komponenten eines superskalaren Prozessors 2.1.3 Superskalare Prozessor-Pipeline 2.1.4 Präazisierung des Begriffs "superskalar" 2.1.5 Die VLIW-Technik 2.1.6 Die EPIC-Technik 2.1.7 Vergleich der Superskalar- mit der VLIW- und der EPIC-Technik 2.1.8 Chipsätze 2.2 Die Superskalartechnik 2.2.1 Befehlsbereitstellung 2.2.2 Sprungvorhersage und spekulative Ausführung 2.2.3 Decodierung und Registerumbenennung 2.2.4 Befehlszuordnung 2.2.5 Ausführungsstufen 2.2.6 Gewährleistung der sequenziellen Programmsemantik 2.2.7 Verzicht auf die Sequenzialisierung bei der Rückordnung 3 Speicherverwaltung und innovative Techniken für Mikroprozessoren 3.1 Speicherverwaltung 3.1.1 Speicherhierarchie 3.1.2 Register und Registerfenster 3.1.3 Virtuelle Speicherverwaltung 3.1.4 Cache-Speicher 3.2 Innovative Techniken für Mikroprozessoren 3.2.1 Stand der Technik und Grenzen heutiger Prozessortechniken 3.2.2 Grenzen heutiger Prozessortechniken 3.2.3 Prozessortechniken zur Erhöhung des Durchsatzes einer mehrfädigen Last 3.2.4 Abschließende Bemerkungen 4 Multiprozessorsysteme 4.1 Quantitative Maßzahlen für parallele Systeme 4.2 Verbindungsstrukturen 4.2.1 Beurteilungskriterien, Unterscheidungsmerkmale und Klassifizierung 4.2.2 Statische Verbindungsnetze 4.2.3 Dynamische Verbindungsnetze 4.3 Speichergekoppelte Multiprozessoren 4.3.1 Modelle speichergekoppelter Multiprozessoren 4.3.2 Cache-Kohärenz und Speicherkonsistenz 4.3.3 Speicherkonsistenzmodelle 4.3.4 Distributed-shared-memory-Multiprozessoren 4.4 Nachrichtengekoppelte Multiprozessorsysteme 4.4.1 Nachrichtengekoppelte Multiprozessoren und verteilte Systeme 4.4.2 Cluster Computer Fast alle Aussagen werden mit Beweisen unterlegt, so dass man eine Aussage wie z.B. "Die Leistungssteigerung beim Clustering konvergiert gegen X. Egal wieviele Nodes man hinzufügt, die Leistung steigt nicht höher als X" oder "Das ist das minimalst mögliche Schaltnetz für die Multiplikation aus diesen Gattern" wirklich nachvollziehen kann und nicht einfach blind glauben muss. Und das ist für mich das Hauptziel des Studiums: dem Studenten die Basis und Befähigung mitgeben, Dinge immer hinterfragen und selbst bewerten zu können. Was den Kurs angeht: der komplette Stoff ist klausurrelevant. Gefordert werden aber Transferleistungen, d.h. nicht Rechnen/Beweisen von Aufgabenstellungen die vom Typ her ähnlich denen aus dem Skript sind, sondern auch Aufgabenstellungen, die mit keinem Wort im Skript erwähnt wurden, mit etwas Nachdenken aber lösbar sind. Voraussetzung ist, dass man den Stoff wirklich verstanden hat und im Kopf unter Zeitdruck fehlerfrei rechnen kann. Ach ja: schnell schreiben sollte man auch können Und wie gesagt: ich finde Beweise sehr, sehr wichtig. Wenn ich eine Prozedur schreiben muss, die eine maximale Anzahl an Datensätzen in einer bestimmten Zeit auswerten muss, muss ich beweisen können, dass es mathematisch einfach nicht schnelelr geht und eine Verbesserung nur durch bessere Hardware erzielt werden kann. Oder ein/en Schaltnetz/Automaten bauen, das/der mit möglichst wenigen Zuständen auskommt und beweisen können, dass weniger einfach nicht mehr geht. Wenn diese Schaltung dann in Großserie geht macht es durchaus was aus, wenn sie nicht aus 10 Zuständen in Hot One Kodierung besteht sondern vielleicht nur aus 6. Bearbeitet 29. April 2011 von Kwaiken Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.