Professional Documents
Culture Documents
5.strategije Rjesavanja Problema
5.strategije Rjesavanja Problema
problema
Guide to Teaching Computer Science - Chapter 5
Tanja Radalj
Uvod
Programiranje - proces rješavanja
problema
Procesi rješavanja problema zajednički
su mnogim disciplinama
Faze rješavanja problema
Proces rješavanja problema započinje skiciranjem
zahtijeva problema, a završava skicom rješenja
Faze rješavanja problema su :
Analiza problema
Razmatranje alternative
Odabir pristupa
Dekompozicija problema
Pisanje algoritma
Ispravnost.
Efikasnost
Razmišljanje
Aktivnost 1: Tehnike rješavanja
problema u računalnoj znanosti
Rad u grupi
Zadatak: pogledajte popis tehnika rješavanja
problema koji se nalaze na Wikipediji ili neki drugi
izvor.
Odaberite dvije tehnike rješavanja problema koje se
obično koriste u računalnoj znanosti i za svaku od njih
opisati barem jednu situacija u kojoj se može koristiti.
Primjer: tehnika Analogija može se koristiti kada se
uvodi novi problem. U takvim slučajevima dobro je
proučiti sličan, već riješeni problem i na temelju
analogije između dva (ili više) problema dobiti
rješenje novog problema.
Razumijevanje problema
Prva faza rješavanja problema koja vodi
do određivanja karakteristika problema
Ova faza može početi prepoznavanjem
ulaza i odabirom izlaza
Određivanje ulaza zapravo ukazuje na
to da se problem razumio
Aktivnost 2. Ispitivanje
reprezentativnih ulaza i izlaza
Smišljanje problema, rad u paru
Napišite dva problema koja ilustriraju važnost
ispitivanja reprezentativnih ulaza i izlaza
Prvi problem bi treba neka bude jednostavan,
s osnovnim uvjetima i petljama
Drugi problem trebao bi biti složeniji kao što
je npr. dvodimenzionalni niz, lista, stog ili red
Oblikovanje rješenja
Tri strategije koje se mogu iskoristiti u
ovoj fazi:
definiranje varijabli,
bistrenje korak po korak i
algoritamski uzorci
Definiranje varijabli
Ispitivanje ulaza i izlaza pojašnjava
problem onome tko ga rješava.
Sljedeća faza je definiranje varijabli koje
su potrebne kako bi se problem riješio.
Aktivnost 3: Odabir
varijabli
Analiza problema, rad u paru
Analizirajte problem koji ste smislili u
prethodnoj aktivnosti i napišite varijable
koje su potrebne za rješavanje tog
problema.
Uloge varijabli
Nedavno uveden pristup koji se može
koristiti pri poučavanju programiranja
početnicima.
Uloga varijable određuje se prema
dinamičnom karakteru varijable
Na primjer, u ulozi brojača, varijabli je
dodijeljen niz vrijednosti unaprijed
poznat.
Uloge varijabli
Promjena uloge
Uloge varijabli
Uloga Primjer Neformalna definicija
Fixed value maxStrLength Podatak koji ne mijenja svoju vrijednost
nakon inicijalizacija
Stepper count Podatak koji mijenja vrijednosti prema
unaprijed poznatim vrijednostima
Most-recent holder inputData Podatak u kojem je spremljena
posljednja vrijednost dobivena unosom
Most-wanted holder maximum Podatak u kojem je spremljena najbolja
vrijednost do sad
Gatherer sum Podatak u koji se akumuliraju
vrijednosti drugih podataka
Follower prev Podatak koji uvijek poprime staru
vrijednost nekog podatka
Uloge varijabli
Uloga Primjer Neformalna definicija
One-way flag errorsOccurred Podatak koji može imati dvije vrijednosti i
koji ne može ponovno imati inicijalnu
vrijednost jednom kad se promijeni
Temporary temp Podatak koji sprema neku vrijednost kratko
vremena
Organizer sortArray Struktura podataka u koju su spremljeni
elementi koji se mogu preurediti
Container processQueue Struktura podataka u koju su spremljeni
elementi koji se mogu dodavati i brisati
Walker currNode Podatak prebačen u strukturu podataka
Određivanje uloga
Određivanje uloga
character -
fixed value
side - most-
recent holder
i - stepper
j - stepper
Aktivnost 4: Uloge varijabli
http://www.cs.joensuu.fi/~saja/var_roles/
Faza A: Učenje, rad u paru
Učenje koncepta “Uloge varijabli” čitanjem “An Introduction to
the Roles of Variables”
Izvedite aktivnost “Try to Classify Variables Yourself”
Pokušajte koristiti “The Role Advisor”
Faza B: Razmišljanje o Fazi A, samostalni rad
Koja nova znanja ste dobili iz ovog istraživanja?
Slažete li se s interpretacijom koncepta “uloge varijabli”? Slažete
li se s kategorizacijom uloga varijabli?
Sviđa li vam se ovaj način učenja? Da li vam se svidjela
aktivnost “ Try to Classify Variables Yourself ”?
Navedi prednosti i nedostatke ovog načina učenja.
Kao budući nastavnik računalne znanosti, razmisli o korištenju
ovog načina učenja kod učenika srednje škole; Smatraš li da
učenici mogu učiti na isti način kao i ti?
Aktivnost 5: Uloge varijabli
Istražite sljedeće na početnoj stranici ”The roles
of variables” :
Čemu uloge?
Korištenje Uloge varijabli u poučavanju programiranja
Literatura o ulogama varijabli
Koji su vaši dojmovi s obzirom na istraživački
rad koji istražuje koncept uloga varijabli?
Napišite 5-10 ideje koje su vam zanimljive i
inovativne. Objasnite izbor svake od tih ideja.
Bistrenje korak po korak
Glavna svrha ove metodologije je da prvo
dobijemo pregled strukture problema i
odnose između njegovih dijelova
Ovo je top-down metodologija jer se odvija
od općeg prema specifičnom.
Tijekom ovog procesa, početni prikaz nekih
rješenja postupno se poboljšava kroz niz
prikaza koji će na kraju dati konačan program
Aktivnost 6: Vježbanje – ”razbijanje”
problema na manje dijelove
Rad u grupi
Zadatak je osmisliti vježbu kojoj je cilj
razvijanje vještine ispravljanja
pogrešaka.
Razmišljanje
Razmišljanje se odnosi na preispitivanje i analizu metoda
prethodnih mentalnih procesa.
Razmišljanje se može odvijati u različitim trenucima:
Prije početka rješavanja problema: Nakon čitanja problema,
prilikom planiranja pristupa rješavanja, dobro je razmisliti o
sličnim, prethodno riješenim problemima kako bi odredili
relevantni algoritamski pristup, uzorak, itd.
Tijekom rješavanja problema: Tijekom razvoja rješenja,
razmišljanje se odnosi na inspekciju, kontrolu i nadzor. Na
primjer, kada se pojavi poteškoća ili kada se otkrije pogreška,
dobro je razmisliti o izvoru.
Nakon rješavanja problema: Kad je rješenje završeno,
razmišljanjem procjenjujemo i ispitujemo učinkovitost rješenja.
Takvo razmišljanje omogućuje da izvučemo zaključke iz procesa
rješavanja problema i da naučimo nešto o odlukama donesenim
tijekom njegove implementacije.
Razmišljanje
Pitanja prije početka rješavanja problema
Kako mogu odrediti težinu pitanja? Da li je pitanje
teško/jednostavno? Zašto?
Da li imam poteškoća u shvaćanju nekog dijela problema?
Koji dio je nejasan?
Da li sam prije rješavao slične probleme? Koje? Koje su
sličnosti?
Pitanja nakon završenog procesa rješavanja
problema
Da li je rješenje završeno?
Zašto sam odabrao ovaj pristup? Da li sam donio dobru
odluku? Što mogu promijeniti u budućim sličnim
situacijama?
Da li je bilo lako ili teško riješiti ovaj problem? Zašto?
Mogu li riješiti ovaj problem na drugi način? Kako?
Aktivnost 13: Promišljajuće
aktivnosti
Nakon što su učenici napisali test iz
relativno napredne teme računalne
znanosti, nastavnik shvati da su
postignuća učenika na testu niska te da
njihova rješenja ne pokazuju očekivano
razumijevanje koncepata.
Aktivnost 13. Faza A
Nastavnikovo razmišljanje o neuspješnom
testu
1. Napišite razloge koji bi objasnili loše rezultate
učenika na testu.
2. Podijele razloge u dvije grupe: razlozi vezani za
nastavnika i razlozi vezani za učenika. Da li je
podjela bila očita? U kojim slučajevima ste se
dvoumili i zašto?
3. Predlože najmanje pet pitanja koja mogu voditi
razmišljanje nastavnika o neuspjehu u razredu.
Aktivnost 13. Faza B
Rad u grupi
Napišite nekoliko prijedloga kako vi, kao
nastavnik računalne znanosti, možete koristiti
proces razmišljanja kako bi pomogli
učenicima u učenju pritom uzimajući u obzir
dva aspekta: proces učenja učenika i
učenikovo shvaćanje naučenih koncepata.
Drugim riječima vaš zadatak je oblikovati
aktivnost za učenike koja ima za cilj da
učenike navede na razmišljanje, uzimajući u
obzir navedene aspekte.
Aktivnost 13. Faza C
Nastavnik spomenutog razreda odlučili koristiti proces
razmišljanja kako bi učenici poboljšali razumijevanje
navedenih koncepata računalne znanosti i kako bi
poboljšali rezultate testa.
Nastavnik pita učenike da odgovore na sljedeća pitanja:
Koje probleme ste riješili pripremajući se za test?
Kako ste ih riješili?
Koje su poteškoće bile tijekom pisanja testa?
Jeste li se susreli s tim poteškoće samo tijekom testa ili i dok
ste učili za test?
Ako ste se susreli s poteškoćama pripremajući se za test, što
vas je spriječilo da produbite razumijevanje?
Ako ste se susreli s poteškoća samo tijekom testa, pokušajte
pretpostaviti zašto ste niste susreli s njima i prije.
Aktivnost 13. Faza C
Podijelite pitanja u dvije grupe: pitanja koja se
odnose na učenikov proces učenja i pitanja
koja se odnose na učenikovo razumijevanje
naučenih koncepata.
Smislite još barem dva dodatna pitanja za
svaku skupinu.
Prema vašem mišljenju, kako takva pitanja
mogu pridonijeti učeniku u njegovom
budućem učenju općenito i posebno u procesu
rješavanja problema?
Aktivnost 13. Faza D
Nakon što su učenici napisali svoja razmišljanja na
temelju prethodnih pitanja, zamoljeni su da dodatno
napišu sljedeće dvije faze:
1. Da sami smisle test sa istim sadržajem i strukturom
testa koji su pisali. Učenici su trebali i riješiti pitanja
koja su sastavili.
2. Da razmisle o svom trenutnom znanju imajući na umu
sljedeće pitanja nastavnika:
Jeste li prevladali prethodne poteškoće?
Kako ste ih prevladati?
Osjećate li se spremno da ponovite testiranje?
Koji pojmovi su vam još uvijek nejasni?
Što mislite o konceptima računalne znanosti koje ste naučili -
interesantno /dosadno; važno/nepotrebno, teško/jednostavno?