Seminarski rad: UÄenje algoritama u Pythonu - phy.hr - Prijava
Seminarski rad: UÄenje algoritama u Pythonu - phy.hr - Prijava
Seminarski rad: UÄenje algoritama u Pythonu - phy.hr - Prijava
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Sažetak<br />
Dizajn i analiza <strong>algoritama</strong> su temeljne teme u računalnoj znanosti i obrazovanju na<br />
tehničkim fakultetima. Mnogi tečajevi <strong>algoritama</strong> uključuju programske zadatke kako bi<br />
učenici bolje razumjeli algoritme. Nažalost, korištenje t<strong>rad</strong>icionalnih programskih jezika<br />
prisiljava studente da se bave detaljima strukture podataka i prateće rutine, a ne dizajnom<br />
<strong>algoritama</strong>. Python predstavlja algoritam-orijentirani jezik<br />
koji je jako potreban u<br />
obrazovanju. Prednosti Pythona su njegovi udžbenici poput sintakse i interaktivnost<br />
koja potiče eksperimentiranje. Još važnije, Python se može koristiti za<br />
zastupanje agregatne strukture podataka kao što su grafovi i mreže protoka u sažetom<br />
tekstualnom obliku, koji ne samo da potiče studente da eksperimentiraju s algoritmima,<br />
ali takoĎer dramatično smanjuje vrijeme razvoja. Ove značajke su provedene u studiju<br />
<strong>algoritama</strong> naravno s uspješnim rezultatima.<br />
1. Uvod<br />
Algoritmi su najvažniji alati za svakoga tko mora riješiti probleme pisanja računalnih<br />
programa. Algoritmi se koriste ne samo od strane računalnih znanstvenika i inženjera<br />
računala, nego i mnogi u drugim inženjerskim disciplinama i znanosti. Kao rezultat toga,<br />
studenti raznih smjerova koriste tečajeve <strong>algoritama</strong>.<br />
Iako je moguće proučavati algoritme samo čitajući knjige i gledajuće rješene primjere, učenici<br />
će ih najbolje shvatiti tako da sami provedu neki algoritam. Kao rezultat toga, to<br />
nije neuobičajeno za tečajeve <strong>algoritama</strong><br />
da uključuju programske<br />
zadatke. Udžbenici koji uključuju programiranje kao sastavni dio algoritma obrazovanja<br />
takoĎer su od autora tražili da zadovolji taj zahtjev [4]. Gotovo svi tečajevi i udžbenici su se<br />
do sada provodili u t<strong>rad</strong>icionalnim jezikom kao što su C ili C+ + i Java (nedavno je<br />
stekao popularnost) [5]. Argument za korištenje tih jezika je uglavnom praktična, jer su<br />
studenti vjerojatno već iskusni u tim jezicima i to im daje praktične vještine.<br />
1.1 Programiranje vs Algoritam Design (dizajn <strong>algoritama</strong>)<br />
Nažalost, iskustva su pokazala da programski zadaci u klasi algoritma ne moraju uvijek<br />
biti pedagoški korisni. Iako je većina <strong>algoritama</strong> od nekoliko redaka do pola<br />
stranice u udžbeniku, njihove implementacije često zahtijevaju stotine redaka u C-u<br />
ili Javi. Jedan od razloga je da ti jezici zahtijevaju deklaraciju globalnih varijabli,<br />
lokalne varijable i parametre prije nego što oni mogu koristiti. Drugi razlog, što je još<br />
važnije, je da su mnogi strukturama podataka kao što su popisi, povezane strukture<br />
podataka, kao i specijalizirana polja moraju biti projektirani i izvedeni za podršku<br />
<strong>algoritama</strong>, i složenost ovih vježbi brzo raste kad agregatne strukture podataka kao što<br />
su grafikoni ili protok mreža uključeni. U stvari, većina objektno orijentiranih programera će<br />
potrošiti većinu svojih napora u projektiranju klase i sučelja, i trošiti relativno<br />
malo vremena za punjenje u kodu za metode. Kao rezultat toga, ovi zadaci za<br />
programiranje će prisiliti studente da provedu mnogo vremena uz pitanja o<br />
programiranju, nego pitanjima za algoritme. Zbog ovoga bi mogli imati problema studenti koji<br />
nisu informatićkog smjera.<br />
2