Email Print
26.08.2016.

PRAVILNIK O IZMENI PRAVILNIKA O NASTAVNOM PLANU I PROGRAMU ZA GIMNAZIJU ("Sl. glasnik RS - Prosvetni glasnik", br. 11/2016)


Na osnovu člana 14. stav 1. tačka 6) Zakona o osnovama sistema obrazovanja i vaspitanja („Službeni glasnik RS”, br. 72/09, 52/11, 55/13, 35/15 – autentično tumačenje, 68/15 i 62/16 – US),
Ministar prosvete, nauke i tehnološkog razvoja donosi

PRAVILNIK
o izmeni Pravilnika o nastavnom planu i programu za gimnaziju

Član 1.

U Pravilniku o nastavnom planu i programu za gimnaziju („Službeni glasnik SRS – Prosvetni glasnik”, broj 5/90 i „Službeni glasnik RS – Prosvetni glasnik”, br. 3/91, 3/92, 17/93, 2/94, 2/95, 8/95, 23/97, 2/02, 5/03, 10/03, 11/04, 18/04, 24/04, 3/05, 11/05, 2/06, 6/06, 12/06, 17/06, 1/08, 8/08, 1/09, 3/09, 10/09, 5/10, 7/11, 4/13, 14/13, 17/13, 18/13, 5/14 i 18/15), u Programu obrazovanja i vaspitanja – za I, II, III i IV razred gimnazije, nastavni program predmeta „RAČUNARSTVO I INFORMATIKA” za prvi, drugi i treći razred, zamenjuje se novim nastavnim programom predmeta „RAČUNARSTVO I INFORMATIKA” za prvi, drugi i treći razred, koji je odštampan uz ovaj pravilnik i čini njegov sastavni deo.

Član 2.

Učenici upisani u gimnaziju zaključno sa školskom 2015/2016. godinom završavaju započeto obrazovanje po nastavnom planu i programu koji je bio na snazi do stupanja na snagu ovog pravilnika – do kraja školske 2018/19. godine.

Član 3.

Ovaj pravilnik stupa na snagu osmog dana od dana objavljivanja u „Službenom glasniku Republike Srbije – Prosvetnom glasniku”.

RAČUNARSTVO I INFORMATIKA

Cilj i zadaci

Cilj nastavnog predmeta računarstvo i informatika je sticanje znanja, ovladavanje veštinama i formiranje vrednosnih stavova koji doprinose razvoju informatičke pismenosti neophodne za dalje školovanje, život i rad u savremenom društvu, kao i osposobljavanje učenika da efikasno i racionalno koriste računare na način koji ne ugrožava njihovo fizičko i mentalno zdravlje.

Zadaci nastave računarstvo i informatika su da učenici:

– razviju svest o neophodnosti korišćenja računara u svakodnevnom životu i radu i značaju informatike za funkcionisanje i razvoj društva;
– ovladaju korišćenjem programa za obradu teksta i tabelarnih podataka i kreiranje dokumenata u kome su integrisani tekst, slika i tabela;
– efikasno koriste programski jezik zasnovan na prozorima za rešavanje različitih problema u daljem obrazovanju, profesionalnom radu i svakodnevnom životu;
– steknu znanja potrebna za podešavanje parametara operativnog sistema na nivou korisničkog interfejsa, korišćenje mogućnosti operativnih sistema i sistema datoteka konkretnog operativnog sistema;
– razumeju principe funkcionisanja interneta, lokalnih mreža i osposobe se za korišćenje mrežnih resursa, internet servisa i sistema za elektronsko učenje;
– jačaju sposobnost za precizno i koncizno definisanje problema; upoznaju se sa algoritamskim načinom rešavanja problema i osnovnim algoritmima;
– razviju sposobnosti pisanja programa vođenih događajima i razumeju principe kreiranja modularnih i dobro struktuiranih programa;
– upoznaju osnovni koncept i principe Veb dizajna i Veb programiranja, razumeju logiku animacije i ovladaju njenom upotrebom u kreiranju sopstvenih Veb projekata;
– upoznaju osnovne koncept i principe različitih paradigmi programiranja (proceduralno, objektno, funkcionalno, logičko);
– upoznaju principe predstavljanja i obrade crteža i slika na računaru i ovladaju tehnikama korišćenja jednog od grafičkih programa za obradu crteža i slika;
– upoznaju načine izrade prezentacija i osposobe se za izradu jednostavnijih prezentacija;
– upoznaju koncept baze podataka, njenu organizaciju, korišćenje upita za dobijanje traženih podataka iz baze, pravljenje izveštaja i distribuciju podataka;
– jačaju sposobnost rešavanja problema razvojem logičkog i kritičkog mišljenja;
– unaprede sposobnosti za brzo, efikasno i racionalno pronalaženje informacija korišćenjem računara, kao i njihovo kritičko analiziranje, skladištenje i prenošenje;
– razviju preciznost, racionalnost i kreativnost u radu sa računarom;
– unaprede strategije i tehnike samostalnog učenja koristeći mogućnosti računara i razviju spremnost za učenje tokom celog života;
– na adekvatan način koriste prednosti računara i društvenih mreža u udruživanju sa drugima i pokretanju akcija čiji je cilj širenje korisnih informacija ili pružanje pomoći i podrške onima kojima je to potrebno;
– primene stečena znanja i veštine u savladavanju programa drugih nastavnih predmeta;
– izgrade pravilne stavove prema korišćenju računara, bez zloupotrebe i preterivanja koje ugrožava njihov fizičko i mentalno zdravlje;
– upoznaju savremena ergonomska rešenja koja olakšavaju upotrebu računara i izgrade spremnost za praćenje novih rešenja u oblasti informatičke tehnologije.

Prvi razred
oba tipa gimnazije
(0+2 časa nedeljno, 74 časa godišnje)

SADRŽAJI PROGRAMA

1. Osnovi informatike (10)

– Osnovni pojmovi informatike i računarstva (informacije, podaci, informaciono-komunikacione tehnologije, predmet i oblasti informatike i računarstva).

– Predstavljanje informacija u digitalnim uređajima (digitalizacija, predstavljanje slika, zvuka, teksta, brojevni sistemi, zapis brojeva, jedinice za merenje količine informacija).

– Razvoj informacionih tehnologija (prikupljanja, skladištenja, obrade, prikazivanja i prenosa podataka).

– Uticaj savremene računarske tehnologije na život ljudi (značaj i primena računara, karakteristike informacionog društva, uticaj korišćenja računara na zdravlje, bezbednost i privatnost).

2. Arhitektura računarskog sistema (6)

– Struktura i princip rada računara.

– Procesor.

– Memorijska hijerarhija.

– Ulazno-izlazni uređaji.

– Magistrale.

– Savremena hardverska tehnologija.

– Uticaj komponenti na performanse računara.

3. Programska podrška računara (4)

– Aplikativni softver.

– Sistemski softver.

– Operativni sistem.

– Distribucija softvera (verzije i modifikacije programa, vlasništvo nad softverom, zaštita prava na intelektualnu svojinu).

4. Osnove rada u operativnom sistemu sa grafičkim
interfejsom (6)

– Osnovni elementi GKI i interakcija sa njima (radna površina, prozori, meniji, dugmad, akcije mišem, prečice na tastaturi, ...).

– Osnovna podešavanja operativnog sistema (podešavanje datuma i vremena, radne površine, regionalna podešavanja, podešavanja jezika i tastature, korišćenje i podešavanje korisničkih naloga).

– Instaliranje i uklanjanje programa (aplikativnih programa, drajvera).

– Rad sa dokumentima i sistemom datoteka.

– Sredstva i metode zaštite računara i informacija.

5. Obrada teksta uz pomoć računara (12)

– Pristupi unosu i obradi teksta (tekst-editori, jezici za obeležavanje, tekst-procesori).

– Radno okruženje tekst-procesora i njegovo podešavanje.

– Unos teksta i njegovo jednostavno uređivanje (efikasno kretanje kroz tekst, kopiranje, premeštanje, pretraga, zamena teksta).

– Formatiranje i oblikovanje teksta (stranice, pasusa, karaktera).

– Posebni elementi u tekstu (liste, tabele, slike, matematičke formule, ...).

– Korišćenje i izrada stilova, generisanje sadržaja.

– Alatke integrisane u tekst-procesore (provera gramatike i pravopisa, redigovanje teksta, bibliografske reference, indeks pojmova, cirkularna pisama, ...).

– Korišćenje gotovih šablona i izrada sopstvenih šablona.

– Štampa dokumenata.

6. Slajd-prezentacije (6)

– Prezentacije i njihova primena (pravila dobre prezentacije, etape u izradi prezentacija).

– Radno okruženje programa za izradu slajd-prezentacija i njegovo podešavanje (pogledi na prezentaciju).

– Kreiranje slajdova (umetanje i formatiranje teksta, grafikona, slika, zvučnih i video-zapisa, ...).

– Skladno formatiranje slajdova (master slajd).

– Animacije (animacije objekata na slajdovima, animacije prelaza između slajdova, automatski prelazak između slajdova i snimanje naracije).

– Interaktivne prezentacije (hiperveze, akciona dugmad).

– Štampanje prezentacije.

7. Uvod u računarske mreže i internet (8)

– Pojam i vrste računarskih mreža.

– Organizacija uređaja u mreži (mrežna topologija, klijenti, serveri, p2p).

– Mrežni slojevi, mrežni hardver i mrežni softver.

– Globalna mreža (internet).

– Internet-provajderi i tehnologije pristupa internetu.

– Servisi interneta (elektronska pošta, veb, društvene mreže, blogovi, forumi, učenje, mape, elektronska trgovina i bankarstvo, audio i video komunikacija).

– Lepo ponašanje, pravo i etika na internetu. Bezbednost i privatnost na internetu.

8. Uvod u algoritme (20)

– Zašto učiti algoritme i programiranje?

– Pojam proceduralnog algoritma, struktura algoritma i načini opisivanja algoritama.

– Primeri algoritama.

– Vizuelno (blokovsko) programiranje.

