Tallinna Inglise Kolledž Tauri Pupart 8a klass Programmeerimiskeele JavaScript omandamine kasutades eestikeelset Code Academy (Progetiiger) e-õppekeskkonda Uurimistöö Juhendajad: Kersti Jankovski Paavo Viilup 1 SISUKORD SISUKORD 2 SISSEJUHATUS 3 1. Projekt progeTiiger 4
Bjarne Stroustrup Margus Henning Üldandmed Sündis 30. detsember 1950.a. Taanis, Aarhuse linnas. C++ programmeerimiskeele looja ja arendaja. Praegu on ta arvuti teaduse õpetaja ühes Texase koolis. Töökoht 1992 aastast Acmi ja IEEE liige. 2002 AT&T Lab'si juht. 2004 Rahvusliku tehnika akadeemia liige. Töökoht 1992 aastast Acmi ja IEEE liige. 2002 AT&T Lab'si juht. 2004 Rahvusliku tehnika akadeemia liige. Autasud 1992 ACM Grace Murray Hopper autasu 2004 IEEE Computer Society 2004 Arvuti Ettevõtja Autasu 2005 William Procter Autasu teadusliku saavutuse eest. 2008 Dr
PROGRAMMEERIMISE MÕISTED ALGORITM on täpne ja üheseltmõistetav eeskiri mingi ülesande lahendamiseks. Algoritmi esitusviisid: Pseudokoodis, kus kasutatakse programmeerimiskeele võtmesõnu, lauseid. Graafiliselt - blokk-skeemid. PROGRAMMEERIMISKEEL on tehiskeel algoritmide kirjapanekuks arvutitele "arusaadaval" kujul. Programmeerimiskeeles kirja pandud algoritmi nimetatakse PROGRAMMIKS või, kui veelgi täpsem olla, PROGRAMMI TEKSTIKS. Programmeerimiskeele süntaks on range eeskiri, mis sätestab väga üksikasjalikult, kuidas tohib programmi kirja panna nii, et see oleks arvuti poolt vastuvõetav. Vastasel juhul on tekstis süntaksivead. Programmi süntaks võib olla õige, kuid sellegipoolest see programm ei tööta arvutis nii, nagu soovisime. Siis on programmis on semantilised vead ehk sisulised vead. Kui süntaks määratleb ära sõnade ja sümbolite järjekorra lauses, siis lause semantika on lause mõte, tema tähendus
Visual Basic (VBA - Visual Basic for Application) baasil Exceli keskkonnas. Siin tutvustatakse programmeerimise ja Visual Basicu' põhivõimalusi. Tahaks rõhutada, et käsitlus ei ole orienteeritud Exceli programmeerimisele vaid tegemist on programmeerimisega Excelis. Samal ajal omandatakse ka peamised võimalused VBA-toega rakenduste loomiseks Excelis ja teatud määral ka teistes nn dokumendipõhistes rakendustes. Ka ei ole põhieesmärgiks VBA, kui programmeerimiskeele õppimine, vaid programmeerimise aluste omandamine objektipõhistes ja objektorienteeritud süsteemides. VBA ja Excel pakuvad mugavat keskkonda ja lihtsaid vahendeid programmeerimise aluste kiireks omandamiseks ja rakenduste loomiseks. Taolisi lihtsaid võimalusi pole üheski teises programmeerimissüsteemis, va Basic'u süsteemid ja Scratch. Kui viimasaeid kasutakse peamiselt personaalse tarkvara ja mängude tegemiseks, võimaldab
ülemaailmset riikidevahelist sidet. Universaalkeele ideel on nii häid (erinevused vähenevad, maailm rahuneks natuke maha) kui halbu külgi (suur arv keeli sureks välja). Siit moraal: Universaalkeel ei ole hea kõigi jaoks. Säilitame oma keele ning lepime sellega, mis on mitte, mis võib olla või mis juba oli. (83 | 608) _____- - - - - - - - ----------------=-=-=-=-=-=-=-=-================Jüri Vaitmaa 10K Märge: Ma jätsin arvutikeele, programmeerimiskeele ja kahendkeele (ing. "binary") meelega välja sest muidu oleks asi väga pikaks läinud vist.
2 eelnevalt kompilleerida, skript käivitub koheselt veebilehekülje üleslaadimisel. Ta on sisseehitatud brauserisse ja töötab koos HTML'ga. JavaScript'i keel koosneb kolmest osast: tuum-JavaScript (core JavaScript), kliendipoolne JavaScript (client-side JavaScript) ja serveripoolne JavaScript (server-sideJavaScript). Tuum-JavaScript koosneb kolmest põhiobjektidest (Array, Date, Math) ning programmeerimiskeele põhielementidest, milleks on operaatorid (+, -, /, *,, jne), kontrollstruktuurid (continue, break, jt.) ja laused (if...else, switch, while, do...while, for, jt). Kliendipoolne JavaScript ja serveripoolne JavaScript kasutavad samu tuum- JavaScript'i programmeerimiskeele põhielemente. Joonisel 1 on näha millistest JavaScript'i keele osadest koosneb kliendipoolne ja serveripoolne JavaScript. Joonis 1. JavaScript'i keele osad.
1 Mis on Java? Java -- alates 1991. aastast Sun Microsystems poolt arendatav ja 23. mail 1995 avalikustatud objektorienteeritud programmeerimiskeel. Esialgselt oli uue programmeerimiskeele nimetuseks Oak ja seda loodi koduelektroonika tarbeks, kuid hiljem nimetati see ümber Javaks ja seda hakati kasutama rakendite (aplettide) (ingl applet), rakenduste (application) ja servertarkvara loomiseks. Põhivõimalused · eriolukordade töötlemise laiendatud võimalused; · sisend/väljund filtrimisvahendite lai kogum; · sisseehitatud lihtsad klassid (massiiv, loetelu, stack jms); · võrgurakenduste loomise lihtsate vahendite olemasolu;
levitamiskulud, lõputult taaskasutatav ja arendatav) Mida programmilt või andmebaasilt oodatakse? kaubanduslikku väärtust otstarbekohasust ja tõhusust nüüd ja tulevikus ühilduvust ja koostoimivust teiste IT-lahendustega konkurentsieeliste säilimist suhtelist sõltumatust tarnija huvidest, võimetest, ressurssidest standardite täitmist IT-lahenduste eripärad vajab personali, riistvara, tekitades uusi vajadusi Arvutiprogramm võib esineda programmeerimiskeele lähtekoodina koos kommentaaride ja dokumentatsiooniga; objektkoodina või masinkoodina (failidena) soorituva objekt- või masinkoodina arvutile installeerituna Arvutiprogramm on paljudest lähtekoodidest ja õiguslikest komponentidest koosnev kompositsioon Translaatorid Kompilaatorid või interpretaatorid An interpreter translates some form of source code into a target representation that it can immediately execute and evaluate.
· Info väljastamise reziim · Info korrigeerimise reziim · Poolautomaatne tööreziim · Automaatne tööreziim · Graafiline interaktiivne reziim Juhtsüsteemi mälumahu järgi · Sõnades · Megabaitides CNC tööpingi süsteemide vaheline seos CNC tööpingi juhtprogrammi koostamismeetodid (detaili töötlemiseks) · Käsitsi koostamine · Programmeerimine editor reziimis arvutis · Õpetav programmeerimismeetod · Kõrgema programmeerimiskeele kasutamine · Graafiline interaktiivne programmeerimine · CAD/CAM programmeerimine Käsitsi koostamine · Vanim · Töömahukaim · Kirjutatakse käsitsi paberile ja perforaatori abil viiakse perfolindile · CNC tööpink kasutab programmikandjana perfolinti · Programmi muudatused nõuavad uut perfolinti Programmeerimine editor reziimis arvutis · Programm viiakse püsimällu Online reziimis · Lihtsustunud korrigeerimine
1.2. Tarkvaratehnika 3 1.3. Tarkvaratehnika raamistik 3 2. Andmebaaside struktuur ja algotrim 4 2.1. Algoritmi mõiste, struktuur ja esitamine 4 2.2. Erinevad andmestruktuurid ja nende omadused 5 3. Programmkeelte põhitüübid 7 3.1. Programmeerimise ajalugu 7 3.2. Programmeerimiskeelte põhitüübid 8 3.3. Programmeerimiskeele semantika ja süntaks 9 Page 2 1. Tarkvara arendusmeetodid ja tehnikad 1.1 TARKVARA - Arvutile antavad käsud. Mingi tegumi sooritamiseks vajalikku käsujada nimetatakse programmiks. Tarkvara jaguneb kahte suurde kategaooriasse - süsteemitarkvaraks ja rakendustarkvaraks. Süsteemitarkvara koosneb juhtprogrammidest nagu operatsioonisüsteem ja andmebaasihaldurid
1.2. Tarkvaratehnika 3 1.3. Tarkvaratehnika raamistik 3 2. Andmebaaside struktuur ja algotrim 4 2.1. Algoritmi mõiste, struktuur ja esitamine 4 2.2. Erinevad andmestruktuurid ja nende omadused 5 3. Programmkeelte põhitüübid 7 3.1. Programmeerimise ajalugu 7 3.2. Programmeerimiskeelte põhitüübid 8 3.3. Programmeerimiskeele semantika ja süntaks 9 Page 2 1. Tarkvara arendusmeetodid ja tehnikad 1.1 TARKVARA - Arvutile antavad käsud. Mingi tegumi sooritamiseks vajalikku käsujada nimetatakse programmiks. Tarkvara jaguneb kahte suurde kategaooriasse - süsteemitarkvaraks ja rakendustarkvaraks. Süsteemitarkvara koosneb juhtprogrammidest nagu operatsioonisüsteem ja andmebaasihaldurid
hakkas Babbage välja töötama maailma esimest arvutit, mille ta nimetas Analüütiliseks mootoriks. Babbage abiliseks selle arvuti välja töötamisel oli Augusta Ada King, Lovelace-i Krafinna (1815-1842), kes oli ka inglise poeedi Lord Byroni tütar. Ta tundis masina ehitust ja ta valmistas ka masinale instruktsiooniridasid, ehk siis teiste sõnadega programme, mis tegi temast maailma esimese naisprogrammeerija. Aastal 1980 nimetas USE kaitseministeerium ühe programmeerimiskeele tema järgi ADA-ks. Babbage ei suutnud oma masinat kahjuks valmistada, aga tema idee oli sama, mis tänapäeva arvutitel. Masin, mida küll kunagi valmis ei ehitatud, koosnes 50000 komponendist, sellele oleks programme sisestatud augustaud kaartide abil ja arvuti mälu oli võimeline endas hoidma 1000 numbrit, mis igaüks oleks võinud olla kuni 50-kohaline. 5. IBM algus Aastal 1896 asutati firma, millest tuli pärast mitmeid firmade ühinemisi aastal 1924 firma
hakkas Babbage välja töötama maailma esimest arvutit, mille ta nimetas Analüütiliseks mootoriks. Babbage abiliseks selle arvuti välja töötamisel oli Augusta Ada King, Lovelace'i krahvinna (1815-1842), kes oli ka inglise poeedi Lord Byroni tütar. Ta tundis masina ehitust ja ta valmistas ka masinale instruktsiooniridasid, ehk siis teiste sõnadega programme, mis tegi temast maailma esimese naisprogrammeerija. Aastal 1980 nimetas USE kaitseministeerium ühe programmeerimiskeele tema järgi ADA-ks. Babbage ei suutnud oma masinat kahjuks valmistada, aga tema idee oli sama, mis tänapäeva arvutitel. Masin, mida küll kunagi valmis ei ehitatud koosnes 50000 komponendist, sellele oleks programme sisestatud augustaud kaartide abil ja arvuti mälu oli võimeline endas hoidma 1000 numbrit, mis igaüks oleks võinud olla kuni 50-kohaline. Aastal 1889 hakkas Herman Hollerith (1860-1929) välja töötama arvutit, et arvutada USA rahvaloenduse tulemusi
Käsuinterpretaator (käsutõlgendaja) on tekstipõhine käsutöötlusprogramm, millega saab juhtida operatsioonisüsteemi. Paljud käsuinterpretaatorid võimaldavad ka programmeerimist tänu piiratud skriptimiskeele toetusele. Käsurea interpretaatorid teevad kasutajatele võimalikuks väljuda erinevatest käskudest väga efektiivsel (ja tihti ka mõttetihedal) viisil. Sel juhul peab kasutaja teadma käskude ning nende parameetrite nimesid, ning interpreteeritava programmeerimiskeele süntaksit. Kokkuvõte Operatsioonisüsteem laia mõistena võib kirjeldada kui programmide kogumit arvuti juhtimiseks. Üks esimestest opsüsteemidest oli loodud 1969. aastal, tuntud Unix’i nime all. Kaasajal laialdasemalt kasutatav ning tuntuim süsteem on MicroSoft’i Windows. Operatsioonisüsteemi koostisosad eksisteerivad põhjusel, et arvuti eri osad omavahel üheskoos töötaksid. Erinevateks osadeks on: tuum ehk kernel,
sälgu võrra, liikus kümneliste oma edasi ühe võrra jne. Esimese eksperimentaalse arvutusmasina oli loonud Tübingeni ülikooli professor Schickard Pascali sünniaastal, see aga hävis tulekahjus. Enne rahuldava variandini jõudmist ehitas Pascal meistrite abiga üle viiekümne mudeli. Arvutusmasin olevat ära teinud kuue arvepidaja töö, kuid edukaks müügiartikliks see ei kujunenud. Pascali "küberneetilisi" teeneid hinnanud hinnanud Nicklaus Wirth nimetas tema auks programmeerimiskeele Pascal. Pascal täiustas Torricelli baromeeter|baromeetrit, esitas kõrgusemõõtja altimeetri idee, leiutas hüdraulilise pressi ja esimese primitiivse ruletimasina. Lisaks olevat Pascal olnud esimene käekella kandja, kinnitades oma taskukella nööriga randme külge. 8 Lisa 9 Kokkuvõte Hoolimata haprast tervisest ja emata üleskasvamist sai Pascalist kuulus juba 16 aastaselt. Peale 1651a
Babbage abiliseks selle arvuti välja töötamisel oli Augusta Ada King, Lovelace-i Krafinna (1815-1842), kes oli ka inglise poeedi Lord Byroni tütar. Ta tundis masina ehitust ja ta valmistas ka masinale instruktsiooniridasid, ehk siis teiste sõnadega programme, mis tegi temast maailma esimese naisprogrammeerija. Aastal 1980 nimetas USE kaitseministeerium ühe programmeerimiskeele tema järgi ADA-ks. Babbage ei suutnud oma masinat kahjuks valmistada, aga tema idee oli sama, mis tänapäeva arvutitel. 18. Selles lõigus muutke reavahe 1,5-kordseks. Reljeefkiri. Aastal 1889 hakkas Herman Hollerith (1860-1929) välja töötama arvutit, et arvutada USA rahvaloenduse tulemusi. Ta kasutas selleks ka Joseph-Marie Jacquardi leiutatud augustatud kaarte ehk siis perfokaarte, mida oli vaja masinale info andmiseks 19
• Programmeerimine Editor-režiimis arvutil. APJ-pingi juhtsüsteemi püsimällu juhtprogramm viiakse Online- režiimis. Lihtsustub korrigeerimine. Enamalt on võimalik simuleerida töötlemisprotsessi. • Õpetav programmeerimismeetod. Programmeerija liigutab tööriista, seadme teekonnamõõtsüsteem mõõdab trajektoori ja koordinaadid salvestatakse juhtsüsteemi mällu. Detailide valmistamiseks ebatäpne. Leiab rakendust värvimisrobotite töö programmeerimisel. • Kõrgema programmeerimiskeele kasutamine. APJ-pingi juhtsüsteemist mittesõltuv programmeerimismeetod. Vajab post-protsessorit, mis genereerib programmi konkreetse APJ-pingi juhtsüsteemikohaseks. • Graafiline interaktiivne programmeerimine. APJ-pingi operaatoripuldilt sisestatakse detaili geomeetriainfo, määratakse kindlaks tehnoloogiarežiim ja pingi juhtsüsteem ise genereerib juhtprogrammi. Keskmise keerukusega detailide töötlemise programmeerimiseks. • CAD/CAM orienteeritud programmeerimine
akkas Babbage välja töötama maailma esimest arvutit, mille ta nimetas Analüütiliseks mootoriks. Babbage abiliseks selle arvuti välja töötamisel oli Augusta Ada King, Lovelace-i Krafinna (1815-1842), kes oli ka inglise poeedi Lord Byroni tütar. Ta tundis masina ehitust ja ta valmistas ka masinale instruktsiooniridasid, ehk siis teiste sõnadega programme, mis tegi temast maailma esimese naisprogrammeerija. Aastal 1980 nimetas USE kaitseministeerium ühe programmeerimiskeele tema järgi ADA-ks. Babbage ei suutnud oma masinat kahjuks valmistada, aga tema idee oli sama, mis tänapäeva arvutitel. Masin, mida küll kunagi valmis ei ehitatud koosnes 50000 komponendist, sellele oleks programme sisestatud augustaud kaartide abil ja arvuti mälu oli võimeline endas hoidma 1000 numbrit, mis igaüks oleks võinud olla kuni 50-kohaline. 2
hakkas Babbage välja töötama maailma esimest arvutit, mille ta nimetas Analüütiliseks mootoriks. Babbage abiliseks selle arvuti välja töötamisel oli Augusta Ada King, Lovelace-i Krafinna (1815-1842), kes oli ka inglise poeedi Lord Byroni tütar. Ta tundis masina ehitust ja ta valmistas ka masinale instruktsiooniridasid, ehk siis teiste sõnadega programme, mis tegi temast maailma esimese naisprogrammeerija. Aastal 1980 nimetas USE kaitseministeerium ühe programmeerimiskeele tema järgi ADA-ks. Babbage ei suutnud oma masinat kahjuks valmistada, aga tema idee oli sama, mis tänapäeva arvutitel. Masin, mida küll kunagi valmis ei ehitatud koosnes 50000 komponendist, sellele oleks programme sisestatud augustaud kaartide abil ja arvuti mälu oli võimeline endas hoidma 1000 numbrit, mis igaüks oleks võinud olla kuni 50-kohaline. Aastal 1889 hakkas Herman Hollerith (1860-1929) välja töötama arvutit, et arvutada USA rahvaloenduse tulemusi
Arvutiriistvara I: Arvutustehnika ajalugu Küsimus 1 Milline oli esimene tabelarvutusprogramm? Õige vastus on: VisiCalc. Küsimus 2 Milline oli kõige esimene kommertsmikroprotsessor? Õige vastus on: 4004. Küsimus 3 Millist protsessorit kasutas esimene IBM PC? Õige vastus on: 8088. Küsimus 4 Moore seadus väidab, et ühte mikroskeemi paigutatavate transistorite hulk kahekordistub iga ... kuuga. Õige vastus on: 18. Küsimus 5 Kes lõi(d) C programmeerimiskeele? Õige vastus on: Dennis Ritchie. Küsimus 6 Milline nendest firmadest tõi esimesena turule IBM-PC tüüpi kaasaskantava arvuti? Vali üks: Õige vastus on: Compaq. Küsimus 7 Milli(ne/sed) arvuti(d) aitas(id) briti valitsusel II maailmasõja ajal murda koode? Õige vastus on: Colossus. Küsimus 8 Milline nendest firmadest valmistas esimese 32 bitise protsessori? Õige vastus on: National Semiconductor. Küsimus 9
võtta (näiteks www.ttu.ee), siis tuleb kõigepealt leida sellenimelise masina IP aadress. DNS serverid: serverid, mis sisaldavad "nimi<->IP aadress" tabeleid ja vastavad päringutele "anna selle nime IP aadress": XML tähendab - eXtensible Markup Language Struktureeritud teksti esitamise formaat XML standard ütleb, kuidas teksti struktuuri märgistada. Saab kasutada andmete esitamiseks tekstina JSON - Javascript Object Notation Andmete esitamise formaat tekstina Javascripti programmeerimiskeele ,,native" andmestruktuur Väga lihtne ja mugav kasutada Kaasajal brauserirakendustes eelistatum kui XML XHTML: Praktiliselt seesama, mis HTML (samad tagid jne) Tagid peavad olema väikeste tähtedega Peab olema korrektses XML süntaksis (tagi suletud jne) Paar XML-i lisaknihvi ka (namespaced jne) Recursion A subroutine is said to be recursive if it calls itself, either directly or indirectly. That is, the subroutine is used in its own definition.
dünaamika-) diagrammid. Ilma süsteemi eesmärke ja funktsionaalsust modelleerimata pole võimalik otsustada konkreetsete klasside vajalikkuse üle. Atribuudid Klassi atribuudid kirjeldavad objektide omadusi. Süsteemi eesmärk ja funktsionaalsus mõjutavad klassi kirjeldavaid atribuute. Kirjeldatakse ainult modelleeritava süsteemi kontekstis huvi pakkuvaid atribuute. Atribuudil on tüüp: Primitiivsed tüübid: integer, Boolean, real, point, area, enumeration Spetsiifilised (programmeerimiskeele jaoks) Teised klassid võivad olla atribuudi tüübiks Atribuudi nähtavus (visibility): Public (+): nähtav ja kasutatav väljaspoolt antud klassi Private (-): nähtav ja kasutatav ainult antud klassi sees Protected: kasutatakse koos üldistamise/pärimise seosega Atribuudil võib olla vaikimisi väärtus. Saab defineerida klassi skoobiga atribuute (muutujaid), mida jagavad kõik antud klassi objektid. Sellised atribuudid on alla joonitud.
majutust. Kogu arveldamine käibki aplikatsioonide järgi - igal aplikatsioonil on kasutada teatud arv ressursse ning ka maksta tuleb vastavalt konkreetse aplikatsiooni ressursikasutuse järgi, mitte kuidagi üldisemalt, näiteks aplikatsiooni omaniku poolt ressursside üldkasutuse järgi. Seega päris suvalisi faile Google App Engine serverites hoida ei saa ning kinni tuleb pidada mitmetest reeglitest ja tuleb arvestada erinevate piirangutega. Esiteks programmeerimiskeele valik - valida on ainult kahe keskkonna vahel, Java ning Python. Käesolev juhend ongi kirjutatud Pythoni põhise keskkonna nõudmiste järgi. Kolmandate keelte (näiteks PHP või Ruby) kasutamine on reeglina võimalik vaid Java abil, kui eksisteerib Java interpretaator vastava keele jaoks. See tähendab, et võetakse näiteks PHP keeles kirjutatud skript, tõlgitakse see Java'le loetavaks ning Java käivitab selle Google App Engine platvormil tavalise Java põhise aplikatsioonina.
10. Programmide vormistamine. Identifikaatorite süstematiseerimine. Taanete kasutamine. 11. Programmi dokumenteerimine. Kommentaarid. Programmi projekteerimine. Programmi testimine. 12. Struktuurprogrammeerimise põhimõtted. Objektorienteeritud programmeerimise põhimõtted. Esimesel tasemel kasutatakse näidetes samaaegselt kolme programmeerimise keelt, milleks on Pascal, C ja Basic. Siinkohal tahaks rõhutada, et antud kursuse eesmärgiks ei ole mitte programmeerimiskeele täiuslik omandamine, vaid programmeerimise oskuse omandamine - need kaks oskust on erinevad! Samuti on kursuse materjalidesse peidetud soov näidata, et samasse klassi kuuluvad programmeerimiskeeled on oma olemuselt samasugused. SISSEJUHATAV SÕNAVÕTT EHK 'MILLEKS ON VAJA PROGRAMMEERIMIST?' PROGRAMMEERIMISE KOHT MUUDE MAAILMA ASJADE SEAS Masinad ja nende juhtimine Oli kord aeg, mil inimene tegi tööd vaid käsitsi. Ta võttis küll kasutusele töövahendid oma töö
Programmi projekteerimine. Programmi testimine. 12.Struktuurprogrammeerimise põhimõtted. Objektorienteeritud programmeerimise põhimõtted. Kui mõni eelmistest pealkirjadest jäi arusaamatuks, siis pole põhjust muretsemiseks. Kõiki neid mõisteid õpite tundma selle kursuse käigus. Esimesel tasemel kasutatakse näidetes samaaegselt kolme programmeerimise keelt, milleks on Pascal, C (ja Basic). Siinkohal tahaks rõhutada, et antud kursuse eesmärgiks ei ole mitte programmeerimiskeele täiuslik omandamine, vaid programmeerimise oskuse omandamine - need kaks oskust on erinevad! Samuti on kursuse materjalidesse peidetud soov näidata, et samasse klassi kuuluvad programmeerimiskeeled on oma olemuselt samasugused. Kuidas õppida? Siinkohal saan ma jagada ainult järgmiseid soovitusi: • Õpi sammhaaval, teemasid numeratsiooni järjekorras läbides. • Püüa aru saada kirjutatu mõttest - ilma arusaamiseta ei ole kõigel sellel mõtet. ;-)
akkas Babbage välja töötama maailma esimest arvutit, mille ta nimetas Analüütiliseks mootoriks. Babbage abiliseks selle arvuti välja töötamisel oli Augusta Ada King, Lovelace-i Krafinna (1815-1842), kes oli ka inglise poeedi Lord Byroni tütar. Ta tundis masina ehitust ja ta valmistas ka masinale instruktsiooniridasid, ehk siis teiste sõnadega programme, mis tegi temast maailma esimese naisprogrammeerija. Aastal 1980 nimetas USE kaitseministeerium ühe programmeerimiskeele tema järgi ADA-ks. Babbage ei suutnud oma masinat kahjuks valmistada, aga tema idee oli sama, mis tänapäeva arvutitel. Masin, mida küll kunagi valmis ei ehitatud koosnes 50000 komponendist, sellele oleks programme sisestatud augustaud kaartide abil ja arvuti mälu oli võimeline endas hoidma 1000 numbrit, mis igaüks oleks võinud olla kuni 50-kohaline. Aastal 1889 hakkas Herman Hollerith (1860-1929) välja töötama arvutit, et arvutada USA rahvaloenduse tulemusi
Windowsi operatsioonisüsteemidele 95 ja NT ning Microsoft Office'i rakendustele. 2.18 1997. aasta Veebruaris ilmus esimene operatsioonisüsteemile Linux kirjutatud viirus Linux.Bliss. Sealt edasi on Linuxile mõeldud viirused edasi arenenud ja viirusekirjutajate poolt on loodud ka töövõimelisi Trooja hobuseid. Microsoft Office 97 ilmumine tõi endaga kaasa ka makroviiruste järk-järgulise ülemineku sellele platvormile. See oli tingitud uue programmeerimiskeele VBA 5.0 kasutusele võtmisest, sest uus keel erines eelnevatest WordBasicu ja VBA 3.0 keeltest. VBA 5.0 juures ei suutnud erinevates keskkondades loodud viirused ühilduda täielikult erinevate tarkvaraversioonidega ja seega ei täitnud neile pandud ,,ülesandeid". Uued makroviirused osutusid aga oma eelkäijate uude versiooni kopeeritud analoogideks. Peagi aga ilmusid spetsiaalselt MS Office 97 rakendustele kirjutatud viirused.
· Riskide minimeerimine või välistamine. Meetmete rakendamine, et jõuda vajaliku tasemeni. "Riskihalduse 4 T": treat, transfer, tolerate, terminate. Ekspertteadmiste põhine testimine. Kogenud arendaja või testija oskab tõenäolisi vea kohti ette aimata. Tõenäoliste vigade leidmine võib sõltuda mitut sorti eelteadmistest, milleks on · üldised teadmised · teadmised konkreetse rakendusvaldkonna kohta · teadmised riist- või tarkvarakeskkonna (näiteks konkreetse programmeerimiskeele) kohta · teadmised arendusmetoodika kohta · teadmised konkreetse arendaja või tellija kohta jne Uuriv testimine (exploratory testing) on mitteformaalne tarkvara testimise tehnika, mille puhul testija hindab testide kavandamist nende täitmise käigus ning kasutab saadud informatsiooni uute ja paremate testide projekteerimiseks. Suitsutestimisel (smoke testing) täidetakse alamhulk kõigist testidest selgitamaks, kas põhilised funktsioonid töötavad
4004 Moore seadus väidab, et ühte mikroskeemi paigutatavate transistorite hulk kahekordistub iga ... kuuga. 18 (või 24) Milline nendest firmadest tõi kasutusele esimesena aknad, ikoonid ja hiire? Xerox Milline oli esimene tabelarvutusprogramm? VisiCalc Kes nendest on Inteli asutajad? Robert Noyce ja Gordon Moore (mõnes kohas Andy Grove) Milli(ne/sed) arvuti(d) aitas(id) briti valitsusel II maailmasõja ajal murda koode? Colossus Kes lõi(d) C programmeerimiskeele? Dennis Ritchie Mille eest said Shockley, Brittain ja Bardeen 1956. aastal Nobeli preemia? Transistori leiutamise eest Milline nendest firmadest valmistas esimese 32 bitise protsessori? National Semiconductor Milline nendest firmadest tootis esimese kõvaketta? IBM Milline nendest firmadest tõi esimesena turule IBM-PC tüüpi kaasaskantava arvuti? Compaq Milliste sõnade lühend on ENIAC? Electronic Numerical Integrator and Computer Kes on nende kuulsate sõnade autor(id)
avada serveri urli 18 XML eXtensible Markup Language Struktureeritud teksti esitamise formaat XML standard ütleb, kuidas teksti struktuuri märgistada. Saab kasutada andmete esitamiseks tekstina Lihtne, aga veidi kohmakas kasutada EI OLE PROGRAMMEERIMISKEEL JSON Javascript Object Notation Andmete esitamise formaat tekstina Javascripti programmeerimiskeele ,,native" andmestruktuur Väga lihtne ja mugav kasutada Kaasajal brauserirakendustes eelistatum kui XML EI OLE PROGRAMMEERIMISKEEL 11. LAMBDA ARVUTUS Lambda-arvutuse keel on Alonzo Churchi poolt 1930. aastatel leiutatud lihtne ja universaalne meetod funktsioonide kirjapanekuks. Lambda-arvutuse keel on Alonzo Churchi poolt 1930. aastatel leiutatud lihtne ja universaalne meetod funktsioonide kirjapanekuks. Churchi tees väidab, et iga algoritmi saab lambda-arvutuse keeles kirja panna
Teegid ehk libraries Konkreetseid, piiratud funktsioone realiseerivad väikesed komponendid ja nende komplektid. Mõned komplektid on hiigelsuured. Funktsioonide näiteid: Trükkimine Faili kirjutamine Võrguühenduse avamine Ringi, joone vms asja joonistamine Selliseid komponente levitatakse enamasti komplekti kompilaatorite ja muude tarkvara- arendusvahenditega ning nad on tüüpiliselt kasutatavad ainult selle konkreetse programmeerimiskeele ja arendusvahendi koosseisus. komplektis kompilaatorite ja muude tarkvara-arendusvahenditega Enamik keeli sisaldab suhteliselt piiratud võimalustega standardteeke. Näide: C standardteek sisaldab stringtöötlust, failitöötlust, trükkimist, veel paari analoogilist kategooriat. Reeglina on võimsad rakendusteegid (graafika, aknad, hiir, võrguühendused, paralleelprotsessid jne ...) ebastandardsed, piiratud teatud riistvara ja opsüsteemiga
1953 Watson ja Crick avastavad DNA struktuuri. 1953 Ewing ja Heezen avastavad Vaikse ookeani keskmäestiku. 1953 Stanley Miller näitab, kui juhtida välku läbi anumate, milles on vesi, metaan, lämmastik ja vesinik, võivad tekkida aminohapped. 1954 Auguste Piccard ehitab batüskaafi, millega jõutakse 4 km sügavusele. 1954 Konstrueeritakse esimene tuumareaktor. 1954 Kirjutatakse esimene kompilaator programmeerimiskeele FORTRAN jaoks. 1955 Bridgeman valmistab kõrge rõhu all süsinikust tehisteemante. 1955 Segre ja Chamberlain tekitavad anti-prootoni. 1956 Lee ja Yang aravavad, et beetalagunemise ajal ei pruugi paarsus jääv olla. 1956 Chien-Shiung Wu avastab, et koobalti isotoobi Co-60 beetalagunemisel rikub nõrk vastikmõju paarsuse jäävust. 1957 Nõukogude Liit saadab üles sputniku, Maa esimese tehiskaaslase.
Selle abil saab süsteemimuutuja `THICKNESS hetkeväärtust hiljem taastada, kui vahepeal olid talle mingid muud väärtused omistatud. Süsteemimuutujale väärtuse omistamine toimub lausega (setvar muutujanimi väärtus). Muutujanimi tuleb vormistada sõnena. Näiteks lausega (setvar "THICKNESS" 0) nullitakse süsteemimuutuja `THICKNESS väärtus. 46 Üks olulisemaid programmeerimiskeele AutoLISP lauseid on joonestuspaketi AutoCAD käsu täitmist organiseeriv lause (command argument ...). Esimeseks argumendiks on siin käsunimetus apostroofidega ümbritsetuna. Järgnevateks argumentideks on käsu operandid, nii nagu konkreetse käsu täitmine parajasti nõuab. Nendeks võivad olla tekstikonstandid, täis- või reaalarvud, punktid, või siis loetletud tüüpi väärtustega muutujad või avaldised. Kui käsk nõuab tühisisestust, tuleb argumendina kirjutada tühisõne ""
Masinkeel 2. Eelised Täidab protsessori instruktsioone Kõige kiirem Ei kompileerita sisuliselt Kõik süsteemi võimalused vahetult kättesaadavad 3. Puudused Sõltub protsessorist, `porditavat' koodi raske luua Silumine ja vigade leidmine vaevaline Ülevaadet programmist raske saada Raske õppida 4. Kasutada `kõrgemat' keelt `raami' valmistamiseks muutujad, funktsioonid, pöördumised jne 67. Milliseid programmeerimiskeele omadusi on vaja teada ja arvestada RAS korral? RAS korral pakub huvi: · Parameter Passing Techniques - Erinevad parameetrite edastamise meetodid · Dynamic Memory Allocation - Dünaamilise mälujagamise meetodid · Strong typing - Jäik tüpiseerimine · Abstraktsed andmetüübid · Eriolukordade töötlus · Modulaarsus 68. Parameetrite edastamise meetodid programmeerimiskeeltes. · Call-by-Value ja Call-by-Reference Kasutada väärtust või kasutada aadressi
Css – Täpset teksti paigutust ja kujundust võimaldav keel HTML täienduseks Javascript – Brauseri programmeerimiskeel: javascripti programmid töötavad otse brauseris: muudavad htmli, css-i, võtavad ühendust serveriga jne Ajax – kogum omavahel seotud veebiarenduse tehnikaid, mida kasutatakse rakenduse kliendi poolel interaktiivsete veebirakenduste loomisel (ing. k. Asynchronous JavaScript And XML) Json – Andmete esitamise formaat tekstina (Javascripti programmeerimiskeele „native“ andmestruktuur, väga lihtne ja mugav kasutada, kaasajal brauserirakendustes eelistatum kui XML.) (ei ole programmeerimiskeel) Xml – Struktureeritud teksti esitamise formaat, XML standard ütleb, kuidas teksti struktuuri märgistada; Saab kasutada andmete esitamiseks tekstina; Lihtne, aga veidi kohmakas kasutada (ei ole programmeerimiskeel) Klassikaline veebirakendus - server ehitab html teksti (server saadab brauserile html teksti,
pürgimine hea asi. See seadus kehtib üllatavalt paljudes organisatsioonides - Telefon, E-mail, IM hajutab keskendumisvõimet Seitse punkti, mis arvatakse, et toimivad, aga tegelikult on vastupidi Praktiliselt võtta nende punktide vastaspunktid ja siis saad teemale pihta. 1. Leitud on mingi uus nipp millega soovitakse tootlikust mitmekordistada 2. Teised firmad kasutavad mingit tarkvara ja sellega on tootlikus tõusnud 200%. 3. Me jääme tehnoloogiast maha! 4. Programmeerimiskeele vahetamine annab meile suure eelise. 5. Tegemata asjade pärast tuleks tootlikust kahekordistada 6. Automatiseerime tarkvaratootmise täielikult! 7. Inimesed töötavad paremini kui panna nad pinge alla. Eksamiküsimused 1) Kvaliteetse tarkvara funktsionaalsed ja mittefunktsionaalsed atribuudid Teostab ettenähtud funktsionaalsust Hooldatav Tarkvara peab arenema, et vastata muutuvatele vajadustele. Usaldusväärne Töökindlus ja turvalisus.
tehtud hooneid lisada Google Earthi ning Google 3D Warehouse kodulehele. SketchUp’is on lõputööna (Rene Põllula 2009) tehtud ka meie kooli 3D mudel. Ja kõlakad käivad, et Haapsalu Piiskopilinnus tuleb järgmisena. 1.1 Plugins ehk pistikprogrammid Nagu eelpoole mainitud, muudavad pistikprogrammid programmile rohkem funktsionaalsust. Ka siin saab jaotada need hinnajärgi - tasuta ja tasulised. Ja kui endal pea võtab, siis on võimalik programmeerimiskeele Ruby abil neid ise luua. Meie võtame pistikprogrammis kasutusele kui vaja SketchUp’i mudel eksportida mõnda teise formaati, animeerida või renderdada V-Ray abil fotorealistlikuks pildiks. Minu üks lemmikutest koos tööprotsessiga leiab sellelt aadressilt - http://forums.sketchucation.com 2 Google SketchUp HKHK / Mario Metshein
Selle nimi pärineb kõige esimesest versioonist, mida nimetati "Personal Home Page Tools". Täna nimetatakse seda kui "PHP: Hypertext Preprocessor" (hüperteksti-eeltöötleja). PHP skripti sisaldavale HTML lehele omistatakse tavaliselt laiend .php. PHP on tasuta tarkvara ja seda levitatakse Open Source litsentsi all avaliku lähtekoodina. PHP's on võimalik luua ka command-line tarkvara ning visuaalse kasutajaliidesega tarkvara, mis on aga vastuolus selle programmeerimiskeele definitsiooniga. Programmeerimiskeele ajalugu algas 1994. aastast, kui Rasmus Lerdorf tegi väga lihtsa programmi, mis mõistis spetsiaalseid makrosid. Aja jooksul programmi modifitseeriti, laiendati, integreeriti andmebaaside ja uute tehnoloogiate toega ning lisati objekt-orienteeritud kontseptsiooni jne. Tulemuseks on PHP viies versioon. Kui vaatame programmeerimiskeelte populaarsust, siis näeme, et PHP on praegusel hetkel kolmandal kohal (eelmisel aastal aga viiendal)
kohti ette aimata. Tõenäoliste vigade leidmine võib sõltuda mitut sorti eelteadmistest, milleks on: Üldised teadmised Teadmised konkreetse rakendusvaldkonna kohta Teadmised riist- või tarkvarakeskkonna (näiteks konkreetse programmeerimiskeele) kohta Teadmised mingi vigade tüübi kohta (näiteks tüüpilised infoturbega seotud kodeerimise vead) Teadmised arendusmetoodika kohta Teadmised konkreetse arendaja või tellija kohta jne Mittefunktsionaalne testimine Jõudlustestimine ja koormustestimine
programmeerimiskeelte juurde mõeldud ka vahendid nende andmehulkadega läbi käimiseks. Kõige lihtsam ja levinum neist on massiiv. Iga elemendi poole saab tema järjekorranumbri 17 abil pöörduda. Algul tuleb määrata, millisest tüübist andmeid massiivi pannakse ning mitu kohta elementide jaoks massiivis on. Järgnevas näites tehakse massiiv kolme täisarvu hoidmiseks. Kusjuures nagu C-programmeerimiskeele sugulastele kombeks on, hakatakse elemente lugema nullist. Nii et kolme massiivielemendi puhul on nende järjekorranumbrid 0, 1 ja 2. Tahtes väärtusi sisse kirjutada või massiivist lugeda, tuleb selleks kirja panna massiiv nimi (praeguse juhul m) ning selle taha kandiliste sulgude sisse järjekorranumber, millise elemendiga suhelda tahetakse. using System; class Massiiv1{ public static void Main(string[] arg){ int[] m=new int[3]; m[0]=40; m[1]=48; m[2]=33;
Massiivid Kuna arvuti on mõeldud suure hulga andmetega ümber käimiseks, siis on programmeerimiskeelte juurde mõeldud ka vahendid nende andmehulkadega toimetamiseks. Kõige lihtsam ja levinum neist on massiiv. Iga elemendi poole saab tema järjekorranumbri abil pöörduda. Algul tuleb määrata, millisest tüübist andmeid massiivi pannakse ning mitu kohta elementide jaoks massiivis on. Järgnevas näites tehakse massiiv kolme täisarvu hoidmiseks. Kusjuures nagu C-programmeerimiskeele sugulastele kombeks on, hakatakse elemente lugema nullist. Nii et kolme massiivielemendi puhul on nende järjekorranumbrid 0, 1 ja 2. Tahtes väärtusi sisse kirjutada või massiivist lugeda, tuleb selleks kirja panna massiivi nimi (praeguse juhul m) ning selle taha kandiliste sulgude sisse järjekorranumber, millise elemendiga suhelda tahetakse. using System; class Massiiv1{ public static void Main(string[] arg){ int[] m=new int[3]; m[0]=40; m[1]=48;
abstraktse masina abil ei ole võimalik alati otsustada, kas suvaline formaalse aritmeetika teoreem on formaalse aritmeetika reeglitest tuletatav või mitte. Churchi nime mainitakse kõige sagedamini seoses nn. Churchi teesiga. Nimelt väitis Church, et ükskõik millise algoritmi saab esitada lambda-arvutuse abil. Sellest teesist tuleneb, et ükskõik millise algoritmi saab esitada ka Turingi masina abil või iga tegelikult kasutatava programmeerimiskeele abil. Tuleb tähele panna, et Churchi tees ei ole teoreem ega ole see tees ka kindlasti õige. Nimelt ei ole võimalik täpselt defineerida loomulikus keeles kasutatava sõna algoritm sisu, näiteks ei saa me kindlad olla, et ühel hetkel ei leita mingit uut ja hoopis eriskummalist, senitundmatut ja ettekujutamatut meetodit, mida siiski algoritmiliseks võib pidada. See on küll äärmiselt ebatõenäone - siiamaani pole
○ Kogenud arendaja või testija oskab tõenäolisi vea kohti ette aimata. Tõenäoliste vigade leidmine võib sõltuda mitut sorti eelteadmistest, milleks on: ■ üldised teadmised ■ teadmised konkreetse rakendusvaldkonna kohta ■ teadmised riist või tarkvarakeskkonna (näiteks konkreetse programmeerimiskeele) kohta ■ teadmised mingi vigade tüübi kohta (näiteks tüüpilised infoturbega seotud kodeerimise vead). ■ teadmised arendusmetoodika kohta ■ teadmised konkreetse arendaja või tellija kohta jne ■ ! kasutusmugavuse testimine 3. Mittefunktsionaalne testimine ○ Jõudlustestimine
Kui aga tundub, et kõik peaks õige olema, aga ikkagi toimub midagi kahtlast, siis tasub võtta detektiivi roll ning püüda asuda tõestama, et mõni stantardne koodikäsklus toimib vigaselt. Kõige kindlam võimalus midagi tööle saada on tõestada, et seda pole olemasolevate vahenditega võimalik teha. Enamasti selgub süstemaatilise läbiproovimise käigus siiski, et soovitud lahendus on tehtav - kuigi mõnikord küllaltki pikka teed pidi. Paratamatult aga leidub kohti, kus ka programmeerimiskeele enese käsklus käitub vähemasti mõningates olukordades kõhutunde pakutust erinevalt. Vahel aitab sellistel puhkudel manuaali lugemine. Välistatud pole aga ka olukord, kus on võimalik tehnoloogia autoritele saata uhkusega kiri, kus kirjeldada leitud viga ning selle esinemise olukordi - enne muidugi mitmel moel selle esinemist ise läbi katsetades. Kui raamistik pole surnud, vaid elab järgmiste versioonide tekkimise näol edasi, siis sellised teated on arendajatele igati
Seal võib mõnda kasti kirjutada „=A1+B1“, mis ütleb arvutile, et selle kasti väärtuseks näidatakse kastide A1 ja B1 summat. Tegemist on funktsiooniga, mille sisendiks on kaks arvu ja väljundiks üks. Toome ka ühe näite funktsioonist, mis arvutab faktoriaali [lk 382]. Tuletame meelde, et faktoriaal on lihtsalt järgnev korrutis . Arvuti võiks seda programmeerimiskeele Python abil leidma panna umbes nii: def factorial(n): f = 1 while (n > 0): f = f * n n = n – 1 return f Jooksutades seda funktsiooni käsuga factorial(5), saaksime vastuseks järg- mise tulemuse: 120.