Low-Level Programiranje

Kurs namenjen razumevanju osnova računarskih sistema i efikasnog upravljanja memorijom kroz C jezik. Idealno za polaznike koji žele da steknu dublje znanje o načinu na koji programi komuniciraju sa hardverom, kako se podaci čuvaju u memoriji, i kako se pišu optimizovani programi sa niskim nivoom apstrakcije. C jezik je standard u embedded sistemima, operativnim sistemima i low-level razvoju aplikacija.

Lak nivo - 12 časova

Lak nivo kursa osmišljen je kao uvod u sintaksu i osnovne koncepte C jezika. Kroz jednostavne programe, polaznici se upoznaju sa osnovama programiranja na nivou bližem arhitekturi računara. Fokus je na razumevanju kontrolnih struktura i osnovnih principa proceduralnog programiranja.

  • Osnovna struktura C programa (main funkcija, include direktive, komentari)
  • Promenljive, tipovi podataka, aritmetički i logički operatori
  • Petlje (for, while, do-while) i uslovne naredbe (if, switch)
  • Rad sa standardnim ulazom i izlazom (printf, scanf)

Kurs se završava izradom jednostavnih aplikacija poput kalkulatora, brojanja unosa ili interaktivne konzolne igre.

Srednji nivo - 18 časova

Srednji nivo kursa uvodi rad sa naprednim C konceptima kao što su pokazivači, dinamička memorija i složene strukture podataka. U fokusu je razumevanje kako C pristupa memoriji i kako se upravlja resursima na niskom nivou, što je ključno za performantne i pouzdane aplikacije.

  • Pokazivači: deklaracija, dereferenciranje, aritmetika pokazivača
  • Dinamičko dodeljivanje memorije (malloc, calloc, realloc, free)
  • Strukture i unije: kreiranje, korišćenje i rad sa nizovima struktura
  • Uvod u rad sa fajlovima: otvaranje, čitanje, pisanje i zatvaranje fajlova

Završni projekat može biti mini baza podataka, alat za obradu tekstualnih fajlova ili aplikacija koja koristi dinamičke strukture.

Napredni nivo - 24 časa

Na naprednom nivou, kurs pokriva rad sa sistemskim resursima, naprednom organizacijom memorije i optimizacijom performansi. Ovaj nivo je orijentisan ka razumevanju kako C komunicira sa operativnim sistemom i kako se razvijaju robusne aplikacije koje direktno upravljaju resursima.

  • Upravljanje memorijom na nivou OS-a, rad sa bufferima i sistemskim pozivima
  • Rad sa nizovima bajtova, binarnim fajlovima i formatiranjem podataka
  • Interakcija sa operativnim sistemom: rad sa direktorijumima, procesima i signalima
  • Osnovne tehnike za profilisanje i optimizaciju C koda

Završni projekat uključuje razvoj kompleksne aplikacije poput komandne linije za pretragu fajlova, sistema za evidenciju podataka, ili jednostavnog emuliranog fajl sistema.