Formale Sprachen im Informatik-Studium

eine Übersicht

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Formale Sprachen im Informatik-Studium
Ich hab mich gefragt, welche Programmier-, Auszeichnungs- und sonstige formalen Sprachen man im Informatik-Studium bei uns lernt oder lernen kann.
[color=gray]
------ edit ------------[/color]
Eine Übersicht findet ihr im Wiki. Verbesserungen und Anmerkungen sind gerne gesehen :wink: [color=gray]
------ /edit -----------
[Liste ins Wiki verschoben][/color]

Fallen euch noch andere Lehrveranstaltungen ein, bei denen man formale Sprachen lernt?

Ich ergänze das dann hier oben. Für Bewerbungen interessant wären z.B. Visual Basic, .NET, C#, JavaScript, Perl, Haskell


Die Sprachen sind ja eher Mittel zum Zweck. Beispielsweise lernt niemand
wirklich C++ in AlgoKS^^

Haskell kann man btw in vielen Theoretischen Vorlesungen verwenden (z.B. ThProg, Glolop, OntosWeb usw.)
Coq benutzt man in SemProg. in FM benutzt man Dafny und in Glolop Prolog.

3 Likes

Oder VHDL in GTI.


Bei C++ solltest du auf jeden Fall die Vorlesung “Advanced Programming Techniques” nennen. Verwendet wird die Sprache auch in den meisten anderen Vorlesungen von LS9 und 10, wahlweise auch in IntroPR.

Zu Matlab gibt’s in der ersten Übung zu “Biomedizinische Signalverarbeitung” eine Einführung, alle praktischen Übungen werden, wie in “Pattern Recognition” und “Pattern Analysis”, darin programmiert.

Denk dran, dass du wegen den Foreneinstellungen deinen Post nicht unbegrenzt lange editieren kannst…


C und C++ benutzt man bespielsweise auch in Verlässliche Echtzeitsysteme, Echtzeitsysteme, Middleware, BS, BST, VS usw. Alle Vertiefungen vom I4 :smiley:


VS ist was ich so gehört habe in Java.


Irgendwo stand mal in einer Erlanger Studien-Einstiegs-Broschüre „Ziel eines Informatikstudiums ist es nicht, möglichst viele Programmiersprachen zu lernen“. Finde die aber leider gerade nicht mehr.

GloLoP heißt jetzt „Grundlagen der Logik in der Informatik“ und enthält kein Prolog mehr.


