Ohjelmoinnin peruskurssien laaja oppimäärä
|
|
- Eero Kivelä
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Ohjelmoinnin peruskurssien laaja oppimäärä Luento 5: Serialisointi, lisää ohjelmien suunnittelusta, GUI-ohjelmointia Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista)
2 Sisältö 1 Serialisointi 2 Lisää ohjelmien suunnittelusta 3 Graasten käyttöliittymien ohjelmointia: PyQt
3 Yleisiä tapoja datan siirtoon useimmat ohjelmat tallettavat ja lataavat dataa tiedostoista tai esim. verkon yli toiselta ohjelmalta esim. lautapeli voisi tallentaa pelin (eli laudan sisällön) tai verkkopelinä toimiessaan lähettää sen toiselle pelaajalle miten tällainen data kannattaa esittää? itse keksityllä binääri- tai tekstitiedostolla? jollain puolivalmiilla formaatilla kuten XML:nä? jonkin muun ohjelman ennestään käyttämällä formaatilla? omia binääriformaatteja on helppo tuottaa joistain ohjelmointikielistä (muistin sisältö levylle), mutta vaikea käsitellä muilla kielillä tai eri versioilla seuraavilla kalvoilla on muutama yleinen puolivalmis formaatti
4 Datan serialisointi serialisointi (serialization, marshalling) tarkoittaa ohjelmassa olevan datan muuttamista merkkijonoksi ja takaisin erityisesti ohjelmointikielen tietorakenteiden automaattista tallentamista ja lataamista esim. Schemessä read ja write toteuttavat Scheme-datan serialisoinnin mm. Pythonissa ja Javassa on valmiit kirjastot olioiden serialisointiin kielen omaan (binääri)formaattiin kaikkea ei voi serialisoida (esim. funktioita) usein serialisointi tehdään kuitenkin käytännössä osittain käsin esimerkiksi jotta ohjelman eri versiot toimisivat ristiin, vaikka olioiden rakenne muuttuu
5 Sulkulausekkeet Esimerkki datasta (osm ((version "0.6") (generator "CGImap 0.0.2")) (bounds ) (way (user "alv") (uid 4660) (visible #t) (version 2) (changeset ) (timestamp " T08:00:57Z") (nodes ) (tags ("highway" "footway") ("surface" "unpaved")))) Schemen read- ja write-primitiivit käyttävät Scheme-koodin näköistä sulkulauseke-esitysmuotoa esitysmuoto on nimeltään S-expression (symbolic expression) sitä on kohtalaisen helppo kirjoittaa ja lukea automaattisesti ilmankin ohjelmointikielen tukea
6 JSON (JavaScript Object Notation) Esimerkki datasta { "osm": { "version": "0.6", "generator": "CGImap 0.0.2" }, "bounds": { "minlat": , "minlon": , "maxlat": , "maxlon": }, "ways": [ { "id": , "user": "alv", "uid": 4660, "visible": true, "version": 2, "changeset": , "timestamp": " T08:00:57Z", "nodes": [ { "ref": }, { "ref": }, { "ref": } ], "tags": [ { "k": "highway", "v": "footway" }, { "k": "surface", "v": "unpaved" } ] } ] } JSON-formaatti on tehty JavaScript-kielen pohjalta periaatteessa se on koodia (olion ja/tai taulukon alustus), jonka voisi suoraan antaa JavaScript-tulkille käytännössä sitä useimmiten luetaan kirjaston avulla käytetään varsinkin webbisovelluksissa selaimessa pyörivän JavaScript-koodin ja palvelimen väliseen tiedonsiirtoon
7 XML Esimerkki datasta (pala OpenStreetMap-dataa) <?xml version="1.0" encoding="utf-8"?> <osm version="0.6" generator="cgimap 0.0.2"> <bounds minlat=" " minlon=" " maxlat=" " maxlon=" "/> <way id=" " user="alv" uid="4660" visible="true" version="2" changeset="139696" timestamp=" t08:00:57z"> <nd ref=" "/> <nd ref=" "/> <nd ref=" "/> <tag k="highway" v="footway"/> <tag k="surface" v="unpaved"/> </way> </osm> XML-esitysmuotoon kuuluu yleensä skeema (schema), joka määrittelee, mitä alikohtia missäkin saa olla ja valmiita työkaluja, jotka tarkistavat skeemanmukaisuuden, editoivat XML:ää, hakevat XML:stä osia tietyillä hakuehdoilla, konvertoivat XML:ää muunlaisiin formaatteihin, jne. XML:n käsittelyyn on kirjastoja useimmissa ohjelmointikielissä
8 Itse tehdyt formaatit hyvin usein ohjelmissa käytetään edellä lueteltujen formaattien sijaan omia itse suunniteltuja formaatteja etuja: joustavampia ja tilanteeseen sopivampia, joskus yksinkertaisempia ymmärtää, usein helpompia kirjoittaa käsin haittoja: itse tehty jäsennin ei yleensä ole yhtä monipuolinen; omaa formaattia käsitteleviä muita työkaluja ei ole valmiina etu ja haitta: ei tarvitse käyttää valmiita kirjastoja se, että jokin data esitetään sulkulausekkeina, JSONina tai XML:nä ei useinkaan kerro vielä kovin paljon pitää vielä määritellä, miten niitä käytetään nämä valmiit formaatit helpottavat suunnittelua, mutta eivät tee sitä ohjelmoijan puolesta usein näiden valmiiden formaattien sisälle (esim. tiettyihin merkkijonoihin) määritellään vielä itse jokin oma formaatti
9 (ei-laajan kurssin kalvo: luento 5 sivu 19) Säilöntää Moduuli pickle muuttaa lähes minkä tahansa Pythonin olion merkkjonomuotoon (pickling) ja takaisin (unpickling). Merkkijonomuotoinen esitys voidaan tallentaa tiedostoon, muuttujaan tai vaikka lähettää verkon yli toiseen koneeseen. # kirjaolio tiedostoon p_file = open('sailo.txt', 'w') pickle.dump(library['king Stephen']['Hohto'], p_file) p_file.close() # ja takaisin p_file = open('sailo.txt', 'r') book = pickle.load(p_file) p_file.close() print book.get_details() 14:58
10 Mitä muuta Pythonista löytyy? picklen formaatti on Pythonille sisäinen ei ole tarkoitus käsitellä muuten kuin pickle-kirjastolla samoin Javan serialisointi joten näissä on se ongelma, että ne eivät toimi kunnolla kielten välillä eikä tiedostoformaattia voi luotettavasti dokumentoida Pythonin repr-funktio tuottaa tekstimuotoisen esityksen argumentistaan (esim. "['abc', 3, [1, 2, 3]]") kuten Schemen write, paitsi että repr:n tulostetta ei ole tarkoitus lukea takaisin Pythoniin Pythonista löytyy kirjastot mm. XML:n, JSONin ja sulkulausekkeiden käsittelyyn (JSONille useitakin) entä pitääkö kirjastolta saaduille olioille tehdä vielä itse jotain? yleensä ne pitää käydä läpi ja tarkistaa, varsinkin jos data tulee ohjelman tai sen käyttäjän ulkopuolelta kirjastot siis auttavat mutta eivät korvaa kokonaan esim. datatiedoston tai verkkopaketin lukevaa funktiota
11 Sisältö 1 Serialisointi 2 Lisää ohjelmien suunnittelusta 3 Graasten käyttöliittymien ohjelmointia: PyQt
12 (ei-laajan kurssin kalvo: luento 2 sivu 8) Sunnittelu Suunnittelussa ohjelma kannattaa jakaa jonkinlaisiin alijärjestelmiin Tarpeettomia riippuvuuksia näiden välillä vältettävä Sykliset riippuvuudet voivat aiheuttaa ongelmia Esimerkki : Käyttöliittymän ja logiikan erottaminen Logiikka (pelin logiikka, numeroilla tehtävä simulointi, tietokanta jne) kirjoitetaan itsenäiseksi osaksi joka ei tiedä millaisella käyttöliittymällä sitä käytetään. Pohdi millaisia metodeja luokkien julkiseen rajapintaan tarvitaan että eri käyttöliittymät voivat ohjata logiikkaa ja hekea tietoa Käyttöliittymä (GUI) on oma osionsa. Käyttäjän toimet kutsuvat GUI:n kautta logiikan metodeita. Käyttöliittymä hakee logiikalta ruudulla näyttämänsä tavaran. GUI ohjaa, pyytää tietoa Aivot 11:31
13 (ei-laajan kurssin kalvo: luento 2 sivu 10) Suunnittelu Model-View-Controller Tämä suunnittelumalli menee vielä askeleen pidemmälle, erottaen GUI:n (Controller) osat jotka muuttavat mallia (Model) ja osat jotka vain esittävät mallin sisältämää tietoa(view) Controller Tiedot päivittyivät ohjaus muutoskäskyt View Esitettävän datan kysely Tiedot päivittyivät, käy kysymässä Model 11:31
14 Lisää ModelViewControllerista Model, malli: sisältää ohjelman tallettaman datan ja tavat kysellä ja muuttaa sitä usein myös lähettää tietoja muutoksista niitä pyytäneille datan esitysmuotoa voisi vaihtaa pelkkää mallia muuttamalla joskus osa mallista on tietokannassa View, näkymä: käyttöliittymä tai erityisesti sen osa, joka näyttää asioita sillä voi olla omaa tilaa, jota esim. ei talleteta (mikä kohta datasta on tällä hetkellä näkyvissä?) perusideaan kuuluu, että näkymiä voisi olla yhtäaikaisesti monta erilaista (joskus onkin) Controller, ohjain: mallia muuttavat osat ohjelmasta (käyttöliittymästä ja automaattisesti esim. laskemalla) ei kerro näkymälle datasta (näkymä hakee ne mallilta)
15 (ei-laajan kurssin kalvo: luento 2 sivu 11) Suunnittelu Turhien riippuvuuksien välttäminen kannattaa myös alemmilla tasoilla Toisaalta samasta tiedosta ei yleensä kannata pitää useita kopioita Yhtä päivitettäessä pitää aina päivittää muutkin Myös riippuvasta datasta olevat kopiot voivat olla ongelmallisia Tällöin riippuvan datan turha uudelleenlaskeminen voi olla hyödyllistä. 11:31
16 Lisää suunnitteluvaihtoehtoja joskus suunniteltava ohjelma kannattaa jakaa osiin useampi ohjelma tai (yleiskäyttöisiä) kirjastoja + ohjelma joskus näitä osia voi yhdistää monella tavalla usein niitä voi käyttää yksinään (ei välttämättä kätevästi) hyödyllinen ajattelutapa: rajapinta voi olla kieli oikea pieni kieli, jota esim. tulkataan tai kokoelma funktioita, jotka on nimetty niin että niitä käyttävä koodi muistuttaa kieltä (esim. SICPin picture language-esimerkki) tai niin yleiskäyttöisiä funktioita, että niitä voi käyttää yhtä monipuolisesti kuin kieltä (esim. listankäsittelyfunktiot?) joskus kannattaa yleistää jos rajapinta vaikuttaa monimutkaiselta, voi olla parempi jakaa se geneerisempiin osiin mutta liika abstrahointi johtaa vaikeasti lähestyttävään koodiin
17 (ei-laajan kurssin kalvo: luento 2 sivu 12) Suunnittelu Mistä tiedetään, mitä luokkia pitäisi laatia tietyn ongelman ratkaisemiseksi? Millaisia kenttiä ja metodeja niille tulee? Ei ole yhtä parasta ratkaisua. Suunnittelutavoitteet voivat olla ristiriitaisia tasapainottelu, kompromissit. Ei ole menetelmää, jolla päästään varmasti hyvään tulokseen. Ei ole yleispätevää tapaa selvittää, onko jokin ratkaisu hyvä tai huono. Useimmille nyrkkisäännöille löytyy tapauksia, joissa kannattaakin toimia toisin. 11:31
18 (ei-laajan kurssin kalvo: luento 2 sivu 13) Substantiivimenetelmä Yksi kirjallisuudessa esitelty tekniikka tehdä ensimmäinen malli ohjelman luokkarakenteesta 1)Kirjoitetaan lyhyehkö mutta tarkka sanallinen kuvaus ohjelman toimintavaatimuksista 2)Etsitään kuvauksesta kaikki verbit ja substantiivit 3)päätetään mitkä substantiiveista ovat luokkia, mitä näiden luokkien kenttiä 4)päätetään mitkä verbeistä ovat luokkien metodeja Vain alustava malli Kun ensimmäinen malli on saatu pohdittua niin sitä ryhdytään muokkaamaan ja tarkistetaan voidaanko sen avulla todella toteuttaa vaatimukset. 11:31
19 (ei-laajan kurssin kalvo: luento 2 sivu 17) Käyttötapaukset (use case) ja mallin kehittäminen Kun alustava malli on rakennettu, kokeile sitä jo ennen koodausta erilaisilla käyttötavoilla Esim. Kuinka ja mitä metodeja kutsuttaisiin jos käyttäjä siirtää rahaa tililtä toiselle? Miten metodit tilisiirrossa kutsuvat toisiaan? Millaisia parametreja pitäisi laittaa? Löytyykö luokista tarvittavaa dataa. Muokkaa ja tarkenna mallia käymällä läpi joukko erilaisia käyttötapauksia. Kun olet tyytyväinen alustavaan malliin voit aloittaa koodailun. Malli tulee varmasti muuttumaan vielä koodausvaiheessa 11:31
20 Pohdintaa ohjelman suunnittelu on eniten luovuutta ja kekseliäisyyttä vaativa osa ohjelmoinnissa ellei sitten sen suunnittelu, mitä ohjelman pitäisi tehdä... tarkkoja sääntöjä ei ehkä kannata edes etsiä? suunnittelu on osin taidetta (kuinka paljon?) onkohan ohjelmoinnissa tyylisuuntia kuten taidehistoriassa? (esim. olio-ohjelmointi?) useimmissa taidemuodoissa tyylisuunnista yksi kerrallaan on hallitseva (jonkin aikaa ja tietyllä alueella) ja seuraava tyylisuunta on melkein aina jossain asioissa parempi mutta toisissa huonompi joskus suunnittelun taustalla on (ollut?) pyrkimys löytää oikea tapa tehdä jokin tietty asia, The Right Thing esim. SICPin symbolinen derivoija taisi syntyä 60-luvulla näin suunnittelua oppii harjoittelemalla, mutta myös lukemalla muiden tekemiä ohjelmia
21 Sisältö 1 Serialisointi 2 Lisää ohjelmien suunnittelusta 3 Graasten käyttöliittymien ohjelmointia: PyQt
22 (ei-laajan kurssin kalvo: luento 6 sivu 6) PyQt PyQt ei ainoa mahdollisuus (PySide, Tkinter, wxpython,... Tkinter on vanha Pythonin mukana tuleva kirjasto PyQt Ei erillisiä asennuksia Joidenkin mielestä vanha mutta edelleen käytetty Asennettava erikseen Pohjalla Qt alustariippumaton rajapintatyökalu ja sidonnat Pythoniin Käytetään tällä kurssilla (toki muitakin saa käyttää mutta tukea ei välttämättä saa) PySide on tämän uudempi versio. Perusasiat pitkälti samoin kummassakin, erona lisenssi PyQt: GPL PySide: LGPL 18:47
23 (ei-laajan kurssin kalvo: luento 6 sivu 9) Yleiskatsaus Graafinen käyttöliittymä sisältää nappeja, valintaruutuja, valikoita, paneeleja, jne. Jotta voi rakentaa toimivan graafisen käyttöliittymän, tarvitsee tietää: kuinka graafisia komponentteja luodaan Kuinka ne saadaan näkymään ruudulla Kuinka ne saadaan ruudulla sinne, minne halutaan Kuinka ne saadaan tekemään halutuja asioita Graafisia komponentteja luodaan, kuten mitä tahansa Pythonin olioita 18:47
24 (ei-laajan kurssin kalvo: luento 6 sivu 10) import sys from PyQt4 import QtGui class Example(QtGui.QMainWindow): def init (self): Muistettava kutsua super(example, self). init () yliluokan init self.initui() Ikkunan asetukset Siisti lopetus, kun Mainloop loppuu def initui(self): self.setgeometry(300, 300, 650, 450) self.setwindowtitle('main window') self.show() Tuo ikkuna näkyville def main(): Aina täytyy olla yksi sovellusolio app = QtGui.QApplication(sys.argv) ex = Example() Mahdolliset sys.exit(app.exec_()) komentoriviargumentit if name == ' main ': main() Vasen yläkulma X ja y Komentoriviargumentteja varten Tuodaan graafiset komponentit Tehdään pääikkuna Aloitetaan sovellus ja käynnisteään tapahtumakuuntelija (mainloop) Leveys ja korkeus 18:47
25 (ei-laajan kurssin kalvo: luento 6 sivu 11) def initui(self): Lisää sisällön exit_action = QtGui.QAction(QtGui.QIcon('./exit.png'), '&Exit', self) exit_action.setshortcut('ctrl+q') exit_action.triggered.connect(qtgui.qapp.quit) menubar = self.menubar() file_menu = menubar.addmenu('&file') file_menu.addaction(exit_action) Aiheuttaa sovelluksen loppumisen self.toolbar = self.addtoolbar('exit') self.toolbar.addaction(exit_action) self.setgeometry(300, 300, 850, 650) self.setwindowtitle('main window') self.show() 'window title' työkalupalkille 18:47
26 (ei-laajan kurssin kalvo: luento 6 sivu 12) Ikkunan voi periä myös QWidget luokasta mutta silloin työkalu- ja valikkopalkit eivät ole lisättävissä. class Example(QtGui.QWidget): def init (self): super(example, self). init () self.initui() def initui(self): self.button = QtGui.QPushButton("Push", self) self.button.move(30, 50) self.button.clicked.connect(self.button_pressed) Mihin komponenttiin self.setgeometry(300, 300, 290, 150) self.setwindowtitle('event sender') self.show() Liittää nappulan painamisen tapahtumankäsittelijään def button_pressed(self): self.button.settext('pressed') Vaihtaa nappulan tekstin 18:47
27 (ei-laajan kurssin kalvo: luento 6 sivu 13) def initui(self): self.label = QtGui.QLabel("Say hello:", self) self.hello_edit = QtGui.QLineEdit(self) self.clear_button = QtGui.QPushButton("Clear", self) self.clear_button.clicked.connect(self.button_pressed) self.message = QtGui.QLabel('message label', self) self.hello_edit.textedited.connect(self.onedited) #Horizontal layout h_box1 = QtGui.QHBoxLayout() h_box1.addwidget(self.label) h_box1.addwidget(self.hello_edit) h_box1.addwidget(self.clear_button) h_box2 = QtGui.QHBoxLayout() h_box2.addwidget(self.message) #vertical layout v_box = QtGui.QVBoxLayout() v_box.addlayout(h_box1) v_box.addlayout(h_box2) self.setlayout(v_box) self.setgeometry(300, 300, 890, 650) self.setwindowtitle('layout example') self.show() def button_pressed(self): self.hello_edit.settext('') self.message.settext('') def onedited(self, text): self.message.settext(text) self.message.adjustsize() Jos tekstirivi muuttuu, mennään metodiin onedited Vaakatason layout komponentti Toiselle riville samanlainen Laitetaan ne päällekkäin pystysuunnan layout-komponenttiin Pystysuunnan komponentti määrää Ikkunan asettelun 18:47
28 (ei-laajan kurssin kalvo: luento 6 sivu 14) Useamman rivin tekstikenttä Luodaan ruudukko def initui(self): grid = QtGui.QGridLayout() rivi sarake grid.addwidget(qtgui.qlabel('one'), 0, 0) grid.addwidget(qtgui.qlabel('two'), 0, 1) grid.addwidget(qtgui.qlabel('three'), 0, 2) grid.addwidget(qtgui.qlabel('four'), 1, 0) grid.addwidget(qtgui.qlabel('five'), 1, 2) grid.addwidget(qtgui.qlabel('six'), 2, 0) grid.addwidget(qtgui.qlabel('seven'), 2, 1) grid.addwidget(qtgui.qtextedit(), 3, 0, 2, 3) self.setlayout(grid) Ikkunan asettelu ruudukkona self.resize(300, 200) self.move(300, 150) self.setwindowtitle('grid example') self.show() Lisätään ruudukkoon komponentteja Useamman ruudun kattava komponentti Monelle riville ja sakkeelle Alkuruutu: rivi, sarake 18:47
29 (ei-laajan kurssin kalvo: luento 6 sivu 15) Muutama muistettava Jos periytät ikkunasi QMainWindow-luokasta, täytyy siihen luoda CentralWidget, joka pitää sisällään kaikki ikkunan komponentit. Vaikka näin: self.main_widget = QtGui.QWidget(self) self.setcentralwidget(self.main_widget) okbutton = QtGui.QPushButton("OK", self.main_widget) Jos tarvii, niin komponentteja voi asetella myös pakotetusti annettuun kohtaan ikkunassa: lbl1 = QtGui.QLabel('Laput', self) lbl1.move(15, 10) lbl2 = QtGui.QLabel('pysyvät', self) lbl2.move(35, 40) Ikkunan kokoa muutettaessa nämä eivät siirry 18:47
30 (ei-laajan kurssin kalvo: luento 6 sivu 8) Mistä löytää tietoa Alkuun pääsee lukemalla seuraavan: Tai PyQt:n luokkakuvaukset 18:47
Ohjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 13: Scheme-tulkki Pythonilla, datan serialisointi, keväästä Riku Saikkonen 11. 12. 2012 Sisältö 1 Scheme-tulkki Pythonilla 2 Datan serialisointi 3 Suunnitelmia
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 6: Graasten käyttöliittymien ohjelmointia Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 29. 2. 2012 Sisältö 1 GUI-ohjelmointia
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä, kevät
Ohjelmoinnin peruskurssien laaja oppimäärä, kevät Luento 2: Ohjelman suunnittelua, miten oliot toimivat Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 21. 1. 2013 Sisältö 1 Suunnittelua:
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 21: Verkko-ohjelmointia Riku Saikkonen (merkityt ei-laajan kurssin kalvot: Otto Seppälä) 31. 3. 2011 Sisältö 1 Socketit 2 Serialisointi 3 Java-sovelmat
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 12.4.2010 T-106.1208 Ohjelmoinnin perusteet Y 12.4.2010 1 / 34 Graafiset käyttöliittymät Tähän asti kirjoitetuissa ohjelmissa on ollut tekstipohjainen käyttöliittymä.
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 13: Isomman ohjelman suunnittelusta, suunnittelumalleja Riku Saikkonen (merkityt ei-laajan kurssin kalvot: Otto Seppälä) 3. 2. 2011 Sisältö 1 Top-down-
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Keskeneräinen luento 3: Listat (mm. SICP 22.2.3) Riku Saikkonen 31. 10. 2011 Sisältö 1 Linkitetyt listat 2 Linkitetyt listat (SICP 2.1.1, 2.2.1) funktionaalinen
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 7: UML, suunnittelumalleja Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 25. 2. 2012 Sisältö 1 Lisää ohjelmien suunnittelusta
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 10: Aliohjelmat, foreign function interface Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 25. 3. 2013 Sisältö 1 Aliohjelmien käyttäminen
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 4: Symbolit, derivojaesimerkki, kierroksen 1 ratkaisut (mm. SICP 2.32.3.2) Riku Saikkonen 1. 11. 2011 Sisältö 1 Symbolit ja sulkulausekkeet 2 Lisää Schemestä:
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 11: Olioiden toteuttaminen Riku Saikkonen 28. 11. 2011 Sisältö 1 Miten oliot ja metodikutsut toimivat? 2 Oliot Minkä luokan metodia kutsutaan? Python-esimerkki
LisätiedotTähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python 15. helmikuuta 2009 Merkkijonot Yleistä Käsittely Muotoiltu tulostus Tiedostot Käsittely Lukeminen Kirjoittaminen Modulit Käyttö Seuraava luento
LisätiedotEsimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit
Liite E - Esimerkkiprojekti E Esimerkkiprojekti Olet lukenut koko kirjan. Olet sulattanut kaiken tekstin, Nyt on aika soveltaa oppimiasi uusia asioita pienen, mutta täydellisesti muotoiltuun, projektiin.
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 4: Verkko-ohjelmointi, tapahtumapohjainen ohjelmointi, lisää ohjelmien suunnittelusta Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista)
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 2: SICP kohdat 22.2.3 Riku Saikkonen 2. 11. 2010 Sisältö 1 Linkitetyt listat 2 Listaoperaatioita 3 Listarakenteet 4 Gambit-C:n Scheme-debuggeri Linkitetyt
LisätiedotELM GROUP 04. Teemu Laakso Henrik Talarmo
ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 8.11.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 8.11.2017 1 / 30 Mahdollisuus antaa luentopalautetta Luennon aikana voit kirjoittaa kommentteja ja kysymyksiä sivulle
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 8: Pienen ohjelmointikielen tulkki (ohjelmoitava laskin) (mm. SICP 4-4.1.5 osin) Riku Saikkonen 15. 11. 2012 Sisältö 1 Nelilaskintulkki, globaalit muuttujat
LisätiedotJWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari
JWT 2016 luento 11 to 21.4.2016 klo 14-15 Aulikki Hyrskykari PinniB 1097 1 Viime luennolla o AJAX ja JSON, harjoitustyön tehtävänanto, vierailuluento avoimesta datasta Tänään o APIt rajapinnoista yleisesti
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 18.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 18.3.2009 1 / 51 Olioista (kertausta) Olioiden avulla voidaan kuvata useammasta arvosta koostuvaa kokonaisuutta
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 1: Rekursiivinen ajattelutapa, Scheme-kielen perusteita (mm. SICP 11.2.4) Riku Saikkonen 16. 10. 2012 Sisältö 1 Kurssijärjestelyitä 2 Perusteita Scheme-kielestä,
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 5: Sijoituslause, SICP-oliot, tietorakenteen muuttaminen (mm. SICP 33.1.3, 3.33.3.2) Riku Saikkonen 6. 11. 2012 Sisältö 1 Muuttujan arvon muuttaminen:
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 17.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.3.2010 1 / 49 Olioista (kertausta) Olioiden avulla voidaan kuvata useammasta arvosta koostuvaa kokonaisuutta
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 10.10.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 10.10.2018 1 / 20 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten ohjelman toimintaa voi tutkia ja ohjelmassa
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 26.10.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 26.10.2015 1 / 28 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta
LisätiedotJypelin käyttöohjeet» Ruutukentän luominen
Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 1: Rekursiivinen ajattelutapa, Scheme-kielen perusteita (mm. SICP 11.2.4) Riku Saikkonen 10. 10. 2011 Sisältö 1 Kurssijärjestelyitä 2 Perusteita Scheme-kielestä,
LisätiedotAction Request System
Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet
LisätiedotGraafinen käyttöliittymä, osa 1
Graafinen käyttöliittymä, osa 1 Idea, MVC-malli ja ensimmäinen ohjelma Graafinen käyttöliittymä Ensimmäisen kerran tavoitteena on oppia graafisen ohjelman perusidea sekä oppia laatimaan esimerkin mukaan
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 3.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.3.2010 1 / 44 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
LisätiedotAndroid ohjelmointi Tunti 2. Käyttöliittymät ja resurssit
Android ohjelmointi Tunti 2 Käyttöliittymät ja resurssit Debug Log luokka mahdollistaa debug tulostamisen ADB:n kautta konsoliin (esim. DDMS:ään) esim. Log.println(Log.INFO, TAG, Tämä on println ); Voidaan
Lisätiedot19/20: Ikkuna olio-ohjelmoinnin maailmaan
Ohjelmointi 1 / syksy 2007 19/20: Ikkuna olio-ohjelmoinnin maailmaan Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2009 1 / 40 Kertausta: tiedostosta lukeminen Aluksi käsiteltävä tiedosto pitää avata: tiedostomuuttuja = open("teksti.txt","r")
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 14.9.2016 CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
LisätiedotSisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki
Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 13.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 28.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 28.9.2015 1 / 16 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
LisätiedotOhjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen
LisätiedotPythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b
Pythonin Kertaus Cse-a1130 Tietotekniikka Sovelluksissa Versio 0.01b Listat 1/2 esimerkkejä listan peruskäytöstä. > lista=['kala','kukko','kissa','koira'] ['kala','kukko','kissa','koira'] >lista.append('kana')
Lisätiedot582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus
582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus Sisältö Mikä on web-sovellus? Selaimen rooli web-sovelluksessa Palvelimen rooli web-sovelluksessa Aineistopyynnöt Tiedon välittäminen
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 4.10.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 4.10.2017 1 / 23 Mahdollisuus antaa luentopalautetta Luennon aikana voit kirjoittaa kommentteja ja kysymyksiä sivulle
LisätiedotPythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python
Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 4.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 4.3.2009 1 / 35 Tiedostot Tiedostojen käsittelyä tarvitaan esimerkiksi seuraavissa tilanteissa: Ohjelman käsittelemiä
Lisätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 2: Funktioiden käyttöä, lisää Schemestä (mm. SICP 1.31.3.4) Riku Saikkonen 17. 10. 2011 Sisältö 1 Scheme-ohjelmointikäytäntöjä 2 Funktiot argumentteina
LisätiedotLuento 5. Timo Savola. 28. huhtikuuta 2006
UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen
LisätiedotConcurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo
Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 12.9.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 12.9.2018 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 11.9.2019 CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
LisätiedotGraafisen käyttöliittymän ohjelmointi Syksy 2013
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 8 Suunnittelumallit käyttöliittymäohjelmoinnissa Juha-Matti Vanhatupa Yleistä Suunnittelumalli on
LisätiedotGraafisen käyttöliittymän ohjelmointi
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Luento 2 Tapahtumapohjainen ohjelmointi Juha-Matti Vanhatupa Sisältö Tapahtumapohjainen ohjelmointi Tapahtumakuuntelijoiden
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 3: Funktionaalinen listankäsittely ja listankäsittelyoperaatiot (mm. SICP 22.2.3) Riku Saikkonen 31. 10. 2011 Sisältö 1 Linkitetyt listat 2 Listarakenteet
LisätiedotRacket ohjelmointia II. Tiina Partanen 2015
Racket ohjelmointia II Tiina Partanen 2015 Sisältö 1) Peli I Yksinkertainen peli, jossa kerätään kohteita ja väistellään vaaroja Pitkälle viety koodi, johon täydennetään vain puuttuvat palat Ei tarvita
LisätiedotKieliversiointityökalu Java-ohjelmistoon. Ohje
Kieliversiointityökalu Java-ohjelmistoon Ohje 2/6 SISÄLLYSLUETTELO 1 YLEISTÄ OHJELMASTA... 3 2 PÄÄ-IKKUNA...4 3 YLÄVALIKKO... 4 3.1 TIEDOSTO... 4 3.2 TOIMINTO... 4 3.3 ASETUKSET... 5 3.4 OHJE... 5 4 VÄLILEHDET...5
Lisätiedot815338A Ohjelmointikielten periaatteet 2014-2015
815338A Ohjelmointikielten periaatteet 2014-2015 X Skriptiohjelmointi Sisältö 1. Johdanto 2. Skriptikielten yleispiirteitä 3. Python 815338A Ohjelmointikielten periaatteet, Skriptiohjelmointi 2 X.1 Johdanto
LisätiedotASENNUS- JA KÄYTTÖOHJE
ASENNUS- JA KÄYTTÖOHJE YKSIKKÖHINTA SOPIMUKSEN TOTEUTUNEET MÄÄRÄT-SOVELLUS CMPRO5 VERSIO 2.8 PÄIVITETTY HEINÄKUU 2010 COPYRIGHT 2010 ARTEMIS FINLAND OY. ALL RIGHTS RESERVED. KÄYTTÖOHJE SIVU 2 (12) SISÄLLYSLUETTELO
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 1.3.2010 1 / 36 Monikko Monikko (engl. tuple) muistuttaa listaa, mutta monikon sisältöä ei voi muuttaa sen jälkeen,
LisätiedotDXL Library ja DXL-kielen olemus. Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/
DXL Library ja DXL-kielen olemus Pekka Mäkinen Pekka.Makinen@softqa.fi SoftQA Oy http/www.softqa.fi/ DOORS extension Language DXL on DOORSin laajennuskieli, jolla voidaan kehittää lisätoiminnallisuutta.
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 10: Paikalliset muuttujat, kirjan tulkki kokonaisuutena (mm. SICP 3.2, 4.1.24.1.6) Riku Saikkonen 22. 11. 2012 Sisältö 1 Ympäristöt: miten paikalliset
Lisätiedot17/20: Keittokirja IV
Ohjelmointi 1 / syksy 2007 17/20: Keittokirja IV Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/10 Tavoitteita
LisätiedotC# Windows ohjelmointi perusopas
Paavo Räisänen C# Windows ohjelmointi perusopas www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa
LisätiedotArkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14
Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2
LisätiedotTämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:
Dokumentaatio, osa 1 Tehtävämäärittely Kirjoitetaan lyhyt kuvaus toteutettavasta ohjelmasta. Kuvaus tarkentuu myöhemmin, aluksi dokumentoidaan vain ideat, joiden pohjalta työtä lähdetään tekemään. Kuvaus
LisätiedotCODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0
CODEONLINE Monni Oo- ja Java-harjoituksia Version 1.0 Revision History Date Version Description Author 25.10.2000 1.0 Initial version Juha Johansson Inspection History Date Version Inspectors Approved
LisätiedotTähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely
LisätiedotMaastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla
Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,
LisätiedotInteraktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.
Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 21.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 21.3.2011 1 / 42 Listan alkiona viiteitä olioihin Halutaan tehdä ohjelma ohjelmointikurssien opiskelijoiden käsittelyyn.
LisätiedotJohdatus Ohjelmointiin
Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin
LisätiedotOhjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia
Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia Tehtävä 1 Tehtävässä 1 mallinnettiin Monopolipeliä. Alla olevassa esimerkissä peliin liittyy aina 2 noppaa, peliä pelataan pelilaudalla,
LisätiedotASENNUS JA KÄYTTÖOHJE
ASENNUS JA KÄYTTÖOHJE YKSIKKÖHINTALUETTELON HINNOITTELU SOVELLUS CMPRO5 VERSIO 2.8 PÄIVITETTY HEINÄKUU 2010 COPYRIGHT 2010 ARTEMIS FINLAND OY. ALL RIGHTS RESERVED. YH-LUETTELON HINNOITTELU SISÄLLYSLUETTELO
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 8: Tulkki: proseduurit, abstrakti syntaksi, quote ja cond (mm. SICP 44.1.5 osin) Riku Saikkonen 15. 11. 2011 Sisältö 1 Argumentittomat proseduurit ja käyttöliittymä
LisätiedotOhjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka
LisätiedotTentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.
Tentti Tentti Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla. Omia koneita ei saa käyttää. Sähköisessä tentissä on paperitentin tapaan osaamisen
LisätiedotOhje 1 (12) Maarit Hynninen-Ojala MOODLE PIKAOHJE. Kirjautuminen Moodleen ja työtilan valitseminen
Ohje 1 (12) Maarit Hynninen-Ojala MOODLE PIKAOHJE Kirjautuminen Moodleen ja työtilan valitseminen 1. Verkko-osoite: http://moodle.metropolia.fi 2. Kirjautuminen: omat verkkotunnukset 3. Oma Moodlessa näkyvät
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 16.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.9.2015 1 / 26 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
LisätiedotSokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi olioperustainen sokkeloseikkailu peli Javakielellä. Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 9.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2015 1 / 26 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 28.10.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 28.10.2015 1 / 25 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta
LisätiedotEclipse & WindowBuilder
Eclipse & WindowBuilder Yleistä asiaa WindowBuilder on Eclipsessä oleva työkalu, jolla voi graafisesti tehdä käyttöliittymiä. Käyttö perustuu siihen, ettei varsinaista ohjelmakoodia tarvitse itse tehdä,
Lisätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:
LisätiedotTest-Driven Development
Test-Driven Development Syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole keksiä kaikkia mahdollisia
LisätiedotHOJ J2EE & EJB & SOAP &...
HOJ J2EE & EJB & SOAP &... Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/18 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen
LisätiedotToinen harjoitustyö. ASCII-grafiikkaa
Toinen harjoitustyö ASCII-grafiikkaa Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin itse. Ideoita
LisätiedotHSMT J2EE & EJB & SOAP &...
HSMT J2EE & EJB & SOAP &... Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2011 p.1/15 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista
LisätiedotSonera Viestintäpalvelu VIP VIP Laajennettu raportointi Ohje
Sonera Viestintäpalvelu VIP VIP Laajennettu raportointi Ohje Sisällysluettelo VIP Laajennettu raportointi... 3 Luo raportti Laajennetun raportoinnin työkaluilla... 4 Avaa Laajennettu raportointi... 4 Valitse
Lisätiedot4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T
SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA: REFAKTOROINTI 2 (9) SEPA: REFAKTOROINTI 3 (9) VERSIOHISTORIA Version Date Author Description 0.1 2.12.2005 Erik Hakala Ensimmäinen
LisätiedotTentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.
Tentti Tentti Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla. Omia koneita ei saa käyttää. Sähköisessä tentissä on paperitentin tapaan osaamisen
Lisätiedottään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla
2.5. YDIN-HASKELL 19 tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla kirjaimilla. Jos Γ ja ovat tyyppilausekkeita, niin Γ on tyyppilauseke. Nuoli kirjoitetaan koneella
LisätiedotSQL Buddy JAMK Labranet Wiki
Page 1 of 9 SQL Buddy JAMK Labranet Wiki Sisällysluettelo Yleistä SQL Buddy:sta kotisivu :http://sqlbuddy.com/ SQL Buddy on kevyt hallintatyökalu MySQL-tietokannalle. Järjestelmävaatimukset Serverin vaatimukset
Lisätiedot