Sissejuhatus infotehnoloogiasse
...ajalugu, suunad, põhialused, tehnoloogia, äri.
Ainekood: ITI0101 Õppejõud: Tanel Tammet |
Sisukord
- 1 Kursuse eesmärk
- 2 Videosalvestused
- 3 Maht, aeg, tulemus
- 4 Kontrolltööd ja koduülesanded
- 5 Loengute plaan ja materjalid
- 5.1 1. nädal. Sissejuhatus baasvärkidesse: arvuti ja info, ajaloo algus ... 1940
- 5.2 2. nädal: Keskajalugu 1940-1960 ja arvuti riistvara
- 5.3 3. nädal: tekstitöötlus ja tabelarvutus: loengud annab Ivari Horm
- 5.4 4. nädal: sisu ja ettekanded planeerimisel. Robootika ja küberkaitse?
- 5.5 5. nädal: Keskajalugu 1970 ... 1990 ja masinalähedane programmeerimine
- 5.6 6. nädal: lähiajalugu 1990-2009 ja andmetüübid masinalähedaselt
- 5.7 7. nädal: programmeerimiskeeled ja opsüsteemid
- 5.8 8. nädal: sisu ja ettekanded planeerimisel. Interneti funktsioneerimine ja andmebaasid?
- 5.9 9. nädal: veebirakendused ja tarkvara arhitektuur
- 5.10 10. nädal: rekursioon, rekursiivsed keeled, algoritmid ja keerukus
- 5.11 11. nädal: algoritmid: lahenduvus ja teoreetiline arvutiteadus
- 5.12 12. nädal: tehisintellekt ja masinõpe
- 5.13 13. nädal: suured keelemudelid ja planeerimisel
- 5.14 14. nädal: Hajussüsteemid, plokiahelad ja ajuteadus
- 5.15 15. nädal: tarkvara arendusprotsess ja konsultatsioon eksamiks
- 5.16 16. nädal: tarkvaraettevõtted, olulised praktilised oskused ja reserv
- 6 Näiteid vanadest eksamitest
- 7 Kohustuslikud lugemismaterjalid
- 8 Loe iga päev
- 9 Kuula
Kursuse eesmärk
- Anda kokkusurutud ülevaade informaatikast tervikuna.
- Anda ajalooline ülevaade IT teooria, tehnoloogia ja äri arengust.
- Tutvustada edaspidiseid teemasid/loengukursusi stuudiumi vältel.
Videosalvestused
Loengu ajal on live feed ja video salvestatakse järelvaatamiseks. Põhilink on siin. Konkreetsete videoalvestuste lingid leiad edaspidi lisaks allpool nädalate loengupresentatsioonide järel.
Maht, aeg, tulemus
Kaks järjestikkust loengut nädalas neljapäeviti kuuenda korpuse auditooriumis U06A-229.
- Neljapäeval kell 12:15: loeng eksamiks vajalike materjalide ja koduülesannetega. Õppejõud üldjuhul Tanel Tammet.
- Neljapäeval kell 14:00: nii tavaloengud kui süvaloengud kitsamatel teemadel, tervikkursuste ülevaated ja teemasid tööstusest. Erinevad õppejõud. Ka siin antakse vahel koduülesandeid.
Sessiooniõppe (IADB10A, IADB10B) sissejuhatav loeng on reedel, 5. septembril kell 17:45 - 19:15 hetkel teadmata auditooriumis.
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 loengujärgse esmaspäeva hommikust järgmise loengupäeva (reede) lõpuni. Koduülesanded ja harjutused - kui neid antakse - on kontrolltöö üheks osaks.
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
Kontrolltööd/koduülesanded on lihtsa veebivormi kujul ja ilmuvad siia lõiku järgmisel päeval peale loengut (reedel) ja jäävad üles vähemalt järgmise loengupäeva (neljapäev) lõpuni.
Lisaks ülesannetele küsime samal vormil ka küsimusi ja kogemusi, mida järgmises loengus (ja mujal) läbi mõelda ja arvestada.
Kontrolltöö jaoks sisse logida ei ole vaja, täida vorm ja valikud ja vajutada "Salvesta" nuppu.
Palun täida korrektselt alguse väljad matriklinumber, nimi ja email: nende järgi lähevad tulemused sulle arvesse. "Matriklinumber" on sinu tudengikood, a la 205384iadb.
Kontrolltöö salvestamise järel sa ei näe, mis läks õigesti ja mis ei, ega mitu punkti said. Küll aga öeldakse sulle vastuseks, kas salvestamine õnnestus või ei. Kui sa ei näe tulemust "Sinu vastus on salvestatud, aitäh!", siis on sul mõni väli täitmata, võrguühendus katkes vms: sel juhul palun kontrolli vormi sisu ja salvesta uuesti.
Süsteem lubab - tehniliselt - sul salvestada vastuseid mitu korda, aga arvesse läheb ainult esimene.
Vahetulemused pannakse üles ca kord kuus.
Loengute plaan ja materjalid
Kursusel ei ole ühtegi konkreetset õpikut. Järgnevas on toodud iga loenguga seotud materjalid eraldi.
Kursus jaguneb mitmeks blokiks, mis toimuvad kuigivõrd segiläbi:
- Erinevad IT teemad, millest osa annab Tanel, osad teised õppejõud.
- Ajaloopõhine tehnoloogiaülevaade: kuidas asjad töötavad, miks ja kuidas on nad selliseks arenenud.
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 baasvärkidesse: arvuti ja info, ajaloo algus ... 1940
4. september.
- Kell 12:15: Sissejuhatus. Arvuti ja info kodeerimise põhimõtted.
- Loengumaterjal: itsissejuhatus1a24.pptx, itsissejuhatus1a24.pdf.
- Kell 14:00: Varane ajalugu. Industrialiseerimine. Teoreetilised alused. Loogika. Esimesed arvutid.
- Loengumaterjal: itsissejuhatus1b24.pptx, itsissejuhatus1b24.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:
- katseta datareps lehel erinevaid esitusi, püüa neist aru saada ja guugelda vajadusel juurde
- vaata korra ascii tabelit
- uuri veidi kooditabeleid unicode veebisaidil
- loe läbi mõni nendest Paul Grahami (Y combinatori asutaja) esseedest: Why nerds are unpopular?, The lesson to unlearn, How to think for yourself.
- valdkonnad
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.
- Vaata veidi ühte Turingi masina videot ja siis katseta: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
11. september.
- Kell 12:15: Keskajalugu : II maailmasõda kuni kuuekümnendateni. Arvutid ja programmeerimine. Keeled ja rakendused. Integraalskeemid.
- Loengumaterjal: Itsissejuhatus3o.ppt, Itsissejuhatus3o.pdf.
- Kell 14:00: arvuti riistvara: transistorid, loogikalülitused, aritmeetika, mälu, programmid.
- Loengumaterjal: Itsissejuhatus_proc_23.ppt, Itsissejuhatus_proc_23.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
Lisaks teisele loengule riistvarast:
- Jim Kelleri episood A.I. podcastist
- lühike lugu transistoride kasutamisest loogikalülituste ehitamiseks ja vaata veidi täienduseks siit
- Ecki loogikalülituste simulaator. Kindlasti vaata ka infot ja veidi keerukamaid näiteid ja mälunäiteid.
- Alternatiivina on päris head ka logic.ly demo (also 4-bit adder) or try 4-bit adder tutorial in detail: you can try out and edit half-built parts. See also this. Samuti on-line ja selle tutorial ning see allalaetav
- 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: tekstitöötlus ja tabelarvutus: loengud annab Ivari Horm
18. september.
- Kell 12:15: tekstitöötlus: Teksti Toimetamine 2024. Lisaks (mittekohustuslik) on siin allpool lingid näitefailide algfailidele ja tulemustele.
- Kell 14:00: tabelarvutus: Ivari Horm. Loengumaterjalide leht 2024.
4. nädal: sisu ja ettekanded planeerimisel. Robootika ja küberkaitse?
25. september.
- Kell 12:15: sisu ilmub edaspidi. Võimalik variant: robootika alused. Vaata ka biorobootika keskus ja presentatsioon 2023 aastast: Robootika alused
- Kell 14:00: sisu ilmub edaspidi. Võimalik variant: küberkaitse, vt näiteks Loengumaterjal 2023 aastast
5. nädal: Keskajalugu 1970 ... 1990 ja masinalähedane programmeerimine
2. oktoober
- Kell 12:15: Keskajalugu jätkub: seitsmekümnendad, kaheksakümnendad. Mikroprotsessorid. Mini-, mikro- ja persionaalarvutid.
- Loengumaterjal: Itsissejuhatus4o.ppt, Itsissejuhatus4o.pdf.
- Kell 14:00: 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 lisaks lugeda ja veidi harjutada Easy 6502 pisiõpikuga.
- Loengumaterjal: Itsissejuhatus_progealused_20.ppt, Itsissejuhatus_progealused_20.pdf.
- Loenguvideo.
- 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
- Popular Science täielik arhiiv
- 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. Prince of Persia lähtekood (Apple II 6502 assembler).
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
6. nädal: lähiajalugu 1990-2009 ja andmetüübid masinalähedaselt
9. oktoober
- Kell 12:15: 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 14:00: andmetüübid 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 (täisarvud, ujukoma-arvud, üksiktähed, tõeväärtused), stringid, massiivid, puud, mis on pointer.
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:
7. nädal: programmeerimiskeeled ja opsüsteemid
16. oktoober
- Kell 12:15: Erinevad programmeerimiskeeled ja kompileerimine/interpreteerimine.
- Loengumaterjal: itsissejuhatus_keeled.ppt, itsissejuhatus_keeled.pdf,
- Kell 14:00: opsüsteemid
- Loengumaterjal: Itsissejuhatus_opsyst.ppt, Itsissejuhatus_opsyst.pdf.
- Eksamiks: Kompileerimine, interpreteerimine, parsimine, jit, vahekood, programmeerimiskeeled vs kirjelduskeeled, json, html, sql, keelte äratundmine (assembler, fortran, cobol, lisp, C, modula/pascal, python). 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.
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
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 requestide ja repodes kasutatavuse järgi.
- PYPL: populaarsus tutorialite Google-otsingute järgi
- Nõudluse järgi üks populaarsusindeks ja teine.
Siis vaata veidi neid asju:
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
- Minix: Linuxi inspiratsiooniks olnud mini-UNIX ja loe seda! ja viimase taustaks ja Intel Management Engine wikist.
- Unix history
- virtuaalmälu vikipeedias
- understanding paging
- multitasking vikipeedias
- Väga detailne ülevaade mälu organiseerimisest
- Windows NT vs UNIX design
- Hea väike tehniline raamat sise-ehitusest
- Unixi autorite väike varane ülevaade põhi-ideedest
Muud huvitavat masintest, optimeerimisest ja progekeeltest, mitte niivõrd opsüsteemidest:
8. nädal: sisu ja ettekanded planeerimisel. Interneti funktsioneerimine ja andmebaasid?
23. oktoober
- Kell 12:15: sisu ilmub edaspidi. Võimalik variant: arvutivorgud_ivo_2024.pdf: see on 2024 aasta Ivo materjal.
- Kell 14:00: sisu ilmub edaspidi. Võimalik variant: andmebaasid, näiteks andmebaasidest_2024.pdf ja täiendavalt xlsx näitefail ja sql näitefail
- Eksamiks?: Arvutivõrgud: mac aadress, ip aadress, port, ethernet, ip, tcp, udp, kapseldamine (mis mille sees). Päiste detailide kohta ei küsita. Andmebaasid: mis asi on andmebaas, andmebaasisüsteem, SQL, NoSQL.
Tutvuda lühidalt interneti funktsioneerimise teemal:
- Veeluste internetikaablite zoomitav kaart ja veel detailsem zoomitav kaart
- Kuidas veealused kaablid välja näevad
- https://en.wikipedia.org/wiki/Internet_protocol_suite
- https://en.wikipedia.org/wiki/Internet_of_things
- steampunk film pakettide liikumisest
- How does the internet work?
- Huvi korral loe mahukamast protokollinduse kursusest lisa: Andmeside protokollid
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.
9. nädal: veebirakendused ja tarkvara arhitektuur
30. oktoober
- Kell 14:00: veebirakendused. Näiteks Itsissejuhatus10a20.ppt, Itsissejuhatus10a20.pdf, Martini slaidid on siin.
- Kell 12: Tarkvara arhitektuur. Teegid, komponendid, andmebaasid, litsentsid jms.
- Loengumaterjal: Itsissejuhatus9a21.ppt, Itsissejuhatus9a21.pdf.
- Eksamiks: Mis on veebirakendustes front-end, back-end, mis on GET ja POST vahe, mis on SPA (single page application) ja nö klassikalise veebirakenduse vahe, mis on ja milleks kasutatakse: http, https, html, css, javascript, json, "ajax". Veebirakendused: kuidas üldjoontes töötab klassikaline veebirakendus ja kuidas single-page app (koodinäiteid / nende detaile ei küsita).Tarkvara arhitektuur: 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.
Veebirakenduste teemal vaata veel:
Kohustuslikku lugemist arhitektuuri 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 arhitektuurist, 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:
10. nädal: rekursioon, rekursiivsed keeled, algoritmid ja keerukus
6. november
- Kell 12:15: rekursioon.
- Kell 14:00: algoritmid ja keerukus. Ülevaade kursusest.
- Loengumaterjal: Algoritmid_2024.pdf.
- 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, näidete rehkendamise tulemused. Prologi ja lambda-arvutuse näited tuleb ära tunda ja näidete puhul aru saada, mis nende rehkendamise tulemus on. Algoritmid: 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, quick sorti ja selection sorti vahel: algoritmi ja keerukuse mõttes, mis operatsioonid on massiividel kiiremad / aeglasemad kui listil.
Lisaks proovi ja loe veidi rekursiooni teemadel:
- 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
- Lihtne fraktaal-puu javascriptis draw.html ja keerulisem moving fractal trees in javascript. 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
- Lambda-arvutuse kalkulaator näidete ja detailsete sammudega
- Proovi Prolog online või installeeri SWI Prolog.
- Prolog tõenäosustega
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, lahenduse visualiseering
11. nädal: algoritmid: lahenduvus ja teoreetiline arvutiteadus
13. november
- Kell 12:15: Algoritmid: lahenduvus.
- Loengumaterjal: Itsissejuhatus13a.ppt, Itsissejuhatus13a.pdf.
- Kell 14:00: Teoreetiline arvutiteadus.
- 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.
Vaata lisaks lahenduvuse teemal:
- Kardinaal
- Cantori teoreem
- Halting problem
- Incompleteness theorems
- Raamat Gödeli tõestus koos õppejõu järelsõnaga täiendavate seostega nii lõpmatuse kui mittelahenduvusega.
12. nädal: tehisintellekt ja masinõpe
20. november
- Kell 12:15: tehisintellekt üldpildina
- Kell 14:00: masinõpe.
- Loenguslaidid. Priit õpetab mh kursust Tehisintellekti ja masinõppe alused
- Eksamiks: Mis on tugev (üldine) ja mis nõrk (kitsas) AI. Mis on tehisintellekti talved ja umbes millal olid tehisintellekti populaarsuse tõusud ja langused, ja mis olid eri tõusulainete puhul olulisemad meetodid. 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)?
Lisaks tehisintellekti teemal nö klassikalisi materjale:
- Taneli AI sissejuhatuse materjalid.
- Väga hea mõte on teha ise läbi lihtne sissejuhatav MOOC-kursus tehisintellektist: eestikeelne või https://www.elementsofai.com/ inglisekeelne].
- GPT ja DALL-E ise katsetamiseks: rega ja proovi! Tasuline, aga (a) suur hulk krediiti algul (st algus tasuta) (b) katsetamiseks ka edasi väga odav
- 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
- Rodney Brooksi väike tehisintellekti-sari osa 1, osa 2, osa 3, osa 4 ja blog
- 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
- 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
Lisaks uuri masinõppe kohta:
- 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 vikipeedias ja selle baasil tehtud Github copilot vikipeedias ja otselink.
- GPT-3/4 jne ja DALL-E api ise katsetamiseks: rega ja proovi! Tasuline, aga (a) suur hulk krediiti algul (st algus tasuta) (b) katsetamiseks ka edasi väga odav
13. nädal: suured keelemudelid ja planeerimisel
27. november
- Kell 12:15: suured keelemudelid
- Loengumaterjal: Keelemudelid.pdf
- Kell 14:00: planeerimisel
- Eksamiks: Keelemudelitest: Mis on N-gramm mudelid ja mis numbrilist väärtust nendega arvutatakse? Mis on sõnavektorid? Mis moel genereerib suur keelemudel (LLM) vastust? Mis on zero-shot ja mis on one-shot tüüpi ülesanne LLM jaoks? Kas LLM sisaldab konkreetset teadmiste baasi? Mis on LLM-i peenhäälestamine?
Täiendavalt loomuliku keele teemal:
- Speech and Language Processing: tõenäoliselt parim õpik loomuliku keele töötluse teemal (vabalt veebist loetav).
- LLMi ise-ehitamise jaoks on tõenäoliselt parim Andrey Karpathy õppevideo koos nullist tausta ja kogu vajaliku pythoni-koodiga
- LLMi kasutamiseks oma tarkvaras on suhteliselt lihtne ja hea variant OpenAI API
14. nädal: Hajussüsteemid, plokiahelad ja ajuteadus
4. detsember
- Kell 12:15: Hajussüsteemid, plokiahelad ja krüptoraha.
- Kasutame osi mõlemist materjalist: Dirk Drahemi loenguslaidid ja T.Tammeti P2P loenguslaidid
- Kell 14:00: Ülevaade päris aju (mitte tehis) kohta teadaolevast, põhiteooriatest ja lähenemistest.
- Loengumaterjal: Brain_science.pdf.
Täiendavalt hajussüsteemidest: vaata seda kursust.
Täiendavalt plokiahelatest:
- detailsem plokiahela ülevaade
- Kriitiline taust blockchaini mõistmiseks
- Vaata Bitcoini tehnoloogiajuppide interaktiivset demo: võta ülamenüüst järjest "Hash", "Block", "Blockchain" ja proovi järgi.
- Erinevad krüptorahad, nende hetkehinnad, turumahud jms
- bitcoini hetke-statistika
- bitcoini ledgeri uute blokkide hetke-ülevaade
Täiendavalt ajuteaduse teemal:
- Loe suunaseadmiseks neurons are more complex than what we have imagined
- Vaata/kuula TED loenguid Metzinger, Wolpert, Graziano, Hoffman.
- Süvitsi minemiseks on parim podcast Brain Inspired: a podcast where neuroscience and AI converge
- Mindscape podcast sisaldab samuti päris hulga ajuteaduse-temaatilisi episoode, näiteks Damasio episood, Poeppeli episood
- Klassikaline podcastisari Brain Science on samuti päris hea.
15. nädal: tarkvara arendusprotsess ja konsultatsioon eksamiks
11. detsember
- Kell 12:15: Tarkvara arendusprotsess, projektid ja IT äri. Loengumaterjal: Itsissejuhatus_projektid_raha_22.pdf.
- Kell 14:00: konsultatsioon eksamiks
- Eksamiks: Projektidest: Projekti jaotus etappideks, kosemudel vs agiilne arendus. Alltoodud kohustuslike projektide/äri-artiklite läbilugemine.
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 uuem artikkel
- Paul Graham alustamisest: do things that do not scale
- Sam Altmani startup-kursus ja video-playlist
- 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
16. nädal: tarkvaraettevõtted, olulised praktilised oskused ja reserv
18. detsember
- Kell 12:15: tarkvara-toodete ehitamise - product engineering - ja vajalike/abiks/super oskuste teemal. Presentatsioon 2023: Tootefirmad 2023.pdf
- Kell 14:00: reserv: sisu hiljem
Eksamiks näiteks: Ettevõtetest: mis on tootefirma / traditsioonilise "agency" põhierinevused. Mida tähendab data-driven tootearendus. Mis on MVP. Mis stsenaariumites/olukordades on mõistlik kasutada "asynchronous messaging"-u?
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:
- Ülipopulaarse Lex Fridmani podcasti (varem nimega AI podcast) tehnoloogia-episoode (varem rohkem, viimasel ajal harvemini), näiteks Jim Kelleri episood. Spetsiifiliselt AI osas tasub kuulata näiteks neid väga erinevaid vaatenurki eri sorti tipptegijatelt ja mõtteliidritelt: Francois Chollet, Yann LeCun, Gary Marcus, Demis Hassabis, Ilya Sutskever, Ben Goertzel.
- Kvantfüüsiku Mindscape podcasti valitud osi. Mõned soovitused: Blaise Agüera y Arcas, David Krakauer, Christoph Adami, Peter Godfrey-Smith, Yejin Choi, Hugo Mercier, Andrew Pontzen.
Tehnilisemate podcastide osas on väga head (jällegi, vaata varasemaid episoode läbi ja vali) näiteks:
- Brain Inspired: päris neuroteaduse podcast, kerge fookusega seostele AI-ga
- machine learning street talk (mlst)
Mõned väga head valikepisoodid teistest podcastidest:
- Jonathan Webber on deceiving with words episood. Väga lühike, algab justkui triviaalselt, aga varsti enam nii mitte väga.
- Andy Clarki episood (predictive brain, embodied cognition, and the extended mind) täisvariant Sam Harrise podcastist. Kui ei tööta, siis üldlink lühendatud versioonile siin.
- Donald Hoffman: The Illusion of Reality. Eriti radikaalse ja eksootilise, samas populaarse teadvuseteooria näide. Hoffmanni lühem ja fokuseeritud esitus on see TED talk. Vbl alusta viimasega. Vahepeal viidatud "illusionisti" superklassiku Dennetti TED talki ideed on samamoodi eksootilised, aga vastupidises suunas.