Iti0101 2019
...ajalugu, suunad, põhialused, tehnoloogia, äri.
Ainekood: ITI0101 Õppejõud: Tanel Tammet |
Sisukord
- 1 SEE on 2019 aasta arhiiv, mitte hetke õppematerjalid
- 1.1 Eksamiajad ja olulist
- 1.2 Uurimiseks
- 1.3 Kursuse eesmärk
- 1.4 Videosalvestused
- 1.5 Maht, aeg, tulemus
- 1.6 Kontrolltöö ja koduülesanne
- 1.7 Praktilised iseseisvad tööd
- 1.8 Loengute plaan ja materjalid
- 1.8.1 1. nädal. Sissejuhatus: arvuti ja info, ajaloo algus ... 1940
- 1.8.2 2. nädal: Keskajalugu 1940-1960 ja e-riik.
- 1.8.3 3. nädal: Keskajalugu 1970 ... 1990 ja küberkaitse.
- 1.8.4 4. nädal: Lähiajalugu 1990-... ja e-riik edasi: ohud, analoogid
- 1.8.5 5. nädal: Programmeerimise alused, masinalähedane programmeerimine ja andmetüübid
- 1.8.6 6. nädal: Programmeerimiskeeled ja suurte infosüsteemide andmearhitektuur.
- 1.8.7 7. nädal: Operatsioonisüsteemid ja tekstitöötlus
- 1.8.8 8. nädal: Tarkvara arhitektuur ja tabelarvutus
- 1.8.9 9. nädal: Võrgurakendused ja interneti funktsioneerimine
- 1.8.10 10. nädal: Rekursioon, funktsionaal- ja loogiline progemine, reaalsed projektid
- 1.8.11 11. nädal: Algoritmid: lahenduvus ja keerukus.
- 1.8.12 12. nädal: Tehisintellekt ja andmeteadus.
- 1.8.13 13. nädal: Arendusprotsess, IT äri ja P2P võrgud, ledger, bitcoin
- 1.8.14 14. nädal: Masinõpe ja projektide arendus
- 1.8.15 15. nädal: Konsultatsioon ja e-valimised.
- 1.8.16 16. nädal: Andmebaasid ja loengud ettevõtetest.
- 1.9 Näiteid vanadest eksamitest
- 1.10 Kohustuslikud lugemismaterjalid
- 1.11 Väga kasulikud lugemismaterjalid: loe neid!
- 1.12 Kui kõik tundub liiga lihtne, siis:
SEE on 2019 aasta arhiiv, mitte hetke õppematerjalid
Eksamiajad ja olulist
Palun võta eksamile kaasa pildiga dokument!
Eksamiks on kolm päeva, külastada saad omal valikul kahte neist.
Kõik tudengid jaotame kahte gruppi: üks grupp eksamipäeva esimesel ajal (12:00), teine eksamipäeva teisel ajal (15:00). Tüüpiline eksamiks kuluv aeg on üks tund, aga võib teha aeglasemalt: maksimaalne lubatud aeg on kaks ja pool tundi. Eksam on kirjalik, materjale, mobiile jne kasutada ei või. Mis ajal tulla: esimesel ajal (12) on kõik IADB tudengid, teisel ajal (15) kõik mitte-IADB tudengid.
Kõik eksamid toimuvad esmaspäeviti kell 12:00 ja kell 15:00:
- 06.01.2019 12:00 (IADB) ja 15:00 (mitte-IADB) ruumis U02-102
- 13.01.2019 12:00 (IADB) ja 15:00 (mitte-IADB) ruumis U06A-229
- 20.01.2019 12:00 (IADB) ja 15:00 (mitte-IADB) ruumis U02-102
Kolmanda eksami järel ehk lõpptulemused on nüüd ÕISis.
Teise eksami järel tulemused: kompaktselt (ainult hinded) ja detailselt (hinded ja punktid, millest hinded arvutatud)
Esimese eksami järel tulemused: iti01010 6 jaan 2020 eksam 1
Kontrolltööde vahetulemused 13 jaanuari seisuga on siin.
Eksamiks õppimine: pane tähele, et allpool on iga nädala juures lühike ülevaade teemadest, mis võivad tulla eksamile (ja väljapool neid teemasid küsimusi siis ei tule). Teisisõnu, õppides vaata kindlasti, et tutvud nende teemadega, ning lisaks loed läbi kohustusliku kirjanduse, mis on toodud eraldi peatükis lehe lõpupool.
Uurimiseks
Vaata seda simulatsiooni, loe viidatud artiklit ja tutvu lähtekoodiga. Päris üllatav asi ja arusaadav näide eriti lihtsast veebirakendusest.
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.
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
Enamik loenguid on vaadatatavad sellelt lingilt.
Maht, aeg, tulemus
Kaks loengut nädalas. Kui pole teisiti märgitud, toimuvad kõik loengud auditooriumites U06A-201 ning U06A-229 järgmistel aegadel:
- Esmaspäeval kell 12:00: loeng eksamiks vajalike materjalide ja koduülesannetega. Õppejõud Tanel Tammet.
- Teisipäeval kell 12:00: süvaloengud kitsamatel teemadel, tervikkursuste ülevaated ja teemasid tööstusest. Erinevad õppejõud. Ka siin antakse vahel koduülesandeid.
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 kümne-kahekümne küsimusega mikro-kontrolltöö ühe nädala materjalide kohta, aega selleks on iga kord kuni jooksva nädala laupäevani.
Nädala kontrolltööd publitseeritakse hiljemalt nädala teisipäeva õhtuks. Vahel publitseeritakse kontrolltööd ka varem.
Samuti antakse kursuse käigus teha 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. Igas kontrolltöös on ca kümme küsimust: 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öö ja koduülesanne
Kontrolltööde vahetulemused 13 jaanuari seisuga on siin.
Praktilised iseseisvad tööd
Kursuse käigus tuleb teha mõned iseseisvad praktilised tööd, mille kohta on jooksvates kontrolltöödes küsimusi ja mille ainetel tulevad mõned küsimused eksamil.
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.
Senised loengud peaksid olema vaadatavad sellelt lingilt
NB! Ei ole mingit garantiid, et loengud jäävad üles mitmeks kuuks või et kõik loengud võrku ilmuvad.
1. nädal. Sissejuhatus: arvuti ja info, ajaloo algus ... 1940
2. september.
- Esmaspäeval: Sissejuhatus. Arvuti ja info kodeerimise põhimõtted.
- Loengumaterjal: itsissejuhatus1a9.ppt, itsissejuhatus1a9.pdf.
- Teisipäeval: 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 esmaspäevale:
- vaata väikest Turingi masina videot
- loe juttu ja mängi andmete esitamise appletiga. Vajab javat ja sul brauseri all tõenäoliselt käima ei lähe. Seega kas: (a) loe siit, kuidas Ecki laborid oma masinasse panna ja lae alla ning katseta laboriga DataReps.jar mille jutu leiad siit allosast Data Representations alt (b) või säti brauser lubama valitud applette: loe siit
- loe läbi: Paul Graham: Why nerds are unpopular?
- loe läbi: Tanel Tammet: Inimlikkus on loomalikkus
Lisaks teisipäevale:
- 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 seda rakendust enesekontrolliks. Vajuta algul selle rakenduse "syntax" nuppu, siis näed, kuidas valemeid kirjutada. Tõeväärtustabeli jaoks vajuta '"Build" a truth table' nuppu.
- Turingi masina 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.
2. nädal: Keskajalugu 1940-1960 ja e-riik.
9. september.
- Esmaspäeval: Keskajalugu : II maailmasõda kuni kuuekümnendateni. Arvutid ja programmeerimine. Keeled ja rakendused. Integraalskeemid.
- Loengumaterjal: Itsissejuhatus3o.ppt, Itsissejuhatus3o.pdf.
- Teisipäeval: e-riik. Margus Püüa.
- 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. E-riigist: mis on xtee.
Lisaks:
- 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
3. nädal: Keskajalugu 1970 ... 1990 ja küberkaitse.
16. september
- Esmaspäeval: Keskajalugu jätkub: seitsmekümnendad, kaheksakümnendad. Mikroprotsessorid. Mini-, mikro- ja persionaalarvutid.
- Loengumaterjal: Itsissejuhatus4o.ppt, Itsissejuhatus4o.pdf.
- Teisipäeval: Küberkaitse. Sten Mäses. NB! Sisu on peamiselt videosalvestuses, .pdf on viimase taustaks.
- 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. Küberkaitse termineid: turvateater, malware, cookie, phishing, social engineering.
Lisaks:
- Jätk küsimusele "mida ülikoolis teha?". Joel Spolsky: Advice for Computer Science College Students
- Apple 1984 Macintosh: reklaamklipp ja Steve Jobs esitlemas
- 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
- Eric Raymond: How to become a hacker
- Colossal Cave (adventure) teksti-seiklusmäng 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
4. nädal: Lähiajalugu 1990-... ja e-riik edasi: ohud, analoogid
23. september.
- Esmaspäeval: Lähiajalugu: kaheksakümnendate teine pool kuni 2005. IBM PC, Macintosh, uued vanad opsüsteemid. Võrgundus ja veeb.
- Loengumaterjal a osa:Itsissejuhatus5oa.ppt, Itsissejuhatus5oa.pdf.
- Loengumaterjal b osa:Itsissejuhatus5ob.ppt, Itsissejuhatus5ob.pdf.
- Loengumaterjal c osa:Itsissejuhatus5oc.ppt, Itsissejuhatus5oc.pdf.
- Teisipäeval: e-riigi põhimõtted, ohud, analoogid. Jaan Priisalu, linkedin.
- Eksamiks: Python, html ja http, internet eestis, linux, netscape, usenet, php, päevalehed eestis, palm pilot, google, deep blue, wikipedia, x-tee.
Lisaks:
- Arvutimuuseum Tartu ülikoolis
- Thirst for knowledge may be opium craving
- 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
5. nädal: Programmeerimise alused, masinalähedane programmeerimine ja andmetüübid
30. september.
- Esmaspäeval: Programmeerimise alused, Turingi masin ja assembler ja seos riistvaraga ja abstraktsemad kihid.
- Loengumaterjal: itsissejuhatus6a.ppt, itsissejuhatus6a.pdf.
- Tööta läbi nii palju Easy 6502 pisiõpikust kui jõuad.
- Loe The infinite space between words
- Loe Latency numbers every programmer should know
- Teisipäeval: loeng andmetüüpidest masinalähedaselt: täisarvud, komadega arvud, stringid, massiivid, listid, puud, hashid jne.
- Loengumaterjal: itsissejuhatus6b.ppt, itsissejuhatus6b.pdf
- Eksamiks: turingi masin, relee, mälutüübid. Lihtsad andmetüübid (täisarvude, ujukoma-arvude, tähtede esitamine), stringid, massiivid, puud.
Lisaks tarkvarast:
- 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
- Ajalooteema meenutuseks proovi 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 riistvarast:
- lühike lugu transistoride kasutamisest loogikalülituste ehitamiseks ja vaata veidi täienduseks siit ja protsessorist siit
- Tore mõte on teha D.Ecki harjutusi, osad siit: Eck laborid. Need simulaatorid 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:
- Minecrafti spetsidele: 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:
6. nädal: Programmeerimiskeeled ja suurte infosüsteemide andmearhitektuur.
7. oktoober
- Esmaspäeval: Erinevad programmeerimiskeeled, kompileerimine/interpreteerimine.
- Loengumaterjal: itsissejuhatus7.ppt, itsissejuhatus7.pdf
- Teisipäeval: Kalle Tominga loeng suurte infosüsteemide andmevoogudest. Loengu slaidid siin, vaata ka videosalvestust. Kalle on startupi Orion Governance chief data scientist & co-founder, eelmine aasta kaitses ta TTU-s oma doktoritöö samal teemal, mida Orion Governance teeb.
- Eksamiks: kompileerimine, interpreteerimine, parsimine, jit, vahekood, programmeerimiskeeled vs kirjelduskeeled, json, html, sql, keelte äratundmine (assembler, fortran, cobol, lisp, C, modula/pascal, python). Mis on data warehouse.
Lisaks: Tutvu veidi nende populaarsus-võrdlustega:
- Tiobe programmeerimiskeelte populaarsusindeks
- Githubi progekeelte populaarsusindeks
- Põhjalik Githubi repode analüüs mh keelte kaupa
- Nõudluse järgi populaarsusindeks
Tillukeste interpretaatorite ja kompilaatorite koodinäited:
Siis vaata veidi neid asju:
Ja väga detailidesse minekuks on huvitav lugeda Javascripti interpretaatorite/kompilaatorite optimeeringutest:
7. nädal: Operatsioonisüsteemid ja tekstitöötlus
14. oktoober.
- Esmaspäeval: Operatsioonisüsteemid.
- Loengumaterjal: Itsissejuhatus8a9.ppt, Itsissejuhatus8a9.pdf.
- Teisipäeval: tekstitöötlus (word, libreoffice, Latex, markdown, ...) Ivari Horm.
- Loengumaterjal: https://study.risk.ee/arvuti/tekstitootlus/redigeerimine (slaidid, näitefailid)
- 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. Tekstitöötlus: lihttekst, WYSIWYG, kooditabel, ascii, unicode, utf-8, mis on latex, markdown.
Soovitavat katsetamist:
- Eriti soovitavat lugemist:
- Muidu soovitavat lugemist:
- 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
- Unix history
- virtuaalmälu vikipeedias
- multitasking vikipeedias
- Väga detailne ülevaade mälu organiseerimisest
8. nädal: Tarkvara arhitektuur ja tabelarvutus
21. oktoober.
- Esmaspäeval: Tarkvara arhitektuur. Teegid, komponendid, andmebaasid jms.
- Loengumaterjal: Itsissejuhatus9a9.ppt, Itsissejuhatus9a9.pdf.
- Teisipäeval: tabelarvutus, Ivari Horm.
- Loengumaterjal: https://study.risk.ee/arvuti/tabelarvutus/pohimoisted (slaidid, näitefailid)
- 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. Tabelarvutuse kohta küsimusi ei tule.
Kohustuslikku lugemist
- 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: täiesti mittekohustuslikke ideid lugemiseks:
9. nädal: Võrgurakendused ja interneti funktsioneerimine
28. oktoober.
- Esmaspäeval: Võrgurakenduste tehnoloogia.
- Loengumaterjal: Itsissejuhatus10.ppt, Itsissejuhatus10.pdf.
- Teisipäeval: interneti funktsioneerimine
- Loengumaterjal: Itsissejuhatus10o9.ppt, Itsissejuhatus10o9.pdf.
- Eksamiks: 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). Arvutivõrgud: mac aadress, ip aadress, port, ethernet, ip, tcp, udp, kapseldamine (mis mille sees). Päiste detailide kohta ei küsita.
Tutvuda lühidalt võrgurakendustest:
Tutvuda lühidalt interneti funktsioneerimisest:
- 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
10. nädal: Rekursioon, funktsionaal- ja loogiline progemine, reaalsed projektid
4. november.
- Esmaspäeval: Rekursioon. Funktsionaalne ja loogiline programmeerimine.
- Loengumaterjal: Itsissejuhatus11.ppt, Itsissejuhatus11.pdf.
- Teisipäeval: Reaalsetest arendusprojektidest räägib Markus Karileet Helmesest. Loengumaterjal: Projects_mk.pptx, Projects_mk.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. Prologi näide tuleb ära tunda (et on Prolog). Arendusprojektide kohta küsimusi ei tule.
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:
- Võta seesama Ecki labor, mis varem (Ecki laborite allalaadimine ja katsetamine) ja käivita TMCM_Labs.jar.
- Avanevas menüüs võta xTurtle lab ja lae sisse näiteks BinaryTrees.txt, RecursiveBush.txt, KochCurves.txt
- Loe lisaks Lihtsamad rekursiivsed pildid
- Huvi korral installeeri ja proovi Prologi: SWI Prolog.
11. nädal: Algoritmid: lahenduvus ja keerukus.
11. november.
- Esmaspäeval: Algoritmid: lahenduvus.
- Loengumaterjal: Itsissejuhatus13a.ppt, Itsissejuhatus13a.pdf.
- Teisipäeval: Algoritmid: keerukus. Ülevaade kursusest. Õppejõud Marko Kääramees.
- Loengumaterjal: Algoritmid_2019.pdf.
- Eksam: 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. Keerukusest: mis on algoritmide keerukus ja mis on O-notatsioon. Mis on sorteerimise parim keerukus halvimal juhul.
Vaata lisaks lahenduvuse teemal:
ja algoritmide teemal:
- sorteerimisalgoritmide visualiseeringud siin ja siin ja siin
- Travelling salesman problem, optimaalset lahendust otsiva programmi Java lähtekood, lokaalsete otsingute (optimaalsus ei ole tagatud) visualiseeringud siin ja siin
12. nädal: Tehisintellekt ja andmeteadus.
18. november
- Esmaspäeval: Tehisintellekt: ülevaade, semantika, loomulik keel, loogika.
- Loengumaterjal: Itsissejuhatus14o.ppt, Itsissejuhatus14o.pdf.
- Teisipäeval: andmeteadus ja andmekaeve, õppejõud Innar Liiv. NB! Selle loengu kohta ei ole slaidimaterjale, aga Innar lubas neid saata, kui kirjutad ja küsid innar.liiv@taltech.ee
- Eksamiks: 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 masinõpe. Mis on IBM Watson ja Wolfram Alpha. Võib tulla küsimus, et kas mingit sorti ülesannet praegused tehisintellektisüsteemid suudavad ok/väga hästi/väga halvasti lahendada. Andmeanalüüsi kohta küsimusi ei tule.
Väga hea mõte on teha ise läbi lihtne sissejuhatav MOOC-kursus tehisintellektist: eestikeelne või inglisekeelne.
Ajuteaduse teemadel tasub kõigepealt vaadata/kuulata Metzingeri loengut
- Taustaks: tehisintellektinduse magistrikursus TTÜs ja ülevaade tehisintellektinduse valdkondadest
- Lisaks tasub vaadata:
- 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
- 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
- Loe Matrix, Skynet ja sõda teispoolsusega, Dennetti artikleid, tuntud õpikut,
13. nädal: Arendusprotsess, IT äri ja P2P võrgud, ledger, bitcoin
25. november.
- Esmaspäeval: Tarkvaraarendusprotsess, IT projektid ja äri.
- Loengumaterjal: Itsissejuhatus15o11.ppt, Itsissejuhatus15o11.pdf.
- Teisipäeval: Peer-to-peer võrgud, distributed ledger ja bitcoin. P2p_ledger_bitcoin.ppt, P2p_ledger_bitcoin.pdf.
- Eksamiks: Arendusprotsessi kohta loengumaterjalidest küsimusi ei tule. Küll aga on küsimused allpool kohustuslike artiklite kohta. P2P teemadel: peamised P2P liigid, milleks on / mida optimeerib Bittorrent, darkneti / TORi põhiideed, mis ja milleks on Bittorrentis kaevandamine / proof of work.
Lisaks projektidest:
- How projects really work
- Agile ja lisaks selle juurde Martin Fowleri artikkel
- Programmeerimine: oskajad ja mitteoskajad
- 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
- 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
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
14. nädal: Masinõpe ja projektide arendus
2. detsember
- Esmaspäeval: masinõpe. Loenguslaidid näidetega. Priit Järv.
- Teisipäeval: IT projektid, rollid, arendustöö: Markus Karileet Helmesest. Markuse loengumaterjal.
- Eksamiks: peamised masinõppe liigid, mille jaoks nad sobivad (näited ja lühiselgitus).
15. nädal: Konsultatsioon ja e-valimised.
9. detsember.
- Esmaspäeval: Konsultatsioon eksami teemal: mida küsitakse, kuidas toimub, kuidas hinnatakse, mida õppida jne.
- Teisipäeval: T. Tammet räägib e-valimistest: tavavalimised, e-valimiste variandid, ülemaailne praktika, eesti e-valimiste areng, tähelepanekud, ohud, arenguvõimalused jne. Pluss hea võimalus eksami kohta küsida. Loengumaterjal: Evalimised2a.pdf
- Eksamiks: mida peab hääletamissüsteem tagama, miks on i-hääletamine keerulisem, kui internetipangandus, mis on topeltümbriku süsteem ja kuidas see põhijoontes on Eesti i-hääletusel implementeeritud, mis on i-hääletamisel hääle töötlemise põhisammud (ehk, mida on protsessi käigus vaja teha).
Lisaks e-valimistest:
- Solvaku ja Vassili põhjalik ülevaade e-valimiste arengust, kasutusest, efektidest 2005-2015
- E-valimiste üldleht
- Praeguse süsteemi üldkirjeldus
- Tehnilised dokumendid, spetsifikatsioonid
- E-valimiste võimaluste analüüs riigikogule 2001 aastal
- vana süsteemi lähtekood
- praeguse süsteemi lähtekood
- Valimiste tüüpide interaktiivne ülevaade
16. nädal: Andmebaasid ja loengud ettevõtetest.
16. detsember.
- Esmaspäeval: Priit Raspel räägib andmebaasidest. Priidust on TTÜ lehel tore artikkel ja err-s samuti hea artikkel
- Teisipäeval: loeng Transferwisest: tehnoloogiad, arhitektuur, kasulikud oskused jne.
Proovi järgi; 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.
Näiteid vanadest eksamitest
Siin on näited ca 15 aastat tagasi 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
Väga kasulikud lugemismaterjalid: loe neid!
- Loe iga päev: http://news.ycombinator.com/
- Loe iga päev: http://www.reddit.com (hea mõte on registreeruda ja valida sobivad alamredditid, kindlasti
- Loe regulaarselt: http://www.slashdot.org
- Loe regulaarselt: http://www.engadget.com
- Loe regulaarselt: http://www.news.com
Kursuse käigus on mõistlik lugeda valikut artikleid kõigist neist saitidest:
- Paul Grahami esseed, uusi suhteliselt harva.
- Jargon leksikon ja the New Hacker's Dictionary.
- The cathedral and Bazaar
- Gnu manifestid
- David Eck: Labs and Applets for "The Most Complex Machine".
Kui kõik tundub liiga lihtne, siis:
- Loe läbi enamus Paul Grahami esseid.
- Loe läbi Steven Raymondi raamat (NB! algajatel raske õieti mõista :-) The Art of Unix Programming
- Võta ette programmeerimise süvendatud algkursus.
- Tee omal käel ette läbi terve Programmeerimise põhikursus (peaasi: tee kõik harjutustööd: programmeerimise õppimiseks ainus viis on palju programmeerida :-)
- Õpi assembleris programmeerima (üpris ebapraktiline oskus, aga hästi hariv :-)