Mir ist schon klar, dass wir keine Programmierer, sondern Informatiker sind. Mir geht es nur darum, dass man das einem Personalchef (m/w) nicht so leicht verklickern kann und das bei Bewerbungen doch eben abgefragt wird. Gerade die Skriptsprachen (C#, JavaSkript) werden oft verlangt, aber gesehen hab ich die im Studium noch nie.

Ich erstell glaub ich mal ne Wiki-Seite. Dann kann jeder daran rumdoktorn.


Python ist eine Skriptsprache. Ansonsten kann man - ich spreche aus Erfahrung - auch selbst in 2 Wochen jede Programmiersprache erlernen.

Ohnehin halte ich für wenig sinnvoll, in einer Firma nur als Programmierer zu arbeiten - dafür benötigt man imho. kein Studium im Informatikbereich.


Klar, C++ ist kein Problem, wenn man Java aus AuD kennt. Vor allem, wenn man noch SP hatte. Bei Scala oder Haskell wird es aber schon schwieriger.
Und wer HTML kann, kann gar nicht programmieren :-p

Die Wiki-Seite ist angelegt.


Naja, der eigentlich wichtige Teil beim Erlernen von $irgendwas im universitären Studium ist auch nicht, dass man sich Wissen per se aneignet, sondern die Fähigkeiten bei Bedarf das entsprechende Wissen zu finden, zu verstehen und zu erlernen. D.h. viele Programmiersprachen zu können ist irrelevant, relevant ist, jede bei Bedarf schnell erlernen oder verstehen zu können. Dazu bekommt man mal anhand einiger Beispiele die grundlegenden Konzepte auf denen Sprachen basieren könnten beigebracht, was man dann auf die jeweils aktuell geforderte Situation selbst übertragen können muss. Das ist natürlich eine schwer zu quantifizierende Fähigkeit, d.h. es ist schwer dem Personaler klarzumachen, dass die fehlenden Kenntnisse in Obskura4.27 kein Hindernis sind…

4 Likes

Und dann passiert genau das, was zumindest von meinem Umfeld inkl. mir in AlgoKS praktiziert wurde: Man steckt C-Code gespickt mit news, raw-pointern und ähnlichen problematischen Dingen in einen C++ Compiler und redet sich ein, man hätte folglich auch C++ programmiert…

4 Likes

Aber man hat dann C++ programmiert, solange es der Compiler auch gefressen hat. Grade bei C++ kann man sich sehr austoben bei den Paradigmen und Konzepten die man gerne anwenden oder meiden moechte: Die einen finden const toll, die anderen haltens fuer Teufelswerk. Die einen sagen, man soll Referenzen verwenden, sonst waeren sie nicht in der Sprache und Pointer sind boese. Andererseits waeren ja Pointer auch nicht in der Sprache, wenn man sie nicht verwenden sollte. Das kann man dann mit Mehrfachvererbung, Operatorueberladung, Vererbung, private/public vs #define private public, Templates, STL, Boost und wasweissichnochalles durchexerzieren, bis man bei seinem persoenlichen Lieblings-C+±Subset angekommen ist, das man fuer „richtiges C++“ hält. Aber man wird sich dabei vermutlich niemals wirklich einig werden, selbst diverse mehr oder weniger bekannte FAQs, FQAs, Spracherfinder und Consorten sind sich da uneins.


Das konnte mir nicht passieren, weil ich AlgoKS direkt nach AuD hatte und SP1 erst letztes Semester. Bei Medizintechnikern ist das in AlgoKS Java programmieren mit C+±Syntax und bei Pointern probiert man nach dem Zufallsprinzip * und & aus. Eins davon klappt schon.
In der Vorlesung heißt es da immer „Das kennen Sie ja aus [hier Vorlesung einfügen, die es in der MedTech-FPO nicht gibt]“.


Ach, ich will nicht leugnen, dass ich zu Beginn von SP 1 nicht ähnliches getan habe, irgendwann sind Pointer für jeden was neues. Aber zum Glück lernt im Verlauf der Aufgaben dazu^^

Ich würde auch nicht sagen, dass es „das“ richtige C++ gibt. Aber C++ hat zum einen auch gegenüber Java einige Vorzüge (sicher auch genug Nachteile) und ist eben mehr, als im SP-C-Code die mallocs gegen news auszutauschen. Du scheinst da ja etwas Überblick zu haben. Aber genau deshalb kann man eben nicht sagen, dass man C++ allein mit Kenntnis von Java und C anständig programmieren kann, weil einem dann einfach Grundkonzepte der Sprache noch fehlen. Sicher wird man am Ende nicht alles verwenden wollen oder überhaupt lernen können, was die Sprache bietet; aber einen C++ Compiler kann ich auch mit reinem C-Code füttern - hab ich dann C++ programmiert?

1 Like

Ja, sobald es der (einigermassen standardkonforme) Compiler frisst hast du C++ programmiert.

Ich behaupte die Festlegung auf irgendein konkretes Feature oder auch nur irgendeine Kleinigkeit die ueber C hinausgeht, was man unbedingt benutzt haben muss damit es überhaupt C++ sein kann, eben willkuerliches Rosinenpicken ist. Man kommt bei jeder solchen Festlegung auf eine Art, wie man eine Sprache “anständig” programmieren sollte immer in die Situation, dass das jemand anderem aus irgendwelchen Gruenden nicht passt. Dann kriegt man Dinge zu hoeren wie dass es eben kein richtiges (“idiomatisches”, “sauberes”, “schoenes”, …) C++ ist wenn man sowas tut (http://en.wikipedia.org/wiki/No_true_Scotsman).

Einziger meiner Meinung nach sinnvoller Ausweg aus solchen sinnlosen Diskussionen ist die Akzeptanz der einzigen neutralen Instanz, die (mehr oder weniger korrekt oder terminierend) entscheidet ob das Programm in der Sprache C++ liegt: der Compiler…


Zu “ich kann eine Sprache” gehört aber mehr als “ich habe Code produziert, den ein Compiler für diese Sprache frisst”. Wenn man einen AlgoKS-Absolventen vor Boost oder auch nur Beispielcode aus der C+±Referenz setzt, prophezeie ich, dass er hoffnungslos überfordert damit sein wird. “Kann” ich eine Sprache, wenn ich nichtmal die Beispiele aus einer Dokumentation der Standardbibliothek verstehe?


Wenn AlgoKS ernsthaft so unterrichtet wird, dann wundere ich mich nicht mehr über das Meckern bezüglich der Vermittlung falscher Inhalte. Selbst im „Programmierkurs der Theoretischen Physik“, ein dem ProPra ähnliches Modul, das auf die Computerphysik vorbereitet, mussten wir im 5. Übungsblatt mit Boost arbeiten. Über „C++ for numerical projects in optics“ will ich gar nicht erst reden.


C++ lernen ist nicht das Ziel von AlgoKS

Edit:
Und das ist auch gut so

5 Likes