Praktyczne zastosowanie bibliotek Boost oraz nowego standardu C++11

Podobne dokumenty
Zaawansowane programowanie w języku C++

Programowanie.NET - kurs zaawansowany

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

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

Program szkolenia: Zaawansowane programowanie w C++

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Podstawy modelowania programów Kod przedmiotu

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

PRZEWODNIK PO PRZEDMIOCIE

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

PRZEWODNIK PO PRZEDMIOCIE

SZKOLENIE TWORZENIE SYSTEMÓW

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Dzięki szkoleniu. Dni: 3. Opis: Adresaci szkolenia

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

KARTA KURSU (realizowanego w module specjalności)

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

INŻYNIERIA OPROGRAMOWANIA

PRZEWODNIK PO PRZEDMIOCIE

Program szkolenia: Continuous Integration i Git

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

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

PRZEWODNIK PO PRZEDMIOCIE

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

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

PRZEWODNIK PO PRZEDMIOCIE

Efekty kształcenia dla kierunku studiów INFORMATYKA, Absolwent studiów I stopnia kierunku Informatyka WIEDZA

PRZEWODNIK PO PRZEDMIOCIE

Podstawy analizy danych numerycznych w języku Python

Tester oprogramowania 2014/15 Tematy prac dyplomowych

PHP revisited - odświerzenie spojrzenia na programowanie w PHP

Szkolenie wycofane z oferty

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

Techniki efektywnego testowania kodu dla programistów Java (Spock

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/17

Rok akademicki: 2012/2013 Kod: EAR s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

KARTA PRZEDMIOTU. Programowanie wieloplatformowe, D1_1

COMARCH IT AKADEMIA. Programista VBA w Microsoft Excel (microbootcamp)

Zaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce

Korporacyjna Magistrala Usług na przykładzie Mule ESB

PRZEWODNIK PO PRZEDMIOCIE

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

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

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

Program szkolenia: JavaScript Craftsmanship

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

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

PRZEWODNIK PO PRZEDMIOCIE

Inżynieria oprogramowania - opis przedmiotu

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/17

Prezentacja specjalności studiów II stopnia. Inteligentne Technologie Internetowe

Modelowanie procesów biznesowych, przepływu pracy i wdrażanie aplikacji w oparciu o Jboss jbpm lub Activiti

PRZEWODNIK PO PRZEDMIOCIE

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

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

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

A. USYTUOWANIE MODUŁU W SYSTEMIE STUDIÓW

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

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

edycja 1 opracowany zgodnie z Zarządzeniami Wewnętrznymi PWr. nr 14/2012 i 15/2012 i 34/2012

KARTA PRZEDMIOTU. Systemy czasu rzeczywistego: D1_9

Programista do działu testów PDT/1401/T/TBG

Podstawy programowania. Wprowadzenie

Programowanie obiektowe

OBC01/TOPMOB Projektowanie w języku Objective-C

KARTA KURSU. Programowanie obiektowe

Dni: 5. Opis: Adresaci szkolenia

Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.)

PRZEWODNIK PO PRZEDMIOCIE

Spis treści. Wprowadzenie 15

Scala - programowanie obiektowo-funkcyjne

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

PRZEWODNIK PO PRZEDMIOCIE

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Inżynieria oprogramowania, C12

Dni: 3. Opis: Adresaci szkolenia

KARTA PRZEDMIOTU. Warsztaty z Ruby on Rails. Ruby on Rails Workshop

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Oferta szkoleniowa Warszawa 2018

Szablony funkcji i klas (templates)

Projektowanie rozwiązań Big Data z wykorzystaniem Apache Hadoop & Family

KARTA PRZEDMIOTU. Projektowanie systemów czasu rzeczywistego D1_13

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

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Praktyczne wykorzystanie MS Project 2010

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Numer Obszaru: 4. programowej. Temat szkolenia. TIK w kształceniu na drugim i trzecim etapie edukacyjnym. Symbol szkolenia: TIKSPGIM

Numer obszaru: 13. Jak pracować z uczniem uzdolnionym informatycznie? Od prostych do poważnych algorytmów w C++ Symbol szkolenia: PUZC++

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

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

komórka ZAKRES ROZSZERZONY numeracja zadań w teście

Architektura mikroserwisów na platformie Spring IO

SCL TIA SIEMENS SIMATIC S7 1200/1500

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

APLIKACJE KLIENT-SERWER Client-Server Applications Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

Projektowanie i implementacja wysokowydajnych aplikacji w języku

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

SYLABUS/KARTA PRZEDMIOTU

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

Transkrypt:

