Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

© Lammi-Niskala-Kossarev1 Johdatus tietojenkäsittelytieteeseen 2004-2005  Luentoja 58 h  Harjoituksia 14 kertaa * 2h = 28 h  Kaksi välitenttiä  Luentomoniste.

Samankaltaiset esitykset


Esitys aiheesta: "© Lammi-Niskala-Kossarev1 Johdatus tietojenkäsittelytieteeseen 2004-2005  Luentoja 58 h  Harjoituksia 14 kertaa * 2h = 28 h  Kaksi välitenttiä  Luentomoniste."— Esityksen transkriptio:

1 © Lammi-Niskala-Kossarev1 Johdatus tietojenkäsittelytieteeseen 2004-2005  Luentoja 58 h  Harjoituksia 14 kertaa * 2h = 28 h  Kaksi välitenttiä  Luentomoniste  Laajuutensa ja aihepiirinsä vuoksi vaikeahko kurssi: suositellaan luennoilla käymistä ja harjoitusten tekemistä.

2 © Lammi-Niskala-Kossarev2 Kurssin sisältö (1/2) 1 Johdanto  keskeinen terminologia 2 Algoritmien suunnittelu  algoritmien perusvaatimukset  ohjelmointikielet  ohjaus- ja tietorakenteet 3 Algoritmien teoriaa  ratkeavuus  kompleksisuus  oikeellisuus

3 © Lammi-Niskala-Kossarev3 Kurssin sisältö (2/2) 4 Tietokoneen rakenne ja toiminta  matemaattiset ja fysikaaliset perusteet  tietokoneen rakenneperiaate  tietokoneen toimintaperiaate  konekieli 5 Systeemiohjelmisto  ohjelmointikielten kääntäminen  käyttöjärjestelmät 6 Epädeterminismi, rinnakkaisuus  epädeterministiset ongelmat  rinnakkaisalgoritmit  vapaajärjesteinen ohjelmointi

4 © Lammi-Niskala-Kossarev4 Kirjallisuus  Brookshear: Computer Science - An Overview, Addison- Wesley, 2002.  Ceri, Mandrioli, Spattella: The Art & Craft of Computing, Addison-Wesley, 1998.  Goldschlager, Lister: Computer Science - A Modern Introduction, Prentice Hall, 1988.  Lokki, Haikala, Linnainmaa, Rönkä, Susiluoto: Tietotekniikka, Tietotekniikan liitto ry, 1992.  Paananen: Tietotekniikan peruskirja, Docendo Finland Oy, 2003. Schaffer: Principles of Computer Science, Prentice Hall, 1988. Schneider, Gersting: An Invitation to Computer Science, Java-version. Brooks/Cole, 2000.  Tucker, Bradley, Cupper, Garnick: Fundamentals of Computing I, McGraw-Hill, 1992. Wadford: Computer Science, Vol. 1-2, C.C. Heath & Co, 1991.

5 © Lammi-Niskala-Kossarev5 Tavoite Antaa yleiskuvan tietojenkäsittelytieteen aiheista:  algoritmit  ohjelmointi  laskettavuus  tietokoneen rakenne ja toimintaperiaate  Varus- (systeemi-)ohjelmistot  tietojärjestelmät  eräät sovellusalueet

6 © Lammi-Niskala-Kossarev6 Tietojenkäsittelytiede (computer science):  On eri asia kuin esim. c-kielellä ohjelmointi  Eksakti tiede kuten matematiikka (osittain)  Koneet, ohjelmointikielet, ohjelmat yms. vanhenevat, mutta tiede ei  Luo perustan inf ormaatioteknologian menneisyyden ymmärtämiselle ja tulevaisuudelle

7 © Lammi-Niskala-Kossarev7 JOHDANTO Keskeinen käsite: algoritmi   Algoritmi on annetun tehtävän suorittamiseksi tarvittavien osatehtävien kuvaus (toimenpideluettelo)   Se on ilmaistava sellaisessa muodossa, että tehtävän suorittaja sen ymmärtää.   Tehtävän suorittaja: esim. ihminen, robotti, (tieto-)kone.   Ihminen ymmärtää mm. luonnollista kieltä.   Tietokone 'ymmärtää’ ohjelmointikieltä.

