STEAM INVENT LogoSTEAM INVENT
Softversko inženjerstvoNapredni nivo

C: Napredni nivo

Od rada sa nizovima do razumevanja memorije i složenih podataka

C: Napredni nivo

O ovom programu

C programski jezik omogućava programerima da razumeju rad sa podacima, memorijom i programskim strukturama na znatno dubljem nivou nego većina savremenih jezika visokog nivoa. Ovaj kurs je namenjen polaznicima koji su savladali osnove programskog jezika C i žele da svoje znanje podignu na viši nivo kroz rad sa složenijim strukturama podataka i važnim konceptima koji predstavljaju temelj ozbiljnog C programiranja. Kurs počinje radom sa jednodimenzionalnim i dvodimenzionalnim nizovima, kroz koje polaznici uče kako da organizuju, pretražuju i obrađuju veći broj podataka. Poseban akcenat stavljen je na implementaciju osnovnih algoritama pretraživanja i sortiranja, kao i na praktičnu obradu vektora i matrica. Nakon toga polaznici prelaze na jedan od najvažnijih delova C jezika — pokazivače i memoriju. Uče kako se definišu i koriste pokazivači, kako funkcioniše adresna aritmetika i na koji način se memorija dinamički dodeljuje tokom izvršavanja programa. Znanje pokazivača povezuju sa radom sa stringovima, upoznajući deklaraciju i inicijalizaciju stringova, unos i ispis, kao i osnovne funkcije za obradu znakova i stringova i njihovu primenu unutar funkcija. U završnom delu kursa polaznici uče kako da podatke trajno čuvaju pomoću datoteka, razumeju različite režime otvaranja i koriste osnovne funkcije za čitanje i upis podataka, uključujući fgetc() i fputc(), kao i relativne i apsolutne putanje. Kurs se završava radom sa strukturama, kroz koje polaznici uče kako da više povezanih podataka organizuju u složene logičke celine. Stečeno znanje objedinjuju kroz praktične zadatke i složenije programske probleme, čime stiču čvrstu osnovu za dalje učenje struktura podataka, algoritama i naprednog programiranja.

Tehnologije i alati koje savladavamo

CCode::BlocksPokazivači i memorijaNapredno programiranje

Detaljan plan i program

Nedelje 1-4

Nizovi, algoritmi pretrage i sortiranja

U prvom modulu polaznici prelaze sa osnovnih programskih konstrukcija na organizaciju i obradu većeg broja podataka. Detaljno se obrađuju jednodimenzionalni nizovi odnosno vektori, njihova eksplicitna inicijalizacija, indeksi i načini za upis i ispis elemenata. Polaznici kroz praktične zadatke uče kako da analiziraju sadržaj niza i implementiraju linearno pretraživanje. Poseban deo modula posvećen je osnovnim algoritmima sortiranja, uključujući selection sort i bubble sort, pri čemu polaznici razumeju logiku rada algoritma i način njegove implementacije u C jeziku. Obrađuju se i operacije left shift i right shift, a kroz kombinovanje nizova, funkcija i petlji rešavaju se složeniji algoritamski problemi.

Fokus i alati:
VektoriUpis i ispis elemenataLinearno pretraživanjeSelection SortBubble SortLeft ShiftRight Shift
Nedelje 5-8

Matrice, pokazivači i adresna aritmetika

U drugom modulu polaznici prelaze na dvodimenzionalne nizove odnosno matrice i uče kako se podaci organizuju u redove i kolone. Obrađuju se inicijalizacija dvodimenzionalnih nizova i pristup pojedinačnim elementima, uz rešavanje problemskih zadataka koji zahtevaju obradu redova, kolona i kompletnih matrica. Nakon rada sa matricama uvode se pokazivači kao jedan od ključnih koncepata programskog jezika C. Polaznici uče kako se pokazivač definiše, kako se povezuje sa promenljivom i memorijskom adresom i kako funkcioniše adresna aritmetika. Kroz praktične primere povezuju pokazivače sa nizovima i funkcijama i stvaraju osnovu za razumevanje dinamičkog upravljanja memorijom.

Fokus i alati:
MatricePokazivačiMemorijske adresePokazivači i nizoviPokazivači i funkcije
Nedelje 9-12

Dinamička memorija i rad sa stringovima

Treći modul predstavlja jedan od najvažnijih koraka u prelasku na naprednije C programiranje. Polaznici produbljuju razumevanje pokazivača i upoznaju dinamičku dodelu memorije, učeći kako program tokom izvršavanja može da zahteva i koristi memorijski prostor prema potrebi. Kroz praktične zadatke povezuju dinamičku memoriju sa nizovima i funkcijama i uče da razmišljaju o životnom ciklusu podataka i memorijskih resursa. Nakon toga prelaze na stringove, njihovu deklaraciju i inicijalizaciju, unos i ispis i osnovne funkcije za rad sa znakovima i tekstualnim podacima. Poseban fokus stavljen je na povezivanje stringova sa funkcijama, kako bi polaznici mogli da grade složenija rešenja za obradu tekstualnih podataka.

Fokus i alati:
Dinamička memorijeRad sa memorijskim prostoromstringStringovi i funkcijeObrada tekstualnih podataka
Nedelje 13-16

Datoteke, strukture i složena organizacija podataka

U završnom modulu polaznici uče kako da podatke iz svojih programa trajno čuvaju i ponovo koriste pomoću datoteka. Upoznaju definiciju i podelu datoteka, različite režime njihovog otvaranja i osnovne funkcije za rad sa datotekama. Posebna pažnja posvećena je funkcijama fgetc() i fputc(), kao i razumevanju razlike između relativne i apsolutne putanje. Nakon toga uvode se strukture kao način organizovanja više međusobno povezanih podataka u jednu logičku celinu. Kroz praktične zadatke polaznici povezuju strukture sa nizovima, stringovima, funkcijama i datotekama i uče da grade složenija programska rešenja. U završnom delu kursa objedinjuju sve naučene koncepte kroz kompleksnije problemske zadatke i praktičan projekat, čime razvijaju sposobnost samostalnog projektovanja i implementacije C programa.

Fokus i alati:
DatotekeStruktureZavršni projekat

Osnovne informacije

Trajanje programa:4 meseca (32 časa)
Nivo složenosti:Napredni
Lokacija nastave:STEAM INVENT

Zainteresovani ste za ovaj program?

Broj mesta u grupama je ograničen kako bismo obezbedili maksimalan kvalitet mentorskog rada i posvećenost svakom polazniku.

Kontaktirajte nas za upis