Kod szkolenia: Tytuł szkolenia: C/BOOST Praktyczne zastosowanie bibliotek Boost oraz nowego standardu C++11 Dni: 4 Opis: Uczestnicy podczas szkolenia zapoznają się z metodami wytwarzania oprogramowania z użyciem zaawansowanych mechanizmów języka C++, szablonów STL oraz standardem C++11. Na zajęciach poruszane są zagadnienia związane z koncepcjami algorytmów, iteratorów i zaawansowanych struktur danych dostępnych w ramach biblioteki standardowej (zgodnej ze standardem C++11) oraz biblioteki Boost. Szkolenie obejmuje także zagadnienia programowania uogólnionego oraz cechy typów. Szczególny nacisk kładziemy na nowe właściwości C++11, które niwelują obecne do tej pory bolączki starszych standardów języka. Zajęcia uwzględniają także potrzeby testowania aplikacji tworzonych w języku C++ z użyciem narzędzi wspierających proces TDD. Jako biblioteki wspierające, wykorzystane są: cppunit oraz Boost Testing. Duży nacisk w trakcie zajęć kładziemy na zrozumienie aspektów wydajności oraz gospodarowania zasobami z użyciem wskaźników inteligentnych dostępnych w nowej wersji standardu C++11. Jako techniki tworzenia aplikacji obiektowej, prezentowane są klasy wytycznych wspierające tradycyjne wzorce projektowe (GoF). Podczas szkolenia posługujemy się technologiami otwartymi z dostępem do kodu źródłowego. Zajęcia prowadzone są przez doświadczonych praktyków, którzy na co dzień wdrażają techniki i procedury związane z technologiami związanymi z językiem C++ w rzeczywistych projektach. W trakcie zajęć używamy technologii i środowisk otwartych. Zakres szkolenia Szkolenie obejmuje: kontenery i iteratory biblioteki standardowej, cechy typów i ich praktyczne użycie (ang. Type Traits), algorytmy biblioteki standardowej i uzupełnienie wiedzy o standardzie C++11, inteligentne wskaźniki i adekwatne ich stosowanie, klasy wytycznych, przegląd przydatnych bibliotek w ramach Boost.

Wymagania Od uczestników szkolenia wymaga się: biegłego posługiwania się wybranym środowiskiem IDE (Eclipse, NetBeans, vim), znajomości koncepcji programowania obiektowego, systemowego i aplikacyjnego, biegłej znajomości narzędzi do tworzenia aplikacji z rodziny gcc i binutils, umiejętności posługiwania się narzędziem debuggera, znajomości koncepcji związanych z programowaniem w języku C++ na poziomie średnio i zaawansowanym. Dodatkowo mile widziana jest znajomość aspektów sprzętowych platformy x86 (przydzielanie i zarządzanie pamięcią, alokacja rejestrów, konwencje wywołań, optymalizacje). Adresaci szkolenia Szkolenie adresowane jest do: Cel szkolenia średnio zaawansowanych i zaawansowanych programistów programujących w języku C i C++ w środowisku GNU/Linux, osób znających w stopniu podstawowym i zaawansowanym zakres systemu szablonów STL, programistów tworzących oprogramowanie na platformie systemowej GNU/Linux lub MS Windows, programistów tworzących aplikacje głównego nurtu oraz aplikacje sieciowe. Głównymi celami w procesie szkoleniowym są: kształcenie umiejętności oraz rozwijanie wiedzy dotyczącej tworzenia zaawansowanych rozwiązań w języku C++, osadzenie narzędzi i procesów tworzenia oprogramowania w realiach współczesnych wymagań Inżynierii Oprogramowania, dokonanie konsolidacji wiedzy i uzupełnienie braków w kompetencjach w kontekście standardu C++11. Umiejętności zdobywane podczas zajęć Uczestnicy szkolenia po jego zakończeniu zdobędą umiejętności: testowania jednostkowego aplikacji w języku C++, tworzenia aplikacji z użyciem bibliotek składowych Boost, zapoznają się także ze współczesnymi bibliotekami języka C++ przetwarzającymi dane w różnorodnych formatach.

