Kurs programowania w języku C++
Cena kursu: 1500 zł
Zadzwoń: +48 13 464 03 44
- Kurs trwa 32 godziny lekcyjne
- Uczestnicy dostają niezbędne materiały dydaktyczne i pomoc naukową
- Zajęcia prowadzone są przez jednego instruktora
- Uczestnicy otrzymują indywidualne stanowiska pracy z laptopem, wyposażonym w potrzebne narzędzia i oprogramowania
- W czasie zajęć organizowane są przerwy kawowe
C++ to bardzo popularny, wszechstronny i łatwy do opanowania język, dlatego jest doskonałym wyborem dla każdego, kto chce rozpocząć swoją przygodę z programowaniem. Nawet podstawowa znajomość C++ pozwoli ci znacznie szybciej opanować inne języki programowania np. JAVA czy C#.
Kurs programowania C++ zapewni ci bardzo solidne podstawy niezbędne każdemu programiście C++. Zdobędziesz wiedzę, którą będziesz mógł potem rozwijać w dowolnym kierunku: programowanie gier, aplikacje mobilne, bazy danych, aplikacje webowe itp.
Uczestnicy kursu otrzymują:
- Imienne certyfikaty sygnowane przez Narodowy Instytut Kształcenia w języku polskim.
- Zaświadczenie ukończenia kursu (na podstawie Rozporządzenia Ministra Edukacji Narodowej w sprawie kształcenia ustawicznego w formach pozaszkolnych).
Istnieje możliwość tłumaczenia wydanych certyfikatów i zaświadczeń na język angielski i niemiecki. Koszt tłumaczenia wynosi 20 zł za komplet w jednym z wybranych języków.
Narodowy Instytut Kształcenia został wpisany do rejestru Niepublicznych Placówek Kształcenia Ustawicznego prowadzonego przez Powiat Sanocki pod numerem 23. Organem prowadzącym NInK jest Podkarpacka Fundacja Rozwoju Kultury. Wszelkie dochody z tytułu prowadzenia szkoleń i kursów trafiają na wydzielone konto PFRK i są przekazywane na rozwój sektora szkoleniowego co jest wpisane w główne cele statutowe PFRK i NInK.
Program kursu programowania C++:
Kurs wstępny
System kontroli wersji. Wykorzystanie Git'a w pracy zespołowej.
C++
1. Historia języka, struktura programu
- Słowa kluczowe, nazwy, komentarze, blok kodu, widoczność i zasłanianie nazw
2. Instrukcje preprocesora, kompilator, flagi kompilatora, kompilacja warunkowa
- dołączanie plików, definiowanie makr, warunkowe włączanie fragmentów kodu, optymalizacja kodu wynikowego
3. Rodzaje zmiennych, struktury danych
- zmienne ze znakiem i bez, typu całkowitego i zmiennoprzecinkowego, const, volatile, operacje na typach wbudowanych, operatory, proste struktury, typedef
4. Instrukcje warunkowe
- if, while, do-while, for, switch-case, goto, ?:, break/continue
5. CLI, Parametry, funkcje i przeciążanie funkcji
- przekazywanie parametrów do programu, przekierowanie wyjścia, definiowanie funkcji, przekazywanie parametrów
6. Tablice, łańcuchy znaków
- Operacje na stringach, tablice jedno i wielowymiarowe
7. Zarządzanie pamięcią, wskaźniki, alokacja i dealokacja pamięci
- Dynamiczne alokowanie pamięci, jak bronić się przed wyciekami pamięci, operacje na wskaźnikach, najczęstsze problemy, nullptr
8. Operacje na plikach i strumieniach danych
- Wczytywanie plików, operowanie na strumieniach, zapis do pliku, tryb binarny i tekstowy
9. Biblioteka standardowa STL
- Zapoznanie z biblioteką STL, wykorzystanie dostępnych algorytmów i struktur, rozszerzanie możliwości biblioteki STL
10. Algorytmy, złożoność obliczeniowa, wydajność
- Zapoznanie z pojęciem złożoności obliczeniowej,
11. Złożone struktury danych, drzewa, hash-mapy, kolekcje
- Praktyczne przypadki wykorzystania złożonych struktur danych, ich zalety oraz wady, porównanie szybkości działania, prosta implementacja
12. Przestrzenie nazw, klasy, typy wyliczeniowe
- Zapoznanie z hierarchią nazw, metody enkapsulacji, scenariusze wykorzystania
13. Programowanie obiektowe, dziedziczenie, funkcje i klasy zaprzyjaźnione
- Wprowadzenie do programowania obiektowego, dziedziczenie, enkapsulacja, kwantyfikatory dostępu
14. Przeładowywanie operatorów, polimorfizm
- Rozszerzanie możliwości klas, funkcje wirtualne, klasy abstrakcyjne
15. Tworzenie API, Integracja z bibliotekami zewnętrznymi
- Budowanie projektu, pliki Makefile, wykorzystanie bibliotek zewnętrznych, tworzenie własnych bibliotek
16. Funkcje Lambda
- Funkcje anonimowe, wykorzystanie funkcji anonimowych, sposoby przechwytywania danych
17. Smart pointery, iteratory, programowanie funkcyjne
- Shared/Unique/Weak pointer, iteratory ich klasy, ograniczenia i możliwości, funktory
18. Procesy, wielowątkowość, Mutexy
- Uruchamianie kilku procesów, wykorzystanie kilku procesorów, równoległe wątki, jednoczesny dostęp do danych, race condition, undefined behavior, bezpieczny dostęp do danych, synchronizacja.
19. Template, auto
- Programowanie generyczne, dedukcja typów, metody dedukcji, automatyczna dedukcja typów zwracanych i przechwytywanych
20. Testy kodu
- Gwarancja spójności kodu, kontrola jakości kodu, testy jednostkowe, testy integracyjne
21. Zasady dobrego programisty
- Zasada DRY, właściwe używanie wskaźników, obiekty tymczasowe, proces kompilacji, narzędzia do wspomagania pracy, analizatory statyczne