Navedeni fond časova obuhvata obradu novog gradiva, utvrđivanje i obnavljanje i provere znanja.

Uputstvo za realizaciju

Nastava se izvodi u dvočasu, sa polovinom odeljenja u računarskom kabinetu.

Na početku nastave uraditi proveru nivoa znanja i veština učenika, koja treba da posluži kao orijentir za organizaciju i eventualnu individualizaciju nastave.

U uvodnom delu dvočasa nastavnik ističe cilj i zadatke odgovarajuće nastavne jedinice, zatim realizuje teorijski deo neophodan za rad učenika na računarima. Uvodni deo dvočasa, u zavisnosti od sadržaja nastavne jedinice, ne bi trebalo da traje više od 30 minuta. Nakon toga organizovati aktivnost koja, u zavisnosti od teme, podstiče izgradnju znanja, analizu, kritičko mišljenje, interdisciplinarno povezivanje. Aktivnost treba da uključuje praktičan rad, primenu IKT, povezivanje i primenu sadržaja različitih nastavnih predmeta, tema i oblasti sa kojima se susreću izvan škole. Aktivnosti osmisliti tako da povećavaju motivaciju za učenje i podstiču formiranje stavova, uverenja i sistema vrednosti u vezi sa razvojem jezičke i informatičke pismenosti, zdravim stilovima života, razvojem kreativnosti, sposobnosti vrednovanja i samovrednovanja.

Pri realizaciji programa dati prednost projektnoj, problemskoj i aktivnoj nastavi, kooperativnom učenju, izgradnji znanja i razvoju kritičkog mišljenja. Podsticati timski rad i saradnju naročito u oblastima gde nastavnik proceni da su prisutne velike razlike u predznanju kod pojedinih učenika. Ukoliko uslovi dozvoljavaju dati učenicima podršku hibridnim modelom nastave (kombinacijom tradicionalne nastave i elektronski podržanog učenja), pogotovo u slučajevima kada je zbog razlika u predznanju potrebna veća individualizacija nastave.

Pri realizaciji tematske celine Osnovi informatike učenici bi trebalo da se upoznaju sa predmetom izučavanja informatike i računarstva, sa osnovnim pojmovima kojima se ove oblasti bave (pojam informacija, podataka, znanja) i sa osnovnim oblastima informatike i računarstva.

Potrebno je zatim uvesti pojam digitalizacije (diskretizacije), objasniti kako se u digitalnim uređajima sve informacije predstavljaju (kodiraju) pomoću brojeva i prodiskutovati prednosti digitalnog u odnosu na analogni zapis. Učenici bi trebalo da steknu predstavu o tome kako se kodiraju tekstualne, grafičke i zvučne informacije. Uvesti pojam brojevnih osnova (pre svega binarne, dekadne, heksadekadne i oktalne) i prikazati kako je moguće broj zapisati u nekoj od navedenih brojevnih osnova i pročitati broj zapisan u nekoj osnovni (uz pomoć digitrona, ali i bez njega). Učenici treba da usvoje pojmove bit, bajt, i redove veličine za merenje količine informacija.

Razvoj informacionih tehnologija sagledati u kontekstu značaja razvoja ovih tehnologija za razvoj i širenje pismenosti i razvoj ljudskog društva uopšte. Podstaći učenike da povezuju razvoj IKT-a sa temama iz istorije, matematike, fizike i ostalim oblastima ljudske delatnosti. Iz ovog ugla sagledati značaj informatike, oblasti primene računara (i njihov razvoj) i karakteristike informacionog društva. Ne insistirati na preciznom poznavanju činjenica (ne analizirati detaljno performanse određenih računara, ne insistirati na tačnom poznavanju godina uvođenja određenih tehnologija), već ovu priču učiniti što zanimljivijom i prijemčivijom učenicima.

Skrenuti pažnju učenicima na društvene promene koje je izazvala informaciona revolucija i na pozitivne promene koje su IKT donele u sve segmente ljudskog života. Razviti kod učenika svest i o opasnostima i neophodnim merama zaštite zdravlja od preterane i nepravilne upotrebe računara kao i o pitanjima bezbednosti i privatnosti prilikom upotrebe uređaja, naročito u danas neizbežnom mrežnom okruženju.

Pri realizaciji tematske celine Arhitektura računarskog sistema potrebno je da učenici steknu znanja o strukturi (hardveru) i principu rada računara (ali bez upuštanja u detalje tehničke realizacije, elektronske sheme i slično), funkciji hardverskih komponenti računara i njihovom uticaju na performanse računara. Učenici bi trebalo da znaju da navedu i praktično prepoznaju iz kojih se komponenti sastoji stoni ili prenosni računar. Pri tom, prva, površna klasifikacija razlikuje kućište, monitor, tastaturu, miš, štampač, dok druga, iz stručne perspektive mnogo važnija, razlikuje procesor, memorije, ulazno-izlazne uređaje i magistrale koje ih povezuju. Učenici bi trebalo da umeju da objasne ulogu procesora u funkcionisanju računarskog sistema (da poznaju pojam radnog takta, da razumeju ulogu registara, aritmetičko-logičke i kontrolne jedinice, da budu upoznati sa pojmom procesorskih instrukcija i svođenju kompleksnih operacija na niz elementarnih instrukcija), da objasne vrste i ulogu različitih memorija u računarima i da razlikuju unutrašnje memorije (keš, RAM) od spoljašnjih, skladišnih memorija (hard-diskova, fleš-memorija, SSD uređaja, optičkih diskova). Insistirati na hijerarhijskoj organizaciji memorija i objasniti razliku u brzini, kapacitetu i ceni različitih oblika memorija. Objasniti osnovne vrste ulazno-izlaznih uređaja i načine komunikacije sa njima. Opisati i različite vrste magistrala i njihovu ulogu u ostvarivanju komunikacije između različitih komponenata unutar računara.

Sa učenicima zajedno prodiskutovati karakteristike u tom trenutku aktuelne hardverske tehnologije (na primer, analizirati detalje hardverskih konfiguracija koje se opisuju u oglasima za prodaju računara). Učenici mogu analizirati konfiguracije školskih računara (uz pomoć podataka dostupnih iz operativnog sistema) i za domaći im je moguće zadati da analiziraju konfiguracije svojih kućnih računara. Učenicima je moguće prikazati i postupak rasklapanja i sklapanja računara i ukazati im na jednostavne kvarove koje mogu sami prepoznati i otkloniti.

Učenicima je moguće prikazati i arhitekturu i hardverske komponente savremenih mobilnih uređaja (tableta, pametnih telefona).

Pri realizaciji tematske celine Programska podrška računara potrebno je da učenici steknu znanja o značaju programske podrške (softvera) za funkcionisanje računara i uticaju na mogućnosti računara. Sa učenicima prodiskutovati softver koji oni svakodnevno koriste i na osnovu toga formirati klasifikaciju aplikativnog softvera (na primer, softver za pristup uslugama interneta, kancelarijski softver, softver za kreiranje i obradu multimedijalnih sadržaja, računarske igre, ...). Uvesti zatim pojam sistemskog softvera i učenicima razjasniti pojam i uloge operativnog sistema (OS) iz malo dublje perspektive nego što je to samo korišćenje interfejsa OS za osnovno upravljanje radom za računarom (ne upuštati se u napredne detalje rada OS, poput detalja raspoređivanja procesora, organizacije virtuelne memorije i slično). Opisati i prikazati i uslužni softver (na primer, antivirusne programe, zaštitne zidove i slično).

Učenicima skrenuti pažnju na pojam vlasništva nad softverom, softverskih licenci i zaštite autorskih prava. Opisati razliku između vlasničkog i slobodnog softvera i softvera otvorenog koda. Opisati i različite oblike distribucije softvera (probne verzije, delimične verzije). Učenicima (i na ličnom primeru) razvijati pravnu i etičku svest o autorskim pravima nad softverom, ali i nad podacima koji se distribuiraju putem mreže. Posebnu pažnju posvetiti potrebi korišćenja licenciranih programa, zaštiti programa i podataka, virusima i zaštiti od njih.

Pri realizaciji tematske celine Osnove rada u operativnom sistemu sa grafičkim interfejsom učenik treba da stekne znanja, veštine i navike bitne za uspešno korišćenje osnovnih mogućnosti operativnog sistema. Može se pretpostaviti da učenici već umeju pokreću i koriste aplikativne programe (na primer, programe koji su u sastavu operativnog sistema za prikaz multimedijalnih sadržaja, uređenje teksta, crtanje i jednostavna numerička izračunavanja, ali i druge programe instalirane na računar). Kroz nekoliko primera prikazati postupak instalacije i uklanjanja aplikativnih programa, ali i upravljačkih programa (drajvera) za određene uređaje. Učenik bi trebalo da ume da podesi osnovne parametre operativnog sistema (izgled okruženja, datum i vreme, regionalna i jezička podešavanja, uključivanje i isključivanje prikaza skrivenih datoteka, čestih ekstenzija datoteka, podešavanje podrazumevanog programa za rad sa određenim tipom datoteka i slično).Detaljno prikazati rad sa sistemom datoteka (fajlova, dokumenata). Učenik treba da razlikuje namenu datoteka i direktorijuma (fascikli, foldera, kataloga) i da poznaje namenu tipova datoteka koji se najčešće koriste (.txt, .jpeg, .avi, .docx, ...), da ume da iz programa, korišćenjem standardnih dijaloga, učita i snimi svoje dokumente u odabranom formatu na željene lokacije, da prebaci dokumente sa jednog na drugi uređaj ili particiju diska, da hijerarhijski organize svoje dokumente korišćenjem direktorijuma, da razlikuje logički i fizički pogled na sistem datoteka (na primer, da poznaju položaj fascikle Desktop ili Documents u višekorisničkom okruženju, da umeju da koriste prečice i biblioteke), da primenjuje tehnike arhiviranja i kompresije podataka, da ume da izvrši osnovne operacije sa sistemom datoteka iz komandne linije operativnog sistema (promeni tekući direktorijum, pregleda njegov sadržaj, kopira, obriše ili premesti određene dokuemnte i slično).