Parametry szkolenia 4 dni. Szkolenie obejmuje 60% wykładu oraz 40% ćwiczeń. Program szkolenia: 1. Algorytmy i iteratory biblioteki standardowej uzupełnienia związane ze standardem C++11. I. Wydajność algorytmów standardowych. II. Stosowanie algorytmów i iteratorów. III. Algorytmy i kontenery dostępne w ramach standardu C++11. IV. Modyfikacja działania algorytmów standardowych. 2. STL uzupełnienie i przypomnienie wiedzy. I. Szablony stosowanie i reguły dopasowań. II. Reguły SFINAE (ang. substitution failure is not an error). III. Wzorzec zadziwiająco często powracającego szablonu CRTP (ang. curiously recurring template pattern). IV. Trik Bartona-Nackmana (ang. Barton-Nackman trick). V. Kruczki i sztuczki związane ze stosowaniem szablonów. VI. Szablon o zmiennej liczbie argumentów (ang. variadic templates). VII. Szablony zagnieżdżone. 3. Mechanizmy i elementy standardu C++11. I. Manipulacja typem. II. Nowe słowa kluczowe. III. Mechanizmy kontroli definiowania i instancji klas. IV. Wyjątki i obsługa w środowisku wielowątkowym. V. Rozszerzenia biblioteki standardowej. 4. Cechy typów (ang. type traits). I. Pojęcie cechy typu i manipulowanie nim. II. Cechy typów w bibliotece standardowej. III. Rozwiązywanie najczęstszych problemów z użyciem cechy typów. IV. Własne cechy typów tworzenie i stosowanie. V. Techniki odchudzania cech typów obecne w C++11. 5. Wykładnie praktyczne stosowanie. I. Pojęcie wykładni (ang. class policy). II. Wykładnie wady i zalety. III. Tworzenie i stosowanie własnych wykładni. IV. Implementacja popularnych wzorców projektowych z użyciem wykładni. V. Programowanie aspektowe, a wykładnie. 6. Inteligentne wskaźniki. I. Rodzaje inteligentnych wskaźników. II. Problem własności/przynależności. III. Stosowanie inteligentnych wskaźników w codziennej pracy. 7. Testowanie aplikacji w języku C++.

I. TDD w języku C++ - zasady i stosowanie. II. xunit elementy i stosowanie. III. Prawidłowe tworzenie testów. IV. Zasady TDD a biblioteka cppunit. V. Warsztat praktyczny testowania. 8. Boost Test biblioteka wspierająca testowanie. I. Przegląd elementów Boost Test. II. Implementacja testów w bibliotece Boost Test. III. Testy rozszerzone. 9. Boost przegląd przydatnych bibliotek. I. Zakresy zastosowań bibliotek Boost. II. Specyfika implementacji i stosowania. III. Przykładowe zastosowania bibliotek. IV. Biblioteki Boost a nowy (C++11) i planowany standard języka C++. 10. Boost RegEx. I. Zakres stosowania Boost RegEx. II. Typowe operacje związane z analizą wyrażeń regularnych. III. Kruczki i sztuczki zastosowania Boost RegEx. IV. Optymalizacja mechanizmów biblioteki we własnych aplikacjach. 11. Boost Property Tree. I. Przeznaczenie biblioteki Boost Property Tree. II. Zakres wydajnego stosowania Boost Property Tree. 12. Boost Meta State Machine/ Boost Statechart. I. Paradygmat programowania maszyny stanu. II. Wsparcie dla programowania maszyny stanu dostarczane wraz z bibliotekami z rodziny Boost. III. Warsztat implementacji maszyny stanu. 13. Boost Algorithm. I. Boost Algorithm jako uzupełnienie biblioteki standardowej. II. Algorytmy przeszukiwania. III. Algorytmy pracujące na sekwencjach. 14. Boost Asio. I. Asynchroniczny dostęp do danych z użyciem Boost Asio. II. Wsparcie komunikacji sieciowej. III. Asio a przesyłanie danych sieciowych. IV. Sygnały. V. Warsztat implementacji. 15. Boost Filesystem. I. Przenośność zapewniana przez Boost Filesystem. II. Boost Filesystem a nowy standard języka C++. III. Przechwytywanie błędów w Boost Filesystem. 16. Boost Interprocess. I. Współdzielenie struktur pomiędzy procesami. II. Synchronizacja pracy procesów.

Powered by TCPDF (www.tcpdf.org) III. Alokatory i zarządzanie pamięcią. IV. Boost Interprocess a inteligentne wskaźniki. 17. Boost Intrusive. I. Wydajność i zalety struktur intruzywnych. II. Intruzywne wersje kontenerów. III. Analiza wydajności tradycyjnych rozwiązań i rozwiązań Boost Intrusive. 18. Boost MPL. I. Metaprogramowanie pojęcia, algorytmy i warsztat. II. Szybkie wprowadzenie do metaprogramowania. III. Metaprogramowanie a rzeczywiste wyzwania. 19. Profilowanie aplikacji w języku C++. I. Pojęcie wąskich gardeł w aplikacji. II. Mechanizmy i rodzaje profilowania aplikacji w C++. III. Warsztat implementacji.