Zum Inhalt springen

  • Beiträge
    72
  • Kommentare
    239
  • Aufrufe
    12.699

Modul: Programmieren in C++ über die Virtuelle Hochschule Bayern


kurtchen

2.152 Aufrufe

Warum ich das Modul "Programmieren in C++" belegt habe

 

Das Modul "Grundlagen der Informatik 2" ist im Curriculum von Springer Campus das einführende Modul in die objektorientierte Programmierung; und zwar sowohl im Studiengang "Web- und Medieninformatik" als auch in "Wirtschaftsinformatik". Die Lehrsprache ist Java, was derzeit an deutschen FHs und Uni nicht unüblich sein dürfte. Ergänzend gibt es im Lehrbuch aber auch je ein Kapitel zu C++ und C#. Die Idee ist, dass der Studierende auch andere objektorientierte Sprachen als Java kennenlernt. Ich war damals ziemlich gespannt auf diese Kapitel, zu denen es auch je eine Einsendeaufgabe gab. Allerdings war ich nach dem Durcharbeiten ein bisschen enttäuscht. Denn es ist natürlich nicht möglich, in der knappen Form eine weitere objektorientierte Sprache zu lernen. Vielmehr haben diese Kapitel mein Verständnis für die Besonderheiten der Sprache Java - sozusagen in Abgrenzung zu C++ und C# - geschärft. Das war auch ein schönes Ergebnis.

 

Dennoch blieb bei mir der Wunsch, zumindest C++ und C noch einmal näher kennen zu lernen. Interessant daran war für mich, dass sowohl C++ als auch C echte Compilersprachen sind. An C interessierte mich vor allem der Umgang mit Zeigern, die ja in Java nicht zur Verfügung stehen. An C++ interessierte mich die Mehrfachvererbung und die dynamische Speicherverwaltung, um die man sich selbst kümmern muss.

 

Leider bietet Springer Campus aktuell keine gründliche Einführung in C oder C++ an. Ich schaute mich also nach anderen Anbietern um. Und wurde fündig bei der Virtuellen Hochschule Bayern (VHB). Diese bietet zum einen das Modul "Programmieren in C++". Das ist eine Einführung in die strukturierte und objektorientierte Programmierung in C++. Es steht somit inhaltich irgendwo zwischen GdI1 und GdI2 im Lehrplan von Springer Campus. Außerdem kann man dort das Modul "Programmieren in C" belegen. Das ist ein Programmierpraktikum in C und richtet sich an Studierende, die Erfahrung mit einer objektorientierten Programmiersprache haben. (Idealerweise natürlich C++, aber auch Java wäre denkbar.) Interessant an diesem Modul ist, dass es in Kooperation mehrerer Hochschulen entwickelt wurde, die im Laufe des Kurses verschiedene "Sichten" auf die Programmiersprache C vermitteln.

 

Man könnte also, von Java kommend, zunächst C++ belegen, um die bekannten objektorientierten Konzepte aus der Perspektive von C++ zu erfahren. Und dann in einem zweiten Schritt das Programmierpraktikum in C buchen, um ohne objektorientierung auszukommen und auch noch etwas maschinennäher zu programmieren. Dieser Top-Down Ansatz war mein Plan, von dem ich nun den ersten Teil umgesetzt habe.

 

Was ist die Virtuelle Hochschule Bayern?

 

Die Virtuelle Hochschule Bayern ist eine gemeinsame Plattform von 9 Universitäten, 17 FHs und 5 weiteren Hochschulen in Bayern, die sich auf diesem Wege gegenseitig Module in Form von Online-Kursen zur Verfügung stellen. So kann man das den Präsenzstudenten lokal gebotene Spektrum an Lehrveranstaltungen erweitern. Die Hochschulen haben Vereinbarungen über gegenseitige Anerkennung bestimmter Module in bestimmten Studiengängen. Das Angebot ist recht breit, umfasst naturwissenschaftliche, geistes- und sozialwissenschaftliche Kurse, aber auch Fächer wie Medizin, Jura, ingenieurwissenschaftliche Fächer, Soziale Arbeit und Sprachen. Außerdem werden im Bereich "Schlüsselqualifikationen" interessante Kurse angeboten, die fächerübergreifende Kompetenzen vermitteln. Das Angebot der VHB findet ihr unter diesem Link:
https://www.vhb.org/startseite/

 

