Schița de curs

Introducere

  • Prezentare generală a caracteristicilor și aplicațiilor C

Pregătirea mediului de dezvoltare

  • Alegerea unui IDE
  • Configurarea compilatorului

Scrierea unui program de probă

  • Definirea problemei
  • Codificarea în conformitate cu cerințele

Definirea domeniului de aplicare al variabilelor și funcțiilor

  • Înțelegerea domeniului de aplicare, a vizibilității și a duratei de viață
  • Lucrul cu clasele de stocare: auto, extern, register, static

Gestionarea datelor într-un program C

  • Dincolo de tipurile de date primitive
  • Lucrul cu tipuri de date avansate: structuri, liste legate, etc.
  • Stocarea diferitelor tipuri de date în aceeași locație de memorie

Modificarea proprietăților unei variabile

  • Dincolo de modificatorii de tip
  • Lucrul cu calificatorii de tip: constant, volatile etc.

Manipularea biților în C

  • Lucrul cu date mai mici decât un octet
  • Lucrul cu operatorii de manipulare a biților

Controlul fluxului programului dvs.

  • Dincolo de secvențiere
  • Utilizarea instrucțiunii goto

Citirea și scrierea datelor

  • Recapitulare a funcțiilor de intrare/ieșire
  • Îmbunătățirea lizibilității ieșirii

Dezvoltarea codului pentru mai multe platforme

  • Înțelegerea directivelor compilatorului
  • Compilarea condiționată a codului

Îmbunătățirea performanței programului

  • Macros vs funcții
  • Definirea macrourilor pentru a executa fragmente de program

Alocarea dinamică a memoriei

  • Avantajul folosirii pointerilor: viteza de execuție
  • Indicatori către funcții
  • Access în memorie și manipularea adresei

Depanarea unui program C

  • Tehnici avansate de verificare, detectare și corectare a erorilor
  • Lucrul cu gdb (Gnu Debugger)

Crearea unei biblioteci statice

  • Cum se leagă o bibliotecă statică în fișierul executabil
  • Crearea unei biblioteci statice

Crearea unei biblioteci partajate

  • Biblioteci statice vs biblioteci partajate (biblioteci dinamice)
  • Modul în care o bibliotecă partajată este legată și încărcată în memorie la momentul execuției
  • Crearea unei biblioteci partajate

Abstractizarea datelor în programul dvs.

  • Prezentare generală a interfeței, specificației și implementării
  • Crearea unui tip de date abstract
  • Testarea de regresie a unui tip de date abstract

Searching și sortarea datelor

  • Searching array-uri folosind căutarea liniară, căutarea binară etc.
  • Sortarea tablourilor utilizând sortarea prin selecție, sortarea prin inserție, sortarea cu bule.

Interproces Communication și semnale

  • Înțelegerea proceselor, a socket-urilor și a semnalelor
  • Implementarea IPC folosind fișiere partajate, memorie partajată, țevi, cozi de mesaje, prize, semafoare etc.

Efectuarea programului C în paralel

  • Rularea simultană a diferitelor părți ale unui program prin multithreading
  • Scrierea unui fir de execuție

Rețele avansate Programming

  • Recapitulare a TCP, UDP, IP și a altor protocoale dominante
  • Deservirea mai multor porturi, supraviețuirea întreruperilor bruște ale rețelei etc.
  • Scrierea unor API-uri de socket puternice

Către un cod de înaltă calitate

  • Revizuirea codului de către colegi și programarea paralelă
  • Importanța codării iterative (refactoring)

Rezumat și concluzii

Cerințe

  • Experiență în programare C

Audiență

  • Programatori
  • Dezvoltatori
 28 ore

Mărturii (2)

Cursuri înrudite

Combined C/C++, JAVA and Web Application Security

28 ore

Advanced Java Security

21 ore

Combined JAVA, PHP and Web Application Security

28 ore

Standard Java Security

14 ore

Java and Web Application Security

21 ore

Advanced Java, JEE and Web Application Security

28 ore

Categorii înrudite