KIF465:Programmierpraxis im Studium: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „https://md.kif.rocks/kif465_programmierpraxis“) |
Anno (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
https:// | Anwesend: - HS Emden-Leer - TH Nürnberg - Uni Heidelberg - HS Karlsruhe - KIT - TU Dresden - Uni Bonn - Uni Tübingen - Uni Augsburg - Uni Goettingen - Uni Würzburg - Uni Bamberg - JGU Mainz - Uni Erlangen (später) | ||
== Welche Sprachen/Praxismodule? == | |||
=== Emden === | |||
* Java als Einstig im ersten Semester | |||
* C und Java im zweiten | |||
* Assembler und C im dritten | |||
* C und Java im vierten | |||
* Ab da Wahl und hauptsächlich C. | |||
* Jedes Semester Programmierfächer, keine Ballung der Programmieraufgaben | |||
* Alles in allem sehr Praktisch bezogen ### KIT | |||
* Java zum Einstieg | |||
* C, Assembler in 2 Vorlesungen nebenbei (verpflichtend 3. Semester) | |||
* SQL Datenbanksysteme (3. Semester) | |||
* C++ Einstieg in Computergraphik (muss nicht belegt werden) | |||
* Prolog, Haskell verpflichtend (5. Semester) | |||
* Praxis der Softwareentwicklung Sprache abhängig vom Projekt | |||
=== Bonn === | |||
* C, Java manchmal je nach Laune des Profs ein Bisschen python | |||
* mehr C, Assembler und Rust/Go im Wahlpflicht | |||
=== HS Karlsruhe === | |||
* Java 1,2 (erste beiden Semester) | |||
* JavaScript, HTML, CSS3 im 2. Semester (VL Verteilte Systeme) | |||
* C/C++ im 2. Semester | |||
* bisschen Assembler und VHDL innerhalb der VL Technische Informatik 2 | |||
* SQL im 2. Semester (im Zusammenhang mit der Vorlesung Datenbanken 1) | |||
* Go (5. Semester) | |||
* Fachschaft veranstaltet einen 4 tägigen [https://www.hska.info/vorkurs Programmiervorkus] mit Java vor jedem Semester für neue Erstis -> Crash-Kurs über die Inhalte des ersten Semesters, damit die Leute das Zeug schonmal gesehen haben (der Anspruch bei uns ist nicht, dass die Leute am Ende alles komplett verstanden haben/Programmieren können) | |||
* Master: | |||
* Haskell in der Vertiefungsrichtung Software Engineering | |||
* Python in der Vertiefungsrichtung Maschinelles Lernen | |||
* [http://www.iwi.hs-karlsruhe.de/Intranetaccess/info/modules/INFB Modulhandbuch Informatik Bachelor] | |||
=== Uni Heidelberg === | |||
* C++ in 2 Veranstaltungen im ersten Semester | |||
* Java später in Software Engeneering | |||
* Freiwilliger Python-Blockkurs | |||
=== Uni Goettingen === | |||
* Pflicht: [https://flexnow2.uni-goettingen.de/modulbeschreibungen/14867.pdf Java], [https://flexnow2.uni-goettingen.de/modulbeschreibungen/15134.pdf C], [https://flexnow2.uni-goettingen.de/modulbeschreibungen/14869.pdf Assembler (MIPS), Haskell] | |||
* je nach Interessen: Python, C++, Prolog | |||
* Softwareprojekt im 2. Semester (Umfang 5CP,[https://flexnow2.uni-goettingen.de/modulbeschreibungen/15137.pdf Modulbeschreibung]) | |||
* Spielprogrammierung in 4er Gruppen | |||
* Vorlesungen zur objektorientierten Programmierung im Semester | |||
* im letzten Monat Umsetzungen der Spezifikationen (GUI, Netzwerk, Spiellogik) auf Basis von Uni gegebenem Code | |||
* Modulpruefung: muendliche Pruefung | |||
=== TU KL === | |||
* Grundlagen der Programmierung: Java, C, F# oder Haskel (Prof abhängig) | |||
* Verteilt auf andere Vorlesungen: | |||
* SQL | |||
* Python | |||
* Prozessorsprachen (z.B. MIPS) | |||
* Projektmanagemet | |||
* Nebenläufigkeit | |||
* Software-Architektur (minimal) | |||
* Software-Entwicklungs-Projekt (Java, Git, Wasserfall) | |||
* Ziel: Spiel programmieren (z.B. Hanabi, Risiko) | |||
* Fokus auf Sicherheit oder Erweiterbarkeit | |||
* Netzwerkfähigkeit | |||
* Übungsleiter zu Gruppenverhältnis: ca 1 zu 3 | |||
* Möglichkeit von vorgegebenem Framework abzuweichen | |||
* Scrum statt Wasserfall | |||
* Socket statt RMI | |||
* $framework statt JFX | |||
=== TU Dresden === | |||
* C, Python, Java, Haskell im 1. Semester | |||
* C++, Java im 2. Semester | |||
* Softwaretechnologie - allein, Programmieraufgaben in Java, Bonuspunkte für die Prüfung | |||
* Einführung in die Medieninformatik - 3 bis 5 Personen, Entwicklung einer Android-App | |||
* Softwaretechnologiepraktikum - 4 bis 6 Personen, Wasserfall Entwicklung für fiktiven und echten Auftrag, Versionsmanagement, Meetings, meist Webshop o.Ä. als Aufgabe | |||
* RoboLab - 4 bis 5 Personen, Lego Mindstorms, Labyrinth in den Semesterferien | |||
* Strategiespielpraktikum - allein, Strategiespiel automatisiert spielen, Wettbewerb gegeneinander am Ende | |||
* Studentisch organisierte Programmierkurse (meist C, Java und Python) | |||
* git Einführung kurz nach der O-Phase (ESE) | |||
=== Uni Augsburg === | |||
* Grundlagen(Semester 1-3): C, Java, SQL, Assembly | |||
* Softwareprojekt (Kooperation mit Firma; Unterteilung in Teams 4-6Leute; Code vom besten Team geht an die Firma; meistens Java-Projekt), Git; Ingenieurinformatik(C–> Robotik) | |||
* Informatik und Multimedia -> zusätzlich Multimediaprojekt | |||
* Wirtschaftsinformatik -> zusätzlich Projektstudium auch in Kooperation mit externen Stellen (Web/App) | |||
* Vertiefungsmodule Python; AI | |||
* Programmierkurs (C ^ Java) | |||
=== TH Nürnberg === | |||
* C# im Grundstudium | |||
* Java | |||
* Javascript | |||
* PHP | |||
* (optional C++, Haskell) | |||
=== Uni Würzburg === | |||
* Programmiervorkurs (Java) | |||
* Grundlagen der Programmierung (Java + C) | |||
* Programmierpraktikum (Java) | |||
* Softwarepraktikum (in 3er Teams) (diverse, meist Java) | |||
* Im Rahmen anderer VL: VHDL, Prolog, Scala, Python | |||
=== Uni Bamberg === | |||
* Einführung in Algorithmen, Programmierung und Software (C – vorher Java) | |||
* Java Programmierung (Java) | |||
* Software Engineering Lab (Java) | |||
* Programmierung komplexer interagierender Systeme (Java) | |||
* Foundations of Software Engineering (Java) | |||
* Introduction to Functional Programming (Haskell) | |||
* sonst: je nach Vorlieben der Lehrstühle (neben Java oft auch Python, dann nur selten C/C++ oder Prolog) | |||
* keine selbstorganisierten Programmierkurse (evtl. irgendwann mal Python durch Fachschaft) | |||
== Programmiervorkurse == | |||
* Blockveranstaltung wie Mathe-Vorkurs | |||
* wird teilw. dringend empfohlen | |||
* -> weniger Einstiegsprobleme | |||
* manche Vorlesungen versuchen Grundlagen zu wiederholen, fangen aber nicht bei Null an | |||
* Kritik aus Plenum: Warum wird das so stark vorausgesetzt? Sind die Vorlesungen dann nicht “falsch” ausgelegt? | |||
* manchmal Vorkurse durch FS organisiert | |||
* Fragen ans Plenum: | |||
* Umfang von einzelnen Aufgaben in Programmierkurs (LOC) | |||
* 500-700 | |||
* 200-300 (bei vielen Aufgaben, ca. jede Woche) | |||
* Gruppengröße | |||
* max. 2 | |||
* Wie sind die Aufgaben aufgebaut (Einzelaufgaben, aufeinander aufbauend, ein großes Projekt)? | |||
* Problem bei aufbauenden: Fehlzeiten | |||
* Hybrid: Jede Woche kleinere Aufgaben, ein großes Projekt, dass über das ganze Semester läuft | |||
* Online-Abgabe: Wird Bewertung automatisch durchgeführt oder manuell bewertet? | |||
* Praktomat | |||
* kombiniert: Praktomat + manuelles Screening | |||
* Motivation für autom. Bewertung: Wenig Code-Audits, damit HiWis nicht schreiend weglaufen | |||
* Code-Style-Vorgabenblatt (Praktomat überprüft Code-Style) | |||
* Problem autom. Korrektur: Ersties lernen funktionierenden Code, aber nicht guten/schönen Code zu schreiben | |||
* Kommentar: Davon verabschieden, Programmieren an der Uni zu lernen, sondern Konzepte. | |||
* Gegenargument: So erhält man Leute, die nur Spaghetti-Code produzieren | |||
* Programmieren lernt man hauptsächlich, in dem man es tut | |||
* Dadurch wird z.B. nicht gelehrt, wie Mensch richtig kommentiert | |||
== Funktionale Sprachen als Einstieg? == | |||
* Erfahrung mit Standard ML | |||
* viele finden es ziemlich cool (kommen auf funktionale Programmierung zurück, wenn sie freie Wahl haben – z.B. im Gegensatz zu Java) | |||
* -> Fazit: “kommt gut an” | |||
* andere Erfahrung: Einsteiger mit Java vs Einsteiger mit Haskell -> Haskell-Einsteiger haben es oft leichter | |||
* Zwischenfrage: Haben enorme Unterschiede bei Vorkenntnissen (Zustimmung im Plenum) einen Einfluss darauf? | |||
== Does and don’ts für Programmierkurse == | |||
=== Don’ts === | |||
* Man sollte nicht durch Peer Review des Codes, allein, das Praktikum bestehen können. | |||
* Einteilung von Gruppen basierend auf Noten (Schlechte vs gute Gruppen) | |||
* Problem: T.E.A.M.: Toll, Ein Anderer Macht’s ### Does | |||
* Eingereichten Code durch andere Teilnehmer kontrollieren/bewerten lassen. | |||
== Wahl der Projekt Themen == | |||
Varianten: - Liste mit Beispielprojekten und sonst sind beliebige Projekte möglich - Hier muss sich unter Umständen noch ein Betreuer gesucht werden - Ein Thema wird vorgegeben und dieses wird dann von allen bearbeitet - Es gibt ein Lastenbuch für ein Projekt (ausgedacht, oder aus Wirtschaft) und muss bestimmte Stati erreichen, Lastenbuch wird auch immer mal wieder geändert (alltagsnah) - n Projekte werden ausgedacht, dann wird ein Thema zugelost (auch Gruppen so gelost) | |||
== Praxis an der Uni: == | |||
— Uni Bonn: Reakkreditierung, Prof überlegt sich ein Projekt, C und Java, Programmieren vorkurs C, C für Anfänger, Java für Anfänger — Hochschule Emden: Praxis jedes Semester, Java, C/C++, SQL — HS Karlsruhe: Viel Programmierpraxis -> zu fast jeder Vorlesung ein Labor/eine Übung -> Anwendung des VL-Stoffes im Team, größeres Modul im dritten Semester, Java, C/C++, SQL, Haskell (Wahlfach im höheren Semester), ein Semester Projektarbeit im 5. Semester (alleine oder im Team -> meist “agile Vorgehensweise”, je nach Projekt auch in Zusammenarbeit mit einer Firma) — TU Dresden: Viele Veranstaltung mit Programmierung: C im ersten, Java im zweiten, Lego Mindstorms mit Python, Einführung in die Computergrafik — Uni Augsburg: C im ersten, Java im zweiten, SQL Assembler im dritten, Java Projekt, — TU Kaiserslautern: Java, F# und C, SQL, unterschiedlichste Programmiersprachen, — KIT: Einführung in Programmieren (Java + Objektorientierung)(1. Semester), Java - Softwaretechnik 2. Semester, C / Assembler in Betriebssysteme, Technischer Informatik (3. Semster), Haskell / Prolog Programmierparadigmen (5. Semester), Praxis der Softwareentwicklung (abgewandeltes Wasserfallmodell) Sprache abhängig vom Projekt (Objektorrientiert), weitere Sprache in unterschiedlichen Vorlesung (C++ in Computergrafik) (muss nur verwendet werden) — Uni Mainz: Python erstes Semester, altertümliches C++, Programmiersprachen(war mal funktionale Sprachen, jetzt eher Konzeptvorlesung), Software engeneering (Java), Computergrafik (C/C++) — Uni Göttingen: Einstieg Java, C, Haskell und Assembler, allgemeines Programmierpraktikum, Projekt(meist Spiel komplett erstellen) — HU Berlin: Grundlagenvorlesung Java, kleineres Projekt in Selbststudium C, in der Logik-Vorlesung Prolog — Uni Tübingen: Python — Uni Heidelberg: C++ zwei Veranstaltungen, Python wissen in AlgoDat, Java in Softwareengeneering, 2-3 freie (Team-)Projekte, SQL — TH Nürnberg: Programmierenpraktikum Sem 1+2 C#, Webprogrammierung PHP, JavaScript — Uni Karlsruhe: Java 1+2, C und Assembler in Betriebsysteme, Haskell, Prolog, Projekte, SQL — Uni Konstanz: Java, Haskell, C, C++, [no]SQL — Uni Saarland: Funktionales Programmieren, Assembler, C, Java, Softwarepraktikum in Java, C++ später wählbar — Uni Würzburg: Programmieren Vorkurs Java, Java und C einführungsveranstaltung, Java Blockpraktikum, Softwarepraktikum Teams Sprache frei wählbar, Prolog, JavaScript, Python, C/C++ verbannt — Uni Passau: Einführung in Haskell und Java, Java Vertiefung, Softwareengeneering ein größeres Projekt — Uni Bamberg: C, Java-Programmierung, Haskell, Python, Prolog |
Aktuelle Version vom 6. November 2018, 16:50 Uhr
Anwesend: - HS Emden-Leer - TH Nürnberg - Uni Heidelberg - HS Karlsruhe - KIT - TU Dresden - Uni Bonn - Uni Tübingen - Uni Augsburg - Uni Goettingen - Uni Würzburg - Uni Bamberg - JGU Mainz - Uni Erlangen (später)
Welche Sprachen/Praxismodule?[Bearbeiten]
Emden[Bearbeiten]
- Java als Einstig im ersten Semester
- C und Java im zweiten
- Assembler und C im dritten
- C und Java im vierten
- Ab da Wahl und hauptsächlich C.
- Jedes Semester Programmierfächer, keine Ballung der Programmieraufgaben
- Alles in allem sehr Praktisch bezogen ### KIT
- Java zum Einstieg
- C, Assembler in 2 Vorlesungen nebenbei (verpflichtend 3. Semester)
- SQL Datenbanksysteme (3. Semester)
- C++ Einstieg in Computergraphik (muss nicht belegt werden)
- Prolog, Haskell verpflichtend (5. Semester)
- Praxis der Softwareentwicklung Sprache abhängig vom Projekt
Bonn[Bearbeiten]
- C, Java manchmal je nach Laune des Profs ein Bisschen python
- mehr C, Assembler und Rust/Go im Wahlpflicht
HS Karlsruhe[Bearbeiten]
- Java 1,2 (erste beiden Semester)
- JavaScript, HTML, CSS3 im 2. Semester (VL Verteilte Systeme)
- C/C++ im 2. Semester
- bisschen Assembler und VHDL innerhalb der VL Technische Informatik 2
- SQL im 2. Semester (im Zusammenhang mit der Vorlesung Datenbanken 1)
- Go (5. Semester)
- Fachschaft veranstaltet einen 4 tägigen Programmiervorkus mit Java vor jedem Semester für neue Erstis -> Crash-Kurs über die Inhalte des ersten Semesters, damit die Leute das Zeug schonmal gesehen haben (der Anspruch bei uns ist nicht, dass die Leute am Ende alles komplett verstanden haben/Programmieren können)
- Master:
- Haskell in der Vertiefungsrichtung Software Engineering
- Python in der Vertiefungsrichtung Maschinelles Lernen
- Modulhandbuch Informatik Bachelor
Uni Heidelberg[Bearbeiten]
- C++ in 2 Veranstaltungen im ersten Semester
- Java später in Software Engeneering
- Freiwilliger Python-Blockkurs
Uni Goettingen[Bearbeiten]
- Pflicht: Java, C, Assembler (MIPS), Haskell
- je nach Interessen: Python, C++, Prolog
- Softwareprojekt im 2. Semester (Umfang 5CP,Modulbeschreibung)
- Spielprogrammierung in 4er Gruppen
- Vorlesungen zur objektorientierten Programmierung im Semester
- im letzten Monat Umsetzungen der Spezifikationen (GUI, Netzwerk, Spiellogik) auf Basis von Uni gegebenem Code
- Modulpruefung: muendliche Pruefung
TU KL[Bearbeiten]
- Grundlagen der Programmierung: Java, C, F# oder Haskel (Prof abhängig)
- Verteilt auf andere Vorlesungen:
- SQL
- Python
- Prozessorsprachen (z.B. MIPS)
- Projektmanagemet
- Nebenläufigkeit
- Software-Architektur (minimal)
- Software-Entwicklungs-Projekt (Java, Git, Wasserfall)
- Ziel: Spiel programmieren (z.B. Hanabi, Risiko)
- Fokus auf Sicherheit oder Erweiterbarkeit
- Netzwerkfähigkeit
- Übungsleiter zu Gruppenverhältnis: ca 1 zu 3
- Möglichkeit von vorgegebenem Framework abzuweichen
- Scrum statt Wasserfall
- Socket statt RMI
- $framework statt JFX
TU Dresden[Bearbeiten]
- C, Python, Java, Haskell im 1. Semester
- C++, Java im 2. Semester
- Softwaretechnologie - allein, Programmieraufgaben in Java, Bonuspunkte für die Prüfung
- Einführung in die Medieninformatik - 3 bis 5 Personen, Entwicklung einer Android-App
- Softwaretechnologiepraktikum - 4 bis 6 Personen, Wasserfall Entwicklung für fiktiven und echten Auftrag, Versionsmanagement, Meetings, meist Webshop o.Ä. als Aufgabe
- RoboLab - 4 bis 5 Personen, Lego Mindstorms, Labyrinth in den Semesterferien
- Strategiespielpraktikum - allein, Strategiespiel automatisiert spielen, Wettbewerb gegeneinander am Ende
- Studentisch organisierte Programmierkurse (meist C, Java und Python)
- git Einführung kurz nach der O-Phase (ESE)
Uni Augsburg[Bearbeiten]
- Grundlagen(Semester 1-3): C, Java, SQL, Assembly
- Softwareprojekt (Kooperation mit Firma; Unterteilung in Teams 4-6Leute; Code vom besten Team geht an die Firma; meistens Java-Projekt), Git; Ingenieurinformatik(C–> Robotik)
- Informatik und Multimedia -> zusätzlich Multimediaprojekt
- Wirtschaftsinformatik -> zusätzlich Projektstudium auch in Kooperation mit externen Stellen (Web/App)
- Vertiefungsmodule Python; AI
- Programmierkurs (C ^ Java)
TH Nürnberg[Bearbeiten]
- C# im Grundstudium
- Java
- Javascript
- PHP
- (optional C++, Haskell)
Uni Würzburg[Bearbeiten]
- Programmiervorkurs (Java)
- Grundlagen der Programmierung (Java + C)
- Programmierpraktikum (Java)
- Softwarepraktikum (in 3er Teams) (diverse, meist Java)
- Im Rahmen anderer VL: VHDL, Prolog, Scala, Python
Uni Bamberg[Bearbeiten]
- Einführung in Algorithmen, Programmierung und Software (C – vorher Java)
- Java Programmierung (Java)
- Software Engineering Lab (Java)
- Programmierung komplexer interagierender Systeme (Java)
- Foundations of Software Engineering (Java)
- Introduction to Functional Programming (Haskell)
- sonst: je nach Vorlieben der Lehrstühle (neben Java oft auch Python, dann nur selten C/C++ oder Prolog)
- keine selbstorganisierten Programmierkurse (evtl. irgendwann mal Python durch Fachschaft)
Programmiervorkurse[Bearbeiten]
- Blockveranstaltung wie Mathe-Vorkurs
- wird teilw. dringend empfohlen
- -> weniger Einstiegsprobleme
- manche Vorlesungen versuchen Grundlagen zu wiederholen, fangen aber nicht bei Null an
- Kritik aus Plenum: Warum wird das so stark vorausgesetzt? Sind die Vorlesungen dann nicht “falsch” ausgelegt?
- manchmal Vorkurse durch FS organisiert
- Fragen ans Plenum:
- Umfang von einzelnen Aufgaben in Programmierkurs (LOC)
- 500-700
- 200-300 (bei vielen Aufgaben, ca. jede Woche)
- Gruppengröße
- max. 2
- Wie sind die Aufgaben aufgebaut (Einzelaufgaben, aufeinander aufbauend, ein großes Projekt)?
- Problem bei aufbauenden: Fehlzeiten
- Hybrid: Jede Woche kleinere Aufgaben, ein großes Projekt, dass über das ganze Semester läuft
- Online-Abgabe: Wird Bewertung automatisch durchgeführt oder manuell bewertet?
- Praktomat
- kombiniert: Praktomat + manuelles Screening
- Motivation für autom. Bewertung: Wenig Code-Audits, damit HiWis nicht schreiend weglaufen
- Code-Style-Vorgabenblatt (Praktomat überprüft Code-Style)
- Problem autom. Korrektur: Ersties lernen funktionierenden Code, aber nicht guten/schönen Code zu schreiben
- Kommentar: Davon verabschieden, Programmieren an der Uni zu lernen, sondern Konzepte.
- Gegenargument: So erhält man Leute, die nur Spaghetti-Code produzieren
- Programmieren lernt man hauptsächlich, in dem man es tut
- Dadurch wird z.B. nicht gelehrt, wie Mensch richtig kommentiert
Funktionale Sprachen als Einstieg?[Bearbeiten]
- Erfahrung mit Standard ML
- viele finden es ziemlich cool (kommen auf funktionale Programmierung zurück, wenn sie freie Wahl haben – z.B. im Gegensatz zu Java)
- -> Fazit: “kommt gut an”
- andere Erfahrung: Einsteiger mit Java vs Einsteiger mit Haskell -> Haskell-Einsteiger haben es oft leichter
- Zwischenfrage: Haben enorme Unterschiede bei Vorkenntnissen (Zustimmung im Plenum) einen Einfluss darauf?
Does and don’ts für Programmierkurse[Bearbeiten]
Don’ts[Bearbeiten]
- Man sollte nicht durch Peer Review des Codes, allein, das Praktikum bestehen können.
- Einteilung von Gruppen basierend auf Noten (Schlechte vs gute Gruppen)
- Problem: T.E.A.M.: Toll, Ein Anderer Macht’s ### Does
- Eingereichten Code durch andere Teilnehmer kontrollieren/bewerten lassen.
Wahl der Projekt Themen[Bearbeiten]
Varianten: - Liste mit Beispielprojekten und sonst sind beliebige Projekte möglich - Hier muss sich unter Umständen noch ein Betreuer gesucht werden - Ein Thema wird vorgegeben und dieses wird dann von allen bearbeitet - Es gibt ein Lastenbuch für ein Projekt (ausgedacht, oder aus Wirtschaft) und muss bestimmte Stati erreichen, Lastenbuch wird auch immer mal wieder geändert (alltagsnah) - n Projekte werden ausgedacht, dann wird ein Thema zugelost (auch Gruppen so gelost)
Praxis an der Uni:[Bearbeiten]
— Uni Bonn: Reakkreditierung, Prof überlegt sich ein Projekt, C und Java, Programmieren vorkurs C, C für Anfänger, Java für Anfänger — Hochschule Emden: Praxis jedes Semester, Java, C/C++, SQL — HS Karlsruhe: Viel Programmierpraxis -> zu fast jeder Vorlesung ein Labor/eine Übung -> Anwendung des VL-Stoffes im Team, größeres Modul im dritten Semester, Java, C/C++, SQL, Haskell (Wahlfach im höheren Semester), ein Semester Projektarbeit im 5. Semester (alleine oder im Team -> meist “agile Vorgehensweise”, je nach Projekt auch in Zusammenarbeit mit einer Firma) — TU Dresden: Viele Veranstaltung mit Programmierung: C im ersten, Java im zweiten, Lego Mindstorms mit Python, Einführung in die Computergrafik — Uni Augsburg: C im ersten, Java im zweiten, SQL Assembler im dritten, Java Projekt, — TU Kaiserslautern: Java, F# und C, SQL, unterschiedlichste Programmiersprachen, — KIT: Einführung in Programmieren (Java + Objektorientierung)(1. Semester), Java - Softwaretechnik 2. Semester, C / Assembler in Betriebssysteme, Technischer Informatik (3. Semster), Haskell / Prolog Programmierparadigmen (5. Semester), Praxis der Softwareentwicklung (abgewandeltes Wasserfallmodell) Sprache abhängig vom Projekt (Objektorrientiert), weitere Sprache in unterschiedlichen Vorlesung (C++ in Computergrafik) (muss nur verwendet werden) — Uni Mainz: Python erstes Semester, altertümliches C++, Programmiersprachen(war mal funktionale Sprachen, jetzt eher Konzeptvorlesung), Software engeneering (Java), Computergrafik (C/C++) — Uni Göttingen: Einstieg Java, C, Haskell und Assembler, allgemeines Programmierpraktikum, Projekt(meist Spiel komplett erstellen) — HU Berlin: Grundlagenvorlesung Java, kleineres Projekt in Selbststudium C, in der Logik-Vorlesung Prolog — Uni Tübingen: Python — Uni Heidelberg: C++ zwei Veranstaltungen, Python wissen in AlgoDat, Java in Softwareengeneering, 2-3 freie (Team-)Projekte, SQL — TH Nürnberg: Programmierenpraktikum Sem 1+2 C#, Webprogrammierung PHP, JavaScript — Uni Karlsruhe: Java 1+2, C und Assembler in Betriebsysteme, Haskell, Prolog, Projekte, SQL — Uni Konstanz: Java, Haskell, C, C++, [no]SQL — Uni Saarland: Funktionales Programmieren, Assembler, C, Java, Softwarepraktikum in Java, C++ später wählbar — Uni Würzburg: Programmieren Vorkurs Java, Java und C einführungsveranstaltung, Java Blockpraktikum, Softwarepraktikum Teams Sprache frei wählbar, Prolog, JavaScript, Python, C/C++ verbannt — Uni Passau: Einführung in Haskell und Java, Java Vertiefung, Softwareengeneering ein größeres Projekt — Uni Bamberg: C, Java-Programmierung, Haskell, Python, Prolog