Onsite Course
Mar 14, 2020 - May 10, 2020
5 Students Enrolled
(7 Available)
Price800 RON
Book Now

Cui se adresează

Cursul se adresează oricui:

  • își dorește să-și îmbunătățească cunoștintele de programare în C
  • a urmat cursul Programming Essentials in C sau are competențe de bază în C
  • cunoaște limba engleză

Sunt necesare cunoștințe anterioare de C, Linux/Unix OS și MS Windows


Durata

8 saptamani– 33 ore – 11 sedinte

(18:30 – 21:30)


Investiția în cariera ta

  • 400 RON/lună

Durata cursului: 8 săptămâni

Dezvoltă-ți cariera! Evoluează cu C!

Descriere
Modulul Advanced Programming in C se adresează persoanelor care au deja cunoștințe fundamentale de programare in C. Acest curs acoperă concepte universale de programare, sintaxă, semantică specifică limbajului C, tipuri de date avansate, librării avansate, structuri de date avansate, modalități de identificare a bug-urilor și blocajelor (bottlenecks), modalități de rezolvare a problemelor utilizând structuri și algoritmi.

Cursul acoperă curricula necesară pentru pregătirea susținerii examenului de certificare CLP – C Certified Professional Programmer.

Obiectiv

Competențe dobândite

Cunoștințele teoretice se îmbină cu cele practice. Fiecare cursant va exersa, explora și încerca conceptele teoretice în lucrări și teme de laborator.

La sfârșitul modulului de curs, vei fi capabil:

  • Să utilizezi un număr variabil de parametri
  • Să înțelegi sockets și să scrii cod pentru low-level IO
  • Să gestionezi memoria disponibilă și stringuri
  • Să definești și să gestionezi procese și thread-uri
  • Să utilizezi la nivel avansat floats și integeri

Experiența educațională

Cum îți vom asigura rezultate de top?

Ce vei studia

 

Capitol Subiecte discutate
1. Evoluția C-ului

milestones: ANSI C, C89, C95, C99, C11
elemente de limbaj învechite (dar valide)
trigraf-furi și digraf-uri
noi cuvinte cheie in C11 (_Noreturn, _Alignof și _Alignas, _Bool
_Exit, _Complex, _Pragma, _ _func_ _, _Generic)

2. Gestionarea unui număr variabil de parametri

convenții de numire, transferul parametrilor, utilizare stack-uri,
stack frame-uri, returnarea unei valori, recursivitate
va_start(), va_arg(), va_end(), va_copy()
vsprintf(), vprintf(), vfprintf()
vscanf(), vssscanf(), vfscanf()
_ _ VA_ARGS _ _

3. IO low-level (<unistd.h>)

POSIX, API, ABI, WINAPI, etc
access()
open(), errno, close()
read(), write()
lseek()
dprintf()
stat()
symlink(), link(), readlink(), unlink()
fcntl() și ioctl()

4. Memorie și șiruri (<string.h> și altele)

manipularea blocurilor de memorie
manipularea șirurilor: strchr(), strrchr(), strstr(), strtok()
qsort(), bsearch()
aligned_alloc(), calloc(), malloc() și realloc()
bcopy(), memcpy(), memccpy(), memmove()
bzero()
memset(), memcmp()
internaționalizare II8N

5. Procese și thread-uri

definiție, implementare
thread safety
system(), getenv(), setenv()
procese in stilul Unix: fork(), exit(), execxx(), wait(), waitpid()
procese in stilul MS Windows: CreateProcess(), WaitForSingleObject()
thread-uri POSIX, MS Windows, C11

6. Floats și integeri (<math.h>, <fenv.h>, <inttypes.h> și altele)

IEEE-754
NaN, infinit, zero
floats și doubles
anomalii numerice versus precizie
ULP
ce e pragma?
FENV_ACCESS pragma
excepții floating-point
rounding
librării multi-precision (GMP, MPFR, MPIR)

7. Bazele network sockets

ce e un socket și network socket?
TCP/IP protocol stack, UDP
conexiuni și transmisiuni fara conexiune
server și client
big-endian și little-endian
addresare socket-uri IPv4, IPv6
getaddrinfo(), socket(), connect(), bind(), listen(), accept(), send() și recv()
exemple simple de comunicare client-server
exemple simple de comunicare peer-to-peer

8. Diverse

variabile constante și volatile
goto – avantaje, dezavantaje, limitări
long jumps
static array indices, literali compuși, array-uri de lungime variabilă, etc
probleme de portabiltate și comportamente nedefinite

Cât durează și cum decurge o ședință de curs

Cum se face evaluarea cunoștințelor

Verificarea cunoștințelor se face prin predarea temelor de laborator și prin prezentarea unui proiect de integrare a cunoștințelor.

Certificări recunoscute internațional

Curriculum cursului Advanced Programming in C este aliniat cu cerințele pentru obținerea certificării CLP – C Certified Professional Programmer

Susținerea examenului în vederea certificării sus menționate nu este inclusă în prețul ofertei de curs.

Mă înscriu

650800 LEI