Aktualne promocje

20/01/2017
29/09/2020
31/10/2020

Barcampy, konferencje, wydarzenia

29/11/2016 - 18:00
08/11/2016 - 08:30
04/11/2016 (Caly dzien)

CPP

Szkolenia z inżynierii programowania z zastosowaniem języka C++

Budowa i architektura złożonych systemów w języku C++

Kod szkolenia: 
CPPARCH01
Opis szkolenia: 

Złożone systemy wymagają  opracowanej architektury...
 
Uczestnicy szkolenia zapoznają się z metodami budowy architektury złożonych systemów w języku C++ oraz koncepcjami definiowania architektury, wymaganiami wpływającymi na wybór poszczególnych rozwiązań oraz aspektami specyficznymi dla języka C++.
Poznają również aspekty związane z konsolidacją plików obiektów rozbudowanych architektur, przyśpieszeniem konsolidacji oraz stosowaniem podstawowych wzorców.
Szczególny nacisk kładziemy na aspekty prawidłowego definiowania wymagań co do architektury, zdefiniowania modelu prawidłowego wykonania procesu budowy oraz definiowanie elastycznych interfejsów aplikacyjnych.
Szkolenie odpowiada potrzebom programistów oraz architektów systemów. Jako bibliotek i narzędzi wspierających używamy oprogramowania otwartego. Szkolenie dedykowane jest osobom które znają już zasady tworzenia aplikacji w języku C++ i nie jest polecane osobom które dopiero rozpoczynają naukę tego języka.
 
Zakres szkolenia:

  •  Model architektury i procesu budowy oprogramowania w języku C++
  •  Przegląd wzorców architektury aplikacji dla przedsiębiorstw
  •  Zapoznanie się ze standardem i składnią nowych właściwości C++11

Informacje o szkoleniu:
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. Szkolenie wymaga znajomości koncepcji związanych z programowaniem w języku C++ na poziomie średnio i zaawansowanym. W trakcie zajęć używamy technologii i środowisk otwartych.
 
Forma szkolenia:
Szkolenie prowadzone przez trenera na sali szkoleniowej.
Wykład 60% ćwiczenia 40%
 
Umiejętności zdobywane podczas kursu:

  •  Stosowanie wzorców projektowych
  •  Stosowanie składni nowego standardu C++11, szczególnie w zakresie ułatwiającym obsługę złożonego oprogramowania
Cel szkolenia: 
  •  Kształcenie umiejętności i rozwijanie wiedzy dotyczącej definiowania architektury systemu 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 zakresie aspektów przyśpieszenia budowy złożonych systemów
Czas trwania: 
4 dni
Konspekt: 

1. Wprowadzenie do zasad budowy architektury
• Przypomnienie pojęć dotyczących analizy obiektowej
• Główne elementy i zasady modelowania
• Perspektywy rozwiązania informatycznego
• Proces wytwórczy a model

2. Analiza procesów biznesowych
• Pojęcie procesu biznesowego
• Diagramy aktywności
• Diagramy BPMN
• Przypadki użycia
• Mapowanie i dokumentacja modelu biznesowego

3. Analiza wymagań
• Zbieranie i dokumentowanie wymagań – wstęp
• Modelowanie i weryfikacja wymagań

4. Domena biznesowa
• Pojęcie domeny rozwiązania
• Diagram sekwencji
• Diagram komunikacji

5. Wykładnie SOLID
• Elementy SOLID
• SOLID w praktyce

6. Analiza domeny
• Klasy analityczne i karty CRC
• Diagram maszyny stanowej
• Diagram zależności czasowych

7. Architektura rozwiązania – weryfikacja, analiza
• Diagram komponentów
• Diagram wdrożenia
• Wzorce projektowe
• Diagram przeglądu interakcji

8. Metamodel i zagadnienia zaawansowane
• Rola i pojęcie metamodelu
• MDA i MOF
• OCL i jego zakres zastosowań
• Praktyczne zastosowania profili
• Budowa standardu

9. Przegląd narzędzi umożliwiających budowanie architektury
• Narzędzia komercyjne
• Narzędzia na licencjach wolnych

10. Standard języka C++11
• Nowoczesne metody zarządzania zasobami w języku C++
• Aspekty praktyczne budowy architektury korporacyjnej
• Proces budowy aplikacji w języku C++

 

Programowanie w języku C++

