1625
- Schickard
väitis,et tegi I liitev, lahutav, korrutav, jagav masin.
1640
-
Blaise Pascal -aritmeetiline
masin –
liitis ,lahutas.Ca 50tki.
1646 -1716
-
Leibniz .
Leibnizi
arvuti(1671)liitis, lahutas, korrutas, jagas.
1714
Kirjutusmasin ,
Henry Mill, ei ehitatud.
1800
Perfokaardid ,
Jacquard,
1822
Babbage ,Ada
Lovelace (I
programmeerija).
1837
Morse elektritelegraaf.
1847-1854
George
Boole ,
de Morgan.
1857
perfolint(
Wheatstone ).
1867
“Type
writer ” sholes,glidden,soule.
1879 Kaasaegse
loogika alus:
Gottlob Frege(öloob
kaasaegse predikaatarvutuse).
1890
-
Hollerith ’i
perfokaardid->sellest firmast tekkis IBM.
1845-1918
elas,
Hulgateooria : Georg
Cantor.
1920…Enigma
kodeerimiseks – Saksa lennu-,merevägi.
1935-1937
Turingi masin1936: Churchi lambda-arvutus.
1930-1935-1937
Vannevar
Bush MIT:dif. Võrrandite lahendamiseks(100t,tuhanded
releed ,150
mootorit,2000lampi).
1889-1951Ludwig
Wittgenstein.
1938,
Shannon ’i
magistritöö sidus: Boole
algebra . Elektrilülitid
ja -
skeemid . Bitid ja info kodeerimise. Info otsimise
algoritmid .
1939-1942
Atanasoff.
esimene elektronarvuti?
1939-44
Mark
I
(Aiken)– IBMi elektriline(releed)digitaalne arvuti(5t).
1941-1944:
Konrad Zuse.
Z3, Z4.
Releedega digitaalarvuti.
1948
– I
transistor (Shockley)-
müüma hakkas Bell
Corp .
1949
- Maurice
Wilkes koostas EDSAC,
the
first practical
stored -program
computer,
at
Cambridge University .
1950
– ERA
1101 (I
kommerts comp );
ALGOL 58/60: Hoare, Perlis, Dijkstra, Kurtz, ...,
Kotli ;BCPL
derivative of ALGOL (Strachey);B simplified derivative of BCPL (Ken
Thompson );C
derivative of B (
Dennis & Ritchie).
1952
-
Nixdorf
Computer Corp, liitus 1990 Siemensiga.
1953
- IBMi
first electronic computer, the
701, Speedcoding:
John Backus.
1956
- IBM
develops the first hard
disk , the RAMAC
305(
math 5mb).
1957
–
FORTRAN (loobimuutujatega,sisaldas
if,do,goto)I
kõrgkeel
progekeel,vt70a
prolog .
1958
- SAGE
– poolautomaatne arvutite võrk usas ja canadas.
1960
– COBOL(Pentagonis
arendas Hopper )-muutujad jades ja kirjetes;LISP(McCarthy)-programm
koosn loendite hulgast.
1963
hiire patent(
Engelbart ).
1964
- CDC's
6600 supercomputer(
Cray ),
Basic progekeel(Kurtz,Kemeny).
1965
– Moores
law(
integrated circuits
double iga aasta);PDP8
–
I kommerts miniarvuti(
tutvustas DEC).
1967
– I
floppy disk (IBM);
LOGO arvutikeel lastele(Papert).
1968
- Intel
Corp(Moore,
Noyce – lahkusid
Fairchild Semiconductorsst).
1969
–
UNIX op.sys(
Belli labor - ritchie,Thompson);4004
mikropr loomise algus (intel –
Hoff );XEROX
–
laserkiire domonstr(starkweather),avab PARCi;AMD(
Sanders );C
keele
areng kuni 1973.
1970
– 4004
I 4bit
mikroprotsessor valmis(Intel – Faggin)1971a kommerts.
1971 -
Arpanet – arvuti-arvutis ühendus(interneti eelkäija).
1972
- Nolan loob Atari,mis
teeb Pongi(I-si video mange) ja colossal cave;HP progev
kalkulaator
magnetribaga;first
logic
programming
language Prolog(Colmerauer);first
object -oriented language
Smalltalk(Xerox
Parc).
1973
- Ethernet
(
arvutid traatidega yhenduses)(Metcalfe).
1974
- ALTO
personaalarvuti (Xeroxilt) –suur mõju microsoftile ja macintoshile.
1975
– Micro-
Soft (Gates
ja
Allen ), IBM 5100 (I “läpakas”).
1976
-
Apple I
Computer(
Jobs ,
Wozniak);16bit
mikroprose;SQL
(kommerts) Honeywell Information systems(idee Coddilt IBMis 70-72a).
1977
– Commodore
PET,
Apple II, VisiCalc(1979);
Loodi ametlikult
microsoft .
1978
– VAX11/780 ,
inteli 8086 mikropr;Raamat ”C
programming language”.
1979
– Motorola 68000(16bit), USENET
varane ”web”:tekstid masinast masinase
1980
– esimene hdd
mikroarvutitele(Seagate),
QDOS 1981
– I kaasaskantav arvuti(Osbourne I);IBM
5150
PC
ja
cga
graafikakaart (16 värvi),
32000 – esimene 32-bit
prose (National
Semiconductor )
1982 - loodi SUN
ja
Compaq (Canion,
harris ,murto).
1983
– RSIst
Oracle (Ellison,miner);C++,
turbo pascal,
1984
– esimene MACINTOSH(edukalt
hiirega juhitav),
GNU(Stallman)tasuta
op.s,
windows 1.0.
1986
– NNTP – uudised liiguvad TCP/IP (interneti)
kaudu;inteli 80386.
1987
– GCC
kompilaator UNIXil, IBMi ps2
vga-ga.
1988
Arpanet(morris)nö
viirus netis.
1989
– inteli 80486,
AOL(America
online) Applile ja MACile.
1989-90
FIDONET –
rahvusvaheline võrguots Eestis
– 90a
epost ,USENET
1990
– TBL
browser
NeXTil,HTML
ja
www, (
berners -lee) – avalikuks 1991,
Windows 3.0
1991
–
Linux .
1992
– Windows 3.11,
TCP/IP
internetiotsad Eestis, wolfenstein 3d,gsm
mobiil (esimene operaator Radiolinja Soomes).
1993
– NCSA
Mosaic 1.0
–
I
popp avalikult saadaval
brauser ;Inteli
Pentium prose.
1994
– NCSAst tekib
Netscape (clark,Andreessen)brauser
massidesse.
1995
– Eesti
Päevaleht ja postimees internetis –
www.zzz.ee/epl,
MS win95 ja
IE 1.0.
1996
- Eestis netipangad (foreks,hoiupank.)
1997
- Deep
blue –
maleproge, mis võidab maailmameistrit(Gasparovit).
1998
- Mozilla, pentium2 XEON prose,iMac(jobs),Red Hat(linux5.2).
1990-2002:
aktsiamull, 90-lõpu dot-com
hype , crash!
1990-1996
kasvas USA
aktsiaturg (nii DOW kui
NASDAQ indeksid) palju kiiremini,
kui eelmistel kümnenditel.1996
arvas Fed-i juht Greenspan, et kasv
on olnud liiga kiire (“irrational exuberance”
speech ).1990-lõpuaastatel kiirendas interneti muutumine
mainstream-tehnoloogiaks eriti järsult aktsiahindade tõusu.Tekkis
palju firmasid, kes ei andnud üldse kasumit, ainult kulutasid raha,
kuid mille
aktsiaid osteti tohutu hinnaga.See andis hoogu ka nende
firmade hinna kasvule, kes kasumit tekitasid.2000 aasta alguses oli
NASDAQ index veidi üle 4500. 2002 sügis oli see 1139!2000-2002 olid
nii NASDQ kui DOW pidevalt langenud. Analoogia eestis: börsimull
1997.2003: börsilangus lõppes, algas harilik kasv.
1999-2007:
olulised asjad kümnendil:
Vabavara (GNU/Linux,
Apache jne) muutus serverarvutitel (mitte laua-arvutitel)
mainstream-tehnoloogiaks.GNU/Linux
on
olulisem, kui muud UNIX-id. Samas ei ole muutunud desktopil
Windowsile tõsiseks konkurendiks. 3D
graafikaprotsessorid
muutuvad oluliseks standard-kaubaartikliks.Apple
läks
üle
UNIXi-põhisele
opsüsteemile (OS
X).Microsoft
konvergeeris
Windows 95/98/ME ja NT/2000:
Windows XP, edasi
Vista.
Peer -to-peer
(P2P)
tehnoloogial põhinevad failivahetuse-süsteemid
((Napster), (Morpheus), Kazaa, eDonkey, bittorrent jne) ja hiljem
netitelefon (mh
Skype ).Instant
messengerid muutuvad
populaarseks.Google
muutub
domineerivaks otsimootoriks + võrguteenuste pakkujaks.XML-põhised
veebiteenused ärirakendustes.CSS
ja
javascript uuesti
olulised brauseritehnoloogiad. Apple liikumine meediamasinatesse:
iPod,
iPhone .
Koodinäited:
1.FORTRAN
INTEGER FUNCTI0N sumto(n)
isum = 0
DO i 10 = 0,n
isum = isum + i
10 CONTINUE
sumto = isum
RETURN END .
2.
COBOL
PROCEDURE SUMTO USING N,
Answer .
Begin .
PERFORM VARYING
LoopCount FROM 0 BY 1
UNTIL LoopCount GREATER
THAN N
MULTIPLY
Answer BY LoopCount
GIVING Answer.
END-PERFORM.
EXIT PROGRAM.
3.
LISP
(defun sumto (n)
(if (= 0 n)
0
(+ n (sumto ( n 1))) )).
4.sumto
ja
c
C
(ja C++ ja Java ja C#)
int sumto(int n) {
int i,sum = 0;
for(i=0; i 10 x) #t #f) )
(
define (every? fn lst)
(if (pair? lst)
(if (fn (car lst))
(every? fn (cdr lst))
#f)#t))
(every?
good ? ‘(10 40 50 2 100))
Riistvara :
Füüsilised,
käegakatsutavad osad. Näited:
klaviatuur ,
monitor , integraalskeemid
jms.
Tarkvara :
Programmid ja
andmed. Programm on jada instruktsioon.Algoritm
on täpne
samm-sammuline, kuid mitte tingimata
formaalne juhend millegi
tegemiseks. Näited:Toiduretsept.
Juhend ruutvõrrandi lahendamiseks. Algoritmiline
probleem - probleem,
mille lahenduse saab kirja panna täidetavate
juhendite loeteluna.Programm
on formaalses,
üheselt mõistetavas keeles kirja pandud algoritm. Arvutid suudavad
täita ainult
programme ..Analoogsüsteem
- andmeid
salvestatakse (peegeldatakse) proportsionaalselt Näit:
termomeeter, vinüülplaat, foto.Digitaalsüsteem-(
pidevad )
andmed lõhutakse üksikuteks tükkideks, mis salvestatakse
.eraldiNäit: CD, arvutiprogramm, kiri tähtede ja bittidena.Ühelt
teisele:
digitaliseerimine .Põhiprotsessor
- teeb pea kogu töö.Põhimälu
- hoiab aktiivses kasutuses olevaid programme ja andmeid.Välismälu
- pikaajaliseks säilitamiseks (kõvaketas, flopid jne).Välisseadmed
- monitor, klaviatuur jne.
Turing machine - lihtne
teoreetiline masin. Alan Turingi
idee,
milline võiks olla lihtne universaalne arvuti: suudaks
arvutada/järeldada kõike!! Turingi
tees:
kõike, mida üldse saab mingi
masinaga arvutada/järeldada, saab ka
Turingi masinaga arvutada.Mida
saab üldse mehaaniliselt arvutada/järeldada? - Selgub,
et kõiki täpselt formuleeritud, selgeid, algoritmilisi probleeme ei
saa garanteeritult algoritmiga lahendada.
Mis alternatiivid sel juhul on? 1.Valime
vahel juhuslikult, ehk: teeme vahel vigu. 2.Valime vahel juhuslikult,
ehk: teeme vahel vigu.
The
five types of information that are the only types the computer commonly manipulates: Visual (pictures) Numeric (
numbers )
Character (text) Audio (
sound ) Instructions (programs).Before
the computer can use any type of information, it must be stored in the computer’s memory.
Analoog vs diskreet - Pidevad
ehk analoog-asjad:
Komaga arvud,
murrud jms;
Trigonomeetria ;
Matemaatiline analüüs;Klassikaline füüsika;Mõõtmised, tugevus
jms klassikaline insenerivärk.
Katkevad ehk diskreetsed
asjad:Täisarvud,Loogika,Hulkade struktuurid, Tekstid, Programmid.
Mõtlemisviisid
- Arvutiteadus:
teha võimalikult keerulisi asju; Inseneriasjandus: teha kõike
lihtsamalt;Kommertsrakendused: kliendile meelepäraseid asju.
Arvutiteadus
- Matemaatiline
arvutiteadus(Algebra eriharud, Arvutatavus,
Keerukus ), Praktilisem
arvutiteadus (Algoritmika,
Verifitseerimine , järelduste
automatiseerimine , Õppimine,Keeled ja kompilaatorid,Krüpto), Veel
praktilisem arvutiteadus (Andmebaaside teooria ja
tehnoloogia ,
Failisüsteemid, Arvutigraafika, Võrgusüsteemide).Kommertsrakendused
– Laiatarberakendused(Opsüsteemid, draiverid jms;Tekstiredaktorid,
brauserid, epost; Üldised võrgurakendused: google, youtube, skype;
mängud, progemisvahendid), Erirakendused (Pangarakendused,
telekomirakendused;
Reaalsed lao- ja tellimissüsteemid; Firma
andmebaasid ).Transistor
- kolme või
enama väljaviiguga pooljuhtseadis,
mida kasutatakse elektrisignaalide
tekitamiseks, võimendamiseks ja muundamiseks. ühe elektrisignaali
abil juhtida ehk tüürida teist elektrisignaali.
Akadeemilised
IT-
koolkonnad eestis: TTÜ
, Küberneetika instituut, TÜ, ITK, Polütehniline instituut,
Tallinna ülikool. Arvud
Null:
Babüloonia 300 BC, India 600 AD,
Abakus : Babüloonia 1,000 BC kuni
500 BC.Loogika
olemus - Klassikalisest
kreeka keelest sõnast λόγος (
logos ), algtähendusega sõna ehk
mida räägitakse. Loogika on teadus mõtlemise alustest. Loogika
uurib mõtlemise paratamatuid
aspekte ehk seda, mis üldse teeb mõtlemisest mõtlemise ehk õige
mõtlemise ehk seda, mida ja kuidas üldse mõelda saab. Informaalne
loogika:
teatud vaidlusmeetodite analüüs. Formaalne
loogika:
reeglisüsteemid ja algoritmid nö mehaaniliseks järelduste
tegemiseks. Reeglisüsteemide kui matemaatiliste objektide
uurimine .
Arvutid on mõtlemise
masinad . Fundamentaalseid
mõtlemismeetodeid: Deduktsioon,
Induktsioon -Erinevalt deduktsioonist
ei taga induktsioon, et kui eeldused
on tõesed,
siis ka järeldus
on tõene. Induktiivsetel arutlustel
puudub loogiline (deduktiivne) kehtivus.
Matemaatika sissetulek: muutujad;Lausemuutujad:kui
A ja B, siis A;ei
ole tõsi, et A ja mitte A;kui A-st järeldub B, ning A on tõsi,
siis ka B on tõsi. Omadused:Kui
kõigil asjadel on omadus P, siis on olemas asi, millel on omadus
P;??? Kui on olemas asi, millel on omadus P, siis on kõigil asjadel
omadus P. Loogika
teke:
Parmenides (5 sajand e.m.a.) : kasutas pikki loogilisi põhjendusi;Zenon Eleast
(5 sajand e.m.a.) - apooriad/paradoksid;Sofistid -
Sokrates (470-399 e.m.a) -
Platon (428/427 - 348/347 e.m.a).
Aristoteles :
Süllogismide näited:1. eeldus: iga koer on imetaja.2. eeldus: mõned
neljajalgsed on
koerad .järeldus: mõned neljajalgsed on
imetajad . 1.
eeldus: iga anarhist on süsteemi vastane.2. eeldus: mõned
poliitikud on anarhistid. järeldus: mõned poliitikud on süsteemi
vastased. Tuletuse struktuuri võib seega esitada muutujate x,y ja z
abil ning tuletus on õige sõltumata fraasidest, millega neid
muutujaid asendada:1. eeldus: iga x on y.2. eeldus: mõni z on
x.järeldus: mõni z on y. Aristotelese
“kategoorilised väited”Iga
b on a;Mitte ükski b pole a;Mõni b on a;Mõni b ei ole a. Süllogism
on väitlus, kus mingitest etteantud väidetest (eeldustest) järeldub
paratamatult uus väide. Aristotelese puhul alati kaks kategoorilist
eeldust , üks kategooriline järeldus.
Stoikud :
lausearvutus - Stoikud
uurisid, kuidas saab loogiliste sidesõnade (ja, ei, või,
kui...siis) abil lihtsamatest lausete keerulisemaid kokku panna ja
kuidas näidata
selliselt moodustatud lausete õigsust.nt.Kui
esimene, siis teine; esimene; järelikult teine.Kui esimene, siis
teine; mitte teine; järelikult mitte esimene. Mitte korraga esimene
ja teine; esimene; järelikult mitte teine.
Tõestuse
idee:Tõestuse
alusidee on tuntud valetaja
paradoks : kas väide ``ma praegu
valetan'' on tõene või mitte? Lihtne arutlus näitab, et ta ei saa
olla kumbagi. Nt.Koostame nüüd sellise aritmeetilise väite A, mis
ütleb, et seesama A ei ole tõestatav (see väide ei ütle, et A ei
ole tõsi!). Siis ei saa väide A ise olla vale. Tõepoolest, kui A
oleks vale, siis A sisu kohaselt peaks A olema tõestatav. Kuna me
valesid väiteid tõestada ei saa, siib peabki A olema õige. Kuna A
on õige, peab kehtima see, mida A väidab: A pole tõestatav.
Tõepoolest, kui A oleks tõestatav, siis oleks A sisu ("A ei
ole tõestatav") vale, see on aga, nagu näidatud, võimatu.
Kokkuvõtteks, A on õige, aga ei A ega A
eitus pole
tõestatavad.Kuidas
keeles X kirjutatud programmi täidetakse? Pea
silmas, et: arvuti suudab täita ainult masinkoodis programme. On
olemas kaks põhivarianti keeles X programmi
täitmiseks.Kompileerimine:
masinkoodis programm nimega kompilaator teisendab keeles X programmi
masinkoodfailiks Y. Seejärel täidetakse saadud masinkoodis programm
Y. Näide: C.Interpreteerimine:
masinkoodis programm nimega interpretaator loeb sisse X keeles faili
ja asub seda rida-realt täitma. Näide: vana BASIC.NB! Programmi
interpreteerimine on ca 10-200 korda aeglasem, kui kompileeritud
koodi täitmine.Põhimõtteliselt saaks igas keeles kirjutatud
programme nii interpreteeritult täita kui kompileerida. Praktikas
eelistatakse vahel interpreteerimist, vahel kompileerimist.
Keelte
erisused : kolm
põhiasja:Süntaks
(kuidas
kirjutatakse näiteks if .. then .. else ühes või teises
keeles);
Semantika ehk
tähendus (mida õigesti kirjutatud programm tegelikult siis
teeb);Teegid
(libraries)
(millised valmisprogrammijupid on selle keele jaoks kergesti
kättesaadavad või kohe kaasa pandud).
Opsüsteemi põhieesmärgid:Pakkuda
programmeerijale valmistehtud standardtükke.Võimaldada kasutajal
arvutis ühtemoodi ja harjumuspäraselt tegutseda, sõltumatult
sellest, mis programmid tal arvutis on.
Miks opsüsteem?Arvutit
saaks programmeerida ka ilma opsüsteemita. Sel juhul:oleks iga
programmi tegemine palju raskem kui opsüsteemi olemasolu
korral.kasutajate jaoks näeks eri programmid väga eri moodi välja.
Mida opsüsteem enamasti teeb?
Oskab
kettalt programme lugeda ja neid käima panna.Oskab programme
seisma panna (lõplikult või ainult väikese pausi jaoks). Oskab
kettale faile ja katalooge kirjutada ja sealt neid lugeda.Oskab
välisseadmetega (printer, monitor, klaviatuur jne jne) suhelda.Oskab
võrguga suhelda.Kui opsüsteemi ei oleks, peaks iga programm kõiki
neid asju ise teha oskama!
Opsüs om: 1. Funktsionaalsus
(Protsesside
haldamine , Mälu haldamine, Kasutajate haldamine
,Failisüsteemid,Võrguprotokollid ja –teenused,Riistvara tugi), 2.
Kasutatavus
(
Liides : käsurida (CLI),
graafika (GUI);
Olemasolevad rakendused ,
teenused,Vajalik riistvara, Haldusvahendid,
kaughaldus ,Stabiilsus,Skaleeruvus,Tugi,Hind).
UNIXi filosoofia 1.väike
on ilus(iga utiliit/teenus täidab ainult ühte
funktsiooni;komponentide ehitus ja opsüsteemi vahendid võimaldavad
kerget ja selge liidesega kombineerimist;
keerulisemad teenused
pannakse kokku lihtsamatest;tulemuseks on alternatiivsete lahenduste
võimalus ja süsteemide mitmekihiline ehitus). 2.
kõik
on fail(failid, kataloogi,
seadmed on ligipääsetavad sarnase
liidesega;minimaalselt baasmõisteid, mis on võimalikult
universaalsed). Tuuma
ülesanded:1.Loob
protsessidele stabiilse ja üksteisest isoleeritud “elukeskkonna”
ning kommunikatsioonivahendid.2.Loob
liidese failidele ja riistvararessurssidele.3.Seostab
kõik protsessid, failid jm omanikuga ja piirab protsesside
pöördumise failide/ressursside poole vastavalt pääsu- ja
kasutusõigustele.
Virtualiseerimisvahendid:1.PC
riistvara emuleerimine(Vmware,Olemas nii Linux, kui Windows
version,Eri versioonid töökoha ja serverirakendusteks,Virtual PC
(Microsoft), Parallels (MacOS)). 2.
Linuxipõhised
virtualiseerimisvahendid(Virtuozzo. OpenVZ, Vserver, XEN, UML,
QEMU ).
1.Operatsioonisüsteemi tuuma funktsioonid: ressursside
haldamine (mälu, protsessor, seadmed),protsesside haldamine,
võrguliides ja võrguprotokollid,turvalisuse garanteerimine.
2.Operatsioonisüsteemi
muud funkt ,kasutajate
andmebaas,tarkvarahaldus,kettaressursside haldus,monitoring. Tarkvara
arhitektuur mingi
süsteemi tehnoloogilisi põhimõtteid,millisteks suurteks
osadeks süsteem jaotub,milliseid
suuri valmistükke süsteem kasutab.
Tarkvarasüsteemid ehitatakse
reeglina mitmesuguste komponentide kokkupaneku teel. Neid komponente
võib klassifitseerida - näiteks - järgmisel viisil:Terviklikud
lõppkasutaja-rakendusprogr, Suured valmiskomponendid,Teegid.
GNU ideoloogia:vabadus:
primaarne on tarkvara vabadus,
sekundaarne tasuta
kättesaadavus;ausus:
ausam on kasutada vabavara kui piraatkopeerida;teadmiste
vabadus: teadmised, tarkvara tahab olla vaba, on loomu poolest vaba -
teadmiste ja tarkvara kopeerimine
laiendab ühiskonna majanduslikku
võimsust, kaotajaid (rumalamaks jääjaid) pole;raha
saab teenida ka tarkvara toetades ja installeerides ja
levitades;motivatsioon senistes kogustes tarkvara luua väheneb?
vastuargument: 1.
programmeerimine on põnev;2.
ehk polegi meil nii palju kallilt makstud programmiste vaja?
Kõik kommentaarid