Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

Datum: 11.11.2021.

Tereza Švigir

Smjer: Fizika i informatika

Projektni zadatak: učenje u mentorskom odnosu

Cilj: Upoznavanje s procesima koji doprinose kvaliteti učenja

Tema: Matrice u programskom jeziku Python

Student: 1. godina Tehničkog veleučilišta u Zagrebu

TRANSKRIPT RAZGOVORA

Ja: Danas ćemo raditi matrice u Pythonu. Možeš otvoriti editor koji želiš.

Student: Ok, otvorit ću Jupyter Notebook.

Ja: Dobro, matrice nemaju svoju ugrađenu strukturu u Pythonu pa ih koristimo kao liste čiji su elementi ponovno liste.
Znaš li što je lista u Pythonu?

Student: Pa, znam da postoji ime liste i da se označava sa uglatim zagradama. Onda da sadrži elemente koji su odvojeni
zarezima i kojima možemo pristupiti uz pomoć indeksa. Svaki element ima svoj neki indeks u listi.

Ja: Kako bi pristupio, naprimjer, drugom elementu u listi?

Student: Ako se lista zove 'a', onda ću napisat 'a' i pored toga u ugladim zagrada indeks tog elementa koji je 1 jer Python
broji od nule. Znači a[1].

Ja: Ok, super. Dakle, kao što sam već rekla, matrica u Pythonu je lista čiji su elementi liste i svaka ta unutarnja lista
predstavlja jedan red u matrici. Ako imamo matricu dimenzija 4x3, odnosno matricu od 4 redaka i 3 stupca, naša velika
lista imat će 4 elemenata, 4 liste od kojih će svaka ta mala lista imati 3 elementa. U Pythonu, ako uzmemo da su nam svi
elementi matrice jedinice, će to izgledati ovako: A = [ [1,1,1,1], [1,1,1,1], [1,1,1,1], [1,1,1,1] ] . Imaš li pitanja?

Student: Nemam.

Ja: Dobro, onda možemo rješiti prvi zadatak. Zadatak kaže, kreiraj i ispiši matricu dimenzija 4x5 koja se sastoji od brojeva
u intervalu od 1 do 20. Kako bi rješio ovaj zadatak?

Student: Prvo ću nazvati matricu 'A' i onda otvoriti uglatu zagradu. Kak matrica ima 4 retka, to znači da će ta lista imati 4
liste. Broj stupaca je 5 pa će svaka ta lista imati 5 brojeva u sebi. Napisat ću
A = [ [1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20] ] i printat ću je kao print(A).

Ja: Bravo, ovo je točno. Možeš li samo pokrenuti program da vidimo ispisuje li dobro?

Student: Može.

Ja: Dobro ispisuje. Kako bi ispisao treći redak ove matrice?

Student: Kao print(A[2]).


Ja: Dobro, a kako bi ispisao drugi element u zadnjem retku? Broj 17.

Student: Pa uzeo bi zadnju listu kao A[3] i onda bi nekak iz nje uzeo drugi element. Ne znam kako se to piše.

Ja: Početak je dobar. Sintaksa je sljedeća: A[3][1] . Dakle u prvu uglatu zagradu pišeš indeks retka, a u drugu indeks
elementa u tom retku kojeg želiš.

Student: Aha, kužim. Onda prvi element u matrici dobivam s A[0][0], a onaj ispod njega s A[1][0] i tak mogu dobiti stupac
matrice?

Ja: Tako je! Imaš li još pitanja?

Student: Ne.

Ja: Onda možemo na sljedeći zadatak koji kaže: Zadane su dvije 3X3 matrice. Napišite program koji zbraja ove dvije
matrice. Znaš li zbrajati dvije matrice u matematici?

Student: Da. {Student pokazuje na papiru} Svaki element prve matrice zbrojim sa elementom druge matrice na istom
mjestu. I tu je bitno da su obje matrice iste…istih dimenzija.

Ja: Dobro. Prvo što ćemo napraviti u ovom zadatku je inicijalizirati matricu u koju ćemo zapisivati rezultat jer zbrajanjem
dvije matrice dobivamo novu matricu. Inicijalizirati ćemo je tako da stvorimo novu matricu 'C' istih dimenzija kao i
zadane matrice i popuniti je s nulama. Onda ćemo iskoristiti dvije ugnježđene for petlje. Znaš li što je ugnježđena for
petlja?

Student: Da. To je ono kada u jednoj for petlji imamo drugu pa kada se ta druga završi, tek onda se iterator u onoj prvoj
poveća za jedan.

Ja: Točno, bravo! Dakle, vanjska for petlja s iteratorom 'i' će ići po retcima matrica, a unutarnja petlja s iteratorom 'j' će
ići po elementima tih redaka. Tada ćemo uzeti element iz prve matrice A[i][j] i zbrojiti ga s elementom druge matrice na
istom mjestu B[i][j] i rezultat upisati na odgovarajuće mjesto u rezultantnoj matrici C. Koje je to mjesto u matrici C?

Student: C[j][i]? A ne, ne, prve uglate su za indeks retka, onda C[i][j].

Ja: Tako je! Trebaš biti oprezan s indeksima. Bi mogao ovaj zadatak isprogramirati?

Student: Da, evo…. Dobio sam rezultat.

Ja: Kod ovakvih programa uvijek je dobro provjeriti dobiveni rezultat jer nekada, kada pogriješiš u logici zadatka, Python
ti neće javiti grešku, a dobiveni rezultat može biti krivi. Python uvijek vraća greške u sintaksi ili nedozvoljenom
matematičkom računu.