8 © Lammi-Niskala-Kossarev8 JOHDANTO   Ohjelma eli tietokoneohjelma = ohjelmointikielellä kirjoitettu algoritmi. if ($ses->PrevID()!=$ses->PageID()) //initialization, came here from other page $ses->PushCookie("f_".$suffix,$ses->LangNo()); else { $ses->GetCookie("f_".$suffix,$new_lang_no); //check if language exists $d->QueryIntoArray('select lang_'.$new_lang_no.' from guitext where id="1"',$retarray,$nr,$nc); if ($nr==0) //ohh no, no such language exists, display error and the "change language" form again :) { $ses->PushCookie( "e_".$suffix, 125); $ses->ToFormCorrection(127); } else //language found from the GUI strings table, update lang_no and mo ve to the next page { //update user data: $ses->SetLangNo($new_lang_no); $ses->ToNextPage(); $follower = PROCSCRIPT; }

9 © Lammi-Niskala-Kossarev9 JOHDANTO Kappaleissa 2-6 tarkastellaan:   algoritmeja -> ohjelmointi   algoritmien teoreettisia ominaisuuksia   laitteistoa, joka pystyy suorittamaan algoritmeja   varusohjelmistoja   epädeterministiset (-> tekoäly) ongelmat, rinnakkaislaskenta, vapaajärjesteinen ohjelmointi.

10 © Lammi-Niskala-Kossarev10 1.1 Tietokoneet ja algoritmit   Teollinen vallankumous: laajensi ihmisen fyysisiä voimavaroja, fyysistä työtä korvattiin koneilla ihmisten fyysinen kunto heikkeni   Tietotekninen vallankumous: laajentaa ihmisen henkisiä voimavaroja: – –tietokone tekee työläitä laskelmia – –tietokone tekee monimutkaisia johtopäätöksiä – –tietokone varastoi suuria tietomääriä – –löytää haettavan tiedon nopeasti – –tietokone etsii tietoa suurista tietokannoista => ihmisten päässälaskutaito huonontunut! ?

11 © Lammi-Niskala-Kossarev11 Kysymyksiä   Aiheuttavatko tietokoneet uhan ihmisen älylliselle kehitykselle ?   Voivatko tietokoneet tulla viisaammiksi kuin ihmiset ?

12 © Lammi-Niskala-Kossarev12 Tietokoneen ominaisuuksia   Tietokone (computer) on kone, joka voi ratkaista hyvin määriteltyjä rutiininomaisia tehtäviä suorittamalla yksinkertaisia perusoperaatioita hyvin nopeasti.   Tämä onnistuu, kunhan tehtävän ratkaisu esitetään koneelle algoritmisessa muodossa (algoritmi on jonkin tehtävän suorittamiseksi tarvittavien toimenpiteiden kuvaus).   Toimenpiteiden joukko on järjestetty: tehtävät suoritetaan yksi kerrallaan peräkkäin tietyn lopputuloksen saavuttamiseksi.

13 © Lammi-Niskala-Kossarev13 Ohjelmointikielet   Algoritmi on esitettävä tavalla, jota tehtävän suorittaja ymmärtää. Tietokoneet ymmärtävät ohjelmointikieltä.   Ohjelmointikielet ovat luonnollisia kieliä yksinkertaisempia, ns. formaalisia kieliä.

14 © Lammi-Niskala-Kossarev14 Algoritmit   Esimerkiksi nuotit ovat algoritmeja.   Ne kuvaavat peräkkäisiä toimenpiteitä, jotka suorittamalla musiikkiesitys syntyy

15 © Lammi-Niskala-Kossarev15 ruokaohjeet ovat algoritmeja.. Pizzataikina, leivinjauheella 3 ½ dl vehnäjauhoja 1 tl leivinjauhetta 1/2 tl suolaa 1 ½ maitoa 2 rkl margariinia, sulatettua tai juoksevaa 1. Sekoita jauhot, leivinjauhe ja suola. 2. Kaada sekaan huoneenlämpöinen maito ja margariini. Alusta taikina. 3. Anna taikinan levätä n. 15 min. kauli ja täytä.

