Johdatus ohjelmointiin

Samankaltaiset tiedostot
Ohjelmistot. Computers: Information Technology in Perspective By Long and Long Copyright 2002 Prentice Hall, Inc.

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

4. Lausekielinen ohjelmointi 4.1

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä

Kertausluento luennoista 1-3 1

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

4. Lausekielinen ohjelmointi 4.1

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

Tietojenkäsittelyn historiaa

Johdanto Meta Kielten jaotteluja Historia. Aloitusluento. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi

Tietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus

.NET ajoympäristö. Juha Järvensivu 2007

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Imperatiivisten ohjelmien organisointiparadigmojen. historia

Imperatiivisten ohjelmien organisointiparadigmojen historia

5. HelloWorld-ohjelma 5.1

1. Olio-ohjelmointi 1.1

HELIA 1 (17) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu

5. HelloWorld-ohjelma 5.1

Lumon tuotekirjaston asennusohje. Asennus- ja rekisteröintiohje

13/20: Kierrätys kannattaa koodaamisessakin

Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä?

Käyttöjärjestelmien historia. Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen

Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)

815338A Ohjelmointikielten periaatteet

ruovedellä pohjois-hämeessä. lepounit.com (yritys) lepo.net (oma)

Visual Basic -sovelluskehitin Juha Vitikka

Algoritmit 1. Luento 1 Ti Timo Männikkö

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Käyttöjärjestelmät. Teemu Saarelainen Tietotekniikka

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Tietokoneen toiminta (Computer Organization I)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Tietokoneen toiminta, K Tavoitteet (4)

Ohjelmointi Linuxissa. Sisällysluettelo. 1. Mitä tarvitaan sovellusten tuottamiseen? Tehnyt: Antti Martikainen ( )

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Javan asennus ja ohjeita ongelmatilanteisiin

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä

OHJELMOINTIA MONIPUOLISESTI MATEMATIIKAN OPETUKSESSA LUMA-PÄIVÄT, TAMPERE

Ohjelmointi 1 / syksy /20: IDE

Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer)

Aihepiiri Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Sovellusarkkitehtuurit

Aihepiiri Tietokoneen toiminta (Computer Organization I) Tavoitteet (4) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia

Taustaa. CGI-ohjelmointi

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

Käännös, linkitys ja lataus

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

SIMULINK S-funktiot. SIMULINK S-funktiot

TIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.

Makrojen mystinen maailma lyhyt oppimäärä

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Tietokoneen toiminta (Computer Organization I)

1. Ohjelmoinnin peruskäsitteet ja -elementit

Tähtitieteen käytännön menetelmiä Kevät 2009

Object Framework - One. OF-1 is a high-productive Multi-UI OpenEdge data driven development framework. Veli-Matti Korhonen

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

14/20: Keittokirja I

- Kuvan osoittamalla tavalla klikkaa kohtaa Tallenna Tiedosto. - Esimerkissämme Firefox selaimessa latauspalkki näyttää tältä

Ohjelmointi 1. Kumppanit

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

Tietokoneen toiminta (Computer Organization I) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia. Aihepiiri.

D-OHJELMOINTIKIELI. AA-kerho, 33. Antti Uusimäki. Arto Savolainen

Teemu Kerola Orientointi Syksy 2018

TIE Principles of Programming Languages. Seminaariesityksen essee. Ryhmä 18: Heidi Vulli, Joni Heikkilä

OHJELMISTOTEKNIIKKA LABORATORIOHARJOITUKSEN OHJEET

C++ Kuva 1-1. C- ja C++ kielien perustana olevat kielet.

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

C++11 seminaari, kevät Johannes Koskinen

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Johdatus ohjelmointiin C-kielellä P Ohjelmoinnin perusteet C-kielellä A Ohjelmointityö

Tilanne sekä MS-A0003/4* Matriisilaskenta 5 op

Ohjelmoinnin peruskurssien laaja oppimäärä

HP ProBook 430 G5 kannettavien käyttöönotto

Tietokoneen toiminta (Computer Organization I)

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

