i i “Kovic” — 2015/8/11 — 12:20 — page 97 — #1 i i i i i i PREGLED SODOBNE PROGRAMSKE OPREME IN SPLETNIH APLIKACIJ ZA MATEMATIKE – 1. DEL NINO BAŠIĆ1, JURIJ KOVIČ2,3 1Fakulteta za matematiko in fiziko, Univerza v Ljubljani 2Inštitut za matematiko, fiziko in mehaniko 3FAMNIT, Univerza na Primorskem Math. Subj. Class. (2010): 00-02, 00A09, 68N01, 97P40 Matematikova izobrazba v informacijski dobi zahteva poleg obvladanja osnovnih ma- tematičnih disciplin (algebre, analize itd.) tudi poznavanje in spretno uporabo najrazlič- neǰsih računalnǐskih programov in spletnih aplikacij. V članku je podan pregled sodobnega matematičnega programja. Številne v članku navedene povezave na prosto dostopne pro- grame omogočijo bralcu, da jih nemudoma preizkusi. A REVIEW OF CONTEMPORARY SOFTWARE AND WEB APPLICATIONS AVAILABLE TO MATHEMATICIANS – PART 1 The mathematician’s education in the information age demands not only the mastery of basic mathematical disciplines (e. g. algebra, analysis, etc.), but also familiarity with and skillful application of various software and web applications. In this article we present a review of contemporary mathematical software. Numerous links to free tools enable the reader to immediately try them out. Uvod »Ljudje si danes ne želijo več samo kupiti računalnika, ampak želijo tudi vedeti, kaj lahko z njim naredijo. Mi jim bomo pokazali prav to.« — Steve Jobs, soustanovitelj podjetja Apple. Čeprav živimo v informacijski dobi, se njenega neizmernega potenciala za hi- treǰse učenje, prodorneǰse raziskovanje in uspešneǰse sodelovanje morda niti ne zavedamo dovolj. Če parafraziramo znani mit o slabi izkorǐsčenosti člo- vekovih možganov [1], dejansko uporabljamo le majhen odstotek možnosti, ki nam jih ponuja tehnologija. Osnovnošolci osebni računalnik uporabljajo predvsem za igranje iger. Dijaki in študentje se zanimajo predvsem za so- cialna omrežja. Stareǰsi pa se dostikrat zadovoljijo z uporabo dveh, treh programov, in potem menijo, da znajo dovolj ali da so že prestari za učenje novih stvari. Večina diplomantov matematike se sicer zaposli na delovnih mestih, kjer razvijajo programsko opremo, a celo računalničarji sami ne po- znajo vseh razpoložljivih orodij. Ta se dandanes bliskovito razvijajo, mi pa temu razvoju komaj sledimo. Obzornik mat. fiz. 62 (2015) 3 97 i i “Kovic” — 2015/8/11 — 12:20 — page 98 — #2 i i i i i i Jurij Kovič, Nino Bašić Osnovno matematikovo orodje je seveda osebni računalnik z dostopom do interneta. To osnovno orodje matematiki uporabljajo različno intenzivno: nekateri zgolj za urejanje besedil, branje elektronske pošte in brskanje po spletu, drugi pa si z njim znajo pomagati na vse mogoče načine (progra- miranje, študij na daljavo, pisanje bloga, sodelovanje v forumih, izdelava videopredstavitev itd.). Spet tretjim niti osebni računalnik ne zadošča: za svoje izračune uporabljajo superračunalnike ali gruče računalnikov. Takšne zahtevneǰse uporabnike utegne zanimati omrežje SLING [2], ki uporabnikom omogoča dostop do infrastrukture za paralelno računanje. V tem prispevku se bomo omejili na programe, ki tečejo na enem računalniku. Programska orodja lahko v grobem razdelimo na splošna, ki so name- njena tako rekoč vsakomur (npr. Skype, Dropbox, slovarji itd.), in posebna orodja za posamezne stroke (npr. AutoCAD za arhitekte, ChemDraw za ke- mike itd.). V nadaljevanju si bomo ogledali nekaj najuporabneǰsih splošnih orodij, posebej pa se bomo osredotočili na orodja, namenjena matematikom. Več pozornosti bomo namenili prostim1 programom. Programe lahko razdelimo tudi na tiste, ki tečejo lokalno, tj. na našem lastnem računalniku, in na tiste, ki tečejo v oblaku, tj. na oddaljenih stre- žnikih. Nad programi, ki tečejo lokalno, imamo popoln nadzor. Lahko jih posodabljamo in nameščamo razširitve, ali pa tudi ne, kakor želimo. Nad programi v oblakih običajno nimamo nobene kontrole, vse je prepuščeno podjetju ali posamezniku, ki te storitve vzdržuje. Mnogi ljudje se (dostikrat upravičeno) počutijo nelagodno ob misli, da so njihovi podatki shranjeni na nekih oddaljenih strežnikih, za katere sploh ne vedo, kje pravzaprav fizično so. Bralcu priporočamo, da članek bere za računalnikom in sproti obiskuje predlagane spletne strani. Za lažje brskanje smo na spletnih straneh Ob- zornika objavili seznam povezav iz pričujočega članka: www.obzornik.si/ 62/3/basic-kovic-povezave.html. Nadalje predlagamo, da prosto pro- gramje, ki danes po kakovosti ne zaostaja za plačljivimi programskimi reši- tvami, naloži na svoj računalnik in ga preizkusi. Vsak računalničar dobro ve, da je interaktivna lastna izkušnja vredna tisočkrat več kot duhamorno prebiranje dokumentacije. Pri pisanju prispevka smo imeli v mislih tako študente kot tudi pedagoge in raziskovalce; mislimo, da bo vsakdo našel kaj zase. 1Če vas zanima točna definicija prostega programa, si lahko ogledate kakšen intervju z Richardom M. Stallmanom, na primer: www.youtube.com/watch?v=KR0rrXMJreM (Ri- chard Stallman on free software), ali pa si pogledate definicije na strani www.gnu.org/ philosophy/categories.sl.html. 98 Obzornik mat. fiz. 62 (2015) 3 i i “Kovic” — 2015/8/11 — 12:20 — page 99 — #3 i i i i i i Pregled sodobne programske opreme in spletnih aplikacij za matematike – 1. del Spletni brskalnik in iskalnik Najprej razčistimo pomen pojmov brskalnik in iskalnik. Spletni brskalnik je program, katerega osnovna funkcija je prikaz HTML dokumentov. Da- nes sta najbolj razširjena brskalnika Mozilla Firefox (www.mozilla.org/ firefox) in Google Chrome (www.google.com/chrome). Oba delujeta na vseh treh najpopularneǰsih operacijskih sistemih, to so: Linux, Windows in OS X. (V nadaljevanju bomo z »vsemi tremi operacijskimi sistemi« vselej mislili omenjene tri.) Po funkcionalnosti sta si brskalnika zelo podobna: oba omogočata zaznamke (shranjevanje povezav do priljubljenih spletnih strani), beležita zgodovino brskanja, omogočata »incognito« način (brska- nje brez beleženja zgodovine), imata napredna orodja za razvijalce (angl. developer tools) in omogočata namestitev certifikatov (ki jih potrebujemo za dostop do spletne banke). V oba lahko namestimo vtičnike (angl. plug- ins), ki omogočajo poganjanje programov v Javi [10] in Flashu [11] znotraj brskalnika, ter različne razširitve (angl. extensions), ki na primer blokirajo oglasna sporočila, nam omogočajo shranjevanje filmčkov s portala YouTube (www.youtube.com) na računalnik in podobno. Za najbolǰso uporabnǐsko izkušnjo si namestite najnoveǰso različico katerega od njiju. Iskalnik je spletna storitev, ki omogoča iskanje spletnih strani z želeno vsebino. Na tem področju dominira iskalnik Google (www.google.com). Google omogoča številne napredne možnosti iskanja, ki se jih večina upo- rabnikov niti ne zaveda. Z operatorji iskanja lahko zelo natančno določimo, kaj želimo najti. Vnesimo v Google naslednje: latex site:fmf.uni-lj.si filetype:pdf S tem povemo, da ǐsčemo dokumente v formatu PDF, ki vsebujejo besedo »latex«, na spletnem mestu fmf.uni-lj.si. Veliko o naprednih možnostih iskanja se lahko naučite iz videolekcij na www.powersearchingwithgoogle. com. Slovenskim uporabnikom spleta je znan tudi iskalnik Najdi.si (www. najdi.si), ki pa ni tako mogočen kot Google. V »vzhodnem bloku« je bolj popularen iskalnik Yandex (www.yandex.com), ki posnema Googla. De- lovanje iskalnikov temelji na številnih algoritmih iz umetne inteligence oz. podatkovnega rudarjenja [3]. Omenimo še storitev TinEye Reverse Image Search (www.tineye.com). Ta je namenjena iskanju spletnih strani, ki vsebujejo sliko, ki jo podamo is- kalniku (npr. naložimo z našega računalnika). Če denimo sumite, da si je nekdo neko sliko »sposodil« s spleta, ga boste tako zlahka razkrili. (Če iskal- nik slike ne najde, to ne pomeni nujno, da je ni nikjer na spletu.) Slikovno iskanje seveda omogoča tudi Google. 97–112 99 i i “Kovic” — 2015/8/11 — 12:20 — page 100 — #4 i i i i i i Jurij Kovič, Nino Bašić Spletni imenik je zbirka povezav na druge spletne strani, ki so razvr- ščene v tematske sklope. Od iskalnikov se bistveno razlikujejo v tem, da ljudje podatke v imenik vnašajo ročno. Po drugi strani pa iskalniki svojo bazo podatkov vzdržujejo samodejno s pomočjo pajkov, tj. programov, ki sami od sebe brskajo po spletu in zbirajo podatke. Kako velika prednost je avtomatično rudarjenje podatkov, je jasno razvidno iz dejstva, da je nekoč popularni imenik Mat’Kurja (matkurja.si) že davno utonil v pozabo. Na svetovni ravni je bolj znan imenik DMOZ (www.dmoz.org). Na tem mestu si omembo zasluži še Wikipedija (en.wikipedia.org oz. sl.wikipedia.org). To je prosta spletna enciklopedija, ki jo sponzorira ne- profitna organizacija Wikimedia Foundation. Enciklopedijo so s skupnimi močmi ustvarili prostovoljci širom po svetu; ureja jo lahko vsak, pri čemer se je treba držati določenih pravil (npr. preverljivost in nepristranskost in- formacij). Vsebino lahko pǐsete v več kot 200 jezikih. Trenutno vsebuje več kot 4,7 milijona člankov v angleščini in več kot 140 000 člankov v slo- venščini. Čeprav govori o matematiki in logiki po nekaterih ocenah le 1 % člankov, je že to ogromna količina. Gotovo ste že mnogokrat sami iskali na spletu programje, ki je uporabno za vas. Skoraj vsak program, ki ste ga sneli na internetu, ima tudi svoj članek na Wikipediji; opis programa tu je objektivneǰsi kot na uradni domači strani, kjer ga pogosto prehvalijo. Na Wikipediji (predvsem angleški) najdemo ažurne informacije o avtorju, za- dnji različici programa, na katerih operacijskih sistemih deluje, pod katero licenco se distribuira in naslov uradne spletne strani. Skoraj vsak program, ki ga bomo omenili v nadaljevanju, ima tudi svoj članek na Wikipediji; povezav ne bomo navajali, saj jih lahko poǐsčete sami. Če se vam kak članek na angleški Wikipediji, na primer en.wikipedia. org/wiki/Sieve_of_Eratosthenes, zdi predolg oz. prezahteven, lahko en v naslovu spremenite v simple. Kar sami poskusite, kaj se zgodi. Wikimedia Foundation poleg enciklopedije sponzorira še druge sorodne projekte, ki jih lahko ureja vsak: • Wikislovar (prost slovar), • Wikiknjige (učbeniki in priročniki), • Wikivir (leposlovje, listine, arhivsko gradivo), • Wikiverza (izobraževalno gradivo), • Wikivrste (Darwin bi bil ponosen), . . . Za konec omenimo še storitev Wayback Machine (archive.org/web), za katero skrbi neprofitna organizacija Internet Archive. Gre za nekakšen arhiv svetovnega spleta, kjer si lahko ogledate posnetke spletnih strani skozi čas. Najstareǰsi posnetek domače strani Fakultete za matematiko in fiziko je z dne 18. aprila 1997. 100 Obzornik mat. fiz. 62 (2015) 3 i i “Kovic” — 2015/8/11 — 12:20 — page 101 — #5 i i i i i i Pregled sodobne programske opreme in spletnih aplikacij za matematike – 1. del Google Translate (translate.google.com) je storitev, ki omogoča prevajanje besedil med več kot 90 jeziki. Med njimi je seveda tudi sloven- ščina. Za nekatere jezike vam lahko Google Translate besedilo tudi prebere (predvaja). Če v polje za vnos besedila vnesete spletni naslov, se v polju za prevod pojavi povezava na vneseni naslov. Če jo odprete, opazite, da Google Translate prevede celotno spletno stran. Tako lahko Google Tran- slate uporabljate kot namestnǐski strežnik (angl. proxy server) in si s tem omogočite dostop do spletnih strani, ki so na vašem omrežju sicer blokirane. Večnamenska računska orodja Nekatera programska orodja so večnamenska in združujejo široko paleto funkcionalnosti. Omogočajo numerično in simbolno računanje, linearno pro- gramiranje, delo s kombinatoričnimi objekti (grafi, končne grupe ipd.) in še marsikaj. O načinih njihove uporabe obstajajo debele knjige in priročniki. Najbolj znano komercialno orodje te vrste je Mathematica. Za standardno različico je treba odšteti neverjetnih 3.505 e (brez DDV). Za nas bo bolj zanimiva spletna storitev Wolfram Alpha, ki združuje računsko moč Ma- thematice in obsežno zbirko faktografskih podatkov. Osnovna različica je dostopna na naslovu www.wolframalpha.com. V okence preprosto vnesete izraz v sintaksi Mathematice ali pa kar vprašanje v preprosti angleščini. Če bi radi na primer izvedeli vse o trikotniku s stranico dolžine 4 in priležnima kotoma 45◦ in 50◦, vnesite v okence: triangle 45◦, 4, 50◦ Za primerjavo življenja in dela Bernoullija, Gaussa in Eulerja pa vnesite: Bernoulli vs. Gauss vs. Euler Številne zglede najdete na www.wolframalpha.com/examples. Oglejmo si še en zanimiv primer uporabe. Denimo, da ste numerično prǐsli do rešitve neke enačbe (znanih je samo prvih nekaj decimalnih mest) in sumite, da je to vrednost nekakšnega izraza, ki vsebuje znane matematične konstante in funkcije. Kot primer vzemimo število 9,8696044. To število lahko vnesemo v Wolframovo Alpho (pri čemer moramo biti pozorni na decimalno piko): 9.8696044 97–112 101 i i “Kovic” — 2015/8/11 — 12:20 — page 102 — #6 i i i i i i Jurij Kovič, Nino Bašić Wolfram Alpha predlaga kar nekaj izrazov, katerih decimalni zapis se ujema s tem, kar smo podali: π2, 6ζ(2), 3eπ + 2π + 4 log(π) − 39 log(2π) + tg−1(π), . . . Na spletu najdemo storitev Inverse Symbolic Calculator (isc.carma. newcastle.edu.au), ki je specializirana prav za tovrstne poizvedbe. Pre- dlagamo, da jo preizkusite sami. Sage Prosta alternativa Mathematici je programski paket Sage (sagemath.org), ki temelji na programskem jeziku Python 2 in ponuja enoten vmesnik do specializiranih matematičnih programov, kot so Maxima, GAP in R (nekatere bomo predstavili v naslednjem članku). Tako uporabniku zadostuje pozna- vanje jezika Python 2 in se mu ni treba poglabljati v specifiko posameznih orodij. Poleg tega so snovalci Sagea tudi sami implementirali mnogo funk- cionalnosti, ki jih posamična orodja ne premorejo. Ker je Sage zelo obsežen programski paket, priporočamo, da ga najprej preizkusite na spletu s stori- tvijo SageMathCloud (cloud.sagemath.com). Za začetek si oglejte kakšno od videopredstavitev na www.sagemath.org/help-video.html. Nato se le pogumno lotite vodnika www.sagemath.org/doc/tutorial/tour.html. Dobra stran Sagea je tudi ta, da lahko k razvoju prispeva kdorkoli – tudi vi! Vedno več raziskovalcev se odloča, da svoje algoritme implementirajo v Sageu in jih tako naredijo javno dostopne. Sprva so na voljo v obliki dodatnih paketov za Sage (www.sagemath.org/download-packages.html), kasneje pa si lahko utrejo pot v standardno distribucijo. Sage lahko brez težav namestite na Linux ali OS X, v sistemu Windows pa za zdaj še ne deluje oz. lahko deluje le znotraj Linux virtualke. Programska oprema za virtualizacijo (na primer Oracle VM Virtual- Box, www.virtualbox.org) nam omogoča kreiranje navideznih računalni- kov, na katere lahko namestimo različne operacijske sisteme. Z uporabo virtualk si pogosto pomagajo programerji, ki želijo preizkusiti svoje pro- grame na različnih operacijskih sistemih. Uporabne so tudi za učne na- mene. Če operacijski sistem virtualke pokvarimo, jo enostavno pobrǐsemo in naredimo novo. Stavljenje besedil, preglednice in predstavitve Gotovo ste vsi slǐsali za plačljiv pisarnǐski paket Microsoft Office. Prosta alternativa temu je pisarnǐski paket LibreOffice (sl.libreoffice.org). 102 Obzornik mat. fiz. 62 (2015) 3 i i “Kovic” — 2015/8/11 — 12:20 — page 103 — #7 i i i i i i Pregled sodobne programske opreme in spletnih aplikacij za matematike – 1. del Osrednji trije programi so Writer, Calc in Impress. Writer je urejeval- nik besedil, ki nadomesti Word. Calc je namenjen izdelavi preglednic s številskimi podatki in nadomesti Excel. Impress pa se uporablja za iz- delavo predstavitev in nadomesti PowerPoint. Poleg teh treh programov paket vključuje še program za risanje Draw, program za delo s podatkov- nimi bazami Base in urejevalnik enačb Math. LibreOffice deluje na vseh treh operacijskih sistemih, je poslovenjen in omogoča izvoz dokumentov v format PDF. Omembo si zasluži tudi storitev Google Drive (drive.google.com), ki omogoča hrambo dokumentov v oblaku in njihovo deljenje s sodelavci. Za uporabo storitve potrebujete Googlov račun (accounts.google.com). Sto- ritev Google Drive vključuje tudi pisarnǐske programe Google Docs (bese- dila), Google Sheets (preglednice) in Google Slides (predstavitve). Sto- ritev Google Forms vam omogoča, da na spletu ustvarite vprašalnike, od- govori anketirancev pa se shranjujejo v preglednico, ki jo lahko pregledujete z Google Sheets. Vsi programi tečejo v brskalniku, kar pomeni, da lahko svoje dokumente urejate na kateremkoli računalniku, ki ima dostop do in- terneta in spodoben brskalnik. O LATEXu je bilo samo v slovenščini že mnogo povedanega in napisa- nega [4, 5, 6, 7], tako da mu ne bomo namenili veliko prostora. Če želimo uporabljati LATEX, moramo na računalnik namestiti TEX distribucijo (to je skupek programov, paketov in pisav, ki jih potrebujemo za stavljenje be- sedil). Najpopularneǰsi distribuciji sta MiKTeX (miktex.org), ki je narejen samo za Windows, in TeX Live (www.tug.org/texlive), ki teče na vseh treh operacijskih sistemih. Obe distribuciji vključujeta preprost urejeval- nik TeXworks, ki ga sestavljata dve okni: eno je namenjeno urejanju kode, drugo pa je pregledovalnik PDF dokumentov. TeXworks uporablja tehno- logijo SyncTEX [8], ki omogoča, da ob kliku na PDF dokument urejevalnik pokaže pripadajoče mesto v kodi (in obratno). V LATEXu obstajajo razredi dokumentov, ki nam omogočajo izdelavo predstavitev; najbolj znan je bea- mer. Številni paketi so namenjeni izdelavi slik; izpostavili bomo paket tikz (glejte naslednji razdelek). Od izida različice LATEX 2ε dne 23. decembra 1993 pa do danes se pri LATEXu ni zgodilo nič prelomnega. Če vas zanima aktualno dogajanje okrog LATEXa, lahko preberete serijo člankov Georga Grätzerja z naslovom What is new in LATEX? [12], ki so bili objavljeni v Notices of the American Mathematical Society (in so dostopni tudi na spletu). Uporabniki TEXa se združujejo v društvih; osrednje društvo je TeX Users Group (tug.org), s kratico TUG. Poleg tega obstajajo še številna lokalna društva, na primer nemški DANTE (www.dante.de), nizozemski NTG (www.ntg.nl), poljski GUST (www.gust.org.pl) itd. Društva izdajajo gla- 97–112 103 i i “Kovic” — 2015/8/11 — 12:20 — page 104 — #8 i i i i i i Jurij Kovič, Nino Bašić sila in publikacije, organizirajo strokovna srečanja, skrbijo za dopisne se- zname ipd. Slovenski dopisni seznam uporabnikov (La)TEXa najdemo na spletnih straneh društva Lugos: liste2.lugos.si/cgi-bin/mailman/ listinfo/tex-list. Sladokusci bodo želeli preizkusiti ConTeXt (wiki.contextgarden.net), LATEXovega mlaǰsega bratranca. Če v LATEXu nismo zadovoljni s privzetim videzom dokumenta in bi ga radi prikrojili po svoje, lahko vse skupaj hitro postane zapleteno. ConTEXt ponuja uporabniku veliko bolǰsi nadzor nad oblikovanjem, ne da bi se mu bilo treba naučiti nizkonivojskega TEXa. MetaPost je programski jezik za izdelavo slik na podlagi matematičnega opisa objektov. Lahko bi tudi rekli, da slike programiramo. Interpreter, ki zna opise pretvoriti v format PostScript, se imenuje mpost (poženemo ga v ukazni vrstici) in je del vsake spodobne TEX distribucije. Bralcu, ki bi se želel poglobiti v MetaPost, priporočamo članek Learning MetaPost by Doing [9]. Razvijalci ConTEXta so izdelali MetaFun, ki je nadgradnja jezika MetaPost. Obsežen in lepo izdelan priročnik je na voljo na www. pragma-ade.com/general/manuals/metafun-p.pdf. Tudi LATEX dandanes teče v oblaku; ShareLaTeX (www.sharelatex.com) je spletna storitev, ki na las spominja na urejevalnik TeXworks, poleg tega pa nam omogoča hrambo dokumentov v oblaku. Brezplačni račun omo- goča deljenje dokumenta z enim sodelavcem, plačljiv račun pa deljenje z več sodelavci in celotno zgodovino sprememb. Storitev omogoča tudi sin- hronizacijo z Dropboxom (ki ga bomo predstavili v naslednjem članku). To pomeni, da lahko z omenjeno spletno storitvijo urejate dokumente, ki jih imate shranjene v Dropboxu. Predstavitve so lahko tudi ročno delo. Če ste lastnik grafične tablice ali tabličnega računalnika, jih lahko izdelate lastnoročno z uporabo pro- grama Xournal (xournal.sourceforge.net). Tako izdelane prosojnice imajo osebno noto in lahko popestrijo duhamoren simpozij. Obvezna oprema vsakega računalnika je tudi pregledovalnik PDF do- kumentov. Za sistema Windows in OS X je najprimerneǰsi Adobe Reader (get.adobe.com/reader). To je edini pregledovalnik, ki v celoti podpira vso funkcionalnost PDF dokumentov (obrazci, digitalno podpisovanje, . . . ). Pri podjetju Adobe so se odločili, da različice za Linux ne bodo več raz- vijali. Uporabniki Linuxa imajo med drugim na voljo programa Okular (okular.kde.org) in Evince (wiki.gnome.org/Apps/Evince), ki pa sta manj zmogljiva kot Adobe Reader. Za digitalno podpisovanje lahko v sis- temu Linux uporabljate aplikacijo JSignPdf (jsignpdf.sourceforge.net). Vedno bolj popularen, še posebej za elektronske knjige, je tudi format DjVu. Več informacij o tem formatu in povezave do pregledovalnikov dobite na djvu.org. 104 Obzornik mat. fiz. 62 (2015) 3 i i “Kovic” — 2015/8/11 — 12:20 — page 105 — #9 i i i i i i Pregled sodobne programske opreme in spletnih aplikacij za matematike – 1. del Na koncu pisarnǐskega sklopa omenimo še programček PDF Split and Merge (www.pdfsam.org). Ta nam omogoča preprosto manipulacijo s PDF dokumenti, in sicer razrez dokumenta (npr. na posamezne strani) ter zdru- ževanje več dokumentov v enega (zaporedno, »na zadrgo« ipd.). Risanje Če pǐsete v LATEXu, lahko slike izdelate znotraj samega dokumenta z upo- rabo paketa tikz. PGF in TikZ2 sta pravzaprav programska jezika za izdelavo slik. Slike ne narǐsemo s klikanjem in vlečenjem mǐske, pač pa z ustreznimi ukazi podamo matematični opis objektov na sliki. PGF je niz- konivojski jezik, TikZ pa je visokonivojski jezik, zgrajen nad PGF-jem. (V podobni relaciji sta LATEX in TEX.) Začetnik bo shajal samo z jezikom TikZ. Za pokušnjo si poglejmo Petersenov graf na sliki 1, ki smo ga narisali z naslednjimi ukazi: \begin{tikzpicture} \tikzstyle{every node }=[draw , thin , circle , fill=blue!50, inner sep=3pt] \tikzstyle{every path }=[draw , line width=1pt] \foreach \i in {0, 1, ..., 4} { \node (a_\i) at (90 + 72*\i:1) {}; \node (b_\i) at (90 + 72*\i:2) {}; \path (a_\i) -- (b_\i); } \foreach \i in {0, 1, ..., 4} { \pgfmathtruncatemacro {\j}{mod(\i + 1, 5)}; \pgfmathtruncatemacro {\k}{mod(\i + 2, 5)}; \path (a_\i) -- (a_\k); \path (b_\i) -- (b_\j); } \end{tikzpicture} Na www.ctan.org/pkg/pgf lahko najdete Minimal introduction to TikZ. Ta kratki spis je nadvse primeren za prvo spoznavanje s paketkom TikZ. Na isti spletni strani najdete tudi PGF Manual. To je zelo obsežen, vendar odlično napisan priročnik; poglabljanje v TikZ začnite s poglavjem Tutori- als and Guidelines. Mnogo primerov slik, ki so izdelane s TikZ-jem, najdete na www.texample.net/tikz/examples. 2PGF je akronim za »Portable Graphics Format«, TikZ pa je rekurzivni akronim za »TikZ ist kein Zeichenprogramm«. 97–112 105 i i “Kovic” — 2015/8/11 — 12:20 — page 106 — #10 i i i i i i Jurij Kovič, Nino Bašić Slika 1. Petersenov graf, narisan v TikZ. TikZ ima številne knjižnice, ki vam olaǰsajo risanje miselnih vzorcev, dreves, končnih avtomatov, električnih vezij, koledarjev in še in še. Lahko naredite lepe barvne prelive, rǐsete v želvji grafiki in podobno. GIMP (www.gimp.org) je prost program za urejanje bitnih (rastrskih) slik3, ki deluje na vseh treh operacijskih sistemih. GIMP je akronim, ki pomeni GNU Image Manipulation Program. Bolj primeren je za ureja- nje obstoječih slik oz. fotografij, saj ponuja številna orodja za retuširanje slik. Primerljiv je s komercialnim programom Adobe Photoshop. GIMP ima odličen priročnik, ki ga najdete na uradni spletni strani. Za prvo spoznavanje priporočamo kakšnega od vodnikov za začetnike na povezavi www.gimp.org/tutorials (npr. kako popravimo efekt rdečih oči). Kot za- nimivost naj povemo, da je kot stranski produkt razvoja GIMP-a nastala prosta knjižnica za grafične uporabnǐske vmesnike GTK+. Inkscape (inkscape.org) je prost program za izdelavo vektorskih slik (te slike ostanejo gladke pri poljubni povečavi), ki deluje na vseh treh opera- cijskih sistemih. Primerljiv je s komercialnim programom Adobe Illustra- tor. S programom Inkscape lahko naredimo geometrijske objekte različnih oblik. Eden od osnovnih objektov je pot (angl. path). To lahko narǐsemo prostoročno, lahko jo podamo kot zlepek Bézierjevih krivulj, lahko pa na- redimo tudi klotoido (Eulerjeva krivulja). Na geometrijskih objektih lahko izvajamo afine transformacije bodisi z vlečenjem mǐske bodisi z numeričnim podajanjem parametrov transformacije. Če imamo grafično tablico, lahko pǐsemo kaligrafsko. Na strani inkscape.org/en/learn so zbrane povezave na vodnike, videolekcije in (prosto dostopne) knjige. Program gnuplot (www.gnuplot.info) je namenjen risanju grafov funk- cij. Je prost in deluje na vseh treh operacijskih sistemih. Z njim lahko pripravite slike visoke kvalitete, kakršne so objavljene v znanstvenih pu- 3Bitna slika je pravzaprav matrika, katere elementi predstavljajo barve ustreznih pi- kslov. 106 Obzornik mat. fiz. 62 (2015) 3 i i “Kovic” — 2015/8/11 — 12:20 — page 107 — #11 i i i i i i Pregled sodobne programske opreme in spletnih aplikacij za matematike – 1. del blikacijah. Možno je tudi risanje v 3D in izvoz slik v številne formate. Deluje v ukazni vrstici in je zelo zmogljiv; ima kar 250 strani dolg priroč- nik, ki ga najdete na uradni spletni strani. Če se ga želite naučiti upora- bljati, boste potrebovali nekaj časa; za začetek priporočamo videolekcije, ki jih je pripravil Glen MacLachlan: prvi od petih delov je na naslovu www.youtube.com/watch?v=9k-l_ol9jok. Programerje oz. ljubitelje ukazne vrstice bo navdušil programski paket ImageMagick (www.imagemagick.org). To je v osnovi programska knjižnica za obdelavo slik, ki jo lahko programerji uporabljajo iz številnih programskih jezikov. Lahko pa do njenih funkcij dostopate tudi iz ukazne vrstice: www. imagemagick.org/script/command-line-tools.php. Najbolj uporaben med temi programi je convert, ki lahko sliko poveča, zrcali, obreže, zamegli itd. Primer uporabe: convert -resize 200% slika.jpg slika2.jpg Če zgornji ukaz poženemo v ukazni vrstici, bo program odprl datoteko slika.jpg (če le-ta seveda obstaja), sliko povečal za 200 % in jo shranil v datoteko slika2.jpg. Dia (wiki.gnome.org/Apps/Dia) je prost program, ki je specializiran za risanje diagramov (diagram poteka, diagram električnega tokokroga, UML diagram, shema računalnǐskega omrežja itd.). Deluje na vseh treh operacij- skih sistemih. Za začetek priporočamo poglavje DIA: Charts and Diagrams (www.togaware.com/linux/survivor/DIA_Charts.html) iz prosto dosto- pne knjige [13]. Omembo si zasluži še program Ipe (ipe.otfried.org), ki je namenjen risanju vektorskih slik in deluje na vseh treh operacijskih sistemih. Omogoča vstavljanje besedila in enačb v TEXu ter izvoz slik v formata PDF in EPS. Odlikuje se po orodjih za pripenjanje objektov na druge objekte ali mrežo, kar nam omogoča izdelavo lepo poravnanih slik. Tako je nadvse primeren za izdelavo tehničnih skic, ki jih nameravamo vključiti v TEX dokument. Vse, kar mora uporabnik vedeti, je opisano v učbeniku ipe.otfried.org/ manual/manual.html. Dinamična geometrija GeoGebra (www.geogebra.org) je prost program za dinamično geometrijo v ravnini, ki deluje na vseh treh operacijskih sistemih (in tudi na pame- tnih telefonih). GeoGebro je ustvaril matematik Markus Hohenwarter, ki je trenutno profesor na Univerzi Johannesa Keplerja v Linzu. Projekt je 97–112 107 i i “Kovic” — 2015/8/11 — 12:20 — page 108 — #12 i i i i i i Jurij Kovič, Nino Bašić začel že leta 2001, ko je delal še na Univerzi v Salzburgu. Kasneje se mu je prostovoljno pridružilo več programerjev in prevajalcev, ki GeoGebro ves čas nadgrajujejo. GeoGebra je v prvi vrsti namenjena srednješolcem in njihovim učiteljem. Program pozna točke, vektorje, daljice, premice, mno- gokotnike, stožnice ipd. Rǐsemo lahko s klikanjem mǐske ali pa podamo opise objektov z enačbami; odtod tudi ime, saj je »GeoGebra« skovana iz besed »geometrija« in »algebra«. Z GeoGebro lahko nazorno ilustriramo različne geometrijske izreke, npr. da v vsakem trikotniku presečǐsča simetral kotov, stranic in težǐsčnic ležijo na isti premici4. Svoje prve korake lahko začnete z branjem vodnikov, ki jih najdete na wiki.geogebra.org/en/Tutorials (med njimi je tudi knjiga Introduc- tion to GeoGebra), ali pa z ogledom posnetkov na njihovem YouTube ka- nalu (www.youtube.com/user/GeoGebraChannel). Priročnik za GeoGebro (wiki.geogebra.org/en/Manual) vsebuje sistematičen pregled vse funkci- onalnosti, ki jo program ponuja. Vsak uporabnik lahko svoje izdelke objavi na GeoGebraTube (www.geogebratube.org), kjer je zbranih že več tisoč konstrukcij. Cinderella (cinderella.de) je program za dinamično evklidsko, sferno in hiperbolično geometrijo, ki deluje na vseh treh operacijskih sistemih. Odlikuje se po tem, da ima vgrajen fizikalni pogon (tj. program, ki omo- goča simuliranje fizikalnih sistemov) in svoj lastni skriptni jezik Cindy- Script. Program je sicer lastnǐski, a je od leta 2013 dalje brezplačen. Naj- več ga uporabljajo univerze po Nemčiji. Lahko začnete z dokumentacijo (doc.cinderella.de, glejte razdelek Quick start) ali pa si pogledate pre- davanje Ulricha Kortenkampa na povezavi vimeo.com/3826066. Pri založbi Springer so leta 2012 izdali knjigo The Cinderella.2 Manual. Vredno je omeniti še program OK Geometry (z-maga.si/index?action= article&id=40), pionirski projekt dr. Zlatana Magajne. Program nam po- maga opaziti vrsto relacij v geometrijskih konstrukcijah. Po svojem kon- ceptu je edinstven v svetovnem merilu. Za zdaj se uporablja predvsem v pedagogiki. Programiranje za najmlaǰse Omeniti moramo še vedno bolj priljubljena okolja za vizualno programiranje, ki otrokom olaǰsajo začetke programiranja in jih navajajo na algoritmično razmǐsljanje. Igrifikacija (angl. gamification) pomeni, da učno gradivo pri- pravimo v obliki privlačne igre, s katero učenci z lahkoto osvajajo znanje. Pedagoško pomembnost igrifikacije so prepoznali že na mnogih univerzah po 4To je tako imenovana Eulerjeva premica. 108 Obzornik mat. fiz. 62 (2015) 3 i i “Kovic” — 2015/8/11 — 12:20 — page 109 — #13 i i i i i i Pregled sodobne programske opreme in spletnih aplikacij za matematike – 1. del svetu in pri nas. Pomembno je, da otroke navdušimo za programiranje, ne pa da jih od njega odvrnemo. Ponovno želimo poudariti, kako pomembna je interaktivna izkušnja in eksperimentiranje. Že odrasli ljudje ne marajo prebirati duhamornih priročnikov, otroci pa še manj. Bolj znana razvojna okolja za otroke so Alice, Kodu, Scratch in Greenfoot. Vsakega bomo na kratko predstavili. Alice (www.alice.org) je objektno osnovan učni programski jezik. Do- bimo ga skupaj z integriranim razvojnim okoljem (angl. integrated deve- lopment environment, s kratico IDE), ki naredi programiranje zelo udobno. Razvija ga skupina, ki jo je vodil pokojni Randy Pausch, najprej na Uni- verzi v Virginiji, nato pa na CMU. Omogoča izdelovanje zgodb oz. animacij v 3D svetu ter kot tak ni namenjen matematičnemu računanju. Naš svet, ki je pravzaprav ravnina, poselimo z objekti, ki so lahko živali, predmeti in osebe. Te objekte lahko sprogramiramo, tako da se premikajo, govorijo, spreminjajo obliko itd. Osnovne ukaze oz. stavke (zanke, pogojne stavke) kar povlečemo z mǐsko v okno, kjer sestavljamo našo programsko kodo. Liki v animacijah lahko govorijo bodisi z besedilom v oblačkih (kot v stripih) ali pa s predvajanjem avdiodatotek. Isto sceno lahko prikažemo iz različnih zornih kotov (spremenimo postavitev kamere). Alice je narejen izključno kot učni jezik in zato nima vse kompleksnosti »industrijskih« jezikov. Omo- goča enostavno deljenje vaših izdelkov na spletu. Alice 2 je bolj primeren za osnovnošolce, Alice 3 pa za srednješolce. Slednji se lahko uporabi tudi kot uvod v programski jezik Java. Scratch (scratch.mit.edu) razvijajo na MIT že od leta 2006. Deluje na vseh treh operacijskih sistemih, teče pa tudi v brskalniku. Vmesnik je narejen po vzoru lego kock. Stavki so predstavljeni s pravokotnimi bloki (le-ti spominjajo na lego kocke), ki jih na ustrezen način zlagamo skupaj. Omogoča programiranje preprostih iger in animacij. Interakcija s kamero, ki zaznava premikanje, vse skupaj še bolj popestri. Svoje izdelke lahko ob- javite in jih delite z drugimi uporabniki. Tisti s programerskim znanjem boste opazili, da Scratch uporablja paradigmo dogodkovno vodenega pro- gramiranja. Po Scratchu se zgleduje Blockly Games (blockly-games.appspot.com), ki so ga izdelali pri Googlu. Z reševanjem ugank, labirintov in podobnih na- log postopoma spoznavamo nove programske konstrukte. Podoben portal je tudi Code.org (code.org), ki je skupno delo inženirjev iz različnih podjetij in je tudi zelo lepo izdelan. Kodu Game Lab (www.kodugamelab.com) je izdelalo podjetje Microsoft. Deluje na sistemu Windows in igralni konzoli Xbox. Kodu se zgleduje po okolju Alice ter omogoča izdelavo zgodb in iger. Vse se dogaja v 3D okolju, kjer ima vsak objekt individualno interakcijo s preostalim svetom. Podobno 97–112 109 i i “Kovic” — 2015/8/11 — 12:20 — page 110 — #14 i i i i i i Jurij Kovič, Nino Bašić kot pri Alice in Scratchu tudi tukaj vse naredimo z mǐsko. Vsakemu objektu posebej določamo lastnosti (npr. da plava na vodi) in način interakcije z dru- gimi objekti (lahko se jedo, streljajo ipd.). Vodniki za Kodu so že vgrajeni v samo okolje, njihova zahtevnost pa se postopno stopnjuje. Na internetu lahko dobimo svetove, ki so jih izdelali drugi uporabniki, in jih prikrojimo po svoje. Greenfoot (www.greenfoot.org) je primeren za izdelavo preprostih ra- čunalnǐskih iger v 2D svetu. Pri Greenfootu se težko izognemo pisanju programske kode v Javi. Zato ga priporočamo dijakom kot uvod v objektno programiranje. Odličen uvod v Greenfoot je serija videolekcij Joy of Code (www.greenfoot.org/doc/joy-of-code). Učenje in študij na spletu V članku smo že omenili YouTube, kjer lahko vsakdo objavi videoposnetke. V poplavi neumnih posnetkov se tu in tam najde tudi kaj kvalitetnega. Ljudje z bolj izbranim okusom imajo raǰsi portal Vimeo (vimeo.com), ki je drugi po velikosti, takoj za YouTubeom. Našega bralca raǰsi usmerimo na VideoLectures.net (videolectures.net), kjer so zbrani posnetki iz- ključno znanstvenih predavanj. Običajno imamo na strani dve okni: v enem spremljamo predavanje, v drugem pa prosojnice. Portal, ki vsebuje že več kot 19 000 posnetkov več kot 12 000 različnih predavateljev, so zasnovali raziskovalci z Instituta Jožef Stefan, začetek tega projekta pa sega v leto 2001. V zadnjih letih je na spletu nastalo lepo število portalov, ki ponujajo izobraževalne vsebine v obliki tečajev. V angleščini se je zanje uveljavila kratica MOOC, ki pomeni Massive Open Online Course [14]. Značilnost teh tečajev je, da vse poteka po spletu; tečajnik mora imeti le dostop do interneta. Število udeležencev običajno ni navzgor omejeno. Večino tečajev so pripravili na uglednih univerzah (MIT, Harvard, Stanford, . . . ) in so za udeležence brezplačni. Eden od bolj zanimivih takšnih portalov, ki je namenjen predvsem osnov- nošolcem in srednješolcem, je Khan Academy (www.khanacademy.org). Ame- ričan Salman Khan (po izobrazbi matematik, računalničar in MBA) je bil zaposlen kot analitik družbe tveganega kapitala. Leta 2004 je začel svojo sestrično inštruirati matematiko. Ker sta bivala daleč narazen (Salman v Bostonu, sestrična pa v New Orleansu), sta uporabljala program za komuni- kacijo, ki je omogočal skupno risalno površino. Ker so tudi drugi bratranci pri njem iskali učno pomoč, se je Salman odločil, da svoje videolekcije (angl. screencasts) objavi na portalu YouTube. Izkazalo se je, da je bratrancem to bolj všeč, ker lahko posnetek zaustavijo, premislijo in nato z gledanjem 110 Obzornik mat. fiz. 62 (2015) 3 i i “Kovic” — 2015/8/11 — 12:20 — page 111 — #15 i i i i i i Pregled sodobne programske opreme in spletnih aplikacij za matematike – 1. del nadaljujejo. Poleg tega si lahko posnetek ogledajo večkrat. Khan je kmalu začel dobivati zelo pozitivne komentarje neznancev z vsega sveta, ki so prav tako spremljali njegove razlage na YouTube. Leta 2006 je ustanovil nepro- fitno organizacijo Khan Academy, leta 2009 pa pustil svojo staro službo in se popolnoma posvetil poučevanju. Danes organizacija zaposljuje skupino veščih programerjev, ki skrbijo za interaktivne vsebine. Lekcije se preple- tajo s kvizi, ki so namenjeni preverjanju in utrjevanju znanja. Stran je pri- vlačna za otroke, saj uporabniki z reševanjem nalog zbirajo točke in posebne značke. Trenutno pokriva naslednja področja: matematiko (osnovnošolski, srednješolski in tudi visokošolski nivo), biologijo, fiziko, kemijo, ekonomijo, zgodovino, umetnost in računalnǐstvo. Omenimo portal mathtutor∞ (www.mathtutor.ac.uk), ki ponuja vi- deoposnetke z inštrukcijami matematike. Na portalu lahko najdemo tudi izročke in interaktivne vaje. Pripravila ga je skupina matematikov z britan- skih univerz. Tudi v Sloveniji lahko najdemo podobne entuziaste. Andrej P. Škraba je posnel številne razlage matematičnih (predvsem srednješol- skih) vsebin. Posnetki so zbrani na portalu Astra.si (astra.si). Izo- braževalne vsebine ponujata še portala E-um (www.e-um.si) in Nauk.si (www.nauk.si). Slednji je namenjen predvsem učiteljem. Bolj znani portali, ki ponujajo visokošolske tečaje, so: • Coursera (www.coursera.org), • edX (www.edx.org) in • Udacity (www.udacity.com). Poleg gledanja videolekcij (ki vključujejo tudi vprašanja v obliki kvizov) se od udeležencev pričakuje tudi sprotno reševanje domačih nalog. Tečaji imajo tudi forume, kjer lahko udeleženci in učitelji razpravljajo o obravna- vanih temah. Najstniki, ki želijo združiti prijetno s koristnim, se bodo učili izdelave spletnih strani na portalu CodeBabes (codebabes.com), kjer lekcije poda- jajo brhke mladenke. Na spletni strani mathschallenge.net najdemo skoraj 400 matematič- nih nalog z rešitvami, ki so razvrščene v 4 težavnostne skupine. Primer naloge: Dokaži, da je e ≈ 2,7182818284 iracionalno število. Bralcu, ki ima raǰsi takšne naloge, ki vključujejo pisanje računalnǐskega programa, bo gotovo všeč portal Project Euler (projecteuler.net), na katerem je zdaj že več kot 500 nalog. Pri vsaki nalogi (te so lahko zelo 97–112 111 i i “Kovic” — 2015/8/11 — 12:20 — page 112 — #16 i i i i i i Jurij Kovič, Nino Bašić kompleksne) je treba na koncu poiskati določeno število. To število lahko vnesemo prek obrazca in dobimo povratno informacijo o pravilnosti. Dijaki in učitelji boste morda želeli pobrskati po portalu Geometry from the Land of the Incas (gogeometry.com), kjer najdemo naloge iz geome- trije in njihove rešitve (na primer www.gogeometry.com/LangleyProblem. html), dinamične predstavitve izrekov, miselne vzorce ipd. Na žalost stran vsebuje oglasna sporočila in ima zastarel videz, a jo še vedno posodabljajo in je morda vredna ogleda. Srednješolec se bo razveselil portala Mathway (mathway.com), ki omo- goča, da prek enostavnega uporabnǐskega vmesnika vnesemo neko matema- tično nalogo, spletna storitev pa nam bo izdelala rešitev po korakih. Portal naj se uporablja kot izhod v sili, ne pa kot sredstvo za reševanje domačih nalog iz matematike. S tem člankom še zdaleč nismo pokrili vsega zanimivega programja. V naslednjem članku bomo predstavili še marsikaj uporabnega. Seveda upamo, da ste že v obstoječem prispevku našli kaj zase. LITERATURA [1] R. Boyd, Do People Only Use 10 Percent of Their Brains?, http://www. scientificamerican.com/article/do-people-only-use-10-percent-of-their- brains/, ogled 7. 10. 2014. [2] Slovenska iniciativa za nacionalni grid, http://www.sling.si/, ogled 7. 10. 2014. [3] M. Kramar Fijavž, Kako ǐsče Google? Obzornik mat. fiz. 61 (2014), 121–131. [4] M. Razpet, Sedi in pǐsi z LATEX-om! Ljubljana, DMFA Slovenije, 1991. [5] V. Batagelj, B. Golli, TEX : povabilo v TEX, LATEX, BIBTEX, PICTEX. Lju- bljana, DMFA Slovenije, 1990. [6] T. Oetiker, Ne najkraǰsi uvod v LATEX 2ε, 2006, dostopno na http://www-lp.fmf. uni-lj.si/plestenjak/vaje/latex/lshort.pdf. [7] A. Taranenko, Mala šola LATEXa (prvi del), Presek 32 (2005), 27–30. [8] The official SyncTEX page, http://itexmac.sourceforge.net/SyncTeX.html, ogled 24. 3. 2015. [9] A. Heck, Learning MetaPost by Doing, MAPS 32 (2005), 56–116, dostopno na http://maps.aanhet.net/maps/pdf/32_14.pdf in http://maps.aanhet.net/maps/ pdf/32_15.pdf. [10] Wikipedia, Java applet — Wikipedia, The Free Encyclopedia, http://en.wikipedia. org/wiki/Java_applet, ogled 7. 10. 2014. [11] Wikipedia, Adobe Flash Player — Wikipedia, The Free Encyclopedia, http://en. wikipedia.org/wiki/Adobe_Flash_Player, ogled 7. 10. 2014. [12] G. Grätzer, What is new in LATEX? I. Breaking free, Notices Amer. Math. Soc. 56 (2009), 627–629. [13] G. Williams, GNU/Linux Desktop Survival Guide, 2014, dostopno na http://www. togaware.com/linux/survivor/index.html. [14] Wikipedia, Massive open online course — Wikipedia, The Free Encyclopedia, http: //en.wikipedia.org/wiki/Massive_open_online_course, ogled 7. 10. 2014. 112 Obzornik mat. fiz. 62 (2015) 3