Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Python – jezik za podučavanje algoritamskog pristupa rješavanju problema

Predrag Brođanac, V. gimnazija Zagreb


Leo Budin, Fakultet elektrotehnike i računarstva Zagreb
Zlatka Markučič, XV. gimnazija Zagreb
Smiljana Perić, II. gimnazija Zagreb
{ predrag.brodjanac1@zg.t-com.hr, leo.budin@fer.hr ,
zmark@mioc.hr, smiljana.peric@zg.t-com.hr }

Sažetak - Danas je u nizu programskih jezika teško određenog programskog jezika. Tako postoje škole u
odabrati onaj koji je pogodan za učenje programiranja. kojima se primjerice kroz te tri godine učenja
Takav bi jezik s jedne strane morao biti fleksibilan i programiranja usvajaju dva ili više različitih programskih
jednostavan, kako bi prve programerske korake učinio što jezika. Ovime se u potpunosti gubi osnovni smisao
bezbolnijim. S druge strane on bi trebao biti dobra podloga programiranja, a to je razvijanje apstraktnog i
za nastavak programiranja u bilo kojem drugom algoritamskog načina razmišljanja. Naravno da bi učenik
programskom jeziku. Naše je iskustvo da većina učenika ima mogao reprezentirati pojedini algoritam potrebno je i
poteškoća u usvajanju osnovnih koncepata algoritamskog poznavanje nekog od programskih jezika kao sredstvo
načina rješavanja problema zbog savladavanja detalja realiziranja algoritma.
pojedinih programskih jezika te posebice zbog uporabe
različitih programskih jezika tijekom obrazovanja.
Uobičajeno se na početku koriste jezici (LOGO, BASIC, II. KOJI PROGRAMSKI JEZIK ODABRATI ZA
Pascal, C), a kasnije kod podučavanja naprednijih koncepcija PODUČAVANJE ALGORITAMSKOG PRISTUPA
programiranja koriste se jezici za izradu velikih programskih RJEŠAVANJU PROBLEMA?
projekata (C++, C#, Java). Navedeni jaz između
„jednostavnih“ i „moćnih“ jezika zasigurno je smanjen Danas postoji mnoštvo programskih jezika koji se
pojavom Pythona. Radi se o jeziku koji s jedne strane može koriste za različite potrebe. Prelazak s jednog programskog
biti vrlo jednostavan i kao takav može poslužiti početnicima, jezika na drugi u principu je vrlo jednostavan. Dakle, za
a istovremeno je Python i moćan jezik koji podržava učenje bi trebalo odabrati jezik koji je jednostavan i
objektno-orijentirani princip programiranja. fleksibilan. Takav jezik trebao bi biti motivirajući za
učenika, "tolerantan" na početničke greške, ne pretjerano
krute sintakse i sl. Danas se u praksi za te prve korake u
I. UVOD programiranju najčešće koriste LOGO, BASIC, Pascal ili
C. Svaki od njih ima svojih prednosti i nedostataka za
Informatika je kao školski predmet uvedena krajem 70- učenje. Primjerice, LOGO je prihvatljiv za same početke
tih godina 20-tog stoljeća. Od tog vremena do danas taj programiranja ali nije praktičan za implementaciju
predmet je uvelike napredovao. Prvotno se predavao samo apstraktnih tipova podataka, usvajanje kompliciranijih
u nekim srednjim školama, danas je on u nekom obliku algoritama i sl. S druge strane C, čija sintaksa je vrlo slična
zastupljen u svim srednjim školama, a kao izborni predmet sintaksi C++ je dosta zahtjevan za učenje programiranja.
i u osnovnim školama. Nastavni programi informatike Trenutno je česta praksa da se u osnovnoj školi započinje s
poprilično su fleksibilni te nastavniku omogućavaju da do programiranjem u LOGU, pred kraj osnovne škole uči se
neke mjere odabire nastavne teme koje će predavati i u BASIC, a u srednjoj školi se najčešće prijeđe na Pascal ili
kojem opsegu. U početku je informatika bio predmet u C, a nerijetko se rade oba jezika. U prirodoslovno-
kojem je naglasak stavljan na učenje programiranja u matematičkim gimnazijama se često još pred kraj nastoji
nekom od programskih jezika. Danas je sveprisutno spomenuti objektno-orijentirano programiranje i onda se
mišljenje da je cilj informatike učenike računalno najčešće koriste Java, C++ ili C#. Dakle, učenik je
opismeniti kako bi se uspješno koristili računalima u tijekom svog osnovnoškolskog i srednjoškolskog
svakodnevnom životu te je programerski dio, čiji bi obrazovanja upoznao možda i više od 5 programskih
osnovni cilj trebao biti razvijanje algoritamskog pristupa jezika. Svaki puta upoznavao se s novom sintaksom. Na taj
rješavanja problema uvelike zapostavljen. U način izgubljeno je dragocjeno vrijeme za razvijanje
osnovnoškolskom programu je programiranje zastupljeno s algoritamskog pristupa rješavanju problema, a koje je
11% [1]. Kao jezici za programiranje uglavnom se koriste osnovni cilj programiranja.
LOGO i BASIC te nešto rjeđe Pascal. U dijelu škola
nastavnici uopće ne rade programiranje. Najčešći razlog za
to jest činjenica da je informatika u osnovnoj školi izborni III. PROGRAMSKI JEZIK PYTHON
predmet i na učenike treba djelovati stimulativno.
Programiranje se smatra kompliciranim i demotivirajućim. Idealna situacija bila bi postojanje jedinstvenog
U srednjim školama situacija ovisi o vrsti škole. Najbolja programskog jezika koji će biti dovoljno jednostavan kako
situacija je u prirodoslovno-matematičkim gimnazijama bi ga mogli svladati početnici u programiranju, a s druge
gdje se programiranje velikim dijelom proteže kroz tri strane blizak današnjim komercijalnim jezicima s
nastavne godine. Nažalost niti u tom dijelu situacija nije razvijenom paradigmom objektno-orijentiranog
sjajna. Programiranje se nerijetko svodi na učenje sintakse
programiranja, koja je danas standard. Takav jezik, Primjer 2:
odnosno jezik najbliži takvom idealnom je Python. >>> a = list ()
>>> a.append (2)
>>> a.append (1)
A. KRATKA POVIJEST PYTHONA >>> a
[2, 1]
Možda sasvim slučajno, Pythonov tvorac je Nizozemac, >>> a.append (15)
Guido von Rossum, a nastao je 1990. godine. Prisjetimo >>> a.append (4)
se, da je Švicarac Niklaus Wirth 20-tak godina ranije >>> a
kreirao je programski jezik Pascal. Obojici Europljana [2, 1, 15, 4]
osnovna je ideja bila kreiranje programskog jezika za >>> a.sort ()
učenje programiranja. Prema nekim autorima Pascal je i >>> a
dalje jedan od vodećih jezika za učenje programiranja. [1, 2, 4, 15]
Tomu u prilog ide i njegova velika prisutnost u školama u
čitavom svijetu te na programerskim natjecanjima. Njegov Ovdje je moguće povući paralelu s programskim
osnovni nedostatak jest činjenica da prirodno ne podržava jezikom LOGO, koji je sinonim za jezik za prve korake u
objektno-orijentirani princip programiranja. Rossum je programiranju. U njemu se isto tako svaki pomak kornjače
napravio korak dalje. Napravio je jezik za učenje neposredno vidi na ekranu, a onda programi (funkcije)
programiranja koji će po potrebi biti strukturni, a onda isto nastaju kombiniranjem takvih jednostavnih naredbi,
tako prirodno može biti i objektno-orijentirani. Njegova njihovim višestrukim izvođenjem, uvjetnim izvođenjem i
upotreba u akademskoj zajednici strmoglavo raste [2]. To slično. Dakle, radi se o vrlo dobro osmišljenom i nadasve
dokazuje i niz knjiga koje su nastale u nekoliko posljednjih moćnom pedagoškom alatu. S druge strane ovo je jezik u
godina [5, 6, 7, 8, 9, 10] . Razlog ovako ubrzanom rastu kojem nema deklaracije varijabli. Nema standardnih
popularnosti jest činjenica da se radi o jeziku s čistom i problema s različitim tipovima podataka i sl. Upravo
jednostavnom sintaksom, čime je učenicima omogućeno da problem varijable i tipa podataka je vrlo apstraktan i težak
svoju pažnju više usmjere prema algoritamskom početnicima za razumijevanje. Ovdje ponovo možemo
razmišljanju a manje prema sintaksi jezika [2]. povući paralelu s jezikom LOGO, ali ovaj puta i s
Pretpostavljamo da u tom trenutku Rossum vjerojatno nije programskim jezikom BASIC, kod kojeg isto tako nije
slutio da će upravo Python postati i jezik za izradu potrebno uvijek deklarirati varijable. BASIC je isto tako
poslovnih aplikacija. Jezik čije su mogućnosti prepoznate u namijenjen učenju programiranja, često se koristi kao drugi
nizu poznatih IT kompanija, kao što su Google, Yahoo i sl. jezik, nakon što se osnove nauče u programskom jeziku
Dovoljno je naglasiti činjenicu da je ovaj jezik trenutno LOGO, a ponekad i kao prvi programski jezik. Prednost
među 10 najpopularnijih programskih jezika [4]. Pythona nad BASICom u ovom kontekstu je
konzistentnost kod svih tipova podataka. Naime, kod
BASICa ipak trebamo naglasiti da je neka varijabla tipa
B. ZAŠTO JE PYTHON POGODAN ZA UČENJE string, deklarirati polje ako će ono imati više od 10
PROGRAMIRANJA elemenata i sl. dok u Pythonu varijable ne trebamo
deklarirati uopće.
Kao što je već naglašeno Python je jezik s čistom i Naredbe za definiranje tijeka programa: naredbe
jednostavnom sintaksom. Naredbe su vrlo jednostavne bez grananja i petlje, gotovo su identične kao i u ostalim
nepotrebnih dodatnih naredbi ili simbola (vitičaste zagrade, programskim jezicima (Primjer 3 i 4).
begin, end, endif,…). Upravo to omogućava početniku u
programiranju da se više posveti algoritmu problema koji Primjer 3: If naredba u programskim jezicima: Python,
rješava, a manje načinu kako će to implementirati u Pascal, C/C++ i QBASIC
konkretnom programskom jeziku. Na samom početku,
prilikom uvođenja nekog programskog jezika, za većinu Python
jezika potrebno je potrošiti puno vremena na učenje nekih x = 3
osnovnih sintaktičkih i semantičkih pravila: tipovi if x > 0:
podataka, deklaracija varijabli i sl. Interpretersko sučelje print ('Pozitivan')
Pythona omogućava pisanje i neovisno izvođenje naredbi elif x < 0:
koje u nekoj sljedećoj iteraciji poučavanja mogu postati print ('Negativan')
dio programskog kôda nekog programa. Učenik, bez da else:
zna išta o programu može izvoditi jednostavne naredbe i print ('Nula')
neposredno vidjeti rezultate njihova izvođenja. U
interpreterskom sučelju trostruku strelicu >>> kao prompt Pascal
ispisuje interpreter kao znak da očekuje novi unos.
Ilustracija takve funkcionalnosti dana je u sljedeća dva x := 3;
primjera: if x > 0 then
Primjer 1: writeln ('Pozitivan')
>>> a = 2 else if x < 0 then
>>> b = 3 writeln ('Negativan')
>>> c = a + b else
>>> c writeln ('Nula');
5
C/C++ naznačivati blok naredbi. Kod Pythona se sve temelji na
poravnanju (Primjer 5).
int x = 3;
if (x > 0) Primjer 5: Program generira polje od 5 nasumičnih
printf ("Pozitivan"); brojeva te simulira sortiranje metodom razmjene:
else if (x < 0)
printf ("Negativan"); from random import *
else n = 5
printf ("Nula"); a = []
for i in range (0, n):
QBASIC a.append(randint (1, 50))
print ("Generirano polje:", a)
x = 3 for i in range (0, n - 1):
if x > 0 for j in range (i + 1, n):
print "Pozitivan" if a [i] > a [j]:
else ## Sljedeće naredbe izvode
if (x < 0) ## se ako je zadovoljen
print "Negativan" ## uvjet a [i] > a[j]
else t = a [i]
print "Nula" a [i] = a [j]
endif a [j] = t
endif ## Nakon svake iteracije sortiranja
## ispisuje se polje
Primjer 4: for petlja u programskim jezicima: Python, print ("iteracija: ", i, a)
Pascal, C/C++ i QBASIC
Napomenimo da polja nije nužno sortirati na ovaj način.
Python Nad listom je definirana metoda koja će sortirati elemente
liste. Isto tako zamjenu elemenata mogli smo načiniti
s = 0 uporabom n-torki. Dakle, umjesto naredbi:
for i in range (1, 10):
s = s + i t = a [i]
print (s) a [i] = a [j]
a [j] = t
Pascal
Mogli smo pisati
s := 0;
for i := 1 to 9 do (a [i], a[j]) = (a [j], a [i])
s := s + i;
writeln (s); Polje smo ovdje sortirali na ovaj način iz tradicionalnih
razloga i kako bi naglasili uvlačenje naredbi.
C/C++ Ovakav princip s jedne strane razvija urednost kod
programiranja, čime programski kôd čini čitljivijim, a s
s = 0; druge strane nas oslobađa bespotrebnog pisanja dodatnih
for (int i = 1; i < 10; i++) ključnih riječi i sl.
s += i; Kako bi programski kôd programa napisanog u nekom
printf ("%d", s); programskom jeziku izgledao u Pythonu dobit ćemo kroz
sljedeća tri koraka [10]:
QBASIC
1. Otvori datoteku s dobro formatiranim
s = 0 programskim kodom
for i = 1 to 9 step 1 2. Izbriši deklaraciju varijabli, sve znakove ;,
s = s + i zagrade i sve ključne riječi tipa begin, end, endif i sl.
print s 3. Promotri programski kôd.

Primijetimo da smo kod for petlje koristili funkciju Primjer 6: Program ispisuje sve proste brojeve do 100.
range. Radi se o funkciji koja generira (aritmetički) niz Nadalje su izbrisane svi znakovi ;, ključne riječi tipa begin,
brojeva. Funkcija se može koristiti u nekoliko oblika. end,… te je na kraju napisan program u Pythonu:
Najčešće korišteni oblici su:
range (n) – generira niz od n elemenata: {0, 1, 2,…, Program zapisan u programskom jeziku Pascal:
n-1} var i, j, n : integer;
range (m, n) – generira niz od n – m brojeva: {m, m prost : boolean;
+ 1, …, n - 1}. begin
Sljedeća velika prednost je što kod Pythona nema n := 100;
dileme treba li, zbog složene naredbe koristiti begin i end for i := 2 to n do
odnosno { i } odnosno neke treće znakove ili riječi koje će begin
prost := true;
for j := 2 to round (sqrt (i)) do Izuzetno je važna mogućnost dodavanja različitih tipova
if i mod j = 0 then podataka u takve apstraktne strukture. Moguće je čak i
prost := false; miješati tipove podataka. To konkretno znači da neki
if prost then elementi polja mogu biti cijeli brojevi, neki drugi elementi
writeln (i); istog polja mogu biti stringovi i sl. Naravno pri tome u
end; svakom trenutku moramo biti svjesni što radimo. Ovakve
end. mogućnosti s apstraktnim tipovima podataka
implementacije složenih algoritama čine vrlo
Program zapisan u programskom jeziku Pascal bez jednostavnima.
deklaracije varijabli, znaka ;, te ključnih riječi begin i end. D. PYTHON I OBJEKTNO ORIJENTIRANO
n := 100 PROGRAMIRANJE
for i := 2 to n do
prost := true Sve varijable koje smo do sada koristili, iako toga nismo
for j := 2 to round (sqrt (i)) do bili svjesni, bile su objekti. Sve operacije bile su operacije
if i mod j = 0 then nad objektima. Programirali smo strukturno a zapravo smo
prost := false čitavo vrijeme programirali objektno-orijentirano.
if prost then Kod većine ostalih objektno-orijentiranih programskih
writeln (i) jezika da bismo napisali svoj prvi program trebamo znati
sve o klasama, konstruktorima, metodama, modifikatorima
Program zapisan u programskom jeziku Python i sl. Općenito, koncept objekta i klase treba uvoditi na
način da se navode primjeri klasa i pripadnih objekata iz
from math import * stvarnog svijeta a onda postupno prelazimo na apstraktne
n = 100 objekte. Python nam omogućava da bez mnogo znanja o
for i in range (2, n + 1): konstruktorima i klasama počnemo odmah koristiti
prost = True objektni način programiranja. Podsjetimo se da funkcije
for j in range (2, round(sqrt (i)) + 1): koje koristimo u proceduralnom programiranja ovdje
if i % j == 0: postaju metode i da se pišu iza simbola objekta odvojene
prost = False točkom. U sljedećem 7. primjeru dan je primjer kreiranja i
if prost: korištenja objekta u interpreterskom prozoru, gdje se u
print (i) svakom trenutku može provjeriti što se događa s objektom:

Kada jednom prijeđemo na fazu pisanja konkretnih Primjer 7: Korištenje objekta tipa lista (dodavanje
programa i implementaciju algoritama, nerijetko se događa elemenata na kraj, sortiranje elemenata, uzimanje zadnjeg
da se u izvođenju programa događaju pogreške. U tom elementa) u interpreterskom prozoru izgleda ovako:
slučaju program treba ispravljati. Nakon svake ispravke
program treba pokrenuti, unijeti ulazne podatke te >>> jezici = list ()
provjeriti rezultat. Unos ulaznih podataka može biti vrlo >>> jezici.append ("Pascal")
kompleksan ako se radi o unosu puno brojeva, dugih >>> jezici.append ("Java")
stringova, matrica i sl. Na takav unos bespotrebno se troši >>> jezici.append ("C#")
puno vremena. Jedna od mogućnosti Pythona je da uz >>> jezici
program napišemo i test podatke s kojim će se program ['Pascal', 'Java', 'C#']
izvoditi. Na taj način uvelike smo uštedjeli vrijeme za >>> jezici.sort ()
dugotrajno unošenje ulaznih podataka. >>> jezici
['C#', 'Java', 'Pascal']
>>> jezici.append ("LOGO")
C. ZAŠTO JE PYTHON POGODAN ZA >>> jezici.append ("QBasic")
"NAPREDNIJE" KORAKE U PROGRAMIRANJU >>> jezici
['C#', 'Java', 'Pascal', 'LOGO', 'QBasic']
Nakon što je učenik usvojio osnovne koncepte >>> jezici.pop ()
programiranja, osnovne algoritme, prednosti pisanja i 'QBasic'
korištenja potprograma i sl., vrijeme je za upoznavanje s >>> jezici
apstraktnim strukturama podataka, a onda i sa složenijim ['C#', 'Java', 'Pascal', 'LOGO']
algoritmima. Upravo kod naprednih struktura podataka
dolaze do izražaja prednosti ovog programskog jezika za Princip izgradnje vlastite klase te izgradnje hijerarhije
učenje. Za razliku od ostalih programskih jezika koji ili klasa analogan je kao i kod ostalih programskih jezika.
nemaju uopće implementirane apstraktne strukture
podataka ili im je korištenje zahtjevno i uključuje Primjer 8: Definicija klase Trokut s metodama za
pozivanje specijalnih biblioteka, kod Pythona je to riješeno računanje opsega i površine trokuta te definicija klase
na vrlo elegantan način. Implementirane su ukupno tri Jednakostranican koja nasljeđuje klasu Trokut
apstraktna tipa podataka: N-torke (Tuples), Lista (List) i
Rječnik (Dictionary). Pomoću ova tri vrlo intuitivna from math import *
apstraktna tipa podataka moguće je implementirati bilo ## definicija klase trokut
koji apstraktni tip podataka (polje, skup, red, stog, stablo i class Trokut:
sl.). Ovisno o situaciji lista može biti polje a onda u def __init__(self, a, b, c):
drugom trenutku na to polje možemo gledati kao na red, u self.a = a
nekom trećem trenutku se može ponašati kao stog i sl. self.b = b
self.c = c Kao što možemo primijetiti u prvom slučaju je funkcija
def opseg (self): vratila zbroj prva 4 prirodna broja dok je u drugom slučaju
return self.a + self.b + self.c funkcija vratila zbroj prirodnih brojeva od 4 do 6.
def povrsina (self): Ukoliko je baš neophodno imati preopterećene metode s
s = float(self.opseg ()) / 2 različitim tipovima parametara to je onda moguće
return sqrt (s * (s - self.a) * (s – realizirati na način da predvidimo sve tipove podataka s
self.b) * (s - self.c)) kojima metoda može biti pozvana te za svaki od njih
implementiramo operacije.
## Klasa Jednakostraničan nasljeñuje klasu
## Trokut na način Primjer 10: Funkcija minus definirana je na način da
## da definira konstruktor sa samo jednim ukoliko joj je prvi parametar broj onda od njega oduzima
## parametrom, duljinom stranice trokuta vrijednost drugog parametra. Ukoliko je prvi parametar
class Jednakostranican (Trokut): string onda vraća dio ulaznog stringa bez zadnjih n
def __init__(self, a): znakova, a ukoliko je prvi parametar lista vraća listu bez
self.a = a zadnjih n elemenata. Ukoliko prvi parametar nije niti
self.b = a jednog od navedenih tipova metoda vraća poruku da
self.c = a zadani tip podataka nije podržan:

Razlike su tek utoliko što kod većine ostalih objektno- def minus (v, n):
orijentiranih programskih jezika konstruktor ima isto ime if isinstance (v, int) or isinstance
kao klasa, dok kod Pythona konstruktor uvijek ima isto (v, float):
ime init. Sljedeća razlika je što Python nema return v - n
preopterećenih metoda (istoimenih metoda s različitim elif isinstance (v, str):
parametrima – eng. Method overloading). Sve metode return v[:len (v) - n]
moraju imati različita imena. Međutim moguće je definirati elif isinstance (v, list):
metode s različitim brojem parametara, na način da se for i in range (n):
vrijednosti nekih neobaveznih parametara kod definicije v.pop ()
metode inicijaliziraju. Takve metode treba pozvati samo s return v
parametrima koji nisu inicijalizirani dok su ostali else:
(inicijalizirani parametri) neobavezni. return "Tip podataka nije podržan"

Primjer 9: Funkcija računa zbroj svih prirodnih brojeva Pozovimo navedenu funkciju u interepreterskom
iz segmenta [n, m]. Ukoliko se funkcija pozove samo s prozoru:
jednim parametrom onda računa zbroj prvih n prirodnih >>> minus (3, 2)
brojeva. 1
>>> minus ("Python", 2)
## Funkcija zbraja sve prirodne brojeve iz 'Pyth'
## segmenta [n, m], pri čemu su n i m >>> minus ([2, 3, 4, 5, 6, 7], 2)
## prirodni brojevi. Ukoliko želimo [2, 3, 4, 5]
## pozivati funkciju bez drugog parametra >>> minus ((2, 3, 4), 2)
## onda ćemo vrijednost tog parametra 'Tip podataka nije podržan'
## inicijalno postaviti na 0. Naime 0 nije
## prirodan broj i funkcija se nikada Nad svim definiranim klasama u Pythonu definirano je i
## neće pozvati s drugim parametrom 0 mnoštvo metoda. Nazivi tih metoda konzistentni su s
nazivima odgovarajućih metoda u drugim objektno-
def zbroj (n, m = 0): orijentiranim programskim jezicima (Java, C#,…). Neke
## ukoliko je funkcija pozvana samo s od tih metoda se izuzetno često koriste i učenici će ih brzo
## jednim parametrom usvojiti, kroz rješavanje primjera, dok postoje i metode
if m == 0: koje se koriste nešto rjeđe ili gotovo nikada i nije potrebno
return (int)(n * (n + 1) / 2) inzistirati na njihovom učenju. Sve klase i pripadne metode
## ako je funkcija pozvana s dva dokumentirane su u službenoj dokumentaciji te
## parametra (drugi parametar nije 0) potkrijepljene nizom primjera.
else: Mogućnosti Pythona ovdje ne prestaju. Ovaj jezik
s = 0 omogućava web programiranje, rad s bazama podataka,
for i in range (n, m + 1): kreiranje programa s grafičkim korisničkim sučeljem i sl.
s += i
return s
IV. ZAKLJUČAK
Pozovimo navedenu funkciju u interpreterskom prozoru:
Osnovni cilj ovog rada bio je prikazati Python u svjetlu
>>> zbroj (4) jezika koji je istovremeno pogodan za same početke učenja
10 programiranja ali i za razvoj ozbiljnijih projekata u IT
>>> zbroj (4, 6) industriji. Pythonom je premošten jaz između jednostavnih
15 jezika za prve programerske korake, kao što su LOGO ili
BASIC i naprednih komercijalnih jezika koji su bazirani na
objektno-orijentiranom programiranju, kao što su Java,
C++ ili C#. On istovremeno može biti i jedno i drugo. [3] A. Radenski. "Python First": A lab-Based Digital
Više nema potrebe za učenjem nekoliko programskih Introduction to Computer Science. In Proc. 11th Annual Conf. On
jezika kako bi se usvojili osnovni koncepti programiranja, Innovation and Technology in Computer Science ( ITiCSE),
već je to sve moguće jednim jezikom. Osim toga radi se o pages 197-201, Bologna, Italy, June 26-28, 2006
vrlo intuitivnom jeziku s vrlo čistom i jasnom sintaksom, [4] TIOBE Software, TIOVE programming community
koji kod učenika razvija smisao za sistematičnost i indeks, http://www.tiobe.com/tpci.htm
preciznost. Ono što je najvažnije, nakon što učenik usvoji [5] A. B. Downey, J. Elkner, C. Meyers. How to Think
osnovne koncepte u ovom jeziku s lakoćom će prijeći na Like a Computer Scientist: Learning with Python. Green Tea
bilo koji drugi programski jezik bilo strukturni bilo Press, Needham, MA 2002
objektno-orijentirani. Na kraju, ali i ne najmanje važno, [6] T. Gaddis. Starting Out with Python. Addison-Wesley,
okruženje za pripremu programa je potpuno slobodno i 2009
može se instalirati na praktičke sve računalne platforme. [7] M. H. Goldwasser, D. Letscher. Object-Oriented
Programming in Python. Prentice Hall, 2007
[8] M. Guzdial. Introduction to Computing and
Programming in Python: A Multimedia Approach Prentice Hall,
2005
[9] J. M. Zelle. Python Programming: An Introduction to
LITERATURA Computer Science, Franklin, Beedle & Associates, 2003
[10] Mitchell L Model. Bioinformatics Programming Using
[1] Hrvatski nacionalni obrazovni standard za osnovnu Python, O'Reilly, 2009
školu. Zagreb, Ministarstvo znanosti obrazovanja i športa, 2005 [11] Python 2.6.4 Documentation,
[2] M. H. Goldwasser, D. Letscher. Teaching an Object- http://docs.python.org/tutorial/index.html
Oriented CS1 – with Python. In Proc. 13th Annual Conf. On
Innovation and Technology in Computer Science ( ITiCSE),
pages 42-46, Madrid, Spain, June 30-July 2, 2008

You might also like