TIETOTEKNIIKKA Koodi Vanha opintojakso op ov Vastuuhenkilö LV vastaavat opinnot tai korvaava suoritustapa TTE.

Perustietoa käyttöjärjestelmistä

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Ohje Hosted.fi SharePoint

Transkriptio:

Johdatus ohjelmointiin Ohjelmistot tietokonejärjestelmissä Jaana Holvikivi

Ohjelmistojen tehtävät Sovellusohjelmat tekstinkäsittely ja muut toimistosovellukset kirjanpito, tuotannonohjaus selaimet, mediaohjelmat Ohjelmistokehitysvälineet kehitysympäristöt ohjelmointikielten kääntäjät Varusohjelmat käyttöjärjestelmät käyttöliittymät tietoliikenneohjelmistot, tietoturvallisuus tiedonhallinta J.Holvikivi 2

Käyttöjärjestelmä ja sovellukset Visual Studio CAD C++ Käyttöliittymä Tilastot Palkanlaskenta Käyttöjärjestelmä Tekstinkäsittely Pelit Operating Systems Varastokirjanpito Verkkoohjelmistot J.Holvikivi 3

Ohjelmointikielet (1) Konekieli, prosessorikohtainen Assembler (mnemoninen) Perinteiset proseduraaliset kielet: Fortran, Pascal, Cobol, BASIC Oliokielet (object oriented programming) C ++ Java, C# Visual Basic Visual C++ J.Holvikivi 4

Ohjelmointikielet (2) Skriptikielet (Internet - ohjelmointi) php, Python, Ruby (palvelimella) Javascript (selaimessa) VBScript Flash Sovelluskehittimet Delphi Oracle Funktionaalinen ohjelmointi (XSLT) ja deklaratiiviset kielet (SQL) J.Holvikivi 5

Ohjelmointikieli syntaksi toiminta (kääntäminen, tulkinta) logiikka (semantiikka) algoritmit oliot rakenne käyttöliittymäelementit kirjastot (libraries) Data eli tiedot ja ohjelmat käsitellään tietokoneessa samanarvoisina ja samassa muodossa - suoritin ei erota niitä toisistaan. Näin ollen ohjelmat voivat käsitellä toisiaan kuten dataa. J.Holvikivi 6

Ohjelmointi ongelmanratkaisuna Tietokoneen älykkyys on ohjelmissa Ohjelmointi on ihmisen kehittämän älykkään ratkaisun kertomista tietokoneelle niin, että se pystyy suorittamaan tehtävän toistuvasti ja itsenäisesti J.Holvikivi 7

Algoritmit Tarkasti ottaen algoritmi on äärellinen joukko täsmällisiä, suoritettavissa olevia ohjeita, jotka ohjaavat päättyvää tehtävän suoritusta. laulun nuotit koneen käyttöohje kokoamisohje Algoritmeilla ilmaistaan ohjelman toimintalogiikka. Algoritmi kertoo missä järjestyksessä toiminnot suoritetaan. tietokone noudattaa koodattua algoritmiä mekaanisesti Algoritmi voidaan esittää tekstinä, vuokaaviona tai niin sanottuna pseudokoodina ennen kuin se koodataan jollekin ohjelmointikielelle. J.Holvikivi 8

Ohjelmointi ongelmanratkaisuna (2) Tehtävä Algoritmi vuokaavio pseudokoodi Ohjelma Lähdekoodi Kääntäjä Tulkki Käännetty konekielinen ohjelma Konekielisiä komentoja J.Holvikivi 9

Aloita IF vertailulause ei jos ehto on tosi on Toiminta 1 Toiminta 2 Jatka Loppu J.Holvikivi 10

Tavalliset vuokaaviosymbolit Toiminta Dokumentti kyllä Vertailu ei Aliohjelma Toiminta Toiminta Päätepiste J.Holvikivi 11