Ein wichtiger Unterschied zu einer Fern-FH oder Fern-Uni: Die VHB bietet lediglich einzelne Module, die als Teil eines Präsenz-Studiums belegt werden können. Es gibt also keinen kompletten Fernstudiengang.

 

Das Angebot der VHB richtet sich in erster Linie an Studierende der Hochschulen des VHB Verbundes. Sie können die Kurse kostenfrei nutzen. Man kann sich aber auch als "sonstiger Nutzer" registrieren. In diesem Fall zahlt man eine Gebühr, die sich nach dem Workload des Moduls richtet. Die Kosten sind recht überschaubar. Als sonstiger Studierender registriert man sich online. Danach erhält man eine Rechnung per Briefpost aus Bamberg. Nach Überweisung der Gebühr wird der Kurs freigeschaltet. Bei der Registrierung sind Fristen zu beachten. In der Regel gibt es EINEN Klausurtermin pro Modul. Die Klausur wird aber oft zeitgleich an mehreren Partnerhochschulen angeboten. Für C++ hatte ich die Wahl zwischen 3 FHs in Bayern. Auch sonstige Nutzer dürfen also Module mit einer Prüfung abschließen, z.B. als Weiterbildung. Eine Anerkennung der ECTS bei Hochschulen außerhalb des VHB-Verbundes muss man aber selbst abklären.

 

Der Kurs "Programmieren in C++"

 

Das Modul basiert auf einem Skript von Professor Herbert Fischer von der TH Deggendorf. Zur Verfügung gestellt wird es als PDF im A4-Format. Wer es auf Papier will, muss es selbst ausdrucken. Das Skript wie auch der Kurs hat 2 Teile. Der erste Teil hat 77 Seiten. Themen sind zum Beispiel:
- Ausdrücke, Anweisungen, Variablen und Datentypen
- Rechenoperatoren
- Funktionen
- Ein- und Ausgabe
- Kontrollstrukturen, Verzweigungen, Schleifen
- Felder und Strings
- Objekte und Klassen
- Vererbung
- Fallbeispiel: Kontoverwaltung

 

Programmiert werden ausschließlich Konsolenanwendungen. GUIs spielen noch keine Rolle. Dynamische Speicherverwaltung ist im ersten Kursteil ausgeklammert. Man kann eine Klausur lediglich über diesen ersten Kursteil schreiben. Die bringt dann 2 ECTS. Die meisten Studierenden werden aber eine Klausur schreiben wollen, die beide Kursteile abdeckt. Die bringt dann 6 ECTS.

 

Das Skript zum zweiten Kurs-Teil hat noch mal 58 Seiten. Hier werden folgende Themen ergänzt:
- Bibliotheken
- Arrays
- Referenzen und Zeiger
- Zeiger auf Zeiger
- Elementoperatoren
- Inline-Funktionen
- Const-Objekte
- der this-Zeiger
- Objekte als Argumente und return-Wert.
- verschiedene Arten der Parameterübergabe
- Dynamische Speicherverwaltung mit new und delete
- Verkettete Listen, doppelt und einfach.
- Bäume und Graphen (sehr knapp)
- Mehrfachvererbung
- Polymorphismus
- Abstrakte Klassen
- Überladen von Operatoren
- Templates (generische Programmierung)
- Dateioperationen
- Exceptions

 