16 © Lammi-Niskala-Kossarev16 Termejä   Tehtävän suoritus = prosessi (process, computation)   Tehtävän suorittaja = prosessori (processor)   Prosessi vaatii resursseja (resources) – –aikaa (laskenta-aikaa) – –laitteistoresursseja (esimerkiksi muistia)

17 © Lammi-Niskala-Kossarev17 Tietokoneen pääkomponentit  Prosessori eli keskusyksikkö (central processing unit, CPU)  Muisti (memory)  Siirräntä- eli syöttö- ja tulostuslaitteet (input and output devices)

18 © Lammi-Niskala-Kossarev18 Ihminen vs. tietokone   Nopeus ja kyvykkyys – –tietokone suorittaa satoja miljoonia yksinkertaisia operaatioita sekunnissa – –monet ihmiselle helpot tehtävät ovat koneelle erittäin vaikeita (puhuminen, puheen ymmärtäminen) – –on myös olemassa tehtäviä, jotka ovat niin vaikeita, että niitä ei voida suorittaa järkevässä ajassa nopeimmallakaan koneella

19 © Lammi-Niskala-Kossarev19 Luotettavuus   Tietokoneet eivät tee virheitä siinä mielessä kuin ihminen tekee. Ne toimivat annetun algoritmin mukaan   Tietokoneet pystyvät väsymättä toistamaan suorituksensa kerrasta toiseen tarkalleen samanlaisena ja yhtä tehokkaasti (voivat kylläkin mennä rikki)   Yleensä atk:n virheet ovat peräisin algoritmissa olevasta virheestä, virheellisistä syöttötiedoista tai teknisestä viasta

20 © Lammi-Niskala-Kossarev20 Muisti   Tietokoneen muistin kapasiteetti ja hakunopeudet vaihtelevat tallennusvälineen mukaan   Muisti on järjestetty niin, että tietoalkio voidaan hakea muistista vain, jos alkion paikka tallennusvälineellä tiedetään tarkasti   Ihmisen muistin ongelma: ei kapasiteetti vaan tiedon haku (assosiaatiot)  Tärkein syy tietotekniikan yhä laajenevaan käyttöön Kustannukset alenevat

21 © Lammi-Niskala-Kossarev21 1.2 Ohjelma ja ohjelmointikielet   Tehtävän ratkaisu esitettävä tarkasti etukäteen valitun formalismin avulla   Kyetäkseen tulkitsemaan algoritmia prosessorin tulee ymmärtää, mitä kukin algoritmin askel (käsky) tarkoittaa   Yksinkertaisin ohjelmointikieli on kullekin prosessorille ominainen konekieli (machine language), jonka käskyjä tietokone suoraan ymmärtää.

22 © Lammi-Niskala-Kossarev22 Konekieli   Prosessorikohtainen   Laajan algoritmin esittämiseen tarvitaan hyvin paljon konekielisiä käskyjä   Ohjelmointi konekielellä on erittäin työlästä (mutta vain harvoin tarpeellista)   Tehokasta: kone tekee täsmälleen sen mitä käsketään.

23 © Lammi-Niskala-Kossarev23 Korkean tason kieli   Kehitetty ohjelmoinnin helpottamiseksi   Prosessorista riippumaton   Käsitteet abstraktimpia kuin konekielen käsitteet   Kieli suunniteltu niin, että tehtävien esittäminen ihmiselle olisi mahdollisimman helppoa ja luontevaa   Vaikeus: tietokone ei ymmärrä (suoraan) tällaista kieltä.

24 © Lammi-Niskala-Kossarev24 Miten tietokone ymmärtää korkean tason kieltä ?   Ratkaisu: korkean tason kielellä kirjoitettu ohjelma käännetään konekielelle ennen suoritusta.   Käännös suoritetaan tietokoneohjelmalla, jota kutsutaan kääntäjäksi. Käännetty ohjelma ei yleensä toimi melkein yhtä tehokkaasti kuin vastaava suoraan konekielellä kirjoitettu ohjelma.

