Szkolenie dostępne na zamówienie

Zaawansowane programowanie w języku C

Zaawansowane aspekty programowania w języku C

Czas trwania szkolenia:3 dni (24h)

Poziom zaawansowania:

Kod kursu:C/ADV

programmingmultithreadingc

Szkolenie na zamówienie

  • Dostosowany program
  • Indywidualna wycena
  • Dowolny termin
Zapytanie o szkolenie

Zaawansowane programowanie w języku C

Cele szkolenia

  • Poznanie zaawansowanych aspektów programowania oraz konstrukcji języka C
  • Umiejętność tworzenia aplikacji na architektury 32- i 64-bitowe
  • Praktyka bezpiecznego zarządzania pamięcią oraz tworzenia i testowania aplikacji wielowątkowych

Dla kogo?

  • Szkolenie adresowane jest do osób znających język C chcących poszerzyć swoje kompetencje i umiejętności w zakresie programowania i optymalizacji aplikacji

Zalety

  • Szkolenie oparte jest o najnowszy standard języka C
  • Uczestnicy zrealizują wiele praktycznych zadań, które zobrazują poruszane problemy implementacyjne
  • Podczas szkolenia w praktyce zostaną wykorzystane narzędzia profilowania i optymalizacji aplikacji w języku C
  • Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
  • Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
  • Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how

Wymagania

  • Od uczestników szkolenia wymagana jest umiejętność programowania w języku C

W cenie otrzymasz:

  • Materiały szkoleniowe
  • Certyfikat ukończenia szkolenia
  • W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki

Program

Pobierz program w PDF

Programowanie i elementy języka C

  • Instrukcje języka
  • Działanie wskaźników
  • Stos i sterta
  • Tablice wielowymiarowe
  • Formatowanie ciągów znaków
  • Funkcje i makra ze zmienną liczbą argumentów
  • Funkcje inline
  • Asembler inline
  • Przydatne opcje preprocesora i kompilatora
  • Kompilator GCC, Clang i MSVC

Aplikacje dla systemów 32- i 64-bitowych

  • Zasady tworzenia przenośnych aplikacji
  • Wykorzystanie możliwości platformy 64-bitowej
  • Migracja aplikacji

Arytmetyka

  • Przegląd typów arytmetycznych
  • Unikanie błędu przekroczenia zakresu liczb całkowitych
  • Arytmetyka zmiennoprzecinkowa

Klasy pamięci zmiennych i modyfikatory typów

  • Zmienne statyczne, zewnętrzne i rejestrowe
  • Zmienne ulotne
  • Stałe

Zarządzanie pamięcią

  • Zapobieganie błędom typu przepełnienie bufora
  • Wykorzystanie bezpiecznych funkcji

Programowanie wielowątkowe

  • Projektowanie aplikacji wielowątkowych
  • API POSIX i Windows dla wątków
  • Działanie i wykorzystanie interfejsu OpenMP
  • Funkcje setjmp i longjmp
  • Synchronizacja pomiędzy wątkami
  • Testowanie aplikacji wielowątkowych

Narzędzia wspomagające debugowanie i profilowanie aplikacji

  • Rozszerzenia kompilatorów
  • gprof
  • gcov i lcov
  • Valgrind
  • OProfile

Optymalizacja aplikacji

  • Techniki optymalizacji
  • Rola kompilatora
  • Optymalizacja a bezpieczeństwo

Autorem szkolenia jest Piotr Nazimek

Jestem absolwentem Wydziału Elektroniki i Technik Informacyjnych Politechniki Warszawskiej. W 2012 roku obroniłem doktorat z obszaru niezawodności systemów komputerowych. Interesuję się szeroko pojętym bezpieczeństwem systemów komputerowych oraz inżynierią oprogramowania. Zawodowo pracuję od 2003 roku. Wolny czas spędzam na wyprawach rowerowych i w górach.