Iti0101 2021
...ajalugu, suunad, põhialused, tehnoloogia, äri.
Ainekood: ITI0101 Õppejõud: Tanel Tammet |
Sisukord
- 1 NB! See on 2021 aaasta arhiiv, mitte aktuaalne info!
- 1.1 Lisaeksam COVID-i garantiinis tudengitele
- 1.2 Eksamitulemused
- 1.3 Eksamite kava ja ajad
- 1.4 Kursuse eesmärk
- 1.5 Live feed
- 1.6 Videosalvestused
- 1.7 Maht, aeg, tulemus
- 1.8 Kontrolltööd ja koduülesanded
- 1.9 Loengute plaan ja materjalid
- 1.9.1 1. nädal. Sissejuhatus: arvuti ja info, ajaloo algus ... 1940
- 1.9.2 2. nädal: Keskajalugu 1940-1960 ja arvuti riistvara
- 1.9.3 3. nädal: Keskajalugu 1970 ... 1990 ja masinalähedane programmeerimine
- 1.9.4 4. nädal: Lähiajalugu 1990-2009 ja andmetüübid masinalähedaselt
- 1.9.5 5. nädal: Operatsioonisüsteemid ja programmeerimiskeeled ja nende realisatsioon
- 1.9.6 6. nädal: Interneti funktsioneerimine ja veebirakendused
- 1.9.7 7. nädal: Tarkvara arhitektuur, litsentsid ja tekstitöötlus
- 1.9.8 8. nädal: Rekursioon ja ajuteadus
- 1.9.9 9. nädal: Masinõpe ja e-riik
- 1.9.10 10. nädal: Algoritmid: lahenduvus. Tehisintellekt.
- 1.9.11 11. nädal: Algoritmid: keerukus. Tabelarvutus.
- 1.9.12 12. nädal: Andmeteadus, andmekaeve, P2P võrgud ja bitcoin
- 1.9.13 13. nädal: Andmebaasid ja tarkvaraarendusprotsess, IT projektid ja äri
- 1.9.14 14. nädal: Andmelaod, andmevood ja loomulikust keelest arusaamine
- 1.9.15 15. nädal: Esimene loeng on salvestus/järelvaadatav, teine tava-loeng Veiko Lemberilt Taltechi Nurkse instituudist
- 1.9.16 16. nädal: Konsultatsioon eksamiks, live coding, loeng Wise (endine Transferwise) poolt
- 1.10 Näiteid vanadest eksamitest
- 1.11 Kohustuslikud lugemismaterjalid
- 1.12 Loe iga päev
- 1.13 Kuula
NB! See on 2021 aaasta arhiiv, mitte aktuaalne info!
Lisaeksam COVID-i garantiinis tudengitele
Tudengid, kes on olnud COVIDi garantiinis või muul tervislikul põhjusel ei saanud eksamitel osaleda, ja kes on selleks teinud dekanaati avalduse, saavad teha täiendava järeleksami 1. veebruaril. Valida on kas kell 10:00 või kell 12:00 ruumis 6A-201 (seal toimub samas õppejõu loeng).
Eksamitulemused
Siin on it sissejuhatuse lõplikud tulemused peale 4, 7 ja 18 jaanuari eksameid.
Samad hinded on praegu ÕISis.
Eksamite kava ja ajad
NB! Eksamile tule kindlasti maskiga ja võta kaasa pildiga dokument (see esita õppejõule, kui valmis töö üle annad).
Eksamid teeme 2022 jaanuari eksamisessioonil kohapeal audikas, jagades tudengid võimalikult hajali. Kuna tudengite arv ruumis on piiratud, siis teeme igal eksamipäeval kolm eraldi sessiooni, iga sessiooni jaoks aega poolteist tundi. Küsimused tulevad kõik üpris kiirelt vastatavad, et ka ühest tunnist piisaks.
Eksamipäevi on kolm ja eksamid toimuvad igal päeval kell 10:00, 12:00 ja 14:00 IT kolledzhi auditooriumis ICO-314. Eksamipäevad on:
- 4. jaanuar
- 7. jaanuar
- 18. jaanuar
Hajutamiseks jagab õppejõud kõigile tudengitele konkreetsed kellaajad (10, 12 või 14) neil päevadel, millal tuleb tulla eksamile. Ajad on järgmises tabelis:
2021 IT sissejuhatuse eksamite kellaaegade tabel: jaanuar 2022
Kui kellaaeg ei sobi, saaab seda mõjuval põhjusel eelnevalt muuta õppejõule kirjutades (peab saama õppejõult kinnituse).
Iga tudeng saab ühe kellaaja kas 4. või 7. jaanuaril: kindlasti tulge oma kellaajal eksamit tegema. Samuti saavad kõik tudengid ühe kellaaja 18. jaanuaril: see on mõeldud eeskätt uuesti tegemiseks, kui teil esimene eksam ebaõnnestus, või kui teil ei olnud võimalik tulla esimesel kellaajal. Kui eksam 4. või 7. jaanuaril läks OK, siis ei ole mõtet 18. jaanuaril uuesti tulla. Pärast 18. jaanuari enam eksameid/järeleksameid ei ole.
Eksamile registreerida ei ole vaja: järgi lihtsalt oma kellaaegasid.
Kursuse eesmärk
- Anda kokkusurutud ülevaade informaatikast tervikuna.
- Anda ajalooline ülevaade IT teooria, tehnoloogia ja äri arengust.
- Tutvustada edaspidiseid teemasid/loengukursusi stuudiumi vältel.
Live feed
Siin lehel on loengu ajal live videofeedi link. 100% garantiid, et ok töötab, ei ole. Otsi loetelust selle päeva värk ja proovi järgi!
Videosalvestused
3. september: sessiooniõppe sissejuhatav loeng: enamvähem sama, kui päevaõppe sissejuhatav loeng ülal.
30. september: teise loengu alguses ei ole siin natuke aega heli, aga ei maksa kohkuda, heli ilmub varsti uuesti.
7. oktoober: Ivo ja Taneli loengud.
14. oktoober: Taneli ja Ivari loengud. Ivari loengu videos ei ole seekord ekraanipilti kõrval: palun võta ise lahti Ivari loengumaterjalid ja vaata neid paralleelselt videole.
21. oktoober: Rekursioon ja ajuteadus.
28. oktoober: masinõpe ja e-riik. NB! e-riigi loengul ei ole videos materjale kõrval: vaata ise paralleelselt kõrvale loengumaterjale E-riigi arendamine_2020.pdf
4. november: lahenduvus ja tehisintellekt. Teise loengu alguses ei ole siin natuke aega heli, aga ei maksa kohkuda, heli ilmub varsti uuesti.
11. november: algoritmid ja tabelarvutus.
18. november: andmeteadus, P2P ja bitcoin
25. november: andmebaasid, projektid ja raha
2. detsember: andmelaod, andmevood ja loomulik keel ning tavamõtlemise mehhaniseerimine: ekraanipilt ja mõtestatud sisu ilmub siia ca 10. minutil.
9. detsember: Margus Freudenthali loengusalvestus, 9. detsember: Veiko Lemberi loeng: sisu ilmub 1:45, esimesed tund ja 45 minutit on tühi.
16. detsember: eksami konsultatsioon, live coding ja Wise
Maht, aeg, tulemus
Kaks järjestikkust loengut nädalas kuuenda korpuse auditooriumis U06A-229. Septembris ülekanne paralleelselt ruumis U06A-201.
- Neljapäeval kell 12:00: loeng eksamiks vajalike materjalide ja koduülesannetega. Õppejõud Tanel Tammet.
- Neljapäeval kell 13:45: süvaloengud kitsamatel teemadel, tervikkursuste ülevaated ja teemasid tööstusest. Erinevad õppejõud. Ka siin antakse vahel koduülesandeid.
Sessiooniõppe sissejuhatav loeng on reedel, 3 septembril kell 14:00 IT Kolledzhi ruumis ICO 316
Kursus lõpeb eksamiga. Eksam on kirjalik, kaks või enam tundi, kümme küsimust ja ülesannet.
Kursuse käigus on iga nädal vaja võrgus täita valikvastustega paarikümne küsimusega mikro-kontrolltöö ühe nädala materjalide kohta, aega selleks on loengupäevast kuni järgmise loengupäevani (siis tulevad uued materjalid).
Nädala kontrolltööd publitseeritakse loengupäeva õhtul või järgmise päeva hommikul.
Samuti antakse kursuse käigus teha väikeseid harjutusi: need tuleb teha iseseisvalt ja tulemused vastata samades mikro-kontrolltöödes.
Kursuse hinne arvutatakse nii: eksamipunktid (0...100) + kontrolltööde summaarne tulemus. Positiivsed hinded algavad 50 punktist. Kaks viga kontrolltöös on üks veapunkt, neli kaks veapunkti jne, tegemata kontrolltöö on viis veapunkti. Tudengi kõigi kontrolltööde miinuspunktide summast lahutatakse keskmine kontrolltööde miinuspunktide summa, vahe ongi summaarne tulemus.
Kontrolltööd ja koduülesanded
Selleks semestriks on kontrolltööd lõppenud! Viimane kontrolltöö oli kaheteistkümnenda nädala kohta: P2P, ledger ja bitcoin.
2021 it sissejuhatuse kontrolltööde lõpptulemused: jaanuar
Loengute plaan ja materjalid
Kursusel ei ole ühtegi konkreetset õpikut. Järgnevas on toodud iga loenguga seotud materjalid eraldi.
Kursus jaguneb kaheks blokiks: esimene kolmandik sissejuhatus ja ajaloopõhine tehnoloogiaülevaade, järgmised kaks kolmandikku erinevad tehnoloogiad, arvutiteadus ja äri.
Loengute plaan on esialgne, töö käigus ilmub siia kindlasti muutusi. Seega, täpselt adekvaatsed ja õiged on need materjalid, mille loeng on kas juba läbi või tuleb järgmisena: kõik tuleviku-loenguid puudutavad materjalid on vanad, ning saavad loengu kättejõudmise ajaks mingil määral modifitseeritud ja täiendatud.
1. nädal. Sissejuhatus: arvuti ja info, ajaloo algus ... 1940
2. september.
- Kell 12: Sissejuhatus. Arvuti ja info kodeerimise põhimõtted.
- Loengumaterjal: itsissejuhatus1a21.ppt, itsissejuhatus1a21.pdf.
- Kell 13:45: Varane ajalugu. Industrialiseerimine. Teoreetilised alused. Loogika. Esimesed arvutid.
- Loengumaterjal: itsissejuhatus2a.ppt, itsissejuhatus2a.pdf
- Eksamiks: pead teadma suuruse-numbreid ja mida nad tähendavad: bitt, bait, kilobait, megabait jne; oskad selgitada, kuidas tähti kodeeritakse, mis on algoritm ja mis programm. Ajaloost: Kreeka loogikud, induktsioon, deduktsioon, süllogismid, lausearvutus (pead mh oskama tõeväärtustabelit koostada), Pascal, Leibniz, perfokaardid, kangasteljed, Babbage, Hollerith, colossus ja saksa krüptomasinad, Turing, Shannon, Zuse, esimesed programmeeritavad arvutid.
Lisaks esimesele loengule:
- vaata väikest Turingi masina videot
- loe läbi: Paul Graham: Why nerds are unpopular?
- valdkonnad
- some random notes on mind, language and machines
Lisaks teisele loengule:
- Kruusi diskreetse matemaatika kursus!
- Paul Graham: What you'll wish you'd known
- Sama asi diskreetse matemaatika kursuses: harjuta lausearvutuse tõeväärtustabelite tegemist: vaata vanu eksamiülesandeid (1, 2, 3) tee ülesandeid ise juurde ja kasuta logictools.org/prop.html enesekontrolliks. Vajuta algul "help" nuppu, siis näed, kuidas valemeid kirjutada. Tõeväärtustabeli jaoks vajuta '"Build" a truth table' nuppu.
- Turingi masina simulaator ja alternatiivne simulaator
- Alustada: Loogika aine ja ajalugu
- lõpmatuse osa BBC dokumentaalsarjast
- Varastest masinatest:
- Jacquard'i kangasteljed
- QWERTY klaviatuuri päritolust ja teistsugune arvamus ja mõne eritähe ajalugu
- Näide olulisest analoogarvutist: Norden bombsight
- Inglise krüptosaaga: Colossus, Turing, sakslaste Enigma ja Lorenz SZ 40
- Esimesed digitaalsed elektriga töötavad arvutid:
- Konrad Zuse
- Atanasoffi elektronarvuti
- Mark I: esimene programmeeritav elektromehaaniline arvuti.
- Kuula Jim Kelleri episoodi "Moore’s Law, Microprocessors, Abstractions, and First Principles"
2. nädal: Keskajalugu 1940-1960 ja arvuti riistvara
9. september.
- Kell 12: Keskajalugu : II maailmasõda kuni kuuekümnendateni. Arvutid ja programmeerimine. Keeled ja rakendused. Integraalskeemid.
- Loengumaterjal: Itsissejuhatus3o.ppt, Itsissejuhatus3o.pdf.
- Kell 13:45: arvuti riistvara: transistorid, loogikalülitused, aritmeetika, mälu, programmid.
- Loengumaterjal: Itsissejuhatus_proc_21a.ppt, Itsissejuhatus_proc_21a.pdf.
- Eksamiks: transistor, Samuel, Shockley semiconductor, Fortran, Fairchild, Sage, Texas instruments, integraalskeem, cobol, lisp, pdp-1, system 360, moore's law, intel, amd, Engelbart, Unix, esimene mikroprotsessor. Relee, lihtsad elektroonikaskeemid, mitme biti liitja ja lahutaja, lihtsad mälutüübid. Peaksid oskama ehitada väikese loogikavalemi järgi loogikakomponentidest elektroonikaskeemi, mis seda realiseerib, samuti koostada paaribitiste sisendite liitjat/lahutajat, samuti kolme eraldi biti liitjat ja trigerit.
Lisaks esimesele loengule:
- Paul Graham: Undergraduation pluss järelmärkused: more advice for undergrads
- IBM-i varased mehaanilised tabulaatorid
- ferriitmälu
- Fortran ja IBM 704 ja taustaks raadiolampidega arvutite suur tabel
- Brittide varaseimad arvutid Manchesteris
- PDP-1 restoration project, ,Spacewar: esimene graafiline arvutimäng, ja ajaloo-video,töötav versioon javascriptis ja taustaks esimeste arvutimängude tabel
- Ivan Sutherland's sketchpad video vt ka sketchpadi artikkel
- Douglas Engelbart "mother of all demos"
- SAGE
- Counterculture
- Silicon Valley vt ka seda kaarti
- Whole earth catalog wikis ja skaneeritud sisu
Lisaks teisele loengule riistvarast:
- Jim Kelleri episood A.I. podcastist
- lühike lugu transistoride kasutamisest loogikalülituste ehitamiseks ja vaata veidi täienduseks siit
- 4-bit adder tutorial in detail
- Tore mõte on teha D.Ecki harjutusi, osad siit: Eck laborid. Need simulaatorid on väga vanad, aga töötavad endiselt OK. Vajavad javat ja kõige parem on nad alla laadida ja oma masinas käivitada: siit leiad õpetuse, kuidas seda teha. Süvene 4-biti liitjasse, kuni sa temast korralikult aru saad. Seejärel loe ise läbi, proovi ja tee mõlemist osast vähemalt üks harjutus, kus tuleb ise elektroonikaskeem ehitada:
- Head alternatiivsed simulaatorid katsetamiseks ja skeemide ehitamiseks:
- Minecraft: redstone ja arvutid
- introd siin ja siin ja loogikalülitused
- shock and awe: täielik 4-bitine arvuti minecraftis
- Veidi tutvuda nende saitidega:
- Loe, kuidas ARM chipid alguse said ja olid inspireeritud 6502 protsessorist:
- Protsessori simuleerimine ja ise ehitamine:
- Ecki xComputer: lihtne simulaator 6502 stiilis
- easy6502.org: päris täpne 6502 simulaator
- visual6502.org vt ka slaidid
- Build an 8-bit computer from scratch
- Mikrokontrollerid ja system on a chip:
- mikrokontrollerite ülevaade detailidega: kõik alla 1 dollari
- Raspberry Pi SOC
3. nädal: Keskajalugu 1970 ... 1990 ja masinalähedane programmeerimine
16. september
- Kell 12: Keskajalugu jätkub: seitsmekümnendad, kaheksakümnendad. Mikroprotsessorid. Mini-, mikro- ja persionaalarvutid.
- Loengumaterjal: Itsissejuhatus4o.ppt, Itsissejuhatus4o.pdf.
- Kell 13:45: Masinalähedane programmeerimine: assembler ja C.
- NB! Loengu powerpointi algus on hetkel põhiliselt kordamine: tegelik uus osa algab ca lk 21 ja seda kaetakse põhiliselt loengus interaktiivse demona, st materjalis on infot vähe. Väga soovitav on ise lugeda ja veidi harjutada Easy 6502 pisiõpikuga.
- Loengumaterjal: Itsissejuhatus_progealused_20.ppt, Itsissejuhatus_progealused_20.pdf.
- Tööta läbi nii palju Easy 6502 pisiõpikust kui jõuad.
- Loe The infinite space between words
- Loe Latency numbers ja soovitavalt lisaks palju detailsemalt
- Eksamiks: esimene mikroprotsessor, sql, arpanet, atari, cp/m, winchester, altair, alto, unix ja C, microsofti algus, apple algus, 1977 koduarvutid, visicalc, apple II, symbolics, ibm pc, sun, oracle, macintosh, apple ja microsofti tooteliinid. Riistvarast mälu tehnoloogia, cache ja mälu hierarhia, mis on assembler ja seos riistvaraga, mis on kompileerimine, linkimine, mis teeb loader.
Lisaks esimesele loengule:
- Jätk küsimusele "mida ülikoolis teha?". Joel Spolsky: Advice for Computer Science College Students
- soovitav kuulata: episood arvutimängudest MindScape podcastist ja mängi episoodi külalise paperclips mängu ja loe tausta
- Apple 1984 Macintosh: reklaamklipp ja Steve Jobs esitlemas ja 1985 mac office lemmings ja wiki
- intel 4004 skeemid, simulaatorid ja ajalugu, simulaator
- MOS 6502 simulaator ja easy 6502 pisiõpik ja terminaator oli progetud 6502 assembleris klipp
- Spacewar: esimene graafiline arvutimäng,töötav versioon javascriptis
- Atari muuseum
- mehaaniline pong ja taustaks
- SRI international
- Bell labs
- What the dormouse said raamatu täistekst ehk "how the 60s counterculture shaped the personal computer"
- Eric Raymond: How to become a hacker
- Colossal Cave (adventure) teksti-seiklusmäng online ja veidi vigane javascripti versioon. Vaata ka suuremat kollektsiooni vanade teksti-seiklusmängude javascripti-versioonidest.
- Magnavox odyssey
- Apple II Karateka simu (mängimiseks qwaszx(? või all paremal klahvid ?), tühik ja nooleklahvid). Vaata taustaks Karateka, Jordan Mechner ja Prince of Persia
Lisaks teisele loengule:
- Segaduses algajad
- Väga hea raamat riistvaralähedasest programmeerimisest: Computer Systems: A Programmer's Perspective. Randal E. Bryant and David R. O'Hallaron, Carnegie Mellon University
- Vaata, kuidas eri kompilaatorid assemblerit genereerivad
- Loe veidi ja uuri What every programmer should know about memory
- Väga vanade koduarvutite lag oli väiksem, kui praegustel: Computer latency: 1977-2017
4. nädal: Lähiajalugu 1990-2009 ja andmetüübid masinalähedaselt
23. september.
- Kell 12: Lähiajalugu: kaheksakümnendate teine pool kuni 2009. IBM PC, Macintosh, uued vanad opsüsteemid, võrgundus ja veeb, market crash, iPhone, Android, Bitcoin, e-valimised.
- Loengumaterjal a osa:Itsissejuhatus5oa.ppt, Itsissejuhatus5oa.pdf.
- Loengumaterjal b osa:Itsissejuhatus5ob.ppt, Itsissejuhatus5ob.pdf.
- Loengumaterjal c osa:Itsissejuhatus5oc1.ppt, Itsissejuhatus5oc1.pdf.
- Kell 13:45: loeng andmetüüpidest masinalähedaselt: täisarvud, komadega arvud, stringid, massiivid, listid, puud, hashid jne.
- Loengumaterjal: itsissejuhatus6b.ppt, itsissejuhatus6b.pdf
- Eksamiks: Python, html ja http, internet eestis, linux, netscape, usenet, php, päevalehed eestis, palm pilot, google, deep blue, wikipedia, x-tee. Lihtsad andmetüübid, stringid, massiivid, puud, mis on pointer.
Lisaks produktiivsuse kasvu ja innovatsiooni aeglustumisest:
- global productivity slowdown
- Peter Thiel: we wanted flying cars, instead we got 140 characters ja hariduse eesmärkidest ja kommentaare sellele
- biotechi innovatsiooni aeglustumine ja kiirelt kasvavad kulud
- has progress in science and technology come to a halt?
- freakonomicsi podcast samal teemal
Lisaks ajaloost:
- Arvutimuuseum Tartu ülikoolis
- GUI ajalugu
- 101 arvutireklaami
- Arvutite ajaloolised tv-reklaamid
- "Teejuht võrgumeediasse" toorik aastatest 1995-1996. Pakub eeskätt ajaloolist huvi.
- Tutvu: J.Penjami lühiülevaade Eestis tehtud ja olnud varastest arvutitest
- Apple Macintoshi reklaamfilm: 1984
Lisaks andmete esitusest:
- ujukoma-arvude seletus ja detailsemalt wikipedias ja ajaloost
- how to implement strings
- ja kuidas python stringe optimeerib
- pythoni listid sisemiselt
- kataloog puude visualiseerimise viisidest
- hulk eri andmetüüpide visualiseeringuid
Muud huvitavat:
5. nädal: Operatsioonisüsteemid ja programmeerimiskeeled ja nende realisatsioon
- Kell 12: Operatsioonisüsteemid
- Loengumaterjal: Itsissejuhatus8a9.ppt, Itsissejuhatus8a9.pdf.
- Kell 14: Erinevad programmeerimiskeeled ja kompileerimine/interpreteerimine.
- Loengumaterjal: itsissejuhatus_keeled.ppt, itsissejuhatus_keeled.pdf
- Eksamiks: Opsüsteemi roll, mis on distro, mis on Linux, mis on mac OS X, Android, protsessid, multitasking, paralleeltöö, wait/run, mis on interrupt, mis on virtuaalmälu. Kompileerimine, interpreteerimine, parsimine, jit, vahekood, programmeerimiskeeled vs kirjelduskeeled, json, html, sql, keelte äratundmine (assembler, fortran, cobol, lisp, C, modula/pascal, python).
Soovitavat katsetamist opsüsteemidega:
- levinux: eksperimenteerimiseks mõeldud mikro-linux: "tiny virtual Linux server that runs from USB or Dropbox with a double-click (no install or admin rights required) on Macs, Windows or Linux PCs"
- Linux windowsis - WSL - Microsofti õpetus
Eriti soovitavat lugemist opsüsteemidest:
Muidu soovitavat lugemist opsüsteemidest:
- Wikipedia artikkel opsüsteemidest
- Linux distributions
- päris hea opsüsteemide ehituse pisi-tutorial
- Ulrich Drepperi cache-lühiülevaade ja paralleelsuse-ülevaade
- üldse mitte kohustuslik (algajatel raske mõista :-) The Art of Unix Programming
- Minix: Linuxi inspiratsiooniks olnud mini-UNIX ja loe seda! ja viimase taustaks ja lisaks
- Unix history
- virtuaalmälu vikipeedias
- multitasking vikipeedias
- Väga detailne ülevaade mälu organiseerimisest
Tillukeste interpretaatorite ja kompilaatorite koodinäited:
- õppejõu mikro-interpretaator pythonis
- tilluke lispi-interpretaator pythonis ja selle lähtekood. Autoriks Peter Norvig, vt ka Norvigi oma veebileht.
- tilluke lispi kompilaator pythonis
- pythonis kirjutatud pythoni interpretaator
- Keerukam: põhjalik interpretaatori-kirjutamise veebiraamat algajatele ja veel põhjalikum veebiraamat ja lihtsa kompilaatori näide ja õpetus
Tutvu veidi nende progekeelte populaarsus-võrdlustega:
- Tiobe programmeerimiskeelte populaarsusindeks
- Githubi progekeelte populaarsusindeks
- PYPL: populaarsus tutorialite Google-otsingute järgi
- Põhjalik Githubi repode analüüs mh keelte kaupa
- Nõudluse järgi üks populaarsusindeks
Siis vaata veidi neid asju:
Ja väga detailidesse minekuks on huvitav lugeda Javascripti interpretaatorite/kompilaatorite optimeeringutest:
Muud huvitavat:
- "technology is our hope if we can accept it as our enemy, but as our friend, it will destroy us"
- sissejuhatus optimeerimisse
- veel veidi sügavamalt optimeerimisest
- gcc optimeerimisparameetrid
- Why is SQLite written in C
- Pikk raamat päris tarkvarast päris algajatele
- Toredad Pythoni pisi-mängud programmeerimise harjutustena
- How Python works: esimene osa, teine osa
6. nädal: Interneti funktsioneerimine ja veebirakendused
7. oktoober
- Kell 12: interneti funktsioneerimine: Ivo Müürsepp
- Loengumaterjal: Arvutivorgud_3.pdf: see on 8. oktoobril uuendatud Ivo materjal.
- Kell 14: Veebirakendused. Loengumaterjal: Itsissejuhatus10a20.ppt, Itsissejuhatus10a20.pdf.
- Eksamiks: Arvutivõrgud: mac aadress, ip aadress, port, ethernet, ip, tcp, udp, kapseldamine (mis mille sees). Päiste detailide kohta ei küsita. Veebirakendused: mis on http, https, html, css, javascript, ajax, json, xml, kuidas üldjoontes töötab klassikaline veebirakendus ja kuidas single-page app (koodinäiteid / nende detaile ei küsita).
Tutvuda lühidalt interneti funktsioneerimise teemal:
- Veeluste internetikaablite zoomitav kaart ja veel detailsem zoomitav kaart
- Kuidas veealused kaablid välja näevad
- Suurimad veebisaidid
- https://en.wikipedia.org/wiki/Internet_protocol_suite
- https://en.wikipedia.org/wiki/Internet_of_things
- How does the internet work?
- Huvi korral loe mahukamast protokollinduse kursusest lisa: Andmeside protokollid
Veebirakenduste teemal vaata veel:
7. nädal: Tarkvara arhitektuur, litsentsid ja tekstitöötlus
14. oktoober.
- Kell 12: Tarkvara arhitektuur. Teegid, komponendid, andmebaasid, litsentsid jms.
- Loengumaterjal: Itsissejuhatus9a21.ppt, Itsissejuhatus9a21.pdf.
- Kell 13:45: Ivari Horm räägib tekstitöötlusest.
- Esialgne loengumaterjal: teksti toimetamine. Lisaks (mittekohustuslik) on siin allpool lingid näitefailide algfailidele ja tulemustele.
- Eksamiks: kohustuslik lugemine siin all, mis on teek ja mis raamistik, nende näited, arusaamine põhilistest litsentsitüüpidest (vabavaralised (gpl vs mit ja bsd) ja mitte-vabavaralised), gpl-i põhipoindid. Tekstitöötlus: lihttekst, WYSIWYG, kooditabel, ascii, unicode, utf-8, mis on latex, markdown, nende plussid ja miinused.
Kohustuslikku lugemist sel teemal eksamiks:
- Martin Fowler tarkvara arhitektuurist
- The law of leaky abstractions
- No silver bullet ja lühem kokkuvõte
- Paul Reeves: What is software design? vana artikkel ja What Is Software Design: 13 Years Later
- mis on vabatarkvara Gnu interpretatsiooni kohaselt
Lisaks mittekohustuslikku, aga eriti soovitavat lugemist, tähtsuse järjekorras:
- Software architecture is overrated ja HN kommentaarid
- Out of the tar pit
- Stack Overflow serveerimise ülesehitusest eriti selle esimene osa
- veidi Facebooki arhitektuurist
- Fundamentals of software architecture: see ei ole vähetähtis, aga on pikk ja detailne hästi illustreeritud jutt.
Lisaks: täiesti mittekohustuslikke ideid lugemiseks:
8. nädal: Rekursioon ja ajuteadus
21. oktoober.
- Kell 12: Rekursioon, funktsionaal- ja loogiline progemine
- Loengumaterjal: Itsissejuhatus11.ppt, Itsissejuhatus11.pdf.
- Kell 13:45: Ajuteadus. Ülevaade päris aju (mitte tehis) kohta teadaolevast, põhiteooriatest ja lähenemistest.
- Loengumaterjal: Brain_science.pdf. Ivari loeng tabelarvutusest lükkus järgmisesse nädalasse.
- Eksamiks: rekursiooni äratundmine, baasjuht ja rekursiivne juht, rekursiooni ekvivalentsus tsükliga, arusaamine funktsionaalse keele näitejuppidest loengus: mida mingi näitekood teeb / mis on rehkendamise tulemus. Mis on lambda-arvutus. Prologi näide tuleb ära tunda (et on Prolog). Umbes kuipalju on neuroneid c-elegansil ja inimesel (suurusjärgud), mis on hall- ja valgeollus, mis on neuron, gliiarakk, müeliin. Kui palju sisend-väljund-jätkeid on neuronil (suurusjärgud), mis on teada neuronite ühendus(suhtlus)viisidest. Mis on Jennifer Anistoni neuron, mis on peegelneuronid ja grid cells. Mis on meem, evolutsioonipsühholoogia ja sotsiobioloogia.
Lisaks proovi ja loe veidi:
- Fraktaalid wikipedias
- Mandelbub ja selle videoklipid Mandelbox and Flying Lights, Like in a dream II, Weird planet II. Taustaks veel Geometric visual hallucinations, Euclidean symmetry and the functional architecture of striate cortex
- kiire Mandelbroti fraktaal online ja veidi aeglasem
- Mandelbroti hulga (pildi) joonistamise programme mitmes eri keeles
- fractal trees javascriptis, sissejuhatus ja terviknäide draw.html. Vt ka animeeritud puu. Siit edasi arvutigraafika veebiraamat.
- Tower of Hanoi
- Lambda-arvutus
- Vaata ja proovi näiteid modifitseerida:
- Vaata ja modifitseeri Ecki mandelbroti joonistajat ja kilpkonnagraafikat. Viimasest võta menüüst recursion tutorial ja recursive bush näide.
- Huvi korral katseta Prologi online või installeeri SWI Prolog.
Täiendavat ajuteaduse teemadel
- kõigepealt vaata/kuula TED loenguid Metzinger, Wolpert, Graziano, Hoffman
- Loe suunaseadmiseks neurons are more complex than what we have imagined
- Vaata üle need neuroteaduse wikilehed: grey matter, white matter, neuron, number of neurons, axon, synapse, glia pluss olulist rakkudest: cells are very fast and crowded places
- Vaata üle need aju funktsioneerimise wikilehed: cognitive neuroscience, computational theory of mind, global workspace theory, grandmother cell
- Jaan Aru raamat
- A.I. podcasti episoodid Brain Development from Stem Cell to Organoid. Thousand Brains Theory of Intelligence, Neuroplasticity and the Livewired Brain
- Mindscape podcasti Damasio episood, Poeppeli episood
- Brain science podcasti episood sünapside keerukusest, neural reuse and embodied cognition, synaptome, glial cells, Brain Anatomy, a brain for numbers
- Other recommended podcasts, youtube lectures and background for these
- Graziano on consciousness and neuroscience
- MIT tasuta online kursus Minds and Machines
9. nädal: Masinõpe ja e-riik
28. oktoober.
- Kell 12: Priit Järv räägib masinõppest:
- Kell 14: Margus Püüa räägib e-riigist.
- E-riigi arendamine_2020.pdf lk 1-40
- Eksamiks: mis põhiosadest koosnevad tehis-närvivõrgud, mida kasutatakse masinõppes. Mida närvivõrkudega õppe käigus tegelikult tehniliselt muudetakse? Mis on supervised learning, reinforcement learning, unsupervised learning (eeskätt, mille poolest nad üksteisest erinevad)? Mis on x-tee?
Lisaks uuri:
- Elements of AI eestikeelsed masinõppe ja närvivõrkude blokid.
- Neural networks from scratch
- Masinõpe vikipeedias
- Deep learning otse brauseris
- Brain inspired podcast neuroteaduse ja veidi masinõppe teemadel: jutuajamised päris neuroteadlastega.
- Kaggle competitions ja iseõppe kursused
- GPT-3 vikipeedias ja selle baasil tehtud Github copilot vikipeedias ja otselink
- Taneli Lühiülevaade riigi infosüsteemist.
- Taneli x-tee märkmed loengust
- Anto Veldre artiklisari x-teest
- Dirk, Robert, Tanel: On State-Level Architecture of Digital Government Ecosystems: From ICT-Driven to Data-Centric
10. nädal: Algoritmid: lahenduvus. Tehisintellekt.
4. november.
- Kell 12: Algoritmid: lahenduvus.
- Loengumaterjal: Itsissejuhatus13a.ppt, Itsissejuhatus13a.pdf.
- Kell 13:45: Tehisintellekt: laiemalt kui masinõpe.
- Loengumaterjal: ai_sissejuhatus_c.pdf.
- Eksamiks: lahenduvus teoreetilises ja tavamõttes, mis on lahenduvad ülesanded. Positiivsete täisarvude, positiivsete/negatiivsete ja murdarvude võimsuse võrdlemine ja tõestamine. Reaalarvude suurem võimsus kui täisarvude võimsus (Cantori teoreem): tõestuse idee. Mis on peatumisprobleem, selle lahendamatuse tõestuse idee. Mis on tugev ja mis nõrk AI, mis on turingi test ja mis on eliza. Mis on otsimeetodites minimax ja alpha-beta (tehnilisi detaile ja näiteid ei tule). Mis on peamise tehisintellekti arendamise meetodid/lähenemised. Mis sorti ülesandeid praegused tehisintellektisüsteemid suudavad ok/väga hästi/väga halvasti lahendada? Mis on IBM Watson ja Wolfram Alpha.
Vaata lisaks lahenduvuse teemal:
Lisaks tehisintellekti teemal:
- Väga hea mõte on teha ise läbi lihtne sissejuhatav MOOC-kursus tehisintellektist: eestikeelne või https://www.elementsofai.com/ inglisekeelne]. Selle masinõppe-blokid olid eelmise nädala soovitavas nimekirjas: nüüd vaata läbi ülejäänud.
- Boston Dynamics atlas ja valus variant ja big dog. Eriti soovitav Marc Raiberti TED talk: vaata kindlasti valusat faili hetkel 5:28 :)
- Darpa grand challenge 2005 ja darpa robotics challenge (2012-2015) fails compilation
- Miks mitte karta super-tehisintellekti
- Rodney Brooksi väike tehisintellekti-sari osa 1, osa 2, osa 3, osa 4
- How networks become conscious ja Why can't my computer understand me
- Marvin Minsky The Society of Mind
- Õppimisalgoritmidest ja Google artiklid õppimisalgoritmidest
- Teadmiste integraatorid Ibm Watson, Wolfram Alpha ja Siri
- allen AI: vaata ka projektide ülamenüüst Demo lingi alt online demosid
- Päris hea võrgust lugev ja õppiv süsteem NELL vt ka seniõpitut ja olulist alus-meetodit
- Klassikaline vestlev pseudointellekt Eliza ja modernsem vestlev pseudointellekt
- A.I. filosoofia osas loe peamist wikiartiklit ja wikiartiklit funktsionalismist
- Loe Matrix, Skynet ja sõda teispoolsusega, Dennetti artikleid, tuntud õpikut,
Taustakuulamiseks soovitavaid podcastiepisoode:
- Eriti soovitav filosoofia/praktika kokkupuutepunktina Steven Pinkeri episood väga heast ja populaarsest ai podcastist.
- Neurorehkenduste ja sümbolrehkenduste vaidluse teemal kuula Gary Marcuse episoodi AI podcastist ja vastupidi, David Silveri episoodi Alphago, Alphazero jms teemadel. Lisaks videona Yoshua Bengio ja Gary Marcuse diskussioon-
- Praktilise AI ehitamise teemal kuula David Ferrucci ibm watsoni episoodi
- Vali neist A.I. podcastist mõned ja kuula: Goertzel, Poggio,Dawkins, Chomsky, Bostrom, Hawkins, Pearl
- Soovitavaid A.I. podcaste üldse: endise nimega A.I. podcast ja siis tehnilisemad ajuteaduse-fookusega A.I. podcast, Alleni instituudi NLP podcast. Viimase kohta veel soovitavaid episoode episode 89 about dialog systems, episode 91 about executable semantic parsing, episode 59 about semantic parsing ja lõpuks demod, eriti Rover demo
11. nädal: Algoritmid: keerukus. Tabelarvutus.
11. november.
- Kell 11: Algoritmid: keerukus. Ülevaade kursusest. Õppejõud Marko Kääramees.
- Loengumaterjal: Algoritmid_2019.pdf.
- Kell 13:45: Ivari Horm räägib tabelarvutusest.
- Loengumaterjal: https://study.risk.ee/arvuti/tabelarvutus/pohimoisted (slaidid, näitefailid)
- Eksamiks: mis on algoritmide keerukus, mida tähendab suur-O (a la O(n**2)) notatsioon, mis on sorteerimisalgoritmi parim keerukus halvimal juhul, mis on erinevus merge sorti ja selection sorti vahel: algoritmi ja keerukuse mõttes, mis operatsioonid on massiividel kiiremad / aeglasemad kui listil, mismoodi kirjutatakse Excelis lihtsamaid valemeid.
Täiendavalt algoritmide teemal:
- sorteerimisalgoritmide visualiseeringud siin ja siin ja siin
- Eriliselt tore ja ilus visualiseeringutega jutt mitmete algoritmidega
- Väga paljude algoritmide ja andmestruktuuride visualiseeringud
- Suur O wikipedias ja lihtne cheatsheet
- Travelling salesman problem, simulated annealing algorithm, optimaalset lahendust otsiva programmi Java näite-lähtekood, lokaalsete otsingute (optimaalsus ei ole tagatud) visualiseering siin
- 2D raycasting
- Oligarch: õppejõu väike demo varandusliku ebavõrdsuse tekkimisest: loe juurde SciAm artiklit ja huvi korral vaata lehe lähtekoodi. Idee väikeseks hobiprojektiks: täiusta simulatsiooni niimoodi, et varade jaotus oleks tulpdiagrammina näha (agentide varade suuruse horisontaalsed jooned ülevalt alla) ja muutuks kogu simulatsiooni ajal, nii et saad jälgida, kuidas vara simulatsiooni käigus muutub ja koguneb. Selleks peab simulatsioonis joonistama välja mitte iga transaktsiooni järel, vaid mingi N järel, mis sõltub transaktsioonide koguarvust. Graafika tegemiseks loe seda tutoriali ja seda praktilist õpikut.
12. nädal: Andmeteadus, andmekaeve, P2P võrgud ja bitcoin
18. november
- Kell 12: Innar Liiv räägib andmeteadusest ja andmekaevest.
- Kell 13:45: Peer-to-peer võrgud, distributed ledger ja bitcoin. P2p_ledger_bitcoin.ppt, P2p_ledger_bitcoin.pdf.
- Eksamiks: peamised P2P liigid, milleks on / mida optimeerib Bittorrent, darkneti / TORi põhiideed, mis ja milleks on Bitcoinis kaevandamine / proof of work.
Lisaks vaata:
Lisaks P2P-st, ledgerist ja bitcoinist:
- Vaata üle võrgurakendused II kursuse teemad
- Vaata Bitcoini tehnoloogiajuppide interaktiivset demo: võta ülamenüüst järjest "Hash", "Block", "Blockchain" ja proovi järgi.
- bitcoini ülevaade osa 1
- bitcoini ülevaade osa 2
- bitcoini ülevaade osa 3
- bitcoini hetke-statistika
- bitcoini ledgeri uute blokkide hetke-ülevaade
- väike natuke veider jutt bitcoini probleemidest ja tugevustest
13. nädal: Andmebaasid ja tarkvaraarendusprotsess, IT projektid ja äri
25. november.
- Kell 12: Erki Eessaar räägib andmebaasidest. Andmed, informatsioon, andmebaas, andmebaasisüsteem, SQL, NoSQL. SQLis (PostgreSQL) väike näide tabelite loomise ning andmete otsimise ja muutmise kohta.
- Loengumaterjal: Andmebaasidest_s2021.pdf ja täiendavalt xlsx ja sql näitefailid
- Kell 13:45: Tarkvaraarendusprotsess, IT projektid ja äri.
- Eksamiks: (1) Alltoodud kohustuslike artiklite läbilugemine. (2) Mis asi on: andmebaas, andmebaasisüsteem, SQL, projektide realiseerimise kosemudel (waterfall) ja agiilne mudel.
Proovi järgi andmebaaside teemal; kui keeruline, tee algul läbi walkthrough ja/või w3schools SQL tutorial.
- SQL murder mystery
- endale installeerimiseks ja katsetamiseks: sqlite
- väike näide, kuidas pythonist sqlite kasutada ilma midagi installeerimata.
Lisaks projektidest:
- How projects really work ja selle pikk ajalugu
- Agile, agile manifesto ja selle põhimõtted ja lisaks selle juurde Martin Fowleri vana artikkel ja uus artikkel
- Paul Graham alustamisest: do things that do not scale
- Sam Altmani startup-kursuse loenguvideod
- Kohustuslikud artiklid (toodud ka sellel lehel allpool,kohustuslike lugemismaterjalide osas):
- Paul Graham: How to start a startup?
- Paul Graham: Great hackers
- Joel Spolsky: The iceberg secret revealed
- Joel Spolsky: IT firma töökorraldus: 12 steps
- Paul Reeves: What is software design? vana artikkel ja What Is Software Design: 13 Years Later
- Fred Brooks 1986: No Silver Bullet
- Random ramblings: Top ten geek business myths
- 20 aastat kogemust tarkvara arendusmeetoditega
14. nädal: Andmelaod, andmevood ja loomulikust keelest arusaamine
2. detsember.
- Kell 12: Orion Governance kaasasutaja ja chief data scientist Kalle Tomingas räägib väga suurte infosüsteemide andmeladudest, andmevoogudest ja analüüsist.
- Kell 14: Loomulikust ehk inimkeelest arusaamine: hetkeseis, meetodid ja arengud.
- Loengumaterjal: nlp.pdf
Lisaks loomulikust keelest ja tavamõtlemise mehhaniseerimisest:
- Väga hea õpik: 3. variandi draft või 2. variandi terve pdf. Vektorsemantikast arusaamiseks loe 3. variandi ptk 3. N-gram Language Models ja siis ptk 6: Vector Semantics and Embeddings. Vektorsemantika kasutamine närvivõrkudes a la Bert ja GPT on hästi kirjas ptks 7: Neural Networks and Neural Language Models
- GPT-3 API beta publicly available without a waiting period. There is also a playground on the web.
- teadmiste formaliseerimise kursus
- Kui tahad katsetada toore Wikipedia dataga, siis saab loengus vaadatud töödeldud variante siit (tarballid sisaldavad datat, selgitavat README-d ja tarkvara selle ise ehitamiseks): a compacted pure-text version of full wikipedia, A lemmatized version of wikipedia texts, Several co-occurrence matrices and lists of top-co-occurring words for wikipedia
- Loengus vaadatud gk: tavamõtlemise mehhaniseerimise proge koos näidetega
15. nädal: Esimene loeng on salvestus/järelvaadatav, teine tava-loeng Veiko Lemberilt Taltechi Nurkse instituudist
9. detsember.
- Kell 12: Margus Freudenthal (X-tee/UXP arendusjuht) Cyberneticast räägib sellest (järelvaadatav) kuidas saada heaks programmeerijaks?. Saadaval ka loenguslaidid.
- Kell 13:45: Loeng Veiko Lemberilt Nurkse instituudist.
16. nädal: Konsultatsioon eksamiks, live coding, loeng Wise (endine Transferwise) poolt
16. detsember.
- Kell 12 Esimene osa: konsultatsioon eksami teemal: mida küsitakse, kuidas toimub, kuidas hinnatakse, mida õppida jne. Teises osas räägib Martin Verrev live codingust ja generatiivsetest videotest.
- Kell 13:45 Wise. Presentatsioon taustaks: Media:wise_taltech_talk.pdf
Linke live codingu teemast:
- https://toplap.org/
- http://www.mimproject.org/ vt ka http://www.mimproject.org/lunar-sound
- http://processing.org
- https://www.dwitter.net/
- https://p5js.org ntx https://p5js.org/examples/simulate-brownian-motion.html
- http://openprocessing.org ntx https://openprocessing.org/sketch/835887
- Martini näide alustuseks: https://www.dropbox.com/s/4ksa844tu99xtjh/p5_alustuseks.zip?dl=0
Näiteid vanadest eksamitest
Siin on näited väga ammu tehtud eksamitest. Tegelikud eksamiküsimused tulevad teistsugused, formaat on sama.
Kohustuslikud lugemismaterjalid
Järgnevate materjalide läbilugemine on kursuse läbimisel kohustuslik ja nende kohta tuleb eksamil lugemiskontrolli-küsimusi:
- Loogika ainest ja ajaloost: T.Tammet: Loogika aine ja ajalugu: sissejuhatus T.Tamme, T.Tammeti ja R.Prangi loogikaõpikule "Mõtlemisest tõestamiseni".
- Alan Turing Computing Machinery and intelligence
- Abstraktsioonidest ja tehnoloogiatükkidest: Law of leaky abstractions
- Paul Graham Hackers and painters
- Stiilist või midagi: The Tao of Programming. Selle teksti inspiratsiooniks/taustaks on daodejing, see tausta-originaal-daodejing ei ole kohustulik lugemine.
- Kohustuslikud artiklid IT projektide, ideoloogia, äri ja juhtimise teemal on järgmised. Neid "ära õppida" vms pole vaja, piisab lihtsast mõnusast kiirest läbilugemisest:
- Paul Graham: How to start a startup?
- Paul Graham: Great hackers
- Joel Spolsky: The iceberg secret revealed
- Joel Spolsky: IT firma töökorraldus: 12 steps
- Paul Reeves: What is software design? vana artikkel ja What Is Software Design: 13 Years Later
- Gnu manifestid The Free Software Definition ja Selling Free Software
- Fred Brooks 1986: No Silver Bullet
- Random ramblings: Top ten geek business myths
- 20 aastat kogemust tarkvara arendusmeetoditega
Loe iga päev
- http://news.ycombinator.com/
- http://www.reddit.com (hea mõte on registreeruda ja valida sobivad alamredditid, näiteks
Kuula
Mh vaata läbi varasemate episoodide loetelu ja kuula, kui tundub põnev:
- ai podcasti, näiteks Steven Pinkeri episoodi.
- Mindscape podcasti
Mõned valikepisoodid mujalt: