Kurs: Zaawansowane techniki programowania w C++ zima 2012/13

Język wykładowy Polski
Opiekun Nieznany Prowadzący
Liczba godzin
Rodzaj Kurs
ECTS 5
Polecany dla I roku Nie
Egzamin Tak

Opis przedmiotu:

**Important: There will be an entrance exam for the course, and the 20 best students will be selected. All, who voted for the course received an e-mail with details. For those, who didn't vote, but still plan to attend this course, here are details: * If you want to take part in the course, then register for the lecture next week through System Zapisow in the usual way. There is no restriction on the amount of registrations for the lecture (or it is rather very high). * Come to the exam. The time of this exam is: October 5th, 8.15-11.15 in the morning. This is the time on which the first class is scheduled. Place of the exam will be announced later. * If you pass, you will be allowed to register for the 'Pracownia', which will have only 20 places, and you can join the class. ** * * * Tworzenie działających poprawnie, łatwych w rozbudowie i wydajnych aplikacji, wymaga znajomości wielu zagadnień. C++ jest językiem pozwalającym na pisanie wyjatkowo czytelnego kodu, który jednocześnie jest wydajny i wspiera programistę przy kontroli poprawności w fazie kompilacji i precyzyjnie obsługuje błedy w czasie wykonania. Elementy języka i techniki, które można zastosować dzięki ich złożeniu są unikalne i niedostępne w innych językach programowania. Wynika to z bardzo dokładnie przemyślanych cech zarówno składni jak i sposobu, w jaki kompilator C++ analizuje kod źródłowy oraz generuje kod wynikowy. Przeciążanie operatorów, klasy templatowe, obiekty lokalne, dostęp do fizycznych zasobów komputera pozwalają na eleganckie opakowanie badzo złożonych mechanizmów w sposób umozliwiający szybkie zrozumienie scenariuszy użycia i przedstawienie algorytmow z nich korzystajacych w czytelny, bezpośredni sposób. Na kursie zostana omówione najczęściej spotykane grupy problemów spotykanych przy budowie dużych systemów oraz przykłady najlepszych praktyk w ich rozwiązywaniu. Będą to przykładowo: Zarządzanie zasobami: (pamięć, dane, pliki, połaczenia sieciowe), dobieranie lub budowa optymalnych struktur danych, zarządzanie błedami wykonania (zerwane płączenie, brak pamieci, neoczekiwany bład algorytmu), wydajne i bezpieczne programowanie wielowątkowe, zasady konstrukcji zasobów współdzielonych, sposoby archiwizowania danych, zarządzanie skomplikowanymi algorytmami (zaawansowane techniki rozbijania na podproblemy, niestandardowe przeciążanie operatorów, uzycie templatów do propagowania właściwych wzorców projektowych). Prowadzący kurs: Andrzej Krawczyk, jest włascicielem i głównym architektem w Human Dialog. W czasie zajęć będą przedstawiane rozwiązania oparte na osiemnastoletnim doświadczeniu w programowaniu i prowadzeniu kilkuosobowego zespołu programistów C++ przy kolejnych wersjach jednego systemiu: maszyny wirtualnej HumanStore. W zajęciach będzie poozony szczegolny nacisk zarówno na właściwy dobór rozwiązań jak i elegancję tworzonego kodu. W czasie omawiania poszczególnych problemów będą omawiane nie tylko techniki poprawnego ich rozwiązywania i ich zalety ale również najczęściej popełniane błędy i zaniechania oraz ich konsekwencje. Przedmiot przeznaczony jest dla osób, które już znają (choćby w podstawowym stopniu) język C++

Wykłady

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Andrzej Krawczyk
300 12 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.

Pracownie

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Andrzej Krawczyk
0 9 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.


Konsultacje prowadzących:


Imię i nazwisko Pokój Konsultacje
Andrzej Krawczyk