Kod szkolenia: 
PCPP1
Opis szkolenia: 

Umiejętności zdobywane podczas kursu:

  • Samodzielna analiza dostarczanego kodu.
  • Umiejętność implementowania obiektu i modułu wg. dostarczonej specyfikacji.
  • Umiejętność programowania z użyciem dostarczonych w bibliotece standardowej kontenerów danych.
Cel szkolenia: 
  • Wykształcenie umiejętności samodzielnego programowania w zakresie prostych i średnio zaawansowanych aplikacji w języku C++
  • Zapoznanie się uczestników z biblioteką standardową
  • Wykształcenie umiejętności weryfikacji poprawności programów
  • Dostarczenie narzędzi do samodzielnej implementacji algorytmów w języku C i C++
Czas trwania: 
4 dni
Konspekt: 
  1. Środowisko pracy programisty.
    1. Właściwości systemu operacyjnego
    2. Dostępne środowiska IDE (ang. Integrated Development Environment )
  2. Podstawy języka C++.
    1. Zależności pomiędzy plikami projektu
    2. Praca kompilatora i narzędzi pomocniczych
    3. Przestrzenie nazw
    4. Preprocesor
  3. Biblioteki standardowe.
    1. Zakres funkcjonalności biblioteki standardowej
    2. Podstawowe wywołania i ich zastosowanie
  4. Projektowanie abstrakcyjnych typów danych.
    1. Typy podstawowe
    2. Obsługa wskaźników i zarządzanie pamięcią
    3. Referencje
    4. Alokacja i dealokacja zasobów
  5. Programowanie proceduralne w C++.
    1. Przekazywanie argumentów
    2. Instrukcje sterowania przepływem programu
    3. Modularyzacja programu
  6. Programowanie obiektowe w C++.
    1. Podstawowe pojęcia obiektowe i ich implementacja w języku C++
    2. Metody i przeciążanie funkcji
    3. Konstruktor i jego rodzaje
    4. Obsługa usuwania obiektu
    5. Funkcje zaprzyjaźnione
    6. Konwersja i jej rodzaje
    7. Dziedziczenie i metody wirtualne
  7. Obsługa sytuacji wyjątkowych.
    1. Model obsługi wyjątków w języku C++
    2. Podstawowa obsługa wyjątków
    3. Hierarchia podstawowych wyjątków
  8. Biblioteka wejścia-wyjścia.
    1. Strumienie i sterowanie stanem strumienia
    2. Dostęp do urządzeń wejścia – wyjścia
    3. Operacje na plikach
  9. Wprowadzenie do programowania uogólnionego i metaprogramowania.
    1. Pojęcie programowania generycznego
    2. Metaprogramowanie – definicja pojęcia i praktyczne zastosowanie
  10. Szablony i programowanie uogólnione - biblioteka STL
    1. Praktyczna obsługa biblioteki STL
    2. Własne szablony – wykorzystanie w projekcie
  11. Iteratory i sekwencje
    1. Obsługa iteratorów i dostępne kontenery danych
    2. Implementacja zestawu własnych iteratorów
    3. Wstęp pojęcia konceptu
  12. Algorytmy
    1. Zastosowanie dostępnych algorytmów
    2. Parametryzacja istniejących algorytmów
  13. Styl kodowania i wskazówki programistyczne.
    1. Konwencje zapisu programu
    2. Przykłady wykładni branżowych

Zaawansowane programowanie w języku C++

Kod szkolenia: 
PCPP2
Opis szkolenia: 

Umiejętności zdobywane podczas kursu:

  • Refaktoryzacja istniejącego kodu.
  • Umiejętność samodzielnego rozwiązywania problemu własności.
  • Stosowanie dobrych praktyk przy wytwarzaniu oprogramowania.
  • Ogólna znajomość wzorców projektowych.
Cel szkolenia: 
  • Pogłębienie znajomości komponentów biblioteki standardowej
  • Stosowanie podstawowych wzorców projektowych implementowanych w języku C++
  • Zapoznanie się z metodologią TDD