25 © Lammi-Niskala-Kossarev25

26 © Lammi-Niskala-Kossarev26 1.3 Tietokonejärjestelmä   Tietokonejärjestelmä on tietojärjestelmän osa   Tietojärjestelmä: Organisaation tietojenkäsittelytarpeest a vastaamaan kehitetty järjestelmä, johon kuuluu tietokonejärjestelmä ja inhimillinen komponentti.

27 © Lammi-Niskala-Kossarev27 Sovellukset ja varusohjelmat Sovellusohjelmisto   kaikki ns. valmisohjelmat   käyttäjän kirjoittamat ohjelmat Systeemiohjelmisto   välttämättömiä laitteiden käytön kannalta (=suuri kokoelma 'apuohjelmia')   Käyttöjärjestelmä   Kääntäjät ja tulkit   Editorit   Tietoliikenneohjelmistot

28 © Lammi-Niskala-Kossarev28 Käyttöjärjestelmän tehtäviä   tiedonsiirron hallinta   ohjelmien suorituksen hallinta   resurssien jako   tietojen pitkäaikais-säilytyksestä huolehtiminen   esim. Windows, Unix, Linux, Symbian

29 © Lammi-Niskala-Kossarev29 Kääntäjät ja tulkit Kääntäjä on ohjelma, joka muuntaa korkean tason kielellä kirjoitetun ohjelman koneen ymmärtämään muotoon, konekielelle.   Kääntäjä: tekee käännöstyön ennen suoritusta   Tulkki: tekee käännöstyön lause kerrallaan suorituksen aikana   Linkkaus: usein tarvittava ohjelma, joka liittää käännettyyn ohjelmaan sen tarvitsemia apuohjelmia

30 © Lammi-Niskala-Kossarev30 Editorit  Tekstinkäsittely- ohjelmia  Voivat olla alkeellisia kuten Notepad  tai edistyneitä, kuten Emacs –aputoiminnot ohjelmoijalle

31 © Lammi-Niskala-Kossarev31 Tietoliikenneohjelmisto   Ohjelmiston tehtävänä on mm. kommunikoida toisten tietokoneiden kanssa ja valvoa tietoliikennettä.

32 © Lammi-Niskala-Kossarev32 1.4 Algoritminen ongelmanratkaisu   Algoritmin suorittaminen on systemaattinen toimenpide   Algoritmin muodostaminen on älyllinen ponnistus, jota on vaikea tai mahdoton automatisoida.   "Ei ole mahdollista kirjoittaa algoritmia algoritmin muodostamiseksi”

33 © Lammi-Niskala-Kossarev33

34 © Lammi-Niskala-Kossarev34   Algoritmin rooli on keskeinen: ilman algoritmia ei ole ohjelmaa, ja ilman ohjelmaa ei tietokoneella ole mitään suoritettavaa   Algoritmit ovat ohjelmointikielestä ja koneesta riippumattomia, joten algoritmin suunnittelua voi opiskella pelkäämättä tiedon vanhenemista.   Teknologian kehittyminen parantaa algoritmien suoritusmahdollisuuksia: nopeus, muistikapasiteetti kasvavat kaiken aikaa 1.4 Algoritminen ongelmanratkaisu

35 © Lammi-Niskala-Kossarev35 Uudet tuulet   Uudet ohjelmointiparadigmat ja niitä toteuttavat ohjelmointikielet helpottavat ohjelmointia ja mahdollistavat yhä abstraktimpien ja monimutkaisempien algoritmien esittämisen luotettavasti tietokoneen ymmärtämässä muodossa.   lähdekoodirivien määrä vain kasvaa    kommentejä, kysymyksiä?


Lataa ppt "© Lammi-Niskala-Kossarev1 Johdatus tietojenkäsittelytieteeseen 2004-2005  Luentoja 58 h  Harjoituksia 14 kertaa * 2h = 28 h  Kaksi välitenttiä  Luentomoniste."

Samankaltaiset esitykset


Iklan oleh Google