STRUČNI NASTAVNI PREDMETI

PROGRAMIRANjE

Cilj učenja Programiranja je razvoj algoritamskog pristupa rešavanju problema kod učenika, ovladavanje tehnikama programiranja i sticanja znanja o savremenim programskim jezicima.

Razred Prvi
Nedeljni fond časova 3 + 2 časa
Godišnji fond časova 111 + 74 časa

 

ISHODI 

Po završetku razreda učenik će biti u stanju da:

TEMA i 

ključni pojmovi sadržaja programa

– opiše algoritmom situacije iz realnog života (govornim jezikom, pseudokodom, dijagramom); 

– prepozna i u opisu algoritma upotrebi osnovne elemente kontrole toka algoritma (sekvencijalno izvršavanje naredbi, grananje, ponavljanje);

POJAM I PRIMERI ALGORITMA 

Pojam i primeri algoritama.

Načini opisa algoritama.

Specijalizovana okruženja za učenje programiranja (npr. blokovsko programiranje).

– precizno opiše algoritam u nekom specijalizovanom okruženju za učenje programiranja; 

– u datom programu prepozna osnovne elemente jezika (promenljive, izraze, naredbe);

– predvidi rezultat izvršavanja datog programa;

– dopunjavanjem teksta programa dovrši započeti jednostavan program;

– pokrene razvojno okruženje, kreira projekat, pokrene izgradnju i kompilaciju;

– pokrene program, sačuva ga, prebaci na drugi računar;

– koristi debager u cilju izvršavanja programa korak po korak i pronalaženja i otklanjanja grešaka;

– napiše program koji na osnovu učitanih podataka i datih formula izračunava tražene rezultate;

– izvede relevantne matematičke formule i primeni ih u programu;

– razlikuje celobrojnu i realnu aritmetiku i primeni odgovarajuće operatore u programima;

– naredbom grananja i uslovnim izrazom ispita jednostavan uslov koji se dobija primenom relacijskih operatora;

– naredbom grananja i uslovnim izrazom ispita složen uslov koji se dobija primenom logičkih operatora;

– ugnežđenim naredbama grananja ispita složene logičke uslove;

– razume i primeni promenu vrednosti promenljive tokom izvršavanja programa;

– implementira jednostavne iterativne algoritme nad malim serijama elemenata, ponavljanjem naredbi;

– korišćenjem petlje učita/ispiše/generiše seriju podataka;

– odredi osnovne statistike serije podataka (zbir elemenata, minimum, maksimum i slično);

– izdvoji elemente serije podataka koji zadovoljavaju neko dato svojstvo;

– primenom date funkcije preslika svaki element serije podataka;

– proveri da li serija sadrži element sa nekim datim svojstvom;

– proveri da li svi elementi serije imaju neko svojstvo i da li postoji element koji ima neko dato svojstvo;

– primenom ugnežđenih petlji nabroji elemente višedimenzionalnih serija podataka;

– navede raspon vrednosti i operacije podržanih brojevnih i karakterskih tipova podataka;

– u programu upotrebi brojevni tip podataka koji je najpogodniji za rešavanje datog problema;

– u programu obrađuje tekstualne podatke (niske) primenom bibliotečkih operatora i funkcija;

– upotrebi jednodimenzioni niz za smeštanje serija podataka;

– prepozna da li je za rešavanje zadatka potrebno smestiti sve podatke istovremeno u niz;

– upotrebi bibliotečke kolekcije koje dopuštaju dinamičku alokaciju za smeštanje nizova čija se veličina menja tokom izvršavanja programa;

– upotrebni niz ili asocijativni niz za smeštanje vrednosti kojima se pristupa na osnovu ključa;

– primeni algoritme za obradu serija podataka na elemente smeštene u niz, smeštajući rezultat u novi niz ili menjajući sadržaj polaznog niza;

– izvrši analizu i obradu elemenata niza primenom odabranih bibliotečkih funkcija;

– definiše funkcije koje primaju i vraćaju nizove

– upotrebi višedimenzionalni niz (najčešće matricu) za skladištenje podataka;

– analizira elemente matrice (njene vrste, kolone, dijagonale, rubne trouglove, pravougaone oblasti, rešetke…);

– promeni elemente višedimenzionalnog niza tj. Matrice;

– definiše funkcije koje primaju i vraćaju višedimenzionalne nizove tj. matrice;

– definiše tip podataka pogodan za rešavanje datog zadatka i upotrebljava ga u rešenju;

– po potrebi upotrebi kolekcije (nizove, matrice) podataka korisnički definisanog tipa;

– učitava podatke iz tekstualne datoteke;

– upisuje podatke u tekstualnu datoteku;

– učitava podatke zadate u obliku argumenata komandne linije programa;

– sarađuje sa ostalim članovima grupe u svim fazama projektnog zadatka;

– kreira, uređuje i strukturira sadržaje tokom rada na projektu;

– kreira računarske programe koji doprinose rešavanju projektnog zadatka;

