Professional Documents
Culture Documents
Algoritmi I Programiranje
Algoritmi I Programiranje
ALGORITMI I PROGRAMIRANJE
2
1. NAZIV NASTAVNOG PREDMETA
ALGORITMI I PROGRAMIRANJE
Osnovni cilj ovog predmeta je da učenici/e ovladaju tehnikama algoritamskog pristupa rješavanju problema i osnovnim principima
programiranja kroz programski jezik JAVA. Algoritamski pristup rješavanju problema razvija analitičke sposobnosti učenika/ca i
upoznaje ih sa principom dekompozicije problema na podprobleme. Programski jezik JAVA je najpopularniji programski jezik za
učenje programiranja. Kroz učenje ovog jezika vrši se implementacija naučenih algoritama. Učenici/e se upoznaju i sa objektno
orijentisanom paradigmom kreiranja softvera i principima pravilnog kreiranja softvera (tzv. softverskog inženjerstva). Kroz
programiranje učenici/e mogu da se upoznaju sa osnovama razvoja grafičkog korisničkog interfejsa (GUI). Jezik Java može se
koristiti i za veb-programiranje. Poznavanje osnovnih principa programiranja omogućava učenicima/ama da primjenom računara
rješavaju probleme ze koje ne postoji adekvatan softver, kao i da razvijaju aplikacije koje odgovaraju konkretnim korisničkim
zahtjevima.
Ovaj predmet predstavlja osnovu za razvijanje naprednih programerskih vještina i uvod u projektovanje softvera.
3
4. SADRŽAJI I OPERATIVNI CILJEVI PREDMETNOG PROGRAMA
Operativni ciljevi Aktivnosti Pojmovi/sadržaji Korelacija
Učenik/ca treba da: Učenici/e:
- razumije pojam algoritma, - se upoznaju sa kreiranjem linijskih
- shvata osnovne elemente algoritamskih šema, Algoritamske šeme; pseudokod; Matematika: aritmetička i
algoritamske šeme, - upoznaju kreiranje razgranatih vremenska i prostorna složenost. geometrijska progresija, rekurentne
- prepoznaje osobine algoritama algoritamskih šema, formule.
(prostorna i vremenska složenost, - upoznaju predstavljanje algoritama
determinizam, diskretnost), pseudokodom, Informatika.
- zna da provjeri ispravnosti - izračunavaju i provjeravaju
algoritma. složenost algoritma,
- empirijski i teorijski provjeravaju
(okvirno 10 časova) ispravnost algoritma.
Učenik/ca treba da:
- razlikuje algoritam i program, Sa učenicima/ama se razgovara o Paradigme projektovanja softvera; Informatika.
- zna koje su programske tome za koje su programske jezike kompajler; interpreter; proces
paradigme, čuli/e. prevođenja i interpretacije programa. Maternji jezik i književnost i Strani
- raspoznaje programske jezike po Učenicima/ama se objašnjava koje jezik: veza programskog jezika i
paradigmama, paradigme postoje i koje su im prirodnog jezika.
- zna ulogu prevodioca, karakteristike: imperativna - jezici C,
- razlikuje kompajler i interpreter. Pascal, Basic; objektno-orijentisana –
C++, JAVA; funkcionalna – LISP, ML;
(okvirno 4 časa) deklarativna – Prolog.
Učenici/e:
- se upoznaju sa određivanjem
uloge prevodioca,
- saznaju primjere kompajlera i
interpretera,
- rade nstaliranje JAVA prevodioca i
editora,
- rade podešavanje radne okoline
(CLASSPATH …).
4
Operativni ciljevi Aktivnosti Pojmovi/sadržaji Korelacija
Učenik/ca treba da: Učenici/e rade:
- prepoznaje pojam objekta, reference - kreiranje objekta u jeziku JAVA, Editor; J2SE; pravilan format Informatika.
na objekat, klase i poruke, - otvaranje editora, kreiranje programa; čitljivost koda.
- zna da koristi editor, programa i snimanje izmjena,
- shvata format JAVA programa, - zadavanje formata programa,
- kreira prvi JAVA program - kreiranje i izvršavanje jednostavnog
(System.out.println), programa,
- unosi komentare, - komentarisanje koda i pravilno
- koristi metode objekta PrintStream. uvlačenje linija koda – čitljivost koda.
(okvirno 4 časa)
Učenik/ca treba da: Učenici/e:
- razumije pojam identifikatora i - rade kreiranje različitih identifikatora, Editor; identifikator; literal; konstanta; Matematika: razlika između
prepoznaje ih u jeziku JAVA, - na primjeru upoznaju razlikovanje promjenljiva; tip promjenljive. promjenljive u matematici i
- shvata pojam tipa identifikatora i rezervisane riječi od drugih programiranju.
prepoznaje primitivne tipove u JAVI, identifikatora,
- prepoznaje rezervisane riječi, - rade kreiranje JAVA Bajt Koda i
- razlikuje Ime.java fajl i Ime.class fajl, pregled tog koda,
- zna šta je Java Byte Code, - rade pronalaženje Ime.java fajla i
- umije da deklariše promjenljivu, Ime.class fajla poslije prevođenja
- zna da dodijeli vrijednost programa,
promjenljivoj. - rade upotrebu literala, konstanti i
(okvirno 4 časa) promjenljivih u jednostavnim
programima,
- rade dodjeljivanje vrijednosti
promjenljivim.
Učenik/ca treba da: Učenici/e:
- prepoznaje i koristi metode klase - upoznaju pisanje programa koji String; podstring; overloading
String, koriste stringove (jednakost (prepoterećenje); poruke.
- shvata pojam signature, stringova, podstringovi, izvlačenje
- na primjeru podstringa koristi karaktera, transformacije …),
overloading, - upoznaju pisanje programa koji
- shvata princip kaskadnog slanja koriste overloading,
poruka. - upoznaju pisanje programa koji
(okvirno 3 časa) koriste kaskadno slanje poruka.
5
Operativni ciljevi Aktivnosti Pojmovi/sadržaji Korelacija
Učenik/ca treba da: Učenici/e:
- kreira objekat putem konstruktora, - rade kreiranje više kontsruktora za Konstruktor; datoteke.
- kreira objekat na primjeru klase klasu,
String, - rade otvaranje i zatvaranje
- upotrebljava metode datoteke (fajla),
FileOutputStream klase, - rade upisivanje podataka u fajl.
- zna svojstva i metode PrintStream
objekta.
(okvirno 4 časa)
Učenik/ca treba da: Učenici/e:
- razumije i koristi metode klasa - upoznaju pisanje programa koje Klasa FileInputStream; klasa
FileInputStream, koriste klase FileInputStream, BufferedInputStream; klasa
BufferedInputStream, BufferedInputStream, InputStreamReader; klasa
InputStreamReader i - rade kreiranje programa koje BufferedReader.
BufferedReader, koriste klase InputStreamReader i
- shvata razliku između različitih BufferedReader.
klasa za pristup datotekama
(fajlovima).
(okvirno 4 časa)
Učenik/ca treba da: Učenici/e:
- umije da definiše klasu, - rade kreiranje korisničke klase, Objektno-orijentisano projektovanje;
- zna da napiše konstruktore za - na primjerima upoznaju this; Get i Set metodi; Main; static
klasu, prepoznavanje kontrole pristupa, metodi; nasljeđivanje (inheritance).
- kreira metode klase, - rade kreiranje Set i Get metode,
- razumije kontrolu pristupa (public, - rade kreiranje podklase (izvedene
private), klase),
- zna šta je this, - rade prepoznavanje problema koje
- kreira Get i Set metode, mogu nastati pri nasljeđivanju.
- razumije ulogu metoda Main,
- shvata šta su static metodi,
- prepoznaje na primjeru
nasljeđivanje,
- projektuje i implementira
naslijeđenu klasu.
(okvirno 8 časova)
6
Operativni ciljevi Aktivnosti Pojmovi/sadržaji Korelacija
Neobavezna tema Učenici/e:
Učenik/ca treba da: - rade kreiranje appleta, Applet; veb-stranica.
- kreira jednostavne applet-e. - rade uključivanje appleta u veb-
(okvirno 4 časa) stranicu.
Učenik/ca treba da: Učenici/e:
- razlikuje primitivne tipove podataka - upoznaju konvertovanje vrijednosti Konverzija; objekti i primitivne vrijednosti Matematika: veza klase Math sa
(int, long, short, float, double, boolean) primitivnih tipova u odgovarajuće formatiranje; klasa Math; klasa Time. matematičkim objektima i konstantama.
i objekte odgovarajućih klasa (Integer objekte i obratno,
...), - rade pisanje programa koji koriste
- koristi Math klasu, klasu Math,
- koristi Time klasu. - rade pisanje programa koji koriste
(okvirno 3 časa) klasu Time.
7
Operativni ciljevi Aktivnosti Pojmovi/sadržaji Korelacija
Učenik/ca treba da: Učenici/e:
- razumije principe grafičkog interfejsa - diskutuju o principima kreiranja GUI - Graphical User Interface; Likovna umjetnost: principi slaganja
(GUI), grafičkog interfejsa, events; thread. boja …
- poznaje osnovne elemente za - rade kreiranje programa sa Komunikologija: komunikacija sa
kreiranje interfejsa (panel, dugme, elementima grafičkog interfejsa, korisnikom programa.
check-box, option, text-box ...), - rade kreiranje događaja za pojedine
- shvata princip događaja u JAVI komponente interfejsa,
(event), - rade pisanje programa sa thread-
- implementira događaje za ovima.
komponente,
- prepoznaje mogućnost upotrebe
Thread-ova,
- implementira jednostavnije programe
sa thread-ovima.
(okvirno 8 časova)
Neobavezna tema Učenici/e:
Učenik/ca treba da: - rade kreiranje programa koji koriste Rekurzija; string; kombinatorika.
- razumije rekurziju kao princip tzv. tail-rekurziju,
rješavanja problema, - saznaju o primjerima programa za
- implementira rekurzivne programe. štampanje stringa, štampanje stringa u
(okvirno 6 časova) obrnutom redosljedu, provjeru
palindroma, pretvaranje broja u binarni
zapis
- upoznaju primjere programa: Hanojske
kule, permutacije, kombinatorika.
Učenik/ca treba da: Učenici/e:
- razumije razloge sortiranja podataka - rade kreiranje porgrama za različite Insertion sort; selection sort; bubble sort; Matematika: aritmetički i geometrijski niz,
po raznim kriterijumima, metode sortiranja niza. quicksort; mergesort; counting sort. kombinatorika, rekurentne formule.
- implementira različite metode
sortiranja niza (direktno višestruko
razvrstavanje, sortiranje umetanjem
(insertion sort), sortiranje izborom,
sortiranje objedinjavanjem već
sortiranih (mergesort), razdvajanje
pomoću pivota (quicksort), counting
sort,
- prepoznaje složenost različitih
algoritama sortiranja niza.
(okvirno 8 časova)
8
Operativni ciljevi Aktivnosti Pojmovi/sadržaji Korelacija
Neobavezna tema Učenici/e:
Učenik/ca treba da: - kreiranje programa koji koriste Backtracking; dekompozicija Matematika.
- razumije backtracking kao princip backtracking (razmještaj dama na problema. Šah.
rješavanja problema, šahovskoj tabli tako da se ne
- prepoznaje probleme koji mogu biti napadaju, obilazak šahovske table
riješeni primjenom backtracking-a, skakačem, permutacije, obilazak
- implementira programe sa lavirinta, igre ...).
backtracking-om.
(okvirno 6 časova)
Neobavezna tema Učenici/e:
Učenik/ca treba da: - rade kreiranje programa koji Dinamičko programiranje. Matematika: matrice, kombinatorika.
- razumije dinamičko programiranje koriste dinamičko programiranje
kao princip rješavanja problema, (obilazak tabele po nekim
- prepoznaje probleme koji mogu biti pravilima, najduži zajednički
riješeni primjenom dinamičkog podniz, množenje matrica ...).
programiranja,
- implementira programe sa
dinamičkim programiranjem.
(okvirno 6 časova)
Neobavezna tema Učenici/e:
Učenik/ca treba da: - rade kreiranje programa koji Graf; stepen čvora; putanje u grafu; Matematika: kombinatorika, grafovi.
- razumije pojam grafa i osobine koriste grafove. obilazak grafa; najkraći put.
grafova,
- prepoznaje probleme koji se mogu
svesti na graf,
- zna različite metode obilaska
grafa,
- implementira programe sa
grafovima.
(okvirno 8 časova)
Učenik/ca treba da: Učenici/e:
- razumije pojam paketa (package) i - rade kreiranje paketa, Package; JAR.
kreira svoje pakete, - rade kreiranje JAR fajla i
- shvata pojam JAR fajla kao načina distribucija.
distribucije JAVA aplikacija.
(okvirno 4 časova)
9
5. STANDARDI ZNANJA
Učenici/e se ocjenjuju kroz izradu određenih vrsta algoritama i programa na zadatu temu. Za naprednije učenike/ce može se
zadati složeniji algoritam i program. Moguće je i na početku godine zadati jedan veći projekat koji treba postupno u toku godine
rješavati (npr. školska biblioteka). Pored ovog, moguće je zadati kvizove sa pitanjima koja provjeravaju da li su učenici/e ovladali/e
pojedinim dijelovima predviđenog materijala. Predloženi operativni ciljevi mogu se realizovati za 118 časova. Neke od tema su
predložene kao neobavezne (ukupno 36 časova). Neobavezne teme su uglavnom one koje se najčešće pojavljuju na
takmičenjima iz programiranja i one treba da budu obrađene posebno sa učenicima/ama koji/e se takmiče. Nastavnik/ca može
izabrati samo neke od tih tema ili čak dijelove tih tema.
10
7. RESURSI ZA REALIZACIJU NASTAVE
Za realizaciju ovog programa neophodno je postojanje jedne učionice opremljene odgovarajućim brojem računara (najviše 2
učenika/ce po jednom računaru), projektorom i mrežnim štampačem. Na svakom od računara mora biti instalirana J2SE (JAVA
Standard Edition) i odgovarajući tekst-editor (npr. Notepad++). Moguće je i korišćenje ECLIPSE frejmvorka.
1. Eckel, B.: Misliti na JAVI, 4. izdanje (Thinking in JAVA), Mikro knjiga, 2007.
2. Schildt, H.: Java J2SE 5 - kompletan priručnik, Mikro knjiga, 2006.
Profesor/ica matematike ili informatike (PMF, FON), profesori/ce ostalih predmeta koji/e su tokom redovnih studija slušali/e
dvosemestralni kurs iz programiranja ili imaju odgovarajući sertifikat.
Predmetni program ALGORITMI I PROGRAMIRANJE za III ili IV razred gimnazije uradila je Komisija u sljedećem sastavu:
11