31.12.2014 Views

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

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!