Ergänzend zu den Skripten gibt es auf der Lernplattform Tests und Übungsaufgaben, deren Musterlösungen man sich anzeigen lassen kann. Für jeden Kursteil gibt es 2 Einsendeaufgaben, die von einem Tutor korrigiert werden. Hier muss eine Mindestpunktzahl erreicht werden, um zur Klausur zugelassen zu werden. Insgesamt 4 Aufgaben sind natürlich nicht viel. Die Einsende-Aufgaben sind aber ein bisschen umfangreicher als die Übungsaufgaben. Die letzte und komplexeste ist eine Verwaltung für eine Motorradvermietung mit dynamischer Speicherverwaltung. Bei den Einsendeaufgaben habe ich am meisten gelernt, weil die Aufgabenstellung ein bisschen offener formuliert ist und man sich etwas einfallen lassen muss. Von Java kommend habe ich viele Fehler gemacht, weil die Syntax auf den ersten Blick sehr ähnlich wirkt, aber im Detail dann doch anders ist. Leider hatte ich im ersten Kursteil eine andere Tutorin als im zweiten. Viel Tutorinteraktion kommt so nicht zustande, zumal meine eingereichten Lösungen ganz gut waren, so dass das Feedback knapp ausfiel. Erwartungsgemäß fielen mir vor allen solche Themen schwerer, in denen C++ sich von Java unterscheidet: dynamische Speicherverwaltung, Umgang mit Zeigern, Überladen von Operatoren.

 

Da der Kurs von Studierenden vieler Unis und FH belegt werden kann, sind die Teilnehmerzahlen recht hoch. Es waren über 400. Es gibt auch ein Forum zum Kurs, in dem recht lebhaft diskutiert wird.

 

Die Klausur

 

Die Präsenzklausur dauert 90 Minuten und deckte die Themen des Kurses gut ab. Es gab viele praktische Aufgaben, aber auch solche, in denen Wissen abgefragt wurde. Den Umfang fand ich für die Zeit angemessen, den Schwierigkeitsgrad auch. Manche Fragen fand ich etwas speziell und nicht so praxisrelevant. Im wesentlichen konzentrierte sich die Klausur auf den Aspekt objektorientierte Konzepte, was ich ganz vernünftig finde.

 

Fazit

 

Dem Skript merkt man stellenweise an, dass der Kurs schon ein paar Jahre auf dem Buckel hat. Allerdings ist C++ eine nicht mehr ganz neue Sprache. Die Grundkonzepte, die hier vermittelt werden, sollten ziemlich zeitlos sein, so dass das Alter des Kurses sich eigentlich nicht nachteilig auswirkt. Was ich vermisst habe: In den Kursen bei Springer Campus wurde schon bei der Vermittlung der objektorientierten Konzepte auf guten Klassenentwurf eingegangen. Es wurden also schon ein paar Ideen aus der Softwaretechnik angerissen. Das sollte uns ermutigen, von Anfang an recht sauber zu arbeiten. Das war in diesem Kurs nicht so. Manche Code-Beispiele kamen mir aus Java-Perspektive ein bisschen "quick and dirty" vor.

 

Eines habe ich in dem Kurs nicht gelernt: C++-Code idiomatisch zu schreiben. Man merkt meinen Programmen an, dass ich objektorientierte Programmierung mit Java gelernt habe. Um hier mehr wie ein C++-Programmierer zu denken und zu schreiben, müsste ich mich noch wesentlich länger mit der Sprache beschäftigen. Den Ehrgeiz, in C++ richtig sicher zu werden, habe ich aber nicht. Zumal C++ auch nicht besonders zum Schwerpunkt meines Studiums - Web- und Medieninformatik - passt. Mir ging es einfach darum, diese sehr wichtige Sprache ein bisschen besser kennen zu lernen.

 

Lust auf das Programmierpraktikum C hätte ich aber schon noch. Ich habe mich nämlich sehr an die objektorientierte Denkweise gewöhnt. Da würde ich gerne mal erleben, wie ich ohne diesen "Luxus" auskomme. Mal schauen, ob mir im nächsten Semester Luft für solche Extratouren bleibt.

 

Im Vergleich zu den Kursen bei Springer Campus (aber auch zur WINGS) ist man bei der VHB mehr auf sich gestellt. Es gibt eine tutorielle Betreuung, aber sie fällt im Vergleich recht knapp aus. Man merkt, dass hier viele Studierende betreut werden. Die VHB bietet einen strukturierten Rahmen, in dem man etwas anspruchsvolles Lernen kann. Aber man muss schon sehr selbstständig arbeiten. Dafür sind die Kosten sehr moderat.

 