Ohjelman logiikka pitää suunnitella ennen kuin sitä aletaan varsinaisesti ohjelmoida eli koodata. Seuraavassa esimerkki ohjelmalogiikasta, joka laskee keskiarvon annetuista luvuista. PRINT "Ohjelma laskee keskiarvon henkilöiden iästä" PRINT "Kuinka monta henkeä?" INPUT N LET S = 0 LET I = 0 SILMUKKA: PRINT "Kuinka vanha on henkilö" I+1 INPUT X LET S = S+X LET I = I+1 IF I < N GOTO SILMUKKA LET K = S/N PRINT "Joukon keski-ikä on " K END J.Holvikivi 12

Assembler- ohjelmointi Esimerkki kahden luvun yhteenlaskemisesta Step 1: Get the value from memory location 6C and place it in a register. =LOAD Step 2: Get the other value to be added from memory location 6D and place it in another register. =LOAD Step 3: Activate the addition circuitry with the registers used in steps 1 and 2 as inputs with another register designated to store the result. =ADD Step 4: Store the result in memory location 6E. =STORE Step 5: Stop. =HALT Muita mahdollisia käskyjä: MOVE, OR, AND, ROTATE, JUMP J.Holvikivi 13

Konekielinen ohjelma, teoreettinen esimerkki Adding values stored in memory Step 1: 156C Step 2: 166D Step 3: 5056 Step 4: 306E Step 5: C000 J.Holvikivi 14

Käyttöjärjestelmän tehtävät Käyttöjärjestelmä on ohjelmisto, joka ohjaa tietokoneen toimintaa. ohjaa laitteiston osia ohjaa suoritinta ja muisteja suorittaa ohjelmia Se on tavallisesti asennettuna mikrotietokoneen kiintolevyllä. Käyttöjärjestelmä käynnistyy automaattisesti, kun tietokoneeseen kytketään virta, ja se on muistissa eli käynnissä koko sen ajan, kun tietokonekin on käynnissä. Kommunikoi käyttäjän kanssa. Optimoi järjestelmän suorituskyvyn. Huolehtii tiedosta ja tiedostoista. Tietoturvallisuus. J.Holvikivi 15

Ohjelmien suorittaminen Batch processing - eräajo työt kerätään jonoon: ohjelma ja data niputetaan FIFO (first-in-first-out) tai prioriteetti Interaktivinen työskentely käyttäjän ja tietokoneen vuorovaikutus, välitön palaute Reaaliaikaprosessointi: automaatiojärjestelmät Multitasking - moniajo - time-sharing: prosessit odottavat vuoroaan muistissa J.Holvikivi 16

Käyttöliittymiä Teksti- ja komentopohjainen MS-DOS Unix Kaukosäätimet, kännykät Graafinen, ikkunointi Windows, Linux, Mac Graphical User Interface (GUI) Ikkunat, kuvakkeet, hiiren käyttö J.Holvikivi 17

Suunnittelun yleisperiaatteita Rakenteellinen suunnittelu: kokonaisuudesta osiin, topdown Määrittele toiminta, syötteet, tulosteet Selvitä mitä käyttäjä tarvitsee ja haluaa Jaa moduleiksi (yksi kokonainen tehtävä / moduli) Modulien välinen tiedonvaihto: globaalit ja lokaalit muuttujat Algoritmien määrittely (toiminta) kullekin modulille Osien suunnittelu, ohjelmointi ja testaus loogisessa järjestyksessä Kokonaisuuden testaus J.Holvikivi 18

Dokumentointi selkeä dokumentointi on avain ymmärrettävyyteen tarpeen ylläpidon ja edelleenkehittämisen vuoksi rakennekaaviot vuokaaviot, algoritmit tietoluettelot, taulukot; tietorakenne käsitekaaviot, olio-ohjelmointi käyttöohjeet J.Holvikivi 19

Testaus Testaamista suoritetaan monessa vaiheessa Käytettävyystestaus suoritetaan loppukäyttäjien kanssa: toiminnan läpikäyminen (löytääkö käyttäjä toiminnot ja osaako hän edetä) Ohjelmoinnin aikainen testaus poistaa koodivirheet Järjestelmätestaus käy koko järjestelmän toiminnan läpi osista kokonaisuuteen. Tavoitteena ohjelman oikeellisuuden todistaminen. J.Holvikivi 20