Универзитет у Новом Саду Технички Факултет "Михајло Пупин" Зрењанин

Programski jezici i metode programiranja 1


Sadržaj predmeta

Uvod: istorijski pregled razvoja programskih jezika; FORTRAN i COBOL. Programski jezik ALGOL 60 i njegov uticaj na razvoj programiranja. Klasične metode programiranja. Klasifikacija programskih jezika. Prevođenje programa: kompajleri i interpreteri.

Principi programskih jezika: Program kao jedinstvo algoritma i strukture podataka. Opšti model viših proceduralnih programskih jezika. Osnovni tipovi podataka: logički, kardinalni, celobrojni, realni, znakovni, kompleksni, nabrojivi, intervalni, skupovni, nizovni, slogovni i datotečni. Osnovne upravljačke strukture. Klasifikacija upravljačkih struktura. Sekvenca. Selekcije. Ciklusi. Skokovi. Tehnike modularizacije programa: nezavisni potprogrami, interni potprogrami, rekurzivni potprogrami. Sintaksa programskih jezika: BNF notacija, EBNF notacija, sintaksni dijagrami.

Opšte strukture podataka: Definicija, klasifikacija i operacije nad strukturama podataka. Statičke strukture: definicija logičke strukture, osnovne operacije, fizička realizacija i primene. Indeksne strukture: nizovi i multi-indeksne strukture kao njihov poseban oblik. Slogovi. Statičke tabele. Poludinamičke strukture: definicija logičke strukture, osnovne operacije, fizička realizacija i područja primene. Stek. Red. Dek. Sekvenca. Dinamičke strukture: definicija logičke strukture, osnovne operacije, fizička realizacija i područja primene. Jednostruko spregnuta lista. Dinamički niz i dinamička tabela. String. Dvostruko spregnute i višestruke liste. Stabla i njihova klasifikacija. N-arno stablo i binarno stablo kao poseban slučaj. Uopšteno (generalisano) stablo.

Apstraktni tipovi podataka: Pojam i geneza tipa. Apstraktni i konkretni tipovi. Signatura i specifikacija tipa. Generički tipovi.

Strukturirano programiranje: Softverska kriza šezdesetih godina i geneza strukturiranog programiranja. Elementi strukture programa. Baza strukturiranih programa i osnovni prosti programi. Boehm-Jacopini-jeva strukturna teorema. Uzroci nestrukturiranosti i postupci za strukturiranje programa. Metoda sukcesivne dekompozicije za razvoj strukturiranih programa.

Ovaj nastavni sadržaj se na vežbama obrađuje kroz programski jezik PASCAL.

Objektno programiranje: Životni ciklus programa i moderni pristup programiranju. Osnovni pojmovi i termini u objektnom programiranju: klasa, objekt (primerak, instanca klase), atributi i metodi. Specifikacija klase uopšte i na jednom od konkretnih programskih jezika. Princip apstrakcije, modularnost i inkapsulacija: pojam i realizacija na konkretnom programskom jeziku. Nasleđivanje i njegove karakteristike; problem kasnog povezivanja i njegovo rešavanje. Polimorfizam: pojam, vrste i karakteristike. Statički i dinamički tipovi. Dinamički objekti: pojam, realizacija, alokacija i dealokacija; primena na konkretnom programskom jeziku. Projektovanje hijerarhija i mreža klasa. Testiranje programa: Definicija specifikacije, korektnog programa, arene i test skupa. Destruktivni i konstruktivni pristup testiranju. Klasifikacija metoda za testiranje. Testiranje bez primene računara. Metode bele kutije za testiranje programa. Metoda klasa sličnosti. Metoda graničnih vrednosti. Metoda simboličkog izvršavanja. Testiranje složenih softverskih sistema

Korisnički interfejs: Principi izrade i funkcionisanja korisničkog interfejsa. Elementi korisničkog interfejsa. Rukovanje ekranom i tastaturom. Principi korišćenja boje. Principi rukovanja zvukom

Dokumentovanje programa: Dokumentovanje delova naredbi, paragrafa i modula. Dokumentovanje složenih softverskih proizvoda.

Ovaj nastavni sadržaj se na vežbama obrađuje kroz programski jezik objektni PASCAL.