Czas trwania: 
3 dni
Konspekt: 
  1. Zaawansowana obsługa wyjątków
    1. Modele obsługi wyjątków w aplikacjach
    2. Implementacja własnej hierarchii wyjątków
    3. Strategie reakcji na sytuacje wyjątkowe
  2. Asercje i logowanie zdarzeń
    1. Rola asercji
    2. Włączanie i wyłączanie asercji
    3. Logowanie zdarzeń
  3. Programowanie wielowątkowe
    1. Dostępne modele obsługi wątków
    2. Kreowanie i obsługa wątku
    3. Dane prywatne i wspólne wątków
    4. Blokady i semafory
  4. Obsługa wyjątków w aplikacjach wielowątkowych
    1. Pułapki obsługi wyjątków w aplikacjach wielowątkowych
    2. Poprawna implementacja obsługi wyjątków w aplikacji wielowątkowej
  5. RTTI (ang. RunTime Type Identity)
    1. Rola i znaczenie RTTI
    2. Obsługa RTTI we własnej aplikacji
  6. Widoki i adaptery iteratorów
    1. Pojęcie iteratora i jego zastosowanie
    2. Implementacja iteratora
  7. Kolekcje i ich zaawansowana obsługa
    1. Zasady projektowania kolekcji
    2. Implementacja własnej kolekcji
  8. Wzorce projektowe
    1. Znaczenie podstawowych wzorców projektowych
    2. Implementacja wybranych wzorców projektowych
  9. Refaktoryzacja kodu
    1. Zasady czytelnego dokumentowania i programowania
    2. Rola i znaczenie refaktoryzacji kodu
  10. Usuwanie błędów i diagnostyka
    1. Usuwanie błędów
    2. Usuwanie błędów w aplikacjach wielowątkowych
  11. Programowanie rozproszone
    1. Dostępne biblioteki programowania rozproszonego
    2. Implementacja prostej aplikacji rozproszonej
  12. Wstęp do biblioteki BOOST
    1. Podstawowe elementy biblioteki Boost
    2. Zastosowanie inteligentnych wskaźników z biblioteki Boost
    3. Omówienie dostępnych narzędzi, kontenerów i algorytmów biblioteki Boost
  13. Testy modułowe i dobre praktyki w programowaniu
    1. Rola testowania w trakcie budowy aplikacji
    2. Pakiety wspomagające testowanie
    3. Prawidłowe określanie przypadków testowych

Programowanie wielowątkowe w języku C++

Kod szkolenia: 
PCPPTHR1
Opis szkolenia: 

Umiejętności zdobywane podczas kursu:

  • szacowanie wydajności przyszłej aplikacji wielowątkowej
  • korzystanie z mechanizmów dostarczanych przez system operacyjny oraz bibliotekę Boost
  • prawidłowe stosowanie mechanizmów synchronizacyjnych w idiomie programowania proceduralnego i obiektowego
  • testowanie komponentów wielowątkowych
  • znajomość i zakres stosowania wzorców projektowych związanych z wielowątkowością
Cel szkolenia: 
  • umiejętność programowania wielowątkowego i stosowania mechanizmów asynchronicznych
  • zdolność szacowania wydajności przyszłej aplikacji wielowątkowej
  • określanie i prawidłowe stosowanie wzorców związanych z programowaniem wielowątkowym we własnej aplikacji
  • zapoznanie się z mechanizmami dostępnymi w bibliotece Boost
  • identyfikacja mechanizmów synchronizacji i reagowania aplikacji na problemy wynikające z działania wątków
Czas trwania: 
3 dni
Konspekt: 
  1. Programowanie wielowątkowe - wyzwania i problemy
    1. rodzaje implementacji wieloprocesowości i wielowątkowości
    2. dostępne w języku C++ mechanizmy implementowania wielowątkowości i wieloprocesowości
    3. implementacja biblioteki Boost
    4. implementacja biblioteki pthread
    5. szeregowanie wątków
    6. obiektowe programowanie i wątki
  2. Współpraca procesów
    1. tradycyjne mechanizmy synchronizujące współpracę procesów - przegląd
    2. mechanizmy strukturalne implementowania synchronizacji
    3. mechanizmy obiektowe implementowania synchronizacji
  3. Wzajemne wykluczanie i dostęp do sekcji krytycznych
    1. mechanizmy wzajemnego wykluczania
    2. typy blokad wzajemnego wykluczania
    3. prawidłowa implementacja wzajemnego wykluczania
    4. jednokrotna inicjalizacja
  4. Funkcje blokad
    1. tradycyjne operacje semaforowe
    2. implementacja blokad w bibliotece Boost
    3. zmienne decyzyjne i ich współpraca z blokadami
    4. współpraca wielu blokad
  5. Bariery
    1. bariery i ich implementacja w bibliotece Boost
    2. metody wznawiania działania wątków
  6. Wzorce projektowe wielowątkowości
    1. rodzaje wzorców projektowych związanych z wielowątkowością
    2. zakres zastosowań wzorców
    3. implementowanie wybranych wzorców projektowych związanych z wielowątkowością
  7. Projektowanie aplikacji wielowątkowych
    1. metody projektowania aplikacji wielowątkowych
    2. rola i zastosowanie wzorców projektowych związanych z wielowątkowością
    3. szacowanie stopnia wielowątkowości i przyszłego skalowania aplikacji
    4. obsługa błędów związanych z wielowątkowością w bibliotece Boost
  8. Testowanie aplikacji wielowątkowych
    1. testy jednostkowe i ich specyfika w aplikacjach wielowątkowych
    2. diagnozowanie błędów w aplikacjach wielowątkowych
    3. metody formalne testowania aplikacji wielowątkowych

