Sissejuhatus informaatikasse
...ajalugu, suunad, põhialused, paradigmad, äri.
Ainekood: ITV0010
Link: http://www.lambda.ee/index/Sissejuhatus_informaatikasse ehk http://www.lambda.ee/index/itv0010
Lektor: Tanel Tammet
Kontakt: tammet@staff.ttu.ee, 6203457, TTÜ AK223
Venekeelsete kursuste lektor: Deniss Kumlander
NB! Käesolev leht kuulub arhiivi, tegu ei ole värskete materjalide, ülesannete jms-ga:
- Hetkel kehtiva kursuse leiad lingilt Sissejuhatus infotehnoloogiasse või itv0010.
- Kõigi vanade loengumaterjalidega arhiivi leiad lingilt Itv0010 2006.
Sisukord
Maht, aeg, tulemus
Loenguid nädalas: 2 tundi. Kui pole teisiti märgitud, toimuvad kõik loengud:
- TTÜ-s järgmistel aegadel.
- Teisipäeval 10.00-11.30, aula (loeb Tanel)
- Venekeelne loeng: loeb Deniss
Harjutustund: iseseisev lugemine ja (vahel) ülesannete lahendamine, juhendajat ei ole.
Kursus lõpeb EKSAMIGA. Eksam on kirjalik, kaks või enam tundi, kümme küsimust ja ülesannet.
Kursuse eesmärk
- Anda kokkusurutud ülevaade informaatikast tervikuna.
- Anda ajalooline ülevaade IT teooria, tehnoloogia ja äri arengust.
- Tutvustada edaspidiseid loengukursusi stuudiumi vältel.
NB! Kursus EI ÕPETA elementaarset arvutikasutamist. Samuti ei õpeta kursus programmeerimist, kuigi annab õrna sissejuhatuse programeerimisse.
Kokkuvõte
Ajalooline ja kontseptuaalne ülevaade informaatikast kui äri-, teadus- ja insenerivaldkonnast. Valdkonna varajane ajalugu, teaduslikud ning tehnilised arengud selle sajandi alguses, sajandi keskpaiga kiire tehnoloogiline ja äriline areng ning viimastel kümnenditel toimunu nii äris, tehnoloogias kui teaduse baasosades. Peamised programmeerimise paradigmad (imperatiivne, loogiline, funktsionaalne, objekt-orienteeritud) ning rakendussüsteemide tehnoloogia paradigmad (suurarvutid, personaalarvutid, klient-server süsteemid, hajutatud ja mitmekihilised süsteemid). Uute tehnoloogiate ja firmade teke ning allakäigu lained, printsiibid ja konkreetsed võtmesündmused.
Loengute plaan ja materjalid
Kursusel ei ole ühtegi konkreetset õpikut. Järgnevas on toodud iga loenguga seotud materjalid eraldi.
NB! Materjalid loengute kohta, mis ei ole veel toimunud, on esialgsed: nad muutuvad ja täienevad kursuse käigus.
- 1. Sissejuhatus
- Programmeerimine ja arvuti tööpõhimõtted.
- Loengumaterjal: itsissejuhatus1o.PPT, itsissejuhatus1o.pdf.
- Lisaks:
- loe juttu ja mängi andmete esitamise appletiga.
- loe läbi: Paul Graham: Why nerds are unpopular?
- loe läbi: Tanel Tammet: Inimlikkus on loomalikkus
- 2. Varane ajalugu
- Industrialiseerimine. Teoreetilised alused. Loogika.
- Lisaks:
- Paul Graham: What you'll wish you'd known
- Harjuta lausearvutuse tõeväärtustabelite tegemist: vaata vanu eksamiülesandeid (1, 2, 3) tee ülesandeid ise juurde ja kasuta seda rakendust enesekontrolliks (vt ka selle rakenduse süntaksit).
- algus-1945: A history of computers
- Alustada: Loogika aine ja ajalugu
- 3. Keskajalugu
- II maailmasõda kuni kuuekümnendate algus. Arvutid ja programmeerimine. Keeled ja rakendused. Integraalskeemid.
- Lisaks:
- Paul Graham: Undergraduation pluss järelmärkused: more advice for undergrads
- Eck intro lab: data reps.
- Eck lab: Turing machines.
- Varastest masinatest:
- Näide olulisest analoogarvutist: Norden bombsight
- Inglise krüptosaaga: Colossus, Turing, sakslaste Enigma ja Lorenz SZ 40
- Esimesed digitaalsed elektriga töötavad arvutid:
- Zuse elektromehaaniline arvuti, vt ka seda saiti.
- Atanasoffi elektronarvuti
- Mark I: esimene programmeeritav elektromehaaniline arvuti.
- Loe ka: Polsson ning a history of computers (vt viidad allpool)
- 4. Keskajalugu jätkub
- kuuekümnendad, seitsemkümnendate algus. Miniarvutid ja mikroprotsessorid.
- Lisaks:
- Jätk küsimusele "mida ülikoolis teha?". Joel Spolsky: Advice for Computer Science College Students
- PDP-1 restoration project
- Spacewar: esimene graafiline arvutimäng
- Atari muuseum
- mehaaniline pong
- SRI international
- Bell labs
- 5. Keskajalugu jätkub
- seitsmekümnendad. Mikroarvutid, personaalarvutid.
- Lisaks:
- Eric Raymond: How to become a hacker
- Colossal Cave (adventure) teksti-seiklusmäng
- Magnavox odyssey
- 6. Lähiajalugu
- kaheksakümnendad. IBM PC, Macintosh, uued vanad opsüsteemid. Spetsiaalarvutid, workstationid, oluline soft.
- Lisaks:
- Thirst for knowledge may be opium craving
- Apple Macintoshi reklaamfilm:
- 7. Lähiajalugu
- Üheksakümnendad kuni kaasaeg. Kokkuvõtted saagadest.
- Lisaks:
- The expert mind
- Alustada: "Teejuht võrgumeediasse" toorik.
- Tutvu: [http:/materjalid/itsissejuhatus/itsissejuhatus_eestiajalugu.ppt J.Penjami lühiülevaade Eestis tehtud ja olnud varastest arvutitest]
- 8. Arvuti tööpõhimõtted, programmeerimiskeeled.
- Lisaks:
- Veidi tutvuda nende saitidega:
- D.Eck, osad siit: Eck laborid (siit saad võtta eraldi rakendusena). NB! Loe ise läbi, proovi ja tee igast osast üks-kaks harjutust:
- 9. Progr. keeled jätkuvad. Operatsioonisüsteemid.
- Lisaks: Eck laborid jätk: loe ise läbi, proovi ja tee igast osast üks-kaks harjutust:
- Kohustuslikku lugemist (
- Kohustuslik on esimene 1/4 pikast artiklist In the Beginning was the Command Line
- Soovitavat lugemist:
- üldse mitte kohustuslik (algajatel raske mõista :-) The Art of Unix Programming
- Computer languages history
- About 2500 Computer Languages, Past and Present
- Computer language shootout
- Minix: Linuxi inspiratsiooniks olnud mini-UNIX
- Unix history
- 10. Tarkvara arhitektuur.
- Lisaks: Tutvuda:
- 11. Võrgutarkvara. Interneti baastehnoloogia.
- Lisaks: Tutvuda:
- http://www.w3schools.com/.
- http://www.w3c.org/.
- Tanel Tammet: külm kübersõda
- 12. Võrgutarkvara. Interneti rakenduste tehnoloogia.
- Lisaks: Tutvuda lühidalt:
- Loengunäite variant: http://java.sun.com/docs/books/tutorial/networking/urls/readingURL.html
- http://www.w3schools.com/.
- http://www.w3c.org/.
- XMLHttpRequest Demo (async javascript)
- Loengunäide: Tiny www server
- Greenspuni vana kuulus Panda book
- Apache
- veel näiteid: kalkulaator, css, javascript, XML ja XSL näited
- 13. Rekursioon. Funktsionaalne ja loogiline programmeerimine.
- Lisaks: Vaata ja proovi näiteid modifitseerida:
- Huvi korral installeeri ja proovi Prologi: SWI Prolog.
- 14. Algoritmid. Keerukus ja lahenduvus.
- Lisaks: Huvi korral vaata TSP programmi Java lähtekoodi
- 15. Tehisintellekt.
- Huvi korral loe Matrix, Skynet ja sõda teispoolsusega, klassiku ülevaadet tehisintellektindusest, Dennetti artikleid, tuntud õpikut, ajakirja JAIR.
- 16. IT äri, IT projektid.
- Lisaks: mitmed kohustuslikud artiklid, vt kas powerpointist või sellel lehel allpool, :kohustuslike lugemismaterjalide peatüki allosas.
- 17. Varu.
Harjutamist eksamiks/arvestuseks
Tee iseseisvalt vanad eksamid:
NB! 2006 aasta erinevused nimetatud näidetega võrreldes:
- Küsimused on - ootuspäraselt - teistsugused.
- Kahendarvude ülesannet ei pruugi tulla.
- Keerukamad ülesanded annavad rohkem punkte, kui lihtsad: vahemikus 10-15 punkti, lihtsad vastavalt vähem: 6-9 punkti. Kogupunktide arv endiselt 100.
Kohustuslikud lugemismaterjalid
Järgnevate materjalide läbilugemine on kursuse läbimisel kohustuslik. NB! Kohustuslikke materjale võib kursuse jooksul veidi lisanduda: jälgi seda loetelu.
- Loogika ainest ja ajaloost: T.Tammet: Loogika aine ja ajalugu: sissejuhatus T.Tamme, T.Tammeti ja R.Prangi loogikaõpikule "Mõtlemisest tõestamiseni".
- Opsüsteemidest laiemas kontekstis: Kohustuslik on algusosa (esimene 1/4) pikast artiklist In the Beginning was the Command Line
- Kohustuslikud artiklid IT ä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 Graham: Why smart people have bad ideas
- Joel Spolsky: Funktsionaalsuse spec:Painless Functional Specifications (1 osa): http://www.joelonsoftware.com/articles/fog0000000036.html
- Joel Spolsky: IT firma töökorraldus: 12 steps: http://www.joelonsoftware.com/articles/fog0000000043.html
- Joel Spolsky: Projekti planeerimine: Painless Software Schedules: http://www.joelonsoftware.com/articles/fog0000000245.html
Soovitavad lisalugemismaterjalid:
- Ajalugu algus - 1981 (piisab kiirest läbivaatamisest, vajalik materjal loengutes): Bebop BYTES Back
- Ajalugu 1945-1990 (piisab kiirest läbivaatamisest, vajalik materjal loengutes): The Computer Museum.
- Ajalugu 1947-1999 (see ei ole otseselt kohustuslik): autor Ken Polsson.
- Vana jutt infoühiskonnast: T.Tammet 1995-1996: "Teejuht võrgumeediasse" toorik.
- Elektroonilisest demokraatiast ja riigist: T.Tammet, 2001: E-valimiste analüüs
- Greenspun: Lihtsalt loe sisukorda, tervet raamatut pole vaja!: http://philip.greenspun.com/panda/
- Greenspun: Future peatükk: http://philip.greenspun.com/panda/future
- Greenspun: Nali: http://philip.greenspun.com/careers/
Väga kasulikud lugemismaterjalid: loe neid!
- Loe iga päev: http://www.slashdot.org
- Loe iga päev: http://www.digg.com või http://www.reddit.com
- Loe iga päev: http://www.news.com
- Software management, ca kord kuus materjale: http://www.joelonsoftware.com
- 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
- Loe läbi väga lõbus ja hariv raamat: Philip Greenspuni Guide to Web Publishing. Kui meeldis, uuri järgi, mida Greenspun veel teeb (sh loe teisi raamatuid ka) ja kuidas sündis ja suri tema kuulus firma.
- Vaata, mis võrgust (loodetavasti) edaspidi saab: Semantic Web
- Loe hoolega läbi (ei ole üldse kohustuslik ja algajatele mittesoovitav) ja tee harjutusi ka: Computer Systems: a programmers perspective toorikvariant.
- Loe läbi hulga Daniel Dennetti esseid
- Proovi õppejõu tehisintellektisüsteem Gandalf installeerida (Unix või Windows+cygwin) ja mängi sellega. Proovi ka Otterit (lihtsam, aga nõrgem klassikaline süsteem). Kuidas, loe siit ja siit ja siit.
- 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 :-)