– vrednuje svoju ulogu u grupi pri izradi projektnog zadatka i aktivnosti za koje je bio zadužen.

OSNOVNI KONCEPTI PROGRAMSKIH JEZIKA I OKRUŽENjA ZA RAZVOJ PROGRAMA 

– Osnovni elementi sintakse i semantike programskih jezika (izrazi, tipovi, naredbe, potprogrami).

– Interfejs programa (KLI, GKI).

– Integrisana okruženja za razvoj programa.

– Izgradnja programa.

– Debagovanje.

OSNOVNI ALGORITMI LINIJSKE I RAZGRANATE STRUKTURE 

– Implementacija aritmetičkih formula.

– Celobrojna aritmetika.

– Grananje, relacijski i logički izrazi.

– Složeno (ugnežđeno) grananje.

OSNOVNI ALGORITMI CIKLIČKE STRUKTURE 

– Linearna obrada serija podataka: učitavanje, ispis, statistike (broj elemenata, zbir, proizvod, minimum, maksimum), filtriranje, preslikavanje, pretraga…

– Ugnežđene petlje.

DETALjNI PREGLED OSNOVNIH TIPOVA PODATAKA 

– Brojevni tipovi (skup vrednosti, konstante, operatori, bibliotečke funkcije).

– Konverzije tipova (implicitna, eksplicitna).

– Karakterski tip (konstante, operatori, bibliotečke funkcije).

– Niske (konstante, operatori, bibliotečke funkcije).

NIZOVI, NISKE I OSNOVNI ALGORITMI ZA RAD SA NjIMA 

– Jednodimenzioni nizovi (alokacija memorije, indeksni pristup elementima, prenos između potprograma).

– Niske (nizovi karaktera).

– Popunjavanje i analiza sadržaja nizova (statistike).

– Transformacije nizova (umetanje i izbacivanje elemenata, filtriranje, preslikavanje, sortiranje).

– Pristup elementima na osnovu ključa (asocijativni nizovi).

– Nizovi kao reprezentacija matematičkih objekata (polinoma, velikih brojeva, vektora…).

VIŠEDIMENZIONALNI NIZOVI, MATRICE I ALGORITMI ZA RAD SA NjIMA 

– Višedimenzionalni nizovi i matrice (alokacija, indeksni pristup elementima).

– Prenos višedimenizonalnih nizova između potprograma.

– Analiza sadržaja višedimenzionalnih nizova.

– Transformacija višedimenzionalnih nizova.

– Odnos višedimenzionih nizova i funkcija.

KORISNIČKI DEFINISANI TIPOVI 

– Nabrojivi tipovi, intervalni, skupovni tipovi.

– Strukturni tipovi, unijski tipovi.

– Nizovi i matrice struktura.

ULAZ I IZLAZ PROGRAMA 

– Pristup datotekama iz programa.

– Argumenti komandne linije.

PROJEKTNI ZADATAK 

– Faze projektnog zadatka od izrade plana do predstavljanja rešenja.

– Izrada projektnog zadatka u korelaciji sa drugim predmetima.

– Vrednovanje rezultata projektnog zadatka.

 

Razred Drugi
Nedeljni fond časova 2+3 časa
Godišnji fond časova 185 (74 časa teorije + 111 časova vežbi)

 

ISHODI 

Po završetku razreda učenik će biti u stanju da:

TEMA i 

ključni pojmovi sadržaja programa

– konstruiše relevantne test-primere koji pokrivaju različite slučajeve i testiranjem ispituje ispravnost programa; 

– postupkom debagovanja locira i ispravlja greške koje se ispoljavaju nad ulaznim podacima za koje program ne daje ispravan rezultat;

– u svom redovnom radu upotrebljava sisteme za automatsko testiranje (na primer, onlajn sisteme za učenje programiranja);

– prepozna specifikaciju (preduslove, postuslove) na osnovu postavke zadatka;

– meri vreme izvršavanja programa za različite vrednosti ulaznih parametara;

– razlikuje osnovne klase složenosti, poput logaritamske, linearne i kvadratne

– ume da jednostavnim iterativnim programima odredi vremensku i memorijsku složenost;

– grubo procenjuje vreme i memoriju koji su programu potrebni da bi obradio ulaz date dimenzije;

– grubo procenjuje dimenziju ulaza koju program može da obradi u zadatom vremenskom i memorijskom ograničenju;

– opiše ulaz za koji je programu potrebno najviše vremena, odnosno memorije da ga obradi;

– primeni sortiranje niza kao oblik pretprocesiranja koji omogućava efikasniju obradu;

– primeni razne tehnike izbegavanja nepotrebnih izračunavanja u cilju efikasnijeg rešavanja problema;

– primeni razne oblike algoritma binarne pretrage u cilju efikasnijeg rešavanja problema;

– koristi bibliotečke implementacije struktura podataka u cilju jednostavne i efikasne implementacije programa;

–  odabira strukture podataka pogodne za efikasnije i/ili jednostavnije rešavanje datog problema;