Metaprogramowanie w języku C++

Kod szkolenia: 
PCPPMET1
Opis szkolenia: 

Umiejętności zdobywane podczas kursu:

  • stosowanie metaprogramowania we własnych projektach
  • diagnozowanie błędów związanych z czasem kompilacji (czas przetwarzania szablonów)
  • definiowanie własnych języków zależnych od dziedziny
Cel szkolenia: 
  • identyfikacja obszarów zastosowań metaprogramowania we własnych projektach
  • definiowanie mechanizmów związanych z metaprogramowaniem w języku C++
  • umiejętność definiowania własnych języków zależnych od dziedziny
  • podniesienie reużywalności kodu w projektach
Czas trwania: 
2 dni
Konspekt: 
  1. Metaprogramowanie - definicja i zakres zastosowania
    1. programowanie czasu kompilacji
    2. generatory obiektów
    3. złożenia klas
    4. wymazywanie typu
  2. Optymalizacja kodu w czasie kompilacji
    1. powracający szablon
    2. sizeof i jego zastosowanie
    3. statyczny polimorfizm
  3. Cechy i manipulacja typem
    1. powiązania typów
    2. metafunkcje i metafunkcje numeryczne
    3. biblioteka Boost Type Traits
    4. metafunkcje bezargumentowe
    5. implementacja lambda
  4. Iteratory i sekwencje
    1. definicja sekwencji i iteratora
    2. klasy sekwencji
    3. definiowanie własnych sekwencji
  5. Dostępne algorytmy
    1. idiomy i abstrakcja algorytmów oraz wielokrotne użycie
    2. pojęcie i definicja insertera
    3. definiowanie własnych algorytmów
  6. Widoki i adaptery iteratorów
    1. pojęcie i definiowanie własnego widoku
    2. adapter interatora i jego obsługa
  7. MPL - biblioteka wspierająca metaprogramowanie
    1. przegląd możliwości Boost MPL
    2. zastosowanie Boost MPL
  8. Języki osadzone zależne od dziedziny
    1. języki DSL (ang. domain specific language) i zakresy ich zastosowań
    2. biblioteka Boost Spirit jako przykład DSL

Praktyczna implementacja wzorców projektowych w języku C++

Kod szkolenia: 
PDPCPP1
Opis szkolenia: 

Umiejętności zdobywane podczas kursu:

  • Identyfikacja i umiejętność implementacji wzorców projektowych GoF we własnych projektach.
  • Umiejętność określania kosztów i zysku zastosowania wybranego wzorca.
  • Określanie kontekstu poprawnej implementacji wybranego wzorca projektowego.
Cel szkolenia: 
  • Zapoznanie się z „klasycznymi” wzorcami projektowymi oraz siłami nań wpływającymi i kontekstem ich stosowania
  • Zapoznanie się z zaawansowanymi aspektami implementowania wzorców projektowych we własnych projektach
  • Zapoznanie się z mocnymi i słabymi stronami każdego z wzorców projektowych