Der Begriff "lebenslanges Lernen" wird in den Medien oft im Zusammenhang mit älteren Arbeitnehmern gebraucht, die auf dem Arbeitsmarkt konkurrenzfähig bleiben sollen. Lebenslanges Lernen meint also meist berufliche Weiterbildung. Man kann lebenslanges Lernen aber auch breiter Denken; nämlich als lebenslange Freude an neuer Erkenntnis und an Wissenschaft.

 

Die VHB ist auf jeden Fall etwas, das ich im Hinterkopf behalten möchte, auch für die Zeit nach meinem Fernstudium.

6 Kommentare


Empfohlene Kommentare

Vielen Dank. Insbesondere für den Abschnitt "Was ist die Virtuelle Hochschule Bayern?" - finde ich sehr gut erklärt, gerade für diesen Bezug als externer Teilnehmer. 

Link zu diesem Kommentar

Heute ist mein Klausurergebnis gekommen. Mit 1,7 ist es besser ausgefallen, als ich gedacht habe. Ich vermute, meine Schwächen lagen bei den Themen Operatorüberladung und Zeigerarithmetik; also genau solche Aspekte, die in C++ gegenüber Java etwas speziell sind. Das gute Ergebnis hat mir Mut gemacht, noch ein bisschen mehr in diese vergleichsweise maschinennahe Art der Programmierung einzusteigen. Ich denke nun ernsthaft darüber nach, im kommenden Semester das Programmierpraktikum "Programmieren in C" über die VHB zu belegen. Es bringt lediglich 2 ECTS, sollte also nicht zu viel Zeit fressen. Vermutlich wäre in diesem Modul auch eine Prüfung in meiner Stadt möglich.

Link zu diesem Kommentar

Kleine Ergänzung: Die Virtuelle Hochschule Bayern bietet das Modul "Programmierung in C++" nun auch in englischer Sprache an. Vielleicht gibt es ja Studierende der Informatik, die ergänzend mal ein Modul auf Englisch belegen wollen.

 

Die VHB bietet weitere Informatik-Module in englischer Sprache, z.B. "Introduction to Automata, Languages and Computation" und "Tele-Experiments with Mobile Robots". Letzteres ist eine besonders interessante Form des Fernlernens, weil man da unter anderem kleine selbstfahrende Roboter programmiert, die in einem Labor stehen und von Kameras gefilmt werden. So kann man zu Hause am Bildschirm verfolgen, was der Roboter macht. Plätze sind natürlich begrenzt. Außerdem sollte man sich mit linearer Algebra, Vektorrechnung und dem Lösen von Differentialgleichungen auskennen.

 

Diese Möglichkeit, ECTS von staatlichen Hochschulen für sehr kleine Münze zu erwerben, finde ich schon ziemlich toll. Warum kriegen andere Bundesländer kein vergleichbares Portal hin?

Bearbeitet von kurtchen
Link zu diesem Kommentar

danke für den Tip 😃

der Kurse könnte für mich interesant werden sobald ich mit Java durch bin

Link zu diesem Kommentar
vor 9 Stunden, kurtchen schrieb:

Languages and Computation" und "Tele-Experiments with Mobile Robots". Letzteres ist eine besonders interessante Form des Fernlernens, weil man da unter anderem kleine selbstfahrende Roboter programmiert, die in einem Labor stehen und von Kameras gefilmt werden. So kann man zu Hause am Bildschirm verfolgen, was der Roboter macht. Plätze sind natürlich begrenzt. Außerdem sollte man sich mit linearer Algebra, Vektorrechnung und dem Lösen von Differentialgleichungen auskennen.

 

wie cool, hältst dus für realistisch da als externer Informatikstudent einen Platz zu bekommen?

Link zu diesem Kommentar

Kann ich nicht einschätzen. Kommt vielleicht auf den Andrang an. Über die Anforderungen in Mathe würde ich mich vorher genau informieren.

Link zu diesem Kommentar

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden


×
  • Neu erstellen...