Skrenuti pažnju na česte koncepte koji se javljaju tokom rada u okruženjima sa GKI i na nivou operativnog sistema i na nivou različitih aplikativnih programa (na primer, prikazati koncept selekcije i načine selektovanja mišem i tastaturom, koncept kliborda i primenu na kopiranje i prebacivanje podataka). Učenik treba da zna da prati i da odreaguje na najčešće poruke operativnog sistema (pri brisanju datoteka i kataloga; pri zatvaranju programa, a da nije prethodno sačuvan dokument, itd.). Pažnju posvetiti i pitanjima zaštite (podešavanja antivirusnog programa i zaštitnog zida).

Neki elementi ove tematske celine se mogu prožimati sa drugim tematskim celinama. Na primer, program kalkulator (koji se nalazi u okviru operativnog sistema) se može koristiti kada se uče brojevni sistemi, struktura i performanse konkretnog računara se mogu sagledati korišćenjem podataka o uređajima dobijenih od operativnog sistema itd.

Pri realizaciji tematske celine Obrada teksta na računaru potrebno je da učenik stekne znanja, veštine i navike neophodne za uspešno korišćenje programa za obradu teksta. Učenicima prikazati nekoliko različitih pristupa obradi teksta (WYSIWYG pristup i jezike za obeležavanje kakvi su LaTeX ili HTML). Objasniti razliku između čistih tekstuelnih dokumenata kreiranih u tekst-editorima (.txt dokumenti, obeleženi tekstovi, izvorni kodovi programa) i formatiranih tekstualnih dokumenata kreiranih u tekst-procesorima. Naglasiti da su osnovni koraci u radu sa tekstom (unošenje teksta, kretanje kroz tekst, kopiranje, isecanje i premeštanje delova teksta, pretraga i zamena) zajednički za široku klasu programa koji rade sa tekstom (tekst-editore, tekst-procesore, razne aplikativne programe, uobičajene kontrole za unos teksta). Insistirati da učenici umeju vešto i efikasno vrše osnovne operacije sa tekstom, korišćenjem samo tastature (da se kreću kroz tekst karakter po karakter, reč po reč, pasus po pasus, da koriste tastere Home i End, da selektuju tekst pomoću tastera Shift i kretanja kroz tekst, koriste prečice za kopiranje, isecanje i lepljenje i slično). Skrenuti pažnju učenicima na veštinu slepog kucanja i motivisati ih da u samostalnom radu savladaju tu veštinu.

Obučiti učenike za rad u jednom konkretnom procesoru teksta. Učenik treba da ume da podesi radno okruženje tekst procesora, unese tekst (u ćiriličkom i latiničkom pismu), sačuva uneti tekst, otvori postojeći tekstualni dokument, zatvori aktivni dokument, premešta sadržaj između više otvorenih dokumenata. Učenik treba da ume da izvrši osnovno formatiranje teksta (da podesi dimenzije stranice, margine, da podesi svojstva pasusa, fontove, svojstva karaktera i slično). Učenik treba da ume da tekst organzuje korišćenjem lista (numerisanih i nenumerisanih), da u tekst umetne i formatira tabele, da organizuje tekst u sekcije i složi ga u više kolona, da umetne u tekst i ispravno pozicionira specijalne simbole, datum i vreme, slike, dijagrame, formule, itd.

Pre prelaska na rad sa dužim i kompleksnijim dokumentima, potrebno je objasniti razliku između logičke strukture dokumenata i njihovog vizuelnog i stilskog oblikovanja i formatiranja i uvesti stilove kao osnovnu tehniku logičkog strukturiranja dokumenata. Insistirati na tome da u svim dužim dokumentima moraju biti korišćeni stilovi (postojeći i korisnički definisani). U složenije dokumente učenik treba da ume da umetne automatsku numeraciju stranica, da podesi podnožja i zaglavlja stranica, da automatski generiše sadržaj, indeks pojmova, spisak bibliografskih referenci i slično. Učenike treba upoznati sa logičkom strukturom tipičnih dokumenata (molbi, obaveštenja, itd.), školskih referata, seminarskih i maturskih radova i u svim vežbanjima potrebno je koristiti dokumente kakvi se sreću u realnom životu i insistirati na njihovoj uniformnosti i preglednosti, a ne na usiljenim estetskim podešavanjima (izbegavati dokumente koji nemaju smislen sadržaj i koji služe samo da prikažu što više različitih mogućnosti tekst-procesora). Za vežbu se može od učenika tražiti da neformatirani duži tekst formatiraju na osnovu datog uzora (na primer, na osnovu datog dokumenta u PDF formatu).

Učenicima prikazati alat za ispravljanje gramatičkih i pravopisnih grešaka, za komentarisanje i obeležavanja izmena u tekstu i slično.

Učenik treba da ume da pregleda tekstualni dokument pre štampe, podešava parametre za štampu i štampa.

Na kraju, učenicima je moguće prikazati i rad u nekoliko različitih programa za obradu teksta (naročito, ako je neki od njih „u oblaku”) i naglasiti sličnost sa tekst-procesorom korišćenim u prethodnom toku nastave.

Pri realizaciji tematske celine Slajd-prezentacije potrebno je da učenici shvate prednosti korišćenja slajd-prezentacija u različitim situacijama, prepoznaju situacije u kojima se može koristiti slajd-prezentacija, planiraju i izrađuju adekvatne prezentacije. Pri tome je potrebno da znaju osnovne etape pri razvoju slajd-prezentacije, osnovne principe dobrog dizajna prezentacije (broj informacija po slajdu, estetika, animacija u službi sadržaja).

Učenike treba obučiti korišćenju bar jednog programa za kreiranje slajd prezentacija. Učenik treba da ume da podesi radno okruženje, bira odgovarajući pogled na prezentaciju, kreira slajdove, postavlja na njih tekst i netekstualne objekte (slike, tabele, grafikone) dosledno ih formatira (koristi master slajd). Učenik treba da ume da kreira i interaktivne prezentacije koje sadrže linkove i akcionu dugmad, da podešava animacije objekata na slajdovima i animacije prelaska između slajdova, ali te animacije treba da budu jedino u funkciji sadržaja (izbegavati animacije „po svaku cenu” koje opterećuju prezentaciju).

Primeri prezentacija treba da budu smisleni, iz realnog života (najbolje je da se koriste slajd-prezentacije u kojima se obrađuju teme iz nastave, kako informatike i računarstva, tako i drugih predmeta). Učenici neke prezentacije mogu da kreiraju i u sklopu domaćih zadataka, a na času je moguće analizirati prezentacije napravljene kod kuće.

Na kraju, učenicima je moguće prikazati još nekoliko programa za kreiranje slajd-prezentacija (naročito, one „u oblaku”) i podvući sličnosti sa programom koji je korišćen tokom nastave.

Pri realizaciji tematske celine Uvod u računarske mreže i internet potrebno je da učenici razumeju osnovne principe po kojima funkcionišu računarske mreže i internet i sistematizuju svoje poznavanje i korišćenje različitih servisa koje savremeni internet i veb nude.

Učenik treba da bude upoznat sa različitim vrstama računarskih mreža (lokalne mreže, mreže širokog raspona), njihovom topologijom i organizacijom (klijent-server, p2p2). Učenicima prikazati mrežni hardver (rutere, svičeve, habove, mostove, modeme, ...) i komunikacionu opremu (kablove i tehnike bežične komunikacije). Neformalno objasniti značaj slojevitosti mreža i opisati osnovne mrežne slojeve i protokole. Navesti i osnovne vrste mrežnog softvera. Polazna tačka pri upoznavanju lokalnih mreža treba da bude konkretna školska mreža, kao i male kućne mreže. Detaljni pregled računarskih mreža predviđen je tokom nastave u četvrtom razredu, tako da u ovom trenutku pregled računarskih mreža može da bude samo informativnog karaktera.

Učenici od ranije umeju da koriste pregledače veba (čitače, brauzere) da pristupe različitim veb stranicama i pretraživače veba da potraže stranice koje ih zanimaju. Na određenom skupu primera prikazati dobre strategije za pretragu interneta i odabir relevantnih stranica iz prikazanih rezultata pretrage. Ako već nisu, učenike naučiti da otvore i podese nalog elektronske pošte i koriste elektronsku poštu za razmenu poruka i dokumenata. Učenicima prikazati različite oblike veb-sajtova (društvene mreže, blogove, forume, edukativne sajtove, geografske mape, sajtove za elektronsku trgovinu i bankarstvo i slično). Ilustrovati upotrebu programa za audio i video komunikaciju preko interneta i koristiti je u grupnom radu učenika (na primer, tokom izrade domaćih zadataka učenici mogu da sarađuju korišćenjem nekog servisa za audio i video komunikaciju, na primer, Skype ili Google Hangouts). Upoznati učenike i sa pojmom veb-aplikacija (tj. aplikacija „u oblaku”).

Skrenuti učenicima pažnju na lepo ponašanje na internetu (netiquette), kao i na etička i pravna pitanja pristupa sadržajima (autorska prava, licence).

Takođe, prodiskutovati važna pitanja bezbednosti i privatnosti na internetu (naročito u kontekstu upotrebe društvenih mreža). Pri svemu ovome neophodno je permanentno raditi na razvijanju svesti o važnosti poštovanja pravnih i etičkih normi pri korišćenju Interneta, kritičkom prihvatanju informacija sa veba, poštovanju autorskih prava pri korišćenju informacija sa veba, poštovanju prava privatnosti.

Tematska celina Uvod u algoritme u prvom i zatim Uvod u programiranje u drugom razredu su osnova za dalju nadogradnju znanja iz programiranja u trećem razredu. Nastavu treba organizovati tako da se kod učenika razvija logičko i kritičko mišljenje prilikom rešavanja postavljenih problema.

