Wybrany termin:
Termin:
Do ustalenia
Miejsce:
Kraków
Cena:
2000,00 zł

Programowanie w języku C++

Offer image
Wybrany termin:

Termin:

Do ustalenia

Miejsce:

Kraków

Czas trwania:

80 godz.

Prowadzący:

dr inż. Roman Dębski

Cena:

2000,00 zł

Pozostałe terminy:

W tym momencie brak dostepnych terminów

Języki C i C++ od wielu lat są jednymi z najczęściej stosowanych zarówno w przemyśle IT, jak i w instytucjach naukowo-badawczych. Szczególną rolę spełniają od dawna m.in. w telekomunikacji, przemyśle motoryzacyjnym i w produkcji gier, a ostatnio również w systemach "Internetu rzeczy" (IoT). Dlatego zapotrzebowanie na programistów znających C++ jest ciągle ogromne.

Kurs jest wprowadzeniem do programowania w C++. Obejmuje elementy programowania proceduralnego, obiektowego, generycznego i funkcyjnego istotne z punktu widzenia współczesnych zastosowań języka. Jego nauka odbywa się w kontekście zagadnień kluczowych dla każdego programisty, a dotyczących m.in. architektury komputera, zarządzania pamięcią, projektowania i analizy algorytmów oraz struktur danych, a także wzorców projektowych i testowania oprogramowania.

Usługa:
Szkolenie/Kurs synchroniczny
Poziom:
Podstawowy

Osoby bez kierunkowego wykształcenia zarówno już związane z branżą IT, jak również poszukujące takiej pracy. Kurs umożliwi uczestnikom uzupełnienie i uporządkowanie posiadanej wiedzy z zakresu nie tylko języka C++, ale także podstaw programowania ułatwiających dalszą naukę (także innych języków).

  • Pojęcia podstawowe: pliki .cpp vs. .h (nagłówkowe); proces kompilacji: kompilacja vs. interpretacja, kod źródłowy, kod maszynowy/asembler, narzędzia qmake i cmake; preprocesor/makra/kompilacja warunkowa,
  • Progr. proceduralne: deklaracja/definicja/inicjalizacja, zasięg nazw, typedef vs. deklaracja "using", wnioskowanie typu (auto/decltype), typy i rozmiary danych, konwersje typów/rzutowanie, wejście/wyjście (C vs. C++), funkcje, struktury sterujące, operatory bitowe, organizacja pamięci programu, zarządzanie pamięcią, stałe/zmienne lokalne/globalne, statyczne, dynamiczne; tablice, wskaźniki (w tym do funkcji) i referencje, struktury, unie, pola bitowe; const vs. constexpr; moduły, przestrzenie nazw, dyrektywa "using",
  • Progr. obiektowe: klasy (konkretne i abstrakcyjne), obiekty, metody, kontrola dostępu (w tym funkcje/klasy zaprzyjaźnione), konstruktory, destruktory; dziedziczenie vs. agregacja/kompozycja, inicjalizacja, polimorfizm inkluzyjny/"podtypowanie" i funkcje wirtualne, operatory definiowane przez użytkownika; wyjątki, noexcept, poziomy "exception safety",
  • Elementy progr. uogólnionego: progr. generyczne vs. generatywne, polimorfizm parametryczny, szablony funkcji i klas, elementy biblioteki standardowej (kolekcje i algorytmy),
  • Elementy progr. funkcyjnego: cechy stylu (paradygmatu) funkcyjnego; funkcje wyższego rzędu, anonimowe obiekty funkcyjne/wyrażenia lambda,
  • Zarządzanie zasobami: idiom RAII, "rule of three" vs. "rule of five", wskaźniki "unique_ptr" i "shared_ptr", semantyka przenoszenia ("move semantics"), idiom "copy-and-swap", typy "move-only",
  • Podstawy progr. aplikacji w Qt, testy jednostkowe,
  • Architektura komp.:struktura procesu, zarządzanie pamięcią, reprezentacja liczb,
  • Elementy algorytmiki i struktury danych: rekursja, złożoność obliczeniowa (czasowa, pamięciowa); wybrane struktury danych - tablice, zbiory, mapy, stosy, kolejki, listy; drzewa (poszukiwań binarnych), grafy; wybrane algorytmy - wyszukiwanie, sortowanie, najkrótsze ścieżki w grafie.

mini wykłady, ćwiczenia laboratoryjne/warsztaty

Czas trwania: 20 spotkań 4-godzinnych (od 17.45 do 21.00)

Uczestnik otrzymuje:

Certyfikat ukończenia kursu

Pozostałe korzyści:

  • zakres materiału odpowiadający kursom przygotowawczym prowadzonym przez firmy z branży IT dla kandydatów do pracy,
  • nastawienie na zrozumienie kluczowych zagadnień dla każdego programisty, ułatwiających dalszą naukę (także innych języków),