– u integrisanom okruženju pregleda stek poziva i sadržaj pojedinačnih okvira steka;

– objasni mehanizam izračunavanja rekurzivnih funkcija primenom rekurentnih veza, prikazom drveta rekurzivnih poziva, i prikazom sadržaja programskog steka;

–  rekurzivno izrazi osnovne iterativne agloritme; 

– definiše rekurzivne funkcije koje vrše jednostavna izračunavanja nad prirodnim brojevima;

ANALIZA KOREKTNOSTI ALGORITAMA 

Značaj osiguranja korektnosti softvera

Automatsko testiranje programa

Osnovni pojmovi formalne analize korektnosti (specifikacija, preduslov, postuslov, invarijanta petlje)

ANALIZA SLOŽENOSTI ALGORITAMA 

Vremenska i memorijska složenost algoritma (analiza najgoreg slučaja)

Asimptotska analiza i O-notacija kao pojmovi

Procena potrebnih resursa (vremena, memorije) za izvršavanje programa

ELEMENTARNE TEHNIKE KONSTRUKCIJE EFIKASNIH ALGORITAMA 

Sortiranje i primene sortiranja

Binarno pretraživanje i njegove primene

Zamena iterativnih izračunavanja matematičkim formulama

Princip inkrementalnosti

Odsecanje

Tehnika dva pokazivača

Prefiksne sume

UPOTREBA STRUKTURA PODATAKA 

Upotreba tipa samo na osnovu poznavanja interfejsa

Proširivi niz

Stek

Red, red sa dva kraja

Asocijativni niz/mapa/rečnik

Skup

Red sa prioritetom (uz pretpostavku da postoji gotova implementacija)

OSNOVE REKURZIJE 

Rekurzija

Primeri jednostavnih rekurzivnih funkcija

Realizacija rekurzije

OPŠTE TEHNIKE KONSTRUKCIJE ALGORITAMA 

Gruba sila, iscrpno nabrajanje i iscrpna pretraga

Pretraga sa povratkom (bektreking)

Dinamičko programiranje

Tehnika podeli-pa-vladaj (tačnije, ovde: smanji pa vladaj)

PROJEKTNI ZADATAK 

Faze projektnog zadatka od izrade plana do predstavljanja rešenja.

Izrada projektnog zadatka u korelaciji sa drugim predmetima.

Vrednovanje rezultata projektnog zadatka.

– definiše rekurzivne funkcije koje vrše jednostavne obrade nizova; 

– proceni veličinu steka potrebnu za izvršavanje date rekurzivne funkcije i veličinu ulaza koja ne dovodi do prekoračenja steka;

– definiše rekurzivne funkcije koje vrše sistematično nabrajanje odabranih  klasa kombinatornih objekata i primeni ih za rešavanje problema;

– definiše rekurzivne funkcije koje obilaze matrice u dubinu;

– primeni nerekurzivan obilazak prostora pretrage u dubinu i u širinu i primeni pretragu u širinu radi nalaženja najkraćeg puta do ciljnog stanja;

– primeni tehniku pretrage sa povratkom (bektrekinga);

– proceni vremensku složenost rekurzivnih funkcija;

– primenjuje tehniku podeli-pa-vladaj na rekurzivno rešavanje problema i procenjuju složenost tako dobijenih rešenja

– prepoznaje problem preklapanja rekurzivnih poziva i rešava jednostavne primere tehnikom dinamičkog programiranja

– opisuje prednosti i mane rekurzivnih funkcija

– sarađuje sa ostalim članovima grupe u svim fazama projektnog zadatka;

– kreira, uređuje i strukturira sadržaje tokom rada na projektu;

– kreira računarske programe koji doprinose rešavanju projektnog zadatka;

– vrednuje svoju ulogu u grupi pri izradi projektnog zadatka i aktivnosti za koje je bio/la zadužen/a.

 

 

III razred
(
3 časa nedeljno, 111 časova godišnje)

  1. Grafovi i algoritmi za rad sa grafovima

– Pojam i reprezentacija grafova.

– Obilazak grafa (u dubinu i u širinu).

– Topološko sortiranje.

– Najkraći putevi u grafu (Dajkstrin i Flojd-Varšalov algoritam).

– Minimalno razapinjuće drvo.

  1. Algoritmi teksta

– Pronalaženje podniske (grubom silom, Knut-Moris-Pratovim ili Bojer-Murovim algoritmom).

– Regularni izrazi i primena.

– Kontekstno-slobodne gramatike i primena. Rekurzivni spust.

  1. Geometrijski algoritmi

– Površina konveksnog i prostog mnogougla.

– Provera pripadnosti tačke konveksnom mnogouglu.

– Konveksni omotač skupa tačaka.

 

  1. Algoritmi teorije brojeva

– Proširen Euklidov algoritam i primene.

– Testovi primalnosti.

– Rastavljanje broja na proste činioce i primene.

  1. Algoritmi nad bitovima
  2. Pregled odabranih struktura podataka i algoritama 
Skip to toolbar