Programming 1
Тематический план
-
Namen predmeta Programiranje 1 je naučiti bruce programirati. Programiranje je osnovna veščina računalnikarja in kdor je ne bo obvladal, bo imel težave tudi ves preostanek študija. Z bolj optimističnega konca: kdor se bo potrudil pri tem predmetu (in drugih v prvem letniku), se mu bo to obrestovalo tako v višjih letnikih kot v življenju.
-
-
Izpit
-
Problem v testih za nalogo 4: če vam testa
self.assertEqual({'i', 'A', 'p', 'T', 'B', 'z', 'j', 'e'}, vrhovi(skladovnica, ".", 2)) self.assertEqual({'i', 'A', 'p', 'T', 'B', 'z', 'j'}, vrhovi(skladovnica, ".", 3))
javljata napako, da množica, ki jo vrača vaša funkcija, vsebuje dodatni element
y
, ga dodajte. Se pravi, pravilno jeself.assertEqual({'i', 'A', 'p', 'T', 'B', 'z', 'j', 'e', 'y'}, vrhovi(skladovnica, ".", 2)) self.assertEqual({'i', 'A', 'p', 'T', 'B', 'z', 'j', 'y'}, vrhovi(skladovnica, ".", 3))
Če testi že brez tega pravijo, da vaša funkcija deluje pravilno, pa jih pustite, kot so. (Problem je v resnici v slovarju, ki opisuje skladovnico.)
-
Zapiski predmeta v času izpitov
Večina povezav na novejše zapiske predavanj in rešitev domačih nalog od 20/21 naprej vodi na github. Ker je v času izpita internet, razen Učilnice, zaprt, je tule objavljena arhiv z zapiski v Jupyter notebook. Tako PyCharm kot VS Code jih znata normalno odpreti. Zapiske o imenskih prostorih, risanju, definiranju novega razreda ter rešitve vaj in starejših domačih nalog pa lahko normalno gledate na Učilnici.
-
-
Zapiski specifični za vaš predmet so v podmapi p1. Vsi zapiski so v obliki jupyter notebook (.ipynb). (Za vsak slučaj pa so pretvorjeni še v PDF, čeprav je pretvorba ponekod bolj zasilna.)
-
Zbrani zapiski predmeta
Povezave na zapiske predavanj, dodatnih predavanj in domačih nalog so v vsakem poglavju predmeta. Tule pa so zbrani vsi zapiski v treh oblikah:
- Arhiv zapiskov: za ogled in poganjanje na vašem računalniku. Zahteva nameščen Jupyter notebook
- Repozitorij na Githubu: za statičen ogled v brskalniku.
- Binder: za poganjanje in preskušanje v brskalniku, brez nameščanja lokalnega Pythona in Jupytra. (Spremembe se ne shranijo, temveč izginejo po 30 minutah neuporabe!) Zapiski za ta predmet so v mapi p1.
Zapiski, ki iz tehničnih razlogov niso pripravljeni kot Jupyter notebook, so dostopni le v pripadajočih poglavjih na Učilnici.
-
-
Na prvem predavanju smo videli, da so računalniki pravzaprav samo malo večji (težji, dražji) kalkulatorji. Z malo več pomnilnika. No, poleg tega jim lahko napišemo tudi več računov naenkrat, na zalogo, pa jih bodo izračunali lepo enega za drugim.
-
PredavanjaZa tiste, ki že znajo programiratiker predavanja in vaje včasih spominjajo na sceno iz serije, po kateri je Python dobil ime.za tiste, ki raje poslušate kot berete.Malo za zraven: v kaj se prevaja Python?VajeDomača naloga
-
-
Poleg tega, da znajo izvajati zaporedje računov, lahko računalnikom rečemo, naj kak račun izračunajo le, če je rezultat prejšnjega računa tak in tak. Ali pa, naj nekaj stavkov ponavlja, dokler je izpolnjen kak pogoj.
To pa je že približno vse, kar znajo sploh početi računalniki.
-
.PredavanjaUgonobila ga je logika njegove žene.
Za tiste, ki že znajo programiratiKaj je
bool
; kaj v resnici počnetaand
inor
; nekaj boljšega kotswitch
VajeStare domače naloge
Domača naloga
-
-
Doslej so spremenljivke vsebovale eno samo, preprosto vrednost, recimo število. Kadar imamo cel seznam vrednosti, jih spravimo v ... seznam.
Druga tema tega poglavja so zanke. While ni niti edina niti najbolj uporabljana zanka. Njena konkurenca je zanka for, ki steče prek seznama reči, prek črk v nizih, prek vrstic v datotekah...
-
.PredavanjaZa tiste, ki že znajo programirati
Numpy je knjižnica, ki naredi Python učinkovit in hiter.
VajeStare domače naloge
Domača nalogaDomača naloga (2)
-
-
Naši programi se neusmiljeno daljšajo. Da jih bomo še lahko obvladovali, se jih bomo morali naučiti razkosati na posamezne dele, ki opravljajo posamezna opravila. Naučiti se moramo pisati funkcije. To nam bo precej olajšalo življenje.
-
.PredavanjaZa tiste, ki že znajo programiratiPovzetek predavanj, potem malo težje teme
VajeStare domače naloge
Razen pri nalogah iz prvih let so domačim nalogam priloženi testi. Povezave so v besedilih.
Domača naloga
-
-
Da bomo počasi začeli pisati programe, ki v resnici kaj naredijo, moramo izvedeti, kje dobiti še kakšno uporabno funkcijo ter kaj vse še znajo nizi, seznami in terke.
-
.PredavanjaZa tiste, ki že znajo programiratiVajeStare domače naloge
Domača naloga
-
-
Seznami so uporabni, hitro pa naletimo na reči, ki jim niso dorasli. Potrebovali bi nekaj drugega. Potrebovali bi ... slovarje.
-
.PredavanjaZa tiste, ki že znajo programiratiVajeStare domače naloge
Nekatere naloge vključujejo delo z datotekami, ki smo jih včasih obravnavali pred slovarji.
Domača naloga
-
-
Vse, kar smo počeli doslej, postane okorno v primerjavi s tem, kar se naučimo tule. Večina funkcij, ki smo jih doslej pisali na predavanjih in vajah ter v domačih nalogah, se lahko brez težav spravi v eno samo (in navadno niti ne zapleteno) vrstico.
-
.PredavanjaNa željo študentov. Drugače to ni užitno. Raje berite zapiske. :)
Za tiste, ki že znajo programirati... in kaj v resnici počne zanka
for
Lepa razlaga vsega tega v Pythonovi dokumentacijiVajeStare domače naloge
Domača naloga
-
-
Doslej so spremenljivke preprosto - bile. Zdaj se bomo vprašali, kaj spremenljivke pravzaprav so, kje živijo, kdo jih vidi, kaj pomeni prirejanje...
-
.PredavanjaStran, ki ilustrira programe (lahko tudi vaše) na podoben način, kot smo jih na teh predavanjih.Za tiste, ki že znajo programiratiVajeStare domače naloge
Domača naloga (za oceno)
-
-
Čas je, da se naši programi vsaj malo znajdejo v resničnem svetu. Zato se moramo naučiti, kako lepo izpisovati in kako brati datoteke. Na predavanjih smo se naučili nekaj malega, v zapiskih je malenkost več ... več pa v Programiranje 1 ne sodi, temveč se boste teh reči učili sproti.