Czas trwania: 
4 dni
Konspekt: 
  1. Wprowadzenie do wzorców projektowych
    1. Rola i znaczenie wzorców projektowych
    2. Siły wpływające na wybór wzorca
    3. Proponowane rozwiązania
    4. Kontekst rozwiązania
    5. Ogólne zakresy zastosowań wzorców projektowych
    6. Wzorce GoF a inne wzorce
    7. Metody klasyfikacji
  2. Strukturalne wzorce projektowe
    1. Adapter (klasowy i obiektowy)
    2. Most (ang. Bridge) (obiektowy)
    3. Kompozyt (ang. Composite) (obiektowy)
    4. Dekorator (ang. Decorator) (obiektowy)
    5. Pyłek (ang. Flyweight) (obiektowy)
    6. Fasada (ang. Façade) (obiektowy)
    7. Pełnomocnik (ang. Proxy) (obiektowy)
  3. Konstrukcyjne wzorce projektowe
    1. Metoda wytwórcza (ang. Factory Method) (klasowy)
    2. Fabryka Abstrakcyjna (ang. Abstract Factory) (obiektowy)
    3. Budowniczy (ang. Builder) (obiektowy)
    4. Prototyp (ang. Prototype) (obiektowy)
    5. Singleton (obiektowy)
  4. Behawioralne wzorce projektowe
    1. Łańcuch zobowiązań (ang. Chain of Responsibility) (obiektowy)
    2. Polecenie (ang. Command) (obiektowy)
    3. Interpreter (ang. Interpreter) (klasowy)
    4. Interator (obiektowy)
    5. Mediator (ang. Mediator) (obiektowy)
    6. Pamiątka (ang. Memento) (obiektowy)
    7. Obserwator (ang. Observer) (obiektowy)
    8. Stan (ang. State) (obiektowy)
    9. Strategia (ang. Strategy) (obiektowy)
    10. Metoda szablonowa (ang. Template Method) (klasowy)
    11. Odwiedzający (ang. Visitor) (obiektowy)
    12. Zbiór zasobu jest inicjalizacją (ang. RAII - Resource Acquisition Is Initialization) (obiektowy)

Refaktoryzacja kodu i metodyka programowania TDD w języku C++

Kod szkolenia: 
PCPPTDD1
Opis szkolenia: 

Umiejętności zdobywane podczas kursu:

  • definiowanie asercji testujących oraz grup testów
  • określanie faz testowania i potrzeb testowania na każdym etapie typowego projektu
  • etapy refaktoryzacji kodu i testów
  • określanie wydajności testów i wpływu metodyki TDD na kształt projektu
  • testowanie aplikacji wielowątkowych
Cel szkolenia: 
  • stosowanie metodyki TDD w codziennej pracy programisty
  • wykształcenie umiejętności programowania zgodnie z metodyką TDD
  • stosowanie refaktoryzacji w praktycznych projektach
Czas trwania: 
3 dni
Konspekt: 
  1. TDD wprowadzenie
    1. rola i cel działania metodyki TDD
    2. etapy procesu TDD
    3. zyski i straty związane z metodyką TDD
  2. Proces TDD w codziennej pracy programisty
    1. wykładnie wprowadzania TDD do pracy programisty
    2. warunki zakończenia etapów TDD i często popełnianie błędy
    3. poziomy testowania i warunki zakończenia testów na określonych poziomach
  3. Style programowania testów w TDD
    1. praktyczne implementowanie testów na przykładzie biblioteki cppunit
    2. dostępne asercje
    3. klasy i obiekty testujące
    4. projektowanie i implementowanie testów
  4. Testowanie stanu i przechowywania danych (ang. persistence)
    1. izolowanie testów
    2. transakcje
    3. specyfika jarzma testującego
  5. Testowanie aplikacji wielowątkowych
    1. separowanie funkcjonalności i wielowątkowości
    2. synchronizacja testów modułowych
    3. testy obciążeniowe obiektów pasywnych
    4. synchronizacja wątku testu i wątku aplikacji
  6. Refaktoryzacja kodu
    1. zakresy refaktoryzacji
    2. koszt i zyski refaktoryzacji
  7. Rodzaje refaktoryzacji kodu i testów
    1. refaktoryzacja w klasach i pomiędzy klasami
    2. klasyfikacje rodzajów refaktoryzacji
    3. narzędzia wspierające refaktoryzację
Subskrybuje zawartość

Logowanie

O osec.pl

Nasz serwis działa dzieki następującym projektom:

Drupal CMS - http://www.drupal.org
Apache HTTPD - http://www.apache.org
PHP - http://www.php.net
MySQL - http://www.mysql.com

ipv6 ready