1. Jak realizować innowacyjne projekty na czas [Wykład]
• Wprowadzenie do zarządzania projektami
• Przyczyny opóźnień w projektach i metody ich unikania
• Planowanie w projektach prowadzonych metodykami zwinnymi
• Nadzorowanie postępu w projektach prowadzonych metodykami zwinnymi
2. Scrum Game [Laboratorium]
• Scrum, role, artefakty i ceremonie
• Produkt Backlog i priorytety
• Zwinne metody estymacji
• Manifest Agile
3. Zwinna transformacja Waterfall’a do Scrum’a [Wykład]
• Waterfall, czyli dobre złego początki
• Scrum, jak wprowadzać go w życie
• Wyzwania związane z transformacją
4. Środowisko Programisty [Laboratorium]
• IDE or not IDE, czyli jak wybrać odpowiednie środowisko deweloperskie
• Kompilator C++ (gcc, clang)
• Huston, mamy problem! (debugger)
• Analiza statyczna i dynamiczna kodu
• Badanie wydajności kodu
• Badanie pokrycia kodu
• Review kodu
5. Szablony, Kontenery, Boost [Laboratorium]
• Szablony
• Kontenery
• Boost
6. Test Driven Development na przykładzie C++ [Laboratorium]
• Potrzeba testów jednostkowych
• Unit testing framework
• Mocking framework
7. Refactoring na przykładzie C++ [Laboratorium]
• Co to jest refaktoryzacja
• Co to są zapachy kodu
• Wybrane przekształcenia refaktoryzacyjne
8. Zaawansowane C++ [Laboratorium]
• Zaawansowane szablony
• Meta programowanie
• Standard C++11
9. Wzorce projektowe na przykładzie C++ [Laboratorium]
• Wybrane wzorce kreacyjne
• Wybrane wzorce strukturalne
• Wybrane wzorce behawioralne
• Praca z kodem na przykładach użycia wzorców
10. Programowanie współbieżne w C++ [Laboratorium]
• Architektura sprzętowa
• Wyzwania programistyczne
• Obiekty współbieżne
• Operacje synchronizacyjne
• Przykłady użycia w kodzie
11. Coding Dojo w języku C++ [Laboratorium]
• Grupowe rozwiązywanie zadania programistycznego w ramach tzw. Coding Dojo
• Wymiana dobrych praktyk programistycznych
• Szlifowanie przydatnych umiejętności
12. Strategie zapewniania jakości oprogramowania [Wykład]
• Wstęp do jakości oprogramowania
• Automatyzacja testów w metodyce Agile
• Przykład platformy testowej
• Przykład użycia
13. Zarządzanie ryzykiem w projektach informatycznych [Wykład]
• Wprowadzenie do zarządzania ryzykiem
• Identyfikacja zagrożeń i analiza ryzyk
• Monitorowanie i zapobieganie zagrożeniom
14. Budowanie złożonych systemów informatycznych [Wykład]
• Kilka słów o NetAct
• Kilka słów o FlexiBTS
• Transfer wymagań do projektu
• Planowanie release’u oprogramowania
• Rola architektury w tworzeniu systemu
• Praktyczne aspekty inżynierii oprogramowania w rzeczywistym projekcie