Student: Ok.

Ja: Je li sve jasno do sada?

Student: Je.

Ja: Idemo na sljedeći zadatak. U ovom zadatku zadana je 3x4 matrica koju treba transponirati. Znaš li što je
transponirana matrica?

Student: Znam. {Student pokazuje na papiru} Transponirana matrica ima zamjenjene retke i stupce od zadane matrice.

Ja: U redu, probaj sada sam rješiti ovaj zadatak.

Student: Ok, znači, opet ću koristiti dvije for petlje jedna u drugoj. Onda ću uzet element A[i][j] i staviti ga na mjesto A[j]
[i] jer tako redak pretvorim u stupac i obrnuto.
Ja: Pazi. Ako na mjesto A[j][i] staviš element A[i][j], onda kada u iteraciji for petljom dođeš na element A[j][i] na njemu
ćeš naći broj koji je prije stajao na A[i][j], a ne broj koji je originalno stajao na ovoj poziciji. Time ćeš na oba mjesta dobiti
isti broj i to onaj s pozicije A[i][j] dok ćeš originalni broj s pozicije A[j][i] izgubiti. Sjeti se, što smo prvo napravili u
prethodnom zadatku?

Student: Ajoj daa. Moram prvo inicijalizirat rezultantnu matricu i onda njoj staviti prvi redak kao prvi stupac zadane
matrice.

Ja: Upravo to. Koje su dimenzije rezultantne matrice?

Student: 4x3 jer mjenjam retke za stupce zadane matrice koja je 3x4.

Ja: Dobro, super. Probaj isprogramirati zadatak i budi oprezan sa indeksima. Pazi da odgovaraju dimenzijama matrica.

Student: Ok, kužim…..evo, točno je! Provjerio sam na papiru.

Ja: Bravo! Eto, ovo je bio zadnji zadatak. Do sljedećeg puta možeš probati sam napisati program koji će množiti dvije
matrice. Zadaj si dvije matrice i pomoću pravila za množenje matrica pokušaj rješiti zadatak pa ćemo ga onda sljedeći put
zajedno prokomentirati. Imaš li još nekih pitanja možda? Si sve shvatio što smo danas prošli?

Student: Ok, probat ću. Sve mi je jasno i nemam pitanja.

Ja: U redu onda. U buduće probaj dobro pročitati zadatak i više puta ako je potrebno i budi oprezan kada dohvaćaš
elemente uz pomoć indeksa.

Studen: Ok, hvala.

OSVRT

Rad sa studentom u trajanju od otprilike 20 minuta je ostavio pozitivan dojam. Student je komunikativan što mi je
uvelike olakšalo razgovor koji je tekao glatko i bez prekida. Pažljivo je i sa interesom slušao i opširno odgovarao na sva
postavljena pitanja. Veoma sam zadovoljna njegovim poznavanjem matematike, odnosno, poznavanjem matrica i
operacija nad matricama. Također, student je jako dobro upotrebljavao do sada stečeno znanje sintakse u Pythonu,
struktura podataka, poput lista, i osnovnih petlji kao što su for petlja i ugnježđena for petlja. Iz priloženog transkripta se
vidi da brzo shvaća i uči te da je sposoban odmah primijeniti novostečeno znanje na zadacima. Nije se ustručavao
postavljati pitanja i priznati da neki dio gradiva ne razumije. Smatram da je ovo vrlo važan aspekt poučavanja jer
kreiranjem sigurne atmosfere u razgovoru omogućavamo učeniku postavljanje i najjednostavnijih pitanja koja mogu
puno pomoći u razumijevanju složenijeg gradiva.
Najteži dio je bio započeti pojašnjavanje gradiva. Prije instrukcija nisam točno znala koliko je student upoznat s
programskim jezikom Python te koliko će vremena biti potrebno izdvojiti za pojašnjavanje same sintakse, a koliko za
logičko rješavanje zadataka s matricama. Zbog toga su se javile nedoumice oko težine zadataka koje sam namjeravala
zadati. Naposljetku, kretanje s lakšim i bazičnijim zadacima pokazalo se dobrim jer sam na taj način dobila bolji uvid u
studentovo predznanje. Ovim pristupom učeniku se mogu, ako je potrebno, dodatno pojasniti sve poteškoće u
osnovnom razumijevanju što će ga bolje pripremiti za složenije gradivo koje dolazi.
Drugi izazov bio je pratiti studentov tok misli i rješavanje zadataka. U samostalnom rješavanju zadatka, student je bio
brzoplet te je pokušao doći do rješenja što je brže moguće. Zbog toga je često griješio u sitnicama poput zaboravljanja
dvotočke ili zatvaranja zagrada. U ovoj situaciji raznim podpitanjima pokušala sam mu ukazati na moguću grešku i
navesti ga do točnog rješenja. Student je dobro reagirao na podpitanja. Usporio je i bolje razmislio o zadatku te na koncu
samostalno došao do konačnog rezultata. Ukratko,
razgovor je bio ugodan i produktivan. Uspijeli smo kvalitetno proći kroz svo gradivo i zadatke određene za taj termin.
Poznavanje matrica u programiranju izuzetno je bitno. Većina problema, bilo u fizici ili nekom drugom području, koji se
rješavaju numerički svode se upravo na rješavanje kompleksnih matrica. Stoga je bitno da se njihovo osnovno
poznavanje svlada već na početku studija.

You might also like