Pre početka nastave programiranja, kroz par časova, učenicima treba objasniti važnost algoritamskog pristupa rešavanju problema i veštine programiranja u današnjem svetu za sve, pa i za učenike koji se neće profesionalno baviti programiranjem. Učenike treba upoznati sa pozitivnim uticajem nastave programiranja na razvoj preciznog, formalnog izražavanja i na razvoj logičkog mišljenja. Često se u životu dešava da treba da organizujemo neku grupu ljudi i da im objasnimo kako da urade neki posao, a poznavanje tehnika opisivanja algoritama će nam pomoći da tu uvek uradim na jasan i nedvosmislen način. IKT uređaji nas često zbunjuju čudnim ponašanjem, koje se ispostavlja kao sasvim prirodno i normalno, ako razumemo stroge principe po kojima funkcionišu. Dalje, potrebno je učenicima kroz seriju pažljivo odabranih, jednostavnih primera prikazati mogućnost upotrebe tehnika algoritamskog razmišljanja i programiranja na automatizovanje praktičnih zadataka sa kojima se učenici i inače sreću tokom obrazovanja i ličnog i kasnije profesionalnog života. Danas su okruženja za programiranje takva da je uz veoma malo truda moguće napraviti aplikacije za mobilni telefon koja omogućavaju i puštanje muzike i prikaz slika i video-materijala, lako se povezuju sa internetom, omogućavaju deljenje informacija i slično. Pored implementiranja zaokruženih aplikacija, tehnike programiranja se mogu primeniti za pisanje različitih skriptova koji olakšavaju rešavanje različitih oblika problema (komandni skriptovi operativnog sistema, skriptovi u veb-stranicama, skriptovi u matematičkom, tehničkom i statističkom softveru, skriptovi u kancelarijskom softveru i slično). Tako je učenicima, na primer, moguće pokazati kako uz veoma malo programiranja (praktično kroz programe linijske strukture) u pogodnim okruženjima (na primer, GNU Octave ili SciPython) mogu mnogo jednostavnije da reše zadatke iz fizike i grafički prikažu rezultate, nego kada se to radi na klasičan način, uz pomoć običnog kalkulatora. Navesti učenicima koliko poznavanje principa algoritama i programiranja može pomoći skoro u svakoj profesiji (na primer, budući psiholozi i sociolozi koriste napredan statistički softver za obradu svojih podataka i da im elementi programiranja mogu pomoći da prilagode taj softver potrebama svoji specifičnih analiza, a budući stručnjaci za jezik mogu pomoću relativno jednostavnih programerskih tehnika izvući potrebne delove jezičkih korpusa i statistički ih obrađivati).

U narednih par časova, učenike je kroz nekoliko jednostavnih primera potrebno neformalno upoznati sa pojmom (proceduralnog) algoritma i različitih načina da se neki algoritam opiše. Učenicima je potrebno prikazati algoritme opisane na prirodnom jeziku, algoritme opisane na pseudokodu i algoritme opisane različitim dijagramskim jezicima (na primer, blok dijagrami toka programa). Poželjno je jedan isti algoritam opisati na različite načine. Učenicima razjasniti šta se smatra elementarnim korakom u algoritmu, kako se koraci sekvencijalno mogu ređati jedan iza drugog, kako se vrši uslovno izvršavanje određenih delova algoritma (grananje) i kako se određeni delovi algoritma mogu ponavljati (petlje tj. ciklusi). Uvesti i mogućnost skoka (tzv. GOTO) na obeleženi korak (na primer, na broj koraka u algoritmu predstavljenom u obliku numerisanog niza koraka) i ukratko na primeru prodiskutovati mane takvih rešenja.

U nastavku, kroz nekih šest časova, je poželjno sa učenicima prodiskutovati veliki broj primera algoritama iz realnog života (na primer, kuhinjski recepti, organizacija letovanja korišćenjem interneta, određivanje pobednika u igri papir-kamen- makaze, slaganje Rubikove kocke, slaganje Hanojskih kula, pogađanje nepoznatog broja polovljenjem intervala), ali i iz prethodnog matematičkog obrazovanja (na primer, algoritam za sabiranje brojeva potpisivanjem, algoritam za određivanje zapisa broja u datoj osnovi, množenje dva polinoma, Euklidov algoritam za određivanje NZD, algoritam za određivanje najvećeg od tri data broja). Algoritme opisivati na razne načine (govornim jezikom, pseudokodom, dijagramima). Insistirati na tome da svi učenici mogu da sprovedu zadati algoritam korak po korak, eksplicitno zapisujući (na primer u obliku tabele) stanje, tj. tekuće vrednosti promenljivih tokom izvršavanja algoritma, pre nego što pređu na sledeći nivo, a to je samostalno osmišljavanje i opisivanje algoritama. Analizirati sa učenicima više različitih rešenja istog problema. Raditi na razvijanju svesti kod učenika o tome da rešenje problema treba da bude obrazloženo jasno i precizno (najbolji test je to da je algoritam opisan tako da ga drugi učenik može sprovesti bez ikakvih dodatnih uputstava), kao i da je potrebno da se rešenja do kojih se došlo provere i procene u odnosu na druga rešenja.

U sklopu desetočasovne obrade vizuelnog programiranja učenike upoznati sa nekim sistemom za učenje programiranja koji podržava zadavanje algoritma slaganjem blokova (na primer, Code.org, MIT Scratch, Alice). Kroz veliki broj primera učenike provesti kroz algoritme različite složenosti (od najjednostavnijih sekvenci koraka, pa do algoritama koji sadrže i složenije oblike grananja i ponavljanja). U složenijim primerima insistirati na dekompoziciji i raščlanjavanju problema na delove koji se zasebno lakše rešavaju (pristup programiranju odozgo-naniže). Insistirati na detaljnom testiranju rešenja, pažljivom praćenju svih poruka o greškama, izvršavanju algoritama korak po korak, tehnikama debagovanja i pronalaženju i ispravljanju grešaka.

II razred
oba tipa gimnazije
(60 časova godišnje)

SADRŽAJI PROGRAMA

1. Rad sa tabelama (18)

Objasniti osnovne pojmove o programima za rad sa tabelama (tabela, vrsta, kolona, ćelija,…) i ukazati na njihovu opštost u programima ovog tipa.

Pri unošenju podataka u tabelu, objasniti razliku između različitih tipova podataka (numerički formati, datum i vreme), kao i greške koje mogu iz toga da nastanu. Prilikom manipulacija sa podacima (označavanja ćelija, kretanje kroz tabelu, premeštanje, kopiranje,…), ukazati na opštost ovih komandi i uporediti ih sa sličnim komandama u programima za obradu teksta.

Kod transformacija tabele ukazati na različite mogućnosti dodavanja ili oduzimanja redova, ili kolona u tabeli. Objasniti pojam opsega.

Kod formatiranja prikaza podatka u ćeliji, prikazati na primerima mogućnost različitog tumačenja istog numeričkog podatka (broj, datum, vreme). Takođe, naglasiti važnost dobrog prikaza podataka (visine i širine ćelija, fonta, poravnanja) i isticanja pojedinih podataka ili grupa podataka razdvajanjem različitim tipovima linija i bojenjem ili senčenjem.

Ukazati na povezanost podataka u tabeli i mogućnost dobijanja izvedenih podataka primenom formula. Objasniti pojam adrese i različite mogućnosti referenciranja ćelija. Ukazati na različite mogućnosti dodeljivanja imena podacima ili grupama podataka i prednosti korišćenja imena.

Prikazati funkcije ugrađene u program i obratiti pažnju na najosnovnije funkcije, posebno za sumiranje i sortiranje.

Ukazati na različite mogućnosti automatskog unošenja podataka u seriji.

Posebnu pažnju posvetiti različitim mogućnostima grafičkog predstavljanja podataka. Ukazati na promene podataka definisanih u tabeli formulama, i grafikonu u slučaju izmene pojedinih podataka u tabeli. Ukazati na mogućnost naknadnih promena u grafikonu, kako u tekstu, tako i u razmeri i bojama (pozadine slova, skale, boja, promena veličine,…).

Ukazati na važnost prethodnog pregleda podataka i grafikona pre štampanja, kao i na osnovne opcije pri štampanju.

Sve pojmove uvoditi kroz demonstraciju na primerima. Od samog početka davati učenicima najpre jednostavne, a zatim sve složenije primere kroz koje će sami praktično isprobati ono što je demonstrirao nastavnik.

Preporučljivo je da se svi novi pojmovi uvedu u prvih 10 časova tako što će učenici raditi zadatke koje je pripremio nastavnik (tekstualnim opisom zadatka ili zadatom konačnom tabelom, odštampanom, bez uvida u formule) a zatim učenicima dati konkretne male projekte različite prirode: da naprave elektronski obrazac (na primer predračun ili nešto slično), prikupljanje i obradu podataka koji se odnose na uspeh učenika iz pojedinih predmeta, neku pojavu ili proces iz drugih nastavnih i vannastavnih oblasti rada i interesovanja učenika.

2. Računarska grafika (11)

Uvod u računarsku grafiku (preporuka: 1 čas)

Objasniti razliku između vektorskog i rasterskog predstavljanja slike, prednosti i nedostatke jednog i drugog načina. Objasniti osnovne tipove formata slika i ukazati na razlike među njima. Ukazati na postojanje biblioteka gotovih crteža i slika.

Pri uvođenju pojmova rasterske i vektorske grafike, neka učenici na svojim računarima paralelno otvore prozore programa za crtanje koji je u sastavu operativnog sistema i npr. tekst-procesor, reći im da u oba nacrtaju elipsu i maksimalno zumiraju, nacrtaju zatim obojeni kvadrat preko dela elipse i pokušaju da ga „premeste”, pri svemu tome zahtevati od njih da izvode zaključke u vezi sa karakteristikama jedne i druge vrste grafike. Napraviti paralelu između ove dve vrste grafike u odnosu na crteže vodenim bojama i kolaže od papira. Kod nastavne jedinice koja se odnosi na formate datoteka ilustrovati konkretnim primerima, urađenim od jedne fotografije, zumirati slike, porediti veličine datoteka.

Primer programa za kreiranje i obradu rasterske grafike (preporuka: 6 časova)

