Triinu Võsumets ja Eliise Karafin, Eva Kazakovskaia
suuruse-numbreid ja mida nad tähendavad: bitt, bait, kilobait, megabait jne
Tähtede kodeerimine
Iga täht ja sümbol peavad olema esitatud binaarse numbrina läbi erinevate tabelite.
ASCII - baseerub ladina tähestikul + numbrid ja sümbolid (kokku 127) (nt: A on dec 64 või hex 41)
UNICODE - extended ASCII, teiste keelte jaoks
Mis on algoritm?
Täpne samm-sammuline juhend millegi tegemiseks. (nt: toiduretsept või juhend ruutvõrrandi lahendamiseks)
Mis on programm?
Üheselt mõistetavas keeles kirja pandud algoritm. (nt: arvutid suudavad täita ainult programme)
Kreeka loogikud
Parmenides (5. sajand eKr) : kasutas pikki loogilisi põhjendusi. Zenon Eleast (5. sajand eKr) - apooriad/paradoksid.
Aristoteles (4. sajand eKr) - väidete struktuur kui iseseisev uurimisobjekt; süllogismid.
Sofistid:
- Sokrates (5. sajand eKr)
- Platon (5. - 4. sajand eKr).
Mis on induktsioon?
Induktsioon on jooksvalt õppimine (nt: ChatGPT). Induktsiooniks nimetatakse seda, et ühtedel asjadel on teatav omadus, järeldatakse, et see omadus on ka mõnel teisel asjal või isegi kõikidel sarnastel asjadel. (nt: kui Triinul on gravitatsioon ja lokkis juuksed, siis ma eeldan, et mul on ka, aga lokkis juukseid mul pole ja ma õpin). Induktsioon ei taga, et kui eeldused on tõesed, siis ka järeldus on tõene.
Mis on deduktsioon?
Deduktsioon on arutlemise viis, mis tagab, et tõestest eeldustest saadakse tõesed järeldused. Tead mingeid reegleid ja fakte ning teed järeldusi (maleprogrammid).
Mis on süllogism?
1. eeldus: iga x on y. 2. eeldus: mõni z on x. järeldus: mõni z on y järeldused. Sulle on ette antud mingid laused ja sa järeldad nendest midagi (detektiivne mõttetehnika).
Lausearvutus
Stoikud uurisid, kuidas saab loogiliste sidesõnade (ja, ei, või, kui...siis) abil lihtsamatest lausetest keerulisemaid kokku panna ja kuidas näidata selliselt moodustatud lausete õigsust. ((X -> Y) & X) -> Y
Pascal
Filosoof Blaise Pascal 1640: aritmeetiline masin: AINULT liitis ja lahutas, Ehitas ca 50 tükki
Leibniz
Saksa filosoof (1646-1716). Leibnizi arvuti(1671) liitis, lahutas, korrutas, jagas. Püüdis luua universaalset sümbolkeelt, failis lol.
Perfokaardid
Perfokaart on nelinurkne kartongist kaart, mis kannab digitaalset informatsiooni sõltuvalt avade olemasolust või puudumisest teatud kohtades. Kartongist kaart mis kannab digitaalset informatsiooni.
Kangasteljed
Ca 1800.a (Jacquard) mõeldi välja programmeeritavad kangasteljed, mis kasutasid perfokaarte, et teha mustreid.
Babbage
Charles Babbage.1822: Difference Engine ehk masin, mis teeks diferentsiaalarvutusi, jäi pooleli, polnud raha. Mõtles välja esimese progekeele idee.
Hollerith
1890: Herman Hollerith: perfokaartidega masin USA rahvaloenduse andmete töötlemiseks. Hollerith'i firmast tekkis IBM.
Colossus
Londonis 1943: saksa allveelaevade salakirja dekodeerimiseks. (1800 elektronlampi).
saksa krüptomasinad
Enigma, Lorenz - saksa allveelaevade ja lennukite jaoks mõeldud salakirjamasinad (alates 1920).
Turing
1936
Alan Turing (inglise matemaatik, loogik ja informaatik) aitas dekodeerida sakslaste sõnumeid 2 ms ajal. Mõtles välja turingi masina mis peaks suutma kõike lahendada.
Shannon
Claude Shannon (MIT): Boole algebra, Elektrilülitid ja -skeemid, Bitid ja info kodeerimine, Info otsimise algoritmid. Mõtles välja info kodeerimise tehnoloogia (kuidas saada arvud bittideks).
Zuse
Konrad Zuse - esimene programmeeritav arvuti (esimene arvuti hävis sõjas). 1936-38: Z1: puhtmehaaniline. 1938: Z2: rehkendus releedega. 1941: Z3 perfolindiga, universaalselt programmeeritav. 1944-50: Z4: kommertsiaalne digitaalarvuti . Programmeerimiskeel (esimene nüüdiaegne) Plankalkül.
Esimesed programmeeritavad arvutid
Zuse (Z3), Colossus, Mark I (IBM, 1944), ENIAC (kümnendsüsteemil, 1943)
Transistor
Ütleb põhimõtteliselt kas on (1) voolu või ei ole (0). Esmakordselt töödeldi välja Bell Telephone Laboratories’is (1947).
Texas Instruments hakkasid tootma müügiks silikoonist transistoreid (1954)
IBM töötleb välja esimese automaatilise suurtöötluse transistoriteks (1960)
Samuel
Arthur Samuel - 1952 esimene AI programm, see oli kabeprogramm. Mängis päris heal tasemel.
Shockley semiconductor
Shockley Semiconductor - Shockley üks esimestest transistorite loojatest, sellest firmast midagi väga välja ei tulnud, sest konkurendid suuremad (1955)
Fortran
Esimene kõrgprogekeel (1957), mida kasutatakse teaduses siiamaani.
Fairchild
Fairchild Semiconductors kujunes välja peamiselt Shockley Semiconductorist lahkunud arendajatest (1957).
INTEL (1968) ja AMD (1969) kujunesid välja Fairchildi programmeerijatest.
Sage
Sõjaväe radarivõrk Esimene suur andmeside ja töötluse võrgustik, et ühendada ühendriikide radareid - kontrollida, kas tulemas lennukeid jne (1958).
Texas instruments
Texas Instruments hakkasid tootma müügiks silikoonist transistoreid (1954). Esimene 16-bitine mikroprotsessor (1976). Integraalskeem (Jack Kilby, 1958).
Integraalskeem
Jack Kilby, 1958 - selle asemel, et teha ränipulga peale ühe transistori, teed kohe palju neid.
Cobol
Progekeel, mis töötati välja USA mereväes 1960. Pangad ja suurfirmad kasutasid, sest seal pikad inimkeelsed laused.
Lisp
Esimene tehisintellektile mõeldud progekeel. Autor John McCarthy, 1960. Väga palju sulge.
Pdp-1
Esimene (mini)arvuti, kuhu tehti esimene arvutimäng (Spacewar!), DEC firma 1960.
System 360
Väga suur ja kallis arvuti, kus kasutati transistoreid. 6 arvutit ja lisakomponendid, mis omavahel ühildusid. (IBM, 1964)
Moore's law
Gordon Moore (1965, Inteli juht) - hüpotees, et iga põlvkond toob 2x transistoreid juurde.
Intel
Intel - 1968 Tegid alguses mäluchippe, hiljem protsessoreid.
Intel 4004 - esimene mikroprotsessor
Kujunes välja Fairchildi programmeerijatest.
Amd
Amd - 1969
Kujunes välja Fairchildi programmeerijatest.
Amd ja Intel tegid omavahel lepingu, mis kehtib siiani. Võivad üksteise käsustikke kasutada, teised ei tohi.
Engelbart
Mõtles välja arvutihiire (1963). Prototüüp kontoritarveteks (setup) - keypad, keyboard, mouse etc.
Unix
Bell Laboratories programeerijad Kenneth Thompson ja Dennis Ritchie töötlesid välja UNIX-i operatsioonisüsteemi Dec miniarvutil (1969)
Esimene mikroprotsessor
Intel 4004 (1971)
2000 transistorit, luges 4 bitti.
Relee
Relee - mootoriga lüliti, seadis, mis välisele füüsikalisele toimele (sisendsignaalile) reageerides muudab hüppeliselt oma väljundtoimet (väljundsignaali)
SQL
Structureed Query Language, idee Ted Codd(70ndad).
SQL on päringukeel andmebaaside haldamiseks, loodi IBM-is.
Keel, mida kasutatakse andmebaasides andmete saamiseks ja muutmiseks.
Käsud nagu SELECT (võtad/pärid miskit), INSERT (lisad), DELETE (kustutad) jne
Arpanet
Arpanet 1971
Protokoll/süsteem/võrgustik
Arvutitevaheline suhtlus laienes, kui kaitseministeerium lõi ARPANETis neli sõlme: mingisugused USA ülikoolid
Hiljem arenes sellest välja internet
Atari
Esimene arcade mäng Computer Space
Esimene kodus mängitav videmäng Magnavox Odyssey (72) nimetati ümber Pong-ks. Tennise taoline mäng
protsessor puudus, müüs hästi.
cp/m
Operatsioonisüsteemi CP/M - Gary Kildall kirjutab selle PL/M keeles, Intel 8008 jaoks (1973).
Lihtne aga edukas OS mikroarvutitele.
IBM oleks peaaegu seda oma arvutitel kasutama hakanud.
Winchester
IBM'i 70MB kõvaketas 1973
Altair
Üks esimesi edukalt müüdud personaalarvutikomplekte isetegemise fännidele (1974).
Ei olnud monitori ega klaviatuuri.
Alto
Personaalne arvuti mida kasutati uurimiseks - 1974 XEROX
C
Progemiskeel mille haru tuleb ALGOL-ist (üks esimesi keeli) Thompson, Richie, Kernighan (1969-1973)
Microsofti algus
Bill Gates ja Paul Allen, 1975 Teevad väikse BASIC-u programmi
Apple algus
Steve Wozniak ja Steve Jobs Palo Altos lõid esimese Apple’i arvuti Apple I - ei olnud midagi erilist, ala tahtsid sõpradele näidata (1. aprill 1976) Peamine insener ning ideede omanik oli Wozniak ning muuga tegeles pigem Jobs
Edasi hakkas Wozniak tegelema Apple II valmistamisega
1977 koduarvutid
Commodore PET (juba sisseehitatud display ja kõik muu vajalik)
Apple II
Tandy Radio Shack (ei läinud nii väga hästi)
Visicalc
Daniel Bricklin, Robert Frankston (VisiCorp, 1979)
Esimene personaalarvutite tabelarvutusprogramm (EXCELi tüüpi asi) Apple II jaoks.
Apple II
1977
Väga populaarne, müüdi lausa 20 aastat.
trükkplaat (printed circuit motherboard), lülitustoiteallikas (switching power supply), klaviatuur, korpuse kokkupanek (case assembly), käsiraamat, game paddles
Symbolics
80ndad ja 90ndad
Tegi spetsiaalkeele protsessoreid
Tehti LISPi keele jaoks opsüsteeme ja masinaid (1980)
IBM PC
1981
Ei ole väga palju parem kui Apple II, kuid protsessor ja graafika parem
Pigem firmaarvuti kui koduarvuti, sest üpris kallis
Sun
1982
SUN = Stanford University Network Serverite firma.
Kasutas TCP/IP protokolli.
Oracle
Tarkvarafirma, mis tegeles SQL-ga (1983)
Macintosh
Apple arvuti, selle arendamist juhtis ja vedas just Steve Jobs
Tehti umbes samal ajal Apple II-ga ning firma arendajad läksid tülli, sest Jobs suunas suured rahad just selle arendamisele
Apple tooteliinid
Microsofti tooteliinid
Riistvarast mälu tehnoloogia
Arvuti põhimälu DRAM on ehitatud väikestest kondensaatoritest: iga kondensaator hoiab ühte bitti (1 või 0). Tema juhtimiseks on kasutusel veel üks transistor.
Protsessori registrid ja cache mälu on ehitatud transistoridest (SRAM): 4 või 6 transistori ühe biti kohta.
Cache ja mälu hierarhia
Cache - vahemälu. Vahemälu koosneb kirjete kogumist.
Protsessori ja põhimälu vahel, sageli kasutatavate andmete hoidmiseks lähemal protsessori jaoks.
mis on assembler ja seos riistvaraga
Madalatasemega keel (pmst masinkeel)
Kindel assembleri kood vastab kindlale riistvarale (seadmele). Pead mäluasukohti ise panema.
mis on kompileerimine
Kompilaator ehk translaator on arvutiprogramm, mis tõlgib (kompileerib) ühes arvutikeeles (lähtekeel) kirjutatud lähtekoodi teise arvutikeelde (sihtkeel, tihti binaarne objektikood).
Sagedasim põhjus selliseks lähtekoodi teisenduseks on käivitatava programmi loomine.
linkimine
Linkur otsib kokku vajalikud olemasolevad failid osa sümbolinfo seostamiseks päris koodi-vihjetega. Töötab kompileerimise ajal. See loob selle faili.
loader
Opsüsteemi loader otsib lisaks vajalikud olemasolevad failid osa sümbolinfo seostamiseks päris koodi-viidetega. (programmid, librarid). Pärast kompileerimist, loadib selle faili mällu ja paneb valmis edasiseks tegutsemiseks.
Saadud kogum paigutatakse mällu, tehakse opsüsteemi infoblokk tema jaoks (protsess) ja kogum käivitatakse.
interpreteerimine
masinkoodis programm nimega interpretaator loeb sisse X keeles faili, teisendab ta nö pseudoassembleriks / vahekoodiks (mitte masinkood) ja asub seda vahekoodi varianti ridarealt täitma.
Näited: Python, PHP, Perl, vanemad Javascripti mootorid jne.
Python
Programmeerimiskeel, Guido van Rossum - 1989
Python 2.0, Unicode support - 2000
Python 3.0 - 2008
html ja http
1990
HTML (HyperText Markup Language) - Tim Berners-Lee töötas välja HTML võimaldas Internetil laieneda ülemaailmsesse veebi, kasutades URL (ühtne ressursiotsija) ja HTTP (hüperteksti edastusprotokoll).
Berners-Lee kujundas nii esimese ülemaailmse veebiserveri kui ka brauseri, mis oli üldsusele kättesaadav 1991. aastal.
internet eestis
1990 taltechi campusel küberneetika majas pandi tööle ühendus Soomega (polnud internet aga läbi Soome kasutati inerneti).
FIDONET - esimene rahvusvaheline võrk mis Eestisse jõudis, olid meilid ja suhtlusruumid
Esimene elektrooniline ID-kaart (2002)
Internetivalimised (2005)
linux
Operatsioonisüsteem, sai alguse Soomes (1991), Linus Torvalds Linux on Minixist inspireeritud kernel Gnu jaoks
netscape
1994 luuakse Netscape Navigator, mis oli esimene WWW brauser. Asutajad Clarks ja Andreessen, hiljem sai sellest Mozilla
usenet
1980
ülemaailmne hajutatud arutelusüsteem (Postituste/artiklite jagamise võrk)
php
1994
Veebilehtede tegemiseks sobitatud keel
Wikipedia on PHP keele peal, Facebook alustas samuti selle peal
päevalehed eestis
Eesti päevaleht: http://www.zzz.ee/epl/
Esimene number 5. oktoober 1995
Tammet, Strandberg, Köstner, Muuli
palm pilot
1996 Pihuarvuti (mitte päris mobiil) U.S. Robotics
Google (sai alguse 1997) - Larry Page and Sergey Brin (õpilased Stanfordis).
Enne seda oli esimene edukas otsingumootor Alta Vista (1995).
deep blue
1997 IBM pani kokku eriarvuti, mis tegi maleotsinguid
Esimest korda võideti maailmameistrite võistlustel arvutiga malemäng
wikipedia
Online entsüklopeedia. (2001)
x-tee
Eesti e-riigi infosüsteemide ühisvõrk, mis võimaldab e-riigi infosüsteemidel omavahel turvaliselt suhelda (2001).
Lihtsad andmetüübid
Lihtsad andmetüübid
Täisarv
Ujukoma-arv
Sümbol ehk täht
stringid
Stringid ehk tekst
Tekst on lihtsalt jada baite mälus järjest + pikkuse määrang
massiivid
Massiivid - kantsulgudes []
Hulk on jada ühetüübilisi väärtusi: tähti, täisarve, ujukoma-arve, teisi massiive vms. Tüüpiline juhtum on lihtsalt jada täisarve mälus.
puud
Puud andmestruktuur, kus andmed on paigutatud puukujuliselt. Koosneb juurest ja lehtedest.
mis on pointer
Mäluaadress ehk pointer on samuti lihtsalt täisarv (16nd süsteemis)
Kompileerimine
Kompilaator teeb neist assemblerikeelsed ajutised failid Kompilaator teeb assemblerfailidest masinkood+sümbolinfo failid
Näited: C, Fortran, Go.
Eeliseks masinkood on juba valmis ning seetõttu toimub hiljem tegevus kiiremini. Vead avastatakse kiiremini, sest ennem ei kompliteerita masinkeelde kui kõik õige.
parsimine
Parsimine on süntaksianalüüs, mille arvutikeeles või andmestruktuurides esinevaid sõnesid analüüsitakse vastavalt loomuliku keele formaalse grammatika reeglitele.
jit
JIT ehk just-in-time compilation, mis täidab interpretaatorist tulnud vahekood, mis on kompileerutud töö ajal masinkoodiks.
Interpretaator interpreteerib vahekoodi Y, kuid kompileerib töö ajal osa Y-st masinkoodiks, mida seejärel täidab (Java, C#, Firefoxi Javascript) nn just-in-time compilation ehk JIT.
vahekood
Vahekood on programmeerimiskeel, mis asub tavaliselt kõrgema taseme keele ja madalama taseme keele, nagu masinkood, vahel. See on pmst vahetulemus.(Java - bytecode, C# - CIL)
programmeerimiskeeled vs kirjelduskeeled
Programmeerimiskeeled: Fortran, C, Java, C#, Python, Javascript etc Kirjelduskeeled: Html, CSS, SQL (päring), XML, json, csv(andmete esitamine)
fortran (näeb välja nagu assembler, DO, CONTINUE jne)
assembler
cobol (pikad laused, EXIT PROGRAM)
lisp (palju sulge)
C ( {} ja ; realõppudes)
modula/pascal (omistamise juures :)
python
Opsüsteemi roll
Kernel on operatsioonisüsteemi tuum, see mis teab, mis kehaosad sinu arvutil küljes on, millistel tingimustel need peavad töötama ja käivitamisel loetakse kogu see teadmine põhimälusse.
Võimaldada kasutajal arvutis ühtemoodi ja harjumuspäraselt tegutseda, sõltumatult sellest, mis programmid tal arvutis on.
mis on distro
Termin, mida kasutatakse Linuxi konkreetse versiooni kirjeldamiseks, mis on ehitatud tavalisest Linuxi operatsioonisüsteemist ja sisaldab lisarakendusi (mäluhaldus, protsesside planeerimine ja seadmetega sisend/väljund)
mis on mac OS X
Apple'i opsüsteem Macintoshi arvutite jaoks. See on Unixi-põhine operatsioonisüsteem (sarnaneb linuxiga).