Sissejuhatus infotehnoloogiasse
...ajalugu, suunad, põhialused, tehnoloogia, äri.
![]() |
Ainekood: ITI0101 Õppejõud: Tanel Tammet |
Kontrolltööd nr 3 ja 4 siin!
Sel nädalal on meil vaja täita kaks kontrolltööd:
- Hilinenud kontrolltöö 3:
- Täismahus ITI0101 kontrolltöö nr 3 neljanda nädala materjalide kohta.
- Väiksemas mahus (see on ainule neile, kes peavad võtma vana koodiga ITV0010!) kontrolltöö nr 3 neljanda nädala materjalide kohta.
- Värske kontrolltöö 4:
- Täismahus ITI0101 kontrolltöö nr 4 viienda nädala materjalide kohta.
- Väiksemas mahus (see on ainule neile, kes peavad võtma vana koodiga ITV0010!) kontrolltöö nr 4 viienda nädala materjalide kohta.
Nüüd on olemas ka esimese kahe töö tulemused.
Infoks: kuidas teha läbi kursuse variant vana koodiga (eelmisest aastast)
Rõhuv enamus tudengeid võtavad seda kursust koodiga ITI0101: neil on nädalas kaks loengut, mõlemi kohta küsimused kontrolltöödes ja lõpuks eksamil.
Väike hulk tudengeid peavad võtma seda kursust vana koodiga ITV0010 ja väiksema punktiarvuga (vanad õppekavad): neil on nädalas ainult üks, neljapäevane loeng, kontrolltöös ja eksamil ainult selle kohta küsimused.
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:
- Neljapäeval kell 08:00: loeng eksamiks vajalike materjalide ja koduülesannetega. Õppejõud Tanel Tammet.
- Reedel 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 mikro-kontrolltöö, aega selleks on iga kord üks nädal. Kontrolltöö publitseeritakse siinsamas lehel kas nädalavahetusel või esamspäeval. 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.
Kursuse eesmärk
- Anda kokkusurutud ülevaade informaatikast tervikuna.
- Anda ajalooline ülevaade IT teooria, tehnoloogia ja äri arengust.
- Tutvustada edaspidiseid teemasid/loengukursusi stuudiumi vältel.
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.
Mitmed iseseisvad tööd kasutavad D.Ecki simulaatoreid The Most Complex Machine saidilt. Nee simulaatorid vajavad javat ja kõige parem on nad alla laadida ja oma masinas käivitada: siit leiad õpetuse, kuidas seda teha.
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, õppekavad ja teaduskond.
- Neljapäeval: Sissejuhatus. Arvuti ja info kodeerimise põhimõtted.
- Loengumaterjal: itsissejuhatus1a.ppt, itsissejuhatus1a.pdf.
- Reedel: Õppekavade ja teaduskonna ülevaade: erinevad õppejõud.
Lisaks:
- 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
2. nädal: Ajaloo algus ... 1940 ja küberkaitse.
- Neljapäeval: Varane ajalugu. Industrialiseerimine. Teoreetilised alused. Loogika. Esimesed arvutid.
- Loengumaterjal: itsissejuhatus2a.ppt, itsissejuhatus2a.pdf.
- Reedel: Küberkaitse ja IT turvaküsimused. Sten Mäses.
- Loengumaterjal: Loeng_2017_09_15_slaidid.pdf.
Lisaks:
- 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 klaviatuurist
- 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.
3. nädal: Keskajalugu 1940-1960 ja tekstitöötlus.
- Neljapäeval: Keskajalugu : II maailmasõda kuni kuuekümnendateni. Arvutid ja programmeerimine. Keeled ja rakendused. Integraalskeemid.
- Loengumaterjal: Itsissejuhatus3o.ppt, Itsissejuhatus3o.pdf.
- Reedel: Tekstitöötlus (word, powerpoint, libreoffice, Latex, markdown, ...). Ivari Horm.
- Loengumaterjal: Slaidid ja demofailid.
- Lisaks:
- Paul Graham: Undergraduation pluss järelmärkused: more advice for undergrads
- IBM-i varased mehaanilised tabulaatorid
- Fortran ja IBM 704 ja taustaks raadiolampidega arvutite suur tabel
- 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
4. nädal: Keskajalugu 1970 ... 1990 ja e-riigi kaitse
- Neljapäeval: Keskajalugu jätkub: seitsmekümnendad, kaheksakümnendad. Mikroprotsessorid. Mini-, mikro- ja persionaalarvutid.
- Loengumaterjal: Itsissejuhatus4o.ppt, Itsissejuhatus4o.pdf.
- Reedel: e-riik ja tema kaitse. Jaan Priisalu.
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
- Spacewar: esimene graafiline arvutimäng,töötav versioon javascriptis
- Atari muuseum
- mehaaniline pong
- 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
5. nädal: Lähiajalugu 1990-... ja tabelarvutus
- Neljapä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.
- Reedel: Tabelarvutus. Ivari Horm.
- Loengumaterjal: Slaidid ja demofail
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
6. nädal: Programmeerimise alused ja õppimisega hakkamasaamine.
- Neljapäeval: Programmeerimise alused, Turingi masin ja assembler ja seos riistvaraga ja abstraktsemad kihid.
- Loengumaterjal:
- Tööta läbi nii palju Easy 6502 pisiõpikust kui jõuad.
- Loe The infinite space between words
- Reedel: Kuidas õppida ja hakkama saada. Erinevad õppejõud/tudengid.
Lisaks tarkvarast:
- Proovi Apple II Karateka simu (mängimiseks qwaszx, 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:
7. nädal: Programmeerimiskeeled ja big data.
- Neljapäeval: Erinevad programmeerimiskeeled, andmetüübid ja kompileerimine/interpreteerimine.
- Reedel: andmekaeve ja big data.
Lisaks: Eck laborid jätk: loe ise läbi, proovi ja tee igast osast üks-kaks harjutust:
Siis vaata veidi neid asju:
- Tiobe programmeerimiskeelte populaarsusindeks ja hoopis teistsugune populaarsusindeksja täiendavalt väike ülevaade
- cool 6502 protsessori simulaator javascriptis
- Computer languages history
- About 2500 Computer Languages, Past and Present
- Computer language benchmarks
- uurida sarnast, alternatiivset pisimasina-simulaatorit: MarieSim,
- või lugeda ülevaadet progekeelte arengust
- vaadata detailset ülevaadet parallelismist mikroprotsessorites
8. nädal: Operatsioonisüsteemid ja administeerimine.
- Neljapäeval: Operatsioonisüsteemid.
- Loengumaterjal: Itsissejuhatus8o.ppt, Itsissejuhatus8o.pdf.
- Reedel: administreerimise sissejuhatus ja kursuse ülevaade.
- Soovitavat katsetamist:
- Eriti soovitavat lugemist:
- Muidu soovitavat lugemist:
- Wikipedia artikkel opsüsteemidest
- Linux distributions
- 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
9. nädal: Tarkvara arhitektuur ja andmebaasid.
- Neljapäeval: Tarkvara arhitektuur. Teegid, komponendid, andmebaasid jms.
- Loengumaterjal: Itsissejuhatus9o.ppt, Itsissejuhatus9o.pdf.
- Reedel: Andmebaasid: ülevaade kursusest.
Kohustuslikku lugemist
- 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
Vaata ägeda eestis loodava süsteemi demo:
- Lisaks: täiesti mittekohustuslikke ideid lugemiseks:
10. nädal: Võrgurakendused ja interneti funktsioneerimine.
- Neljapäeval: Võrgurakenduste tehnoloogia.
- Loengumaterjal: Itsissejuhatus11o.ppt, Itsissejuhatus11o.pdf.
- Reedel: Võrgu ja interneti baastehnoloogia. Ülevaade kursusest.
Lisaks:
- http://en.wikipedia.org/wiki/TCP/IP_model
- Huvi korral loe mahukamast protokollinduse kursusest lisa: Andmeside protokollid
Tutvuda lühidalt:
- Veebilehe lugemine serverist oma programmiga: http://java.sun.com/docs/books/tutorial/networking/urls/readingURL.html
- http://www.w3schools.com/.
- http://www.w3c.org/.
- XMLHttpRequest Demo (async javascript)
- Huvi korral uurimiseks: Tiny www server
- lihtsaid cgi programminäiteid ja lisaks funktsioneerivate näidetena
- Võrgurakendused I kursus.
- Apache veebiserver
- õppejõu ühe-lehe javascripti rakendus erineva data integreerimiseks: http://www.sightsmap.com/
11. nädal: Rekursioon, funktsionaal- ja loogiline progemine, algoritmid ja keerukus
- Neljapäeval: Rekursioon. Funktsionaalne ja loogiline programmeerimine.
Loengumaterjal: Itsissejuhatus12o.ppt, Itsissejuhatus12o.pdf.
- Reedel: Algoritmid ja keerukus. Ülevaade kursusest. Marko Kääramees.
Lisaks proovi ja loe veidi:
- Fraktaalid wikipedias
- Mandelbub: scrolli allapoole ja vaata videoklippe ka.
- Mandelbroti fraktaal online ja teine analoogiline programm
- Mandelbroti hulga (pildi) joonistamise programme mitmes eri keeles
- 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.
Lisaks:
12. nädal: Algoritmid, lahenduvus ja robootika.
- Neljapäeval: Algoritmid: lahenduvus.
- Loengumaterjal: Itsissejuhatus13o.ppt, Itsissejuhatus13o.pdf.
- Reedel: Robootika.
13. nädal: Tehisintellekt.
- Neljapäeval: Tehisintellekt: ülevaade, semantika, loomulik keel, loogika.
- Loengumaterjal: Itsissejuhatus14o.ppt, Itsissejuhatus14o.pdf.
- Reedel: Tehisintellekt: õppimismeetodid.
Ajuteaduse teemadel tasub kõigepealt vaadata/kuulata Metzingeri loengut
- Taustaks: ülevaade tehisintellektinduse valdkondadest
- Lisaks tasub vaadata:
- Boston Dynamics robot donkey (aka big dog) varane, big dog praegu, Cheetah, Wildcat,Petman, Atlas
- Darpa grand challenge 2005 ja urban challenge
- TTÜ roboswarm
- 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
- Loe Matrix, Skynet ja sõda teispoolsusega, Dennetti artikleid, tuntud õpikut,
14. nädal: Tarkvara arendus ja IT äri.
- Neljapäeval: Tarkvaraarendusprotsess, IT projektid ja äri.
- Loengumaterjal: Itsissejuhatus15o11.ppt, Itsissejuhatus15o11.pdf.
- Reedel: IT projektid ja äri eri firmades: Välisloengud ettevõtetest.
Lisaks:
- How projects really work
- Agile ja lisaks selle juurde Martin Fowleri artikkel
- 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: IT firma töökorraldus: 12 steps: http://www.joelonsoftware.com/articles/fog0000000043.html
- 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
15. nädal: Hinnatud oskused.
- Neljapäeval: Ettevõtete / organisatsioonide vajadused, nõutud oskused, töö. Välisloengud ettevõtetest.
- Reedel: Konsultatsioon.
Näiteid vanadest eksamitest
Siin on näited ca 10 aastat tagasi tehtud eksamitest. Tegelikud eksamiküsimused tulevad teistsugused, formaat on sama.
Kohustuslikud lugemismaterjalid
Järgnevate materjalide läbilugemine on kursuse läbimisel kohustuslik. Kursuse jooksul tuleb siia veidi täiendusi:
- Loogika ainest ja ajaloost: T.Tammet: Loogika aine ja ajalugu: sissejuhatus T.Tamme, T.Tammeti ja R.Prangi loogikaõpikule "Mõtlemisest tõestamiseni".
- Abstraktsioonidest ja tehnoloogiatükkidest: Law of leaky abstractions
- Stiilist või midagi: The Tao of Programming. Selle teksti inspiratsiooniks/taustaks on daodejing (sea brauserist view->character encoding unicode), 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
- 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
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 :-)
