shared_ptr<T> get(int id) { static map<int, weak_ptr<T>> cache; static mutex m; lock_guard<mutex> lg(m); auto sp = cache[id].lock(); if (!sp) cache[id] = sp = load(id); return sp; }
Im Rahmen des Praktikums wird die Programmiersprache C++ ausgehend von
ihren größten Stärken untersucht:
Der maschinennahen Systemprogrammierung und Abstraktion durch formale
Konzepte in einem Turing-vollständigen Typsystem.
Dank eines historischen Werdegangs von über 25 Jahren als dominierende Programmiersprache in Industrie und akademischer Forschung und der gleichzeitigen Verpflichtung zur Abwärtskompatibilität ist C++ derzeit mehr denn je ein Platz unter den Top 3 Programmiersprachen der Industrie sicher.
Durch seine geradezu berüchtigten historische Altlasten erfordert es aber viel Erfahrung, die Stärken von C++ zu nutzen ohne seinen Schwächen zum Opfer zu fallen.
Hierzu wurden mit dem C++11 - Standard entscheidende und lang erwartete Fortschritte erzielt: Ausdrucksmächtigkeit und Portierbarkeit wurden weiter verbessert, aber gleichzeitig kann jetzt durch nur wenige neue Spracherweiterungen die Komplexität der Syntax derart reduziert werden, dass sie sich in vielen Fällen von schwach getypten Sprachen wie Python kaum mehr unterscheidet.
Die Herausforderungen für Software-Entwickler verschieben sich jetzt zu formalen und konzeptionellen Problemstellungen, besonders im Zusammenhang mit vergleichsweise modernen Aspekten wie Multithreading und Shared Memory Locality.
Übungsmaterial und Zusammenfassungen der Praktikumstermine
werden
im hier
verlinkten internen Bereich
veröffentlicht.
Das Passwort wurde in einer Mail via Uniworx an alle Teilnehmer
versendet.
Das Praktikum richtet sich an Master- und Bachelor-Studenten der Informatikstudiengänge.
Die Aufgabenstellungen im Praktikum verlangen hohes Engagement und Eigeninitiative von den Teilnehmern. Konsequenterweise wird dem in der Prüfungsleistung mit 12 ECTS (Bachelor und Master) Rechnung getragen.
Der Veranstaltungszeitraum schließt das gesamte Wintersemester 16/17 ein, also einschließlich vorlesungsfreier Zeit.
Abgesehen von den Vortragsterminen werden aber voraussichtlich keine Präsenztermine nach der Vorlesungszeit stattfinden und stattdessen individuelle Betreuungstermine vereinbart.
Wichtiger Hinweis
Die Veranstaltung besteht nicht aus zwei unabhängigen
Prüfungsleistungen zu je 6 ECTS, sondern aus Testaten und einer
Prüfung (Vortrag und Diskussion) über gemeinsam 12 ECTS,
vergleichbar mit dem Rechnernetze-Praktikum.
Für die gesamte Prüfungsleistung ist also die erfolgreiche
Teilnahme an beiden Praktikumsteilen Voraussetzung, auch wenn Sie
nicht mehr als 6 ECTS benötigen.
Grund hierfür ist, dass die Grundlagen aus dem ersten Teil des Praktikums eine fachliche Mindestvoraussetzung für die Umsetzung der anspruchsvollen Projektarbeiten sind.
Aufgrund der intensiven persönlichen Betreuung der Teilnehmer ist die Anzahl der Plätze stark begrenzt.
Die Praktikumsplätze werden über ein Bewerbungsverfahren in UniWorX vergeben. Falls Sie noch keinen UniWorX-Account haben, registrieren Sie sich möglichst frühzeitig.Die Präsenztermine finden wöchentlich Freitag, 13-16 Uhr im Besprechungsraum des Lehrstuhls (Raum EU.102) statt.
Die erste Vorbesprechung findet am 21. Oktober 2016, um 13 Uhr c.t. statt.
Bitte kommen Sie unbedingt zu diesem Termin, wenn Sie am Praktikum teilnehmen wollen!
Außerdem zu empfehlen: