Program szkolenia: Zaawansowane programowanie w C++

Podobne dokumenty
Dobry start do profesjonalnego programowania w C++ dla. początkujących programistów

Program szkolenia: Wzorce projektowe w C++

Programowanie Zespołowe

Zaawansowane programowanie w języku C++

Praca z kodem legacy : strategie, naprawa błędów, refaktoryzacja oraz

Wykład 4. Projektowanie. MIS n Inżynieria oprogramowania Październik 2014

Praktyczne zastosowanie bibliotek Boost oraz nowego standardu C++11

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Program szkolenia: Wzorce projektowe i architektoniczne oraz efektywne techniki Object Oriented Design dla projektantów systemów

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Projektowanie obiektowe oprogramowania Wykład 4 - SOLID GRASP Wiktor Zychla 2012

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

Program szkolenia: Test Driven Development (TDD) using Spock or JUnit 5

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Techniki efektywnego testowania kodu dla programistów Java (Spock

PHP revisited - odświerzenie spojrzenia na programowanie w PHP

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Program szkolenia: Receptury testowania automatycznego - problemy, strategie, taktyki, techniki, narzędzia

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych

Szkolenie wycofane z oferty. Programowanie w JavaScript (zawiera jquery)

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

KARTA KURSU (realizowanego w module specjalności)

NAJLEPSZE STRATEGIE SKUTECZNYCH PROGRAMISTÓW. TECHNIKI PRACY Z KODEM KOD: NSKOD

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Program szkolenia: JavaScript Craftsmanship

Wprowadzenie do programowania aplikacji mobilnych

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

KARTA KURSU. Programowanie obiektowe

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Scala - programowanie obiektowo-funkcyjne

Modelowanie i Programowanie Obiektowe

KARTA KURSU. Student zna podstawy analizy, projektowania i programowani obiektowego oraz podstawy języka C++.

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

Java Persistence API - zagadnienia zaawansowane

Szkolenie wycofane z oferty

Akademia C++ Szkolenie przeznaczone jest dla osób, które chcą przekwalifikować się lub rozpocząć pracę jako programista C++.

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

Programowanie.NET - kurs zaawansowany

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Program szkolenia: Continuous Integration i Git

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Receptury - niezbędnik projektanta i architekta

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

PRZEWODNIK PO PRZEDMIOCIE

Bydgoszcz szuka talento w

Podstawy modelowania programów Kod przedmiotu

Rok akademicki: 2014/2015 Kod: IEL s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Program szkolenia: Symfony, nowoczesny framework PHP

Projektowanie obiektowe oprogramowania Wykład 3 - SOLID GRASP Wiktor Zychla 2016

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Rok akademicki: 2012/2013 Kod: IET SW-s Punkty ECTS: 3. Kierunek: Elektronika i Telekomunikacja Specjalność: Systemy wbudowane

Programowanie obiektowe Object programming. Elektrotechnika II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Zaawansowane programowanie w C++ (PCP)

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2015

Wzorce projektowe i refaktoryzacja

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Egzamin / zaliczenie na ocenę*

OFERTA SZKOLENIOWA PROGRESS SOFTWARE

Program szkolenia: Jenkins - Continuous Integration

Szablony funkcji i klas (templates)

Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania

Program szkolenia: REST i Microservices w PHP

TESTOWAĆ TESTOWAĆ TESTOWAĆ TESTOWAĆ TESTOWAĆ TESTOWAĆ TESTOWAĆ

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Kierunkowy Wybieralny Polski Semestr V

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (2) Wykład 10 Inversion of Control Wiktor Zychla 2013

Informatyka, I stopień. Programowanie (PRO300.2)

Zaawansowane programowanie obiektowe - wykład 5

SZKOLENIE TWORZENIE SYSTEMÓW

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.

PRZEWODNIK PO PRZEDMIOCIE

Załącznik nr 1 do zapytania ofertowego nr 1/POKL/2015

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.

Projektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Adaptywny kod : zwinne programowanie, wzorce projektowe i SOLID-ne zasady / Gary McLean Hall. Gliwice, cop Spis treści

Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript

Elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Michał Olejnik. 22 grudnia 2009

Programowanie obiektowe - 1.

Paweł Rajba

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

Programowanie w Javie nazwa przedmiotu SYLABUS A. Informacje ogólne

Projektowanie obiektowe oprogramowania Testowanie oprogramowania Wykład 13 Wiktor Zychla 2014

Aplikacje Internetowe, Servlety, JSP i JDBC

PRZYJĘTE ZASADY GRY...3 ZAŁOŻENIA PROJEKTU...4 CZYM JEST I DLACZEGO QT?...5 DIAGRAM KLAS...7 DIAGRAM GRY SINGLE PLAYER...8 DIAGRAM MULTIPLAYERA...

Transkrypt:

Program szkolenia: Zaawansowane programowanie w C++ Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Zaawansowane programowanie w C++ ccpp-c++ Advanced C i C++ developerzy 3 dni 40% wykłady / 60% warsztaty Zaawansowane szkolenie C++, które pozwala zrozumieć od podszewki zaawansowane elementy składni języka C++. W nieksiążkowy i nieszablonowy sposób, bazując na użytecznych idiomach i wzorcach kolejno odsłaniane są zaawansowane niuanse języka. Atutem szkolenia jest duży nacisk na wykorzystywanie dobrych praktyk i dostępnych narzędzi/bibliotek do: sprawdzania poprawności kodu mierzonej w najważniejszych wymiarach: poprawność, stabilność, jakość i przenośność, oraz dzielenia się wiedzą w zespole. Szkolenie przeznaczone jest dla programistów dobrze znających podstawową składnię C++, chcących usystematyzować lub poszerzyć swoja wiedzę o zaawansowanych mechanizmach oraz chcących poznać szereg istniejących bibliotek i narzędzi podnoszących wartość dostarczanego kodu. Zalety szkolenia: Praktyczne podejście do składni języka Nacisk na bezpieczną implementację opartą na wzorcach i testowaniu Narzędzia wspomagające Rzeczywiste przykłady Strona: 1/6

Szczegółowy program: 1. Systematyzacja 1.1. Niskopoziomowy C++ 1.1.1. Natura języka C++ 1.1.2. Główne problemy 1.1.3. Zarządzanie pamięcią - co mówi nam standard? 1.1.3.1. Programowanie systemowe i kod przenośny (pliki, współbieżność, IO,...) 1.1.3.2. Kod legacy 1.2. OOP Object Oriented Programming przypomnienie podstawowych zasad programowania obiektowego w świetle rzeczywistych problemów. 1.2.1. Paradygmat programowania obiektowego 1.2.1.1. Analiza paradygmatu programowania obiektowego i jego poprawna interpretacja 1.2.1.2. GRASP General Responsibility Assignment Software Patterns (Principles). 1.2.1.3. SOLID Single Responsibility Principle (SRP), the Open/Closed Principle (OCP), the Liskov Substitution Principle (LSP), the Dependency Inversion Principle (DIP), and the Interface Segregation Principle (ISP). 1.2.2. DID Defense In Depth programowanie defensywne 1.2.3. POSA Pattern Oriented Software Architecture architektura oparta na wzorcach 1.2.3.1. Wzorzec czym jest? 1.2.3.2. Pattern language architektura rozwiązania (rozwiązań) oparta na wzorcach 1.2.3.3. Framework zbiór reużywalnych, zaimplementowanych wzorców i funkcjonalności 2. Zbiór dobrych praktyk i narzędzi wspomagających - niezbędnik profesjonalisty 2.1. Testowanie punktem wyjścia do pisania zdrowego kodu 2.1.1. TDD - Test Driven Development Strona: 2/6

2.1.2. Biblioteki testów modułowych/jednostkowych: Gtest, CppUnit, BoostTest 2.2. Gdb - debugger wyjadaczy 2.3. Valgrind 2.3.1. Memcheck - sprawdzanie poprawności dynamicznego zarządzania pamięcią 2.3.2. Ptrcheck - śledzenie wskaźników 2.3.3. Helgrind - sprawdzanie aplikacji wielowątkowych 2.3.4. Callgrind - profilowanie aplikacji 2.4. Strace - debugowanie na poziomie wywołań systemowych 2.5. Code review - proces SMART 3. Zaawansowane elementy składni 3.1. Rozwinięcie dziedziczenia 3.1.1. Las dziedziczenia 3.1.1.1. Konstrukcja obiektu 3.1.1.2. Funkcje wirtualne od podszewki 3.1.1.3. Wodospad destrukcji 3.1.2. Dżungla wielokrotnego dziedziczenia 3.1.2.1. Problematyka 3.1.2.2. Zastosowanie 3.1.3. Szczyty wirtualnego dziedziczenia, czyli wyższa szkoła jazdy 3.1.3.1. Motywacja dziedziczenia wirtualnego 3.1.3.2. Mechanika funkcjonowania wirtualnego dziedziczenia 3.1.3.3. Praktyczne zastosowanie 3.1.4. Aspekt rzutowania i niejawnego przekształcania typów 3.2. Programowanie generyczne, czyli labirynt szablonów Strona: 3/6

3.2.1. Motywacja dla programowania generycznego aspekt programowania funkcyjnego 3.2.2. Podstawowa składnia 3.2.2.1. Funkcje szablonowe 3.2.2.2. Klasy szablonowe 3.2.2.3. Szablony specjalizowane 3.2.2.4. Użycie typów własnych 3.2.3. Mechanika szablonów 3.2.3.1. Aspekt kompilacji 3.2.3.2. Moment składania docelowej implementacji 3.2.3.3. Budowa obiektu z szablonu 3.2.3.4. Najczęściej spotykane problemy i najczęściej popełniane błędy 4. Implementacja funkcjonalnych wzorców 4.1. Rozróżnianie dziedziczenia i stosowania szablonów 4.2. Klasy pełnomocników z uwzględnieniem pracy z kodem legacy 4.2.1. Zarządzanie pamięcią głównym problemem C++ 4.2.1.1. Problem natywnych wskazań 4.2.1.2. Typowe błędy i ich konsekwencje 4.2.2. Wykorzystanie idiomu RAII 4.2.3. Zliczanie referencji 4.2.3.1. Mechanizm 4.2.3.2. Podstawowy problem i jak sobie z nim radzić 4.2.4. Co już istnieje 4.3. Silniki zdarzeń 4.3.1. Wzorce - przykładowe użycie w domenie wielowątkowości i IO Strona: 4/6

4.3.1.1. Wrapper-fasada refaktoryzacja error prone i legacy API na rzecz reużywalnych komponentów 4.3.1.2. Proxy implementacja konkretnych funkcjonalności z użyciem przygotowanych fasad i wrapper ów 4.3.1.3. Observer, reactor, proactor, half sync/half asyc, thread pool niby to samo, a jednak inaczej 4.3.1.4. Event broker 4.3.2. Implementacja w oparciu o dziedziczenie 4.3.3. Implementacja szablonowa 4.3.4. Aspekt refaktoryzacji 5. STL Co warto wiedzieć 5.1. Kontenery 5.1.1. Rodzaje czyli co z czym się je 5.1.2. Efektywne użycie kontenerów 5.1.3. Aspekt równoległości 5.2. Algorytmy 5.2.1. Co już mamy 5.2.2. Jak poprawnie używać 5.2.3. Boost wzmocnienie możliwości bez konieczności dopisywania kodu 5.2.3.1. Ważniejsze moduły 5.2.3.2. Bind i funkcje 5.2.3.3. Wskaźniki i referencje Smart 5.2.3.4. Przekształcanie typów 5.2.3.5. Algorytmy i kontenery 5.2.3.6. System plików, ASIO oraz wielowątkowość 5.2.3.7. Wykorzystanie w połączeniu z STL 5.2.3.8. Tworzenie przenośnego kodu Strona: 5/6

5.3. Strumienie 5.3.1. Rodzaje obiektów poprawna interpretacja 5.3.2. Poprawne użycie 5.4. C++11 5.4.1. Co nowego w STL 5.4.2. Zaawansowane elementy nowej składni 5.4.2.1. Automatyczne określanie typu 5.4.2.2. Pętla for oparta na zakresie 5.4.2.3. Funkcje i wyrażenia lambda 5.4.2.4. Aliasy dla szablonów Strona: 6/6