Pripremiti za časove digitalni foto-aparat ili mobilni telefon sa kamerom i na času praviti fotografije. Na prethodnom času dati učenicima zadatak da donesu fotografije koje će na času skenirati. Učenici mogu na svojim fotografijama da uvežbavaju tehnike osnovnih korekcija i obrade fotografije: uklanjanje „crvenih očiju”, retuširanje, foto-montažu, promenu rezolucije i formata slike, a zatim naprave foto-album svih radova.

Primer programa za kreiranje vektorske grafike (preporuka: 4 časova)

Posebnu pažnju posvetiti projektovanju crteža (podeli na nivoe, uočavanju simetrije, objekata koji se dobijaju pomeranjem, rotacijom, transformacijom ili modifikacijom drugih objekata itd.), kao i pripremi za crtanje (izbor veličine i orijentacije papira, postavljanje jedinica mere, razmere, pomoćnih linija i mreže, privlačenja, uglova, itd.).

Kod crtanja osnovnih grafičkih elemenata (duž, izlomljena linija, pravougaonik, kvadrat, krug, elipsa) objasniti princip korišćenja alatki i ukazati na sličnosti sa komandama u različitim programima. Slično je i sa radom sa grafičkim elementima i njihovim označavanjem, brisanjem, kopiranjem, grupisanjem i razlaganjem, premeštanjem, rotiranjem, simetričnim preslikavanjem i ostalim manipulacijama. Ukazati na važnost podele po nivoima i osnovne osobine nivoa (vidljivost, mogućnost štampanja, zaključavanje).

Kod transformacija objekata obratiti pažnju na tačno određivanje veličine, promenu veličine (po jednoj ili obe dimenzije), promenu atributa linija i njihovo eventualno vezivanje za nivo. Posebno ukazati na razliku otvorene i zatvorene linije i mogućnost popunjavanja (bojom, uzorkom, itd.).

Ukazati na važnost promene veličine prikaza slike na ekranu (uvećavanje i umanjivanje crteža), i na razloge i načine osvežavanja crteža. Kod korišćenja teksta ukazati na različite vrste teksta u ovim programima, objasniti njihovu namenu i prikazati efekte koji se time postižu.

Kod štampanja ukazati na različite mogućnosti štampanja crteža i detaljno objasniti samo najosnovnije.

Za uvežbavanje dati učenicima konkretan zadatak da nacrtaju grb škole, svog grada ili sportskog društva, naslovnu stranu školskog časopisa, reklamni pano i sl.

3. Multimedija (5)

Obradu ove teme zasnovati na iskustvima učenika, rezimirati njihova znanja, zapažanja i iskustva u radu sa zvukom i videom.

Napraviti uporedni pregled nekoliko programa za reprodukciju zvuka.

Pri upoznavanju sa osnovnim formatima zapisa zvuka, napraviti paralelu između rasterske i vektorske grafike sa jedne strane i snimljenog i sintetičkog zvuka sa druge strane. Dati učenicima priliku da snime sopstveni glas i reprodukuju ga. Povezati sa temom izrade prezentacija u prvom razredu i mogućnošću snimanja naracije uz slajdove.

Napraviti uporedni pregled nekoliko programa za reprodukciju video-zapisa.

Rad sa video-zapisima zasnovati na video radovima učenika napravljenih na času ili pripremljenih unapred (u vidu domaćih zadataka). Potrebno je da učenici savladaju osnovne tehnike montaže video materijala, zvuka, efekata i natpisa.

Posebnu pažnju obratiti na problematiku autorskih prava i etičkih normi pri korišćenju tuđih zvučnih i video zapisa, kao i na poštovanje prava na privatnost osoba koje su bile akteri snimljenih materijala i tražnje njihovih dozvola za objavljivanje.

4. Napredno korišćenje interneta (6)

Veb aplikacije i deljenje dokumenata (preporuka: 3 časova)

Upoznati učenike sa principima, prednostima i nedostacima upotrebe veb-aplikacija i radom „u oblaku” (engl. Cloud computing). Podsticati učenike na razmišljanje i navoditi da oni izvode zaključke o ovoj temi.

Predstaviti učenicima različite sisteme za rad sa veb aplikacijama i deljenje dokumenata, a učenicima pružiti priliku da rade u jednom od njih.

Blog, viki, elektronski portfolio (preporuka: 3 časova)

Prikazati učenicima konkretne primere bloga, vikija, i elektronskog portfolija, razmotriti mogućnosti primene, učenicima pružiti priliku da kreiraju sadržaje i komentare na vebsajtovima i portalima sa slobodnim pristupom ili u sastavu školskog veb-sajta ili platforme za elektronski podržano učenje. Aktivnosti osmisliti tako da podstiču timski rad, saradnju, kritičko mišljenje, procenu i samoprocenu kroz rad na času, primenu u drugim nastavnim oblastima i domaće zadatke.

Posebnu pažnju obratiti na problematiku autorskih prava, etičkih normi, poštovanje prava na privatnost, pravilno pisanje i izražavanje i pravila lepog ponašanja u komunikaciji.

5. Uvod u programiranje (20)

„Uvod u programiranje” u drugom razredu su osnova za dalju nadogradnju znanja iz programiranja u trećem razredu. Nastavu treba organizovati tako da se kod učenika razvija logičko i kritičko mišljenje prilikom rešavanja postavljenih problema.

Programiranje kao način rešavanja problema (2)

Pre početka nastave programiranja učenicima treba objasniti važnost algoritamskog pristupa rešavanju problema i veštine programiranja u današnjem svetu za sve, pa i za učenike koji se neće profesionalno baviti programiranjem. Učenike treba upoznati sa pozitivnim uticajem nastave programiranja na razvoj preciznog, formalnog izražavanja i na razvoj logičkog mišljenja. Često se u životu dešava da treba da organizujemo neku grupu ljudi i da im objasnimo kako da urade neki posao, a poznavanje tehnika opisivanja algoritama će nam pomoći da tu uvek uradim na jasan i nedvosmislen način. IKT uređaji nas često zbunjuju „čudnim” ponašanjem, koje se ispostavlja kao sasvim prirodno i normalno, ako razumemo stroge principe po kojima funkcionišu.

6. Uvod u programiranje u tekstualnim programskim jezicima (18)

Nastava u drugom razredu treba da pomogne učenicima da naprave prelaz sa neformalnih i dijagramskih opisa algoritama na potpuno precizne opise algoritama zadate u vidu koda u nekom programskom jeziku. Učenike je potrebno upoznati sa pojmom programskog jezika, a zatim i sa nekim programskim jezikom i odgovarajućim sistemom ili bibliotekom specijalizovanom za nastavu programiranja. Takvi su rani nastavni programski jezici Logo i Karel, ali i savremeni sistemi, poput sistema Greenfoot implementiranog u programskom jeziku Java ili sličnih sistema implementiranih u drugim programskim jezicima (na primer, Python, C#, Lazarus/Delphi ili JavaScript). Poželjno je da tekstualni jezik u kome se vrši ova početna obuka programiranja bude neki programski jezik koji se koristi u savremenom programiranju. Jedna mogućnost je da se taj jezik koristi u nastavi i tokom trećeg razreda (da učenici ne bi morali da u trećem razredu uče novu sintaksu).

Nakon izlaganja određenog broja primera, skrenuti učenicima pažnju na osnovne pojmove programiranja koji se javljaju u napisanim programima (naredbe, izrazi, promenljive, konstante, dodeljivanje vrednosti, operatori, deklaracije, definicije, potprogrami, objekti, atributi, metodi i slično) i insistirati na tome da učenici u gotovim programima mogu da razlikuju osnovne elemente sintakse i da navedu njoj odgovarajuću semantiku.

Insistirati na primeni konvencija koje programe čine što razumljivijim ostalim programerima (nazubljivanje koda, pažljivo imenovanje promenljivih, izbegavanja ponavljanja koda, pisanje adekvatnih komentara).

Pošto je u nastavi programiranja u trećem razredu predviđeno pokrivanje nekih osnovnih koncepata objektno orijentisane paradigme (pre svega kreiranje i korišćenje objekata koji su deo biblioteke okruženja koje se koristi), poželjno je da se u uvodnom pregledu algoritama i programiranja pokriju ti koncepti. Za to su veoma pogodni Greenfoot (pogodan za nastavu u drugom razredu). Ovaj sistem je zasnovan na programskom jeziku Java, koji je široko rasprostranjen i može se koristiti i u nastavi u trećem razredu.

III razred
oba tipa gimnazije

SADRŽAJI PROGRAMA

1. Programski jezici i razvoj programa (2)
2. Objektno orijentisano programiranje (2)
3. Kreiranje aplikacija u integrisanom razvojnom okruženju (4)
4. Pregled osnovnih elemenata programskog jezika (6)
5. Algoritmi i programi linijske strukture (4)
6. Algoritamska dekompozicija i primena potprograma (4)
7. Algoritmi i programi razgranate strukture (10)
8. Algoritmi i programi ciklične strukture (16)
9. Složeni tipovi podataka i njihova upotreba u programima (8)
10. Pristup datotekama iz programa (4)

Način realizacije programa

Realizacija programa računarstva i informatike postiže se dobrom organizacijom nastavnog procesa, što praktično znači:

– racionalno korišćenje raspoloživog fonda časova,

– dobra organizacija praktičnih vežbi na računaru,

– dobar izbor zadataka koji se rešavaju.

Primere, koji se koriste u realizaciji nastave kao i fond časova posvećen obradi pojedinih tema može se prilagoditi pojedinačnim smerovima gimnazije. Ukoliko učenici imaju poteškoća u savladavanju nekih predviđenih tema, predlaže se da se odvoji veći broj časova za njihovo uvežbavanje, pa i po cenu da se neke naprednije teme obrade u manjem obimu ili čak potpuno izostave (na primer, ako nastavnik proceni da je učenicima teško da savladaju jednodimenzionalne nizove, bolje je posvetiti veći broj časova njihovoj obradi, nego po svaku cenu insistirati da se obrade i višedimenzionalni nizovi).

U pogledu organizacije rada, značajno je obratiti pažnju na sledeće elemente:

– Teorijska nastava se izvodi sa celim odeljenjem i, po potrebi, nastavnik praktično demonstrira postupak rešavanja problema uz upotrebu računara. Ukoliko uslovi to dozvoljavaju, preporučuje se izvođenje i teorijske nastave u računarskom kabinetu.

– Za izvođenje vežbi odeljenje se deli na dve grupe. Uvežbavanje i praktičan rad izvodi se u računarskom kabinetu, pod kontrolom nastavnika. Učenici izvode vežbe samostalno ili u grupama, uz potrebna uputstva nastavnika. Tokom vežbe učenicima treba ponuditi zadatke različite težine. Određen broj zadataka za samostalno rešavanje treba da zahteva primenu algoritama i tehnika koje su prikazane tokom teorijske nastave (na primer, ako se na teoriji prikaže određivanje maksimuma, na vežbama se može zahtevati određivanje minimuma nekog skupa vrednosti).

– Ocenjivanje učenika treba obavljati sistematski u toku školske godine. Elementi za ocenjivanje treba da budu rezultati rada na praktičnim vežbama, usmene provere znanja, kao i ukupan učenikov odnos prema radu. Nastavnik može proveru znanja da vrši i kroz najviše dva jednočasovna pismena zadatka, po jedan u svakom polugodištu.

Tokom izvođenja nastave i ocenjivanja insistirati na disciplinovanom i urednom pisanju programskog koda (nazubljivanju, pažljivom imenovanju promenljivih, pisanju komentara, izbegavanju delova koji se ponavljaju), jer je jedan od glavnih ciljeva ovog predmeta da razvije jasnoću i preciznost u izražavanju.

Uputstva za realizaciju pojedinačnih tema

1. Programski jezici i razvoj programa (2)

– Kratak pregled razvoja programskih jezika

– Faze u razvoju programa

– Okruženja za razvoj programa, prevođenje i izgradnja programa

Učenike podsetiti na pojam algoritma i načine opisa algoritama, kao i na pojam programskog jezika kao izražajnog sredstva za potpuno preciznu specifikaciju algoritama. Prikazati nekoliko najčuvenijih programskih jezika (na primer, Fortran, Cobol, Lisp, Algol, C, Pascal, Prolog, Basic, C++, Java, C#, JavaScript, PHP) i prodiskutovati njihov značaj i upotrebu tokom istorije, ali i u današnjem svetu. S obzirom na to da učenici nemaju puno iskustva u programiranju, ne insistirati na karakteristikama tih programskih jezika, kao ni na razjašnjavanju programskih paradigmi. Nakon opisa jezika višeg nivoa, prodiskutovati i pojam asemblerskog i mašinskog jezika, kroz neki elementarni primer, ali bez ulaženja u detalje. Opisati i pojam prevođenja programa.

Ukratko i samo informativno opisati najznačajnije faze u razvoju složenijeg softvera.

Ukratko opisati i razvoj okruženja za razvoj programa i koncept savremenih integrisanih razvojnih okruženja. Navesti osnovne komponente integrisanog okruženja (editor, kompilator, linker, debager) i ukratko objasniti postupak izgradnje izvršnog programa, tj. objasniti šta se sve dešava kada se pritisne dugme za pokretanje programa (naravno, samo informativno, bez ulaženja u tehničke detalje).

2. Objektno orijentisano programiranje (2)

– Objekti, atributi, metodi

– Klase i odnosi među klasama i objektima

Tokom obrade ove teme učenike upoznati sa osnovnim konceptima objektno orijentisane paradigme, ali samo u meri koja je potrebna da bi učenici mogli da kreiraju i koriste objekte biblioteke programskog jezika (na primer, objekte koji odgovaraju elementima korisničkog interfejsa). Učenicima je potrebno detaljno objasniti koncept objekta, njegovih atributa i njegovih metoda. Navesti primere objekata iz stvarnog sveta i njihovih mogućih atributa i metoda (bez prikaza njihove implementacije). Takođe, navesti određeni broj objekata koji predstavljaju računarske apstrakcije (na primer, prozor, dugme, tok). Nakon uvođenja objekata, definisati pojam klasa, i razjasniti odnos između klasa i objekata. Definisanje klasa i njihovu implementaciju moguće je prikazati samo informativno i to u kasnijim fazama nastave, kada učenici detaljno ovladaju svim elementarnijim konceptima (tipovima podataka, potprogramima). Detaljno objašnjavanje naprednijih koncepata (nasleđivanja, polimorfizma, agregacije, asocijacije) nije potrebeno (učenici nemaju dovoljno predznanje da ih u ovom trenutku razumeju, a ni potrebu da ih koriste u svojim programima).

3. Kreiranje aplikacija u integrisanom razvojnom okruženju (4)

– elementi razvojnog okruženja

– aplikacije sa komandno-linijskim i grafičkim korisničkim intefejsom

– struktura programa i projekta

– dizajn korisničkog interfejsa; pojam kontrola i vrste kontrola

– pojam događaja i obrade događaja; programiranje obrade događaja

– grafika (crtanje po prozoru)

– debagovanje

Pokazati učenicima razvojno okruženje izabranog programskog jezika. Objasniti razvojno okruženje i elemente radne površine.

Objasniti razliku između programa sa komandno linijskim interfejsom (KLI) i sa grafičkim korisničkim interfejsom (GKI) i prikazati kako se u odabranom okruženju započinje razvoj i jedne i druge vrste programa. Objasniti pojam projekta i kako se projekat kreira, čuva i otvara. Tokom nastave insistirati na kreiranju aplikacija sa GKI, ali prikazati i kreiranje aplikacija sa KLI u manjoj meri i gde je to adekvatno (na primer, u programima koji samo učitavaju neke brojeve, obrađuju ih i prikazuju rezultat u obliku jedog ili više brojeva).

Prilikom kreiranja aplikacija sa GKI mogu se uočiti dve etape koje se prepliću: etapa dizajna korisničkog interfejsa i etapa kodiranja. Kroz veoma jednostavne primere aplikacija objasniti učenicima ovaj postupak.

Upoznati učenike sa osnovnim kontrolama koje će biti korišćene u programima (prozori, polja za unos teksta, natpisi, dugmad). Naprednije kotrole moguće je uvoditi i u kasnijim fazama nastave (ali uvek je poželjno eksplicitno ih uvesti i opisati, pre korišćenja u primerima).

Tok aplikacije sa GKI vođen je događajima, koji se događaju asinhrono (obično na osnovu akcija korisnika aplikacije, kakva je klik na dugme, pritisak tastera ili prevlačenje mišem). Objasniti koncept događaja i mehanizam obrade događaja. Navesti i razjasniti osnovne vrste događaja.

Na početku opisa faze kodiranja aplikacije učenicima dati neki grubi pregled strukture programa. Opisati datoteke koje čine projekat i njihovu ulogu kao i opštu strukturu automatski generisanog koda u datoteci koju će učenici modifikovati (pre svega dopunjavati implementacijama metoda obrade događaja). Nakon prevođenja i izgradnje izvršnog programa, prikazati učenicima izvršnu datoteku i demonstrirati da ju je moguće pokretati potpuno nezavisno od integrisanog razvojnog okruženja (insistirati na tome da se taj kod može pokretati i na računarima na kojem razvojno okruženje uopšte nije instalirano).

Upotrebiti raniji pregled objektno orijentisanog programiranja da bi se objasnio pristup interfejsu iz programa. Prikazati definiciju klase koja predstavlja prozor (formu). Prikazati objekte kojima su predstavljene kontrole. Objasniti postupak generisanja metode za obradu događaja i prikazati generisane kosture tih metoda u programskom kodu.

Prikazati kako je iz metoda za obradu događaja moguće pristupati i menjati određene atribute kontrola koje su postavljene na prozor (formu), kao i određene atribute samog prozora. Provežbati određeni broj jednostavnih primera aplikacija koje tokom obrade događaja samo menjaju svojstva kontrola (na primer, pritskom na dugme, menja se njegova pozicija ili boja pozadine prozora, klikom na prozor on se pomera, klikom na neko od tri radio-dugmeta menja se poravnanje teksta u nekom natpisu, uneti tekst se prepisuje iz unetog polja u naslov prozora i slično). Obratiti pažnju da učenici u ovom trenutku još nisu prešli pregled osnovnih elemenata programskog jezika (izrazi, naredbe), tako da u metodima za obradu događaja još nije poželjno pisati složeniji kod (na primer, program koji sabira dva uneta broja zahteva poznavanje niski i brojeva i konverzije među njima, tako da se može prikazati kasnije).

Prikazati učenicima kako se radi sa grafikom (crtanje i bojenje različitih oblika), jer zadaci sa grafikom mogu biti veoma interesantni učenicima i navode ih da razvijaju geometrijske sposobnosti i veštine projektovanja, pored programerskih veština rešavanja problema. Podsetiti učenike na pojam koordinatnog sistema, koordinata i geometrijskih oblika. U ovoj fazi moguće je prikazati jednostavne programe koji iscrtavaju neke crteže po prozoru (automobilčić, kućicu, Čiča Glišu, ...).

Još jedna veoma važna komponenta savremenih integrisanih okruženja je integrisani debager. Prikazati učenicima kako se koristi debager da bi se kod izvršavao korak po korak, da bi se izvršavao do tačke prekida, da bi se pregledale vrednosti promenljivih (u ovom primeru objekata kontrola i njihovih svojstava). Na ovu temu se vraćati stalno tokom nastave i insistirati na tome da korišćenje debagera mora učenicima da postane uobičajena praksa.

4. Pregled osnovnih elemenata programskog jezika (6)

– izrazi (promenljive, konstante, operatori), tipovi

– naredbe (dodela, grananje, petlje)

– potprogrami (prenos parametara i povratna vrednost)

Uvesti ukratko učenicima osnovne koncepte programskog jezika. Iako ovaj deo nastave treba da bude određena sistematizacija leksičkih i sintaksičkih koncepata jezika, trebalo bi nastojati da priča ne bude čisto enciklopedijskog karaktera i da izlaganje ne bude u stilu referentnog priručnika, već je poželjno važne koncepte uvesti prikazujući konkretne, jednostavnije primere programa i identifikujući u njima sve koncepte o kojima se priča. Pri tom, treba uzeti u obzir da su učenici tokom prvog i drugog razreda već stekli određeno iskustvo u programiranju (pa čak i programiranju u tekstualnom jeziku), tako da su se sa mnogim od koncepata koji se uvode već sreli (doduše na neformalan način). Rani pregled malo šireg skupa koncepata programskog jezika rešava problem cirkularnih zavisnosti i omogućava učenicima da dosta rano krenu da pišu programe koji imaju netrivijalnu funkcionalnost. Na ovom mestu je dobro povući paralelu sa učenjem stranog jezika gde se uvek istovremeno uvode svi sintaksički elementi (na primer, nezamisliv je pristup u kome bi se prvo do sitnih detalja proučavale imenice, bez ikakvog pominjanja glagola i prideva).

Uvesti osnovne leksičke (identifikatore, brojevne konstante, doslovne niske, komentare) i sintaksičke elemente jezika (izraze, naredbe). Skrenuti pažnju učenicima na leksičke konvencije koje su izrazito važne u programiranju (ispravno nazubljivanje koda, pažljivo imenovanje promenljivih, pisanje komentara) i insistirati na njihovoj primeni u svim zadacima koji slede (na primer, nije dopustivo elemente interfejsa nazivati Edit7 ili Button2).

Uvesti pojam izraza i precizno opisati postupak izgradnje složenih izraza (primenom operatora i funkcija na jednostavnije izraze, pri čemu su elementarni izrazi konstante i promenljive). Uvesti pojam tipova podataka tj. tipa izraza (tipa promenljivih, deklaracije promenljivih, definicije i tipa konstanti, tipa operatora i funkcija). Definisati brojevne tipove, logički tip, karakterski tip, tip niske karaktera (string), nabrojive tipove, intervalne tipove, skupovni tip. Složene tipove podataka (nizove, niske karaktera, strukture) pomenuti samo ukratko jer je njihova detaljna obrada predviđena kasnije. Za svaki tip opisati i osnovne operatore i najčešće korišćene funkcije koje operišu nad vrednostima tog tipa. Uvesti pojmove n-arnosti, prioriteta i asocijativnosti operatora. U jezicima sa bogatim skupom operatora ne insistirati na samom početku na veoma specifičnim operatorima (na primer, razliku između prefiksnog i postfiksnog operatora ++ nije potrebno opisivati u prvoj fazi priče o izrazima, već je moguće prodiskutovati je kasnije, kada učenici steknu određeno iskustvo i sigurnost). Prilikom pisanja izraza prednost dati razumljivosti početnicima, a ne jezgrovitost i što kraći zapis. Uvesti pojam implicitne i eksplicitne konverzije tipova.

Uvesti pojam naredbi i uvesti sintaksu i semantiku osnovnih tipova naredbi. Diskutovati posebno naredbu dodele, naredbe grananja i naredbe ponavljanja (petlje). Detaljnija razrada algoritama koji koriste ponavljanje i grananje predviđena je za kasnije i tada je moguće se opet vratiti na detaljniji pregled odgovarajućih naredbi, tako da ih je u prvom prolazu moguće uvesti potpuno informativno. Slično je moguće uraditi i sa potprogramima.

5. Algoritmi i programi linijske strukture (4)

– algoritmi zasnovani na primeni matematičkih formula

U okviru ove teme sa učenicima uraditi veći broj jednostavnijih primera programa linijske strukture u koji ma se učitavaju podaci (obično brojevi), obrađuju primenom jedne ili više matematičkih formula i prikazuje rezultat. Kroz ovu temu učenici vežbaju zapis izraza u programskom jeziku, rad sa brojevnim tipovima podataka i korišćenje jednostavnih kontrola (polja za unos teksta, natpisa, dugmadi). Preporučuje se da se sa učenicima prikaže i nekoliko primera kreiranja konzolnih aplikacija, a da se u aplikacijama sa grafičkim interfejsom primeni vizualizacija tj. crtanje, kada god je to primereno. Pogodni primeri koji se u ovoj temi mogu obrađivati su, na primer, izračunavanje obima, površina i zapremina geometrijskih figura i tela, različita preračunavanja jedinica, izračunavanja zasnovana na primeni trigonometrije, primena fizičkih formula (kretanje, horizontalni, vertikalni i kosi hitac) i slično. Naročito bitni su izrazi zasnovani na modularnoj aritmetici (određivanje cifara u zapisu broja, rad sa zapisima u osnovi 60 koja se koristi u zapisu vremena i pri merenju uglova i slično) i učenicima obavezno skrenuti pažnju na ove tehnike.

Savetuje se da se kroz ove primere uvežbava i proces modelovanja matematičkih i fizičkih sistema i njihovih rešenja, tako što se učenicima daju tekstualni zadaci u kojima učenici prvo treba da osmisle odgovarajući model, izvedu potrebne formule i tek onda ih predstave u obliku izraza programskog jezika i implementiraju. Na zadacima takvog tipa poželjno je insistirati i u kasnijim oblastima (grananju, petljama), ali uvek je potrebno prvo osigurati da učenici dovoljno vladaju tehnikom potrebnom da matematički model problema i algoritam koji osmisle umeju da pretvore u ispravan programski kod. Sposobnost modelovanja je poželjna, ali ne bi trebalo da presudno utiče na ocenu učenika (učenike koji ne vladaju dovoljno matematikom ili fizikom ne bi trebalo kažnjavati lošijom ocenom iz programiranja).

6. Algoritamska dekompozicija i primena potprograma (4)

– izdvajanje potprograma

– prenos parametara i povratne vrednosti

Izuzetno važna tehnika u rešavanju složenijih problema je njegova dekompozicija na jednostavnije potprobleme koji se onda jednostavnije rešavaju. Osnovna tehnika proceduralne algoritamske dekompozicije zasniva se na izdvajanju potprograma koji vrše određena izračunavanja (na primer, izračunava rastojanje između dve tačke zadate svojim koordinatama) ili određen ispis ili iscrtavanja (na primer, potprograma koji crta automobil ili kućicu date veličine i boje na datoj poziciji na ekranu).

Učenicima detaljno uvesti pojam potprograma, vrste potprograma, njihovu sintakstu i semantiku. Opisati parametre potprograma (objasniti razliku između formalnih parametara koji se koriste u definiciji potprograma, i stvarnih parametara tj. argumenata koji se navode u pozivu) i povratnu vrednost potprograma. Objasniti načine prenosa parametara i mogućnost da se preko parametara vrati više vrednosti iz potprograma (na primer, napisati potprogram koji na osnovu ugla u radijanima, određuje najbliži ugao zadat stepenima, minutama i sekundama). Objasniti razliku između običnih (globalnih ili statičkih) potprograma i metoda (koji pristupaju atributima klase). Objasniti pojam opsega (oblasti definisanosti promenljivih) i razlikovati lokalne i globalne promenljive (pri čemu korišćenje globalnih promenljivih treba izbegavati kada god je to moguće).

U saradnji između učenika i nastavnika određeni broj složenijih programa raščlaniti na jednostavnije potprobleme i svaki potproblem rešiti pomoću zasebnog metoda (učenici mogu da implementiraju jednostavnije metode, a najbolji učenici ili nastavnici mogu da implementiraju one komplikovanije). Insistirati kod učenika da, pre same realizacije potprograma, jasno definišu šta su ulazni podaci (lista parametara), a šta je izlazni podatak ili izlazni podaci. Napraviti razliku između potprograma koji vraćaju neku vrednost i onih koje to ne rade (void funkcije tj. metode ili procedure). Prikazati primere i jednih i drugih.

Prikazati kako se uvođenjem potprograma sprečava ponavljanje sličnog koda na više mesta u programu. Takođe prikazati kako se isti potprogrami mogu koristiti u rešavanju različitih zadataka (ako nastavnici proceni da je to primereno, on može učenicima prikazati kako se kreiraju biblioteke koje sadrže potprograme i kako se one uključuje i koristi u različitim programima).

Objasniti kako je uvođenje potprograma mehanizam koji pomaže da se interfejs programa veoma jasno razdvoji od njegove centralne funkcionalnosti (na primer, istu centralnu funkciju upotrebiti i u grafičkoj i u konzolnoj aplikaciji).

Nakon uvođenja algoritamske dekompozicije i potprograma, aktivno ih koristiti u svim programa koji slede (na primer, kada za to dođe vreme, uvesti potprogram za izračunavanje faktorijela ili proveru da li je broj prost).

7. Algoritmi i programi razgranate strukture (10)

– višestruko grananje i ugnežđene naredbe grananja

– grananje na osnovu diskretnog skupa vrednosti, grananje na osnovu pripadnosti intervalu, hijerarhijsko grananje

– kontrole izbora (radio-dugme, polje za potvrdu, ...)

U okviru ove teme sa učenicima je potrebno obraditi implementaciju programa složenije razgranate strukture.

Prikazati određen broj primera jednostavnog grananja (korišćenjem nepotpunog i potpunog oblika naredbe if-then-else). Na primer, prikazati izračunavanje apsolutne vrednosti broja, određivanje maksimuma dva, a zatim i tri broja i slično. Ako jezik to podržava, prikazati i ternarni operator grananja (obično je to operator ?:) i naglasiti razliku između grananja unutar izraza i naredbi grananja.

Prikazati da je višestruko grananje moguće postići i pomoću specijalnih naredbi (switch, case) ali i ugnežđavanjem prostih naredbi grananja (konstrukcijom else-if). Prikazati određeni broj primera grananja i klasifikacije na osnovu diskretnog skupa vrednosti (na primer, određivanje imena dana na osnovu rednog broja u nedelji), zatim klasifikacije na osnovu pripadnosti intervalu (na primer, određivanje agregatnog stanja vode ili određivanje uspeha učenika na osnovu vrednosti prosečne ocene). U određenom broju primera ilustrovati realizaciju potprograma koji vrše ovakvu klasifikaciju i korišćenje nabrojivih tipova za reprezentaciju konačnog skupa vrednosti (na primer, uspeh učenika bi trebalo da bude predstavljen nabrojivim tipom). Prikazati određen broj primera hijerarhijskog grananja (na primer, određivanje kvadranta u kojem se nalazi tačka ili klasifikacija na osnovu nekog stabla odlučivanja).

Mogući složeniji primeri uključuju rad sa datumima (određivanje prestupne godine, određivanje sutrašnjeg ili jučerašnjeg datuma i slično). Kada god je to pogodno uvoditi potprograme kojima se postiže razumljivost i jednostavnost koda (na primer, prilikom rada sa datuma veoma je korisno imati potprogram kojim se izračunava broj dana u datom mesecu date godine). Matematički primeri u kojima se koriste složeniji oblici grananja su diskusija broja i vrste rešenja i rešavanje linearnih jednačina, sistema jednačina, kvadratnih jednačina i slično.

Određene kontrole GKI se često koriste tako što program grananjem na osnovu njihovog statusa vrši izbor onoga što se računa (takva su radio-dugmad, polja za potvrdu i slično). Učenicima skrenuti pažnju na rad sa ovim kontrolama i koristiti ih tokom obrade naredbi grananja kada god je to potrebno.

8. Algoritmi i programi ciklične strukture (16)

– čitanje i prikaz serije elemenata; kontrole za unos i prikaz serija elemenata (lista, memo-polje, ...)

– algoritmi linearne obrade serije elemenata

– ugnežđene petlje

– jednostavniji algoritmi teorije brojeva

Sa učenicima se detaljno podsetiti različitih naredbi kojima se realizuju petlje u programima (brojačka petlja, petlja sa proverom uslova na početku, sa proverom uslova na kraju, naredbe za prekid petlje i tekuće iteracije petlje) i prodiskutovati veze između njih (mogućnost transformacije jednog oblika petlje u drugi) i adekvatnost njihove upotrebe. Pre prelaska na naprednije algoritme potrebno je osigurati da učenici razumeju semantiku svake vrste petlje, što se najbolje može proveriti insistiranjem na postupnom prikazu vrednosti promenljivih tokom svakog koraka izvršavanja petlje (na primer, u obliku tabele).

S obzirom na to da programi sa ponavljanjem često imaju potrebu za unosom ili prikazom serija elemenata (serija reči, serija brojeva i slično), prikazati kako se u programima sa GKI može vršiti unos i prikaz takvih serija (prikazati za to pogodne kontrole, poput liste, memo-polja i slično). Još jedna mogućnost je iterativno prikazivanje sistemskog dijaloga za unos i sistemskog dijaloga za prikaz poruka (MessageBox), kao i mogućnost postupnog unošenja serije korišćenjem običnog polja za unos teksta i dugmeta čijim se pritiskom uneti tekst učitava i obrađuje kao naredni element serije (i na primer, prepisuje u listu koja sadrži prethodno unete elemente).

Uvesti algoritme za linearnu obradu serija podataka. Sa učenicima obraditi algoritme generisanja serija elemenata (na primer, generisanje pravilno raspoređenih serija celih brojeva poput serije neparnih brojeva iz datog intervala, generisanje ekvidistantno raspoređenih tačaka nekog realnog intervala, generisanja serije nasumičnih elemenata, generisanja serije cifara zapisa datog broja i slično). Serije mogu biti prikazane u odgovarajuće kontrole, grafički prikazane na određeni način, upisane u nizove ili dodatno obrađivane.

Uvesti algoritam za filtriranje elemenata serije (na primer, izdvojiti sve parne brojeve među brojevima unetim sa ulaza). Uvesti algoritam za preslikavanje serije (na primer, prikazati tablicu korena svih brojeva od 1 do 100 ili tablicu konverzije milja u kilometre). Uvesti različite algoritme za agregaciju serije, tj. izračunavanje zbira, proizvoda, minimuma, maksimuma i sličnih statistika serije (na primer, izračunati faktorijel datog broja, stepen za datu osnovu i izložilac, najveći među unetim brojevima i slično). Uvesti algoritme za pretragu serije (na primer, proveriti da li među unetim ili nasumično generisanim elementima postoji neki negativan broj). Na kraju, prikazati primere u kojima se kombinuje više algoritama linearne obrade serije elemenata (na primer, odrediti zbir kvadrata neparnih cifara broja, u kojem se kombinuje algoritam generisanja serije cifara u zapisu broja, filtriranja serije na osnovu ispitivanja parnosti, preslikavanja dobijene serije u seriju kvadrata i na kraju agregiranja dobijene serije u njen zbir). Učenicima objasniti da opisani algoritmi ne zavise od toga odakle serija potiče niti od vrste petlje kojom se serija obrađuje (algoritam sabiranja se uvek može opisati sa „postavi zbir na nulu, a zatim iteriraj kroz elemente serije jedan po jedan i tokom iteracije uvećavaj zbir za tekući element”, a jedino što se razlikuje je kako se ta iteracija kroz pojedinačne elemente ostvaruje, što nije zavisno od algoritma sabiranja, već od prirode samog zadatka). Serije elemenata koje se obrađuju mogu biti smeštene i u niz (metodički, sabiranje elemenata niza jednostavnije je od sabiranja cifara broja, jer drugo podrazumeva i algoritam određivanja cifara iz zapisa). Sa druge strane, nizovi se mogu odložiti i za kasnije i obraditi u sklopu obrade složenih tipova podataka. Poželjno je kroz nekoliko primera uvesti i serije u kojima se svaki sledeći element određuje na osnovu prethodnog ili nekoliko prethodnih (na primer, procena broja e sabiranjem reda se može uraditi efikasnije ako se primeti da se svaki novi član reda može jednostavno dobiti od prethodnog, Fibonačijevi brojevi se rekurentno zadaju i slično).

Sa učenicima uraditi i određeni broj klasičnih primera iz teorije brojeva (pre svega, određivanje delilaca broja, proveru da li je broj prost, rastavljanje broja na proste činioce i slično). Povezati ove algoritme sa opštim algoritmima obrade serija (na primer, provera da li je broj prost se zapravo zasniva na pretrazi serije potencijalnih delilaca broja i proveri da li ona sadrži stvarni delilac, tako da algoritam pretrage serije mora predthoditi algoritmu ispitivanja da li je broj prost). Ako nastavnik proceni da ovi algoritmi matematički predstavljaju problem učenicima (a to može da se desi na društvenom smeru), moguće ih je preskočiti.

Uvesti pojam ugnežđene petlje i veoma detaljno i postupno ga obraditi sa učenicima (poželjno je izvršavanje programa korak po korak uz korišćenje debagera). Mogući primeri su ispis tablice množenja, ispis svih minuta i sekundi u jednom satu i slično. Pokazati učenicima kako se višestruke petlje ponekad mogu izbeći izdvajanjem unutrašnjih petlji u posebne potprograme.

Još jedna izuzetno pogodna grupa primera su primeri u kojima se koristi grafika i crtanje raznih pravilnih oblika (na primer, pahuljica raznih oblika i veličina, šahovskog polja, zida ispunjenog ciglicama razne boje i slično).

9. Složeni tipovi podataka i njihova upotreba
u programima (8)

– nizovi

– niske karaktera (stringovi)

– višedimenzionalni nizovi (matrice)

– strurkture (slogovi)

– klase

Uvesti pojam niza, alokacije memorije potrebne za smeštanje elemenata niza, ali detaljno obraditi samo statički alocirane nizove (u jezicima u kojim nije podržana statička alokacija razmatrati dinamički alocirane nizove čija je dimenzija unapred poznata). Prodiskutovati prenos nizova u potprogram i vraćanje nizova iz potprograma.

Učenicima objasniti osnovne algoritme obrade nizova. Pošto nizovi predstavljaju serije elemenata, svi ranije uvedeni algoritmi obrade su direktno primenjivi i na nizove. Dodatno, potrebno je uraditi i specifične algoritme transformacije nizova. Na primer, izbacivanje elemenata na datoj poziciji, izbacivanje elemenata sa datim svojstvima i slično.

Izrazito važni algoritmi obrade nizova su algoritmi njihovog sortiranja. Učenicima je neophodno prikazati bar jedan elementaran algoritam sortiranja nizova. Sortirane nizove je moguće efikasno pretraživati korišćenjem binarne pretrage i taj algoritam je takođe potrebno prikazati učenicima.

Niske karaktera se mogu obrađivati na veoma sličan način kao o drugi nizovi. Važne operacije nad niskama su pretraga podniske i razbijanje niske na osnovu datog separatora (na primer, podeliti rečenicu na niz reči koje je sačinjavaju).

Višedimenzionalne nizove uvesti, a kompleksnost zadataka u kojima se oni koriste proceniti na osnovu ranije prikazanih rezultata učenika.

Uvesti pojam strukture i demonstrirati ga na određenom broju jednostavnih primera (strukture za reprezentovanje tačaka, razlomaka, učenika i slično). Definisanje jednostavnih klasa (na primer, klasa učenika ili klase razlomka ili kompleksnog broja) prikazati samo ako to vreme i do sada pokazani rezultati u radu učenika to dopuštaju.

10. Pristup datotekama iz programa (4)

– čitanje iz datoteke

– pisanje u datoteku

Učenicima objasniti pojam datoteke i pristup datotekama iz programa. Obraditi tekstualne datoteke (binarne datoteke eventualno obraditi samo sa naročito zainteresovanim učenicima). Objasniti postupak otvaranja i zatvaranja pristupa datoteci. Prikazati čitanje podataka koji su u datoteci jasno strukturirani i pravilno raspoređeni (na primer, čitanje liniju po liniju, čitanje linija takvih da se u svakoj nalazi isti broj podataka rastavljenih zarezima, čitanje niza brojeva i slično). Prikazati upis u datoteku i elementarne tehnike formatiranja. Ako ranije nisu korišćeni, u grafičkim aplikacijama je u ovom trenutku moguće demonstrirati upotrebu menija (File→Open, File→Save).

Na kraju prikazati i jedan veći primer aplikacije koji integriše sve obrađene elemente (na primer, primer telefonskog imenika, školskog dnevnika i slično).



❮ Nazad na prethodnu stranicu

Email Print