Uwe Geuder Tampereella 26. elokuuta 2010
|
|
- Väinö Virtanen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Python Uwe Geuder Tampereella 26. elokuuta
2 Sisältö Yleiskuvaus, historia Tyypit ja rakenteet Paljon esimerkkejä Laajennuksia ja työkaluja Yhteenveto Vaihteleva taso kaikille koodaajille kokeneille 2
3 Lyhyesti Python on multiparadigmakieli joka tukee struktuuraalista, funktionaalista ja oliopohjaista ohjelmointityyliä ja tarjoaa automaattista muistihallintoa. "There should be one and preferably only one obvious way to do it." Pitäisi olla yksi ja mieluiten vain yksi ilmeinen tapa tehdä se. 3
4 Historia Ensimmäinen kehittäjä ja BDFL: Guido van Rossum Joulukuu 1989: toteutus käynnistyy 20. helmikuuta 1991: ensimmäinen julkinen versio 16. lokakuuta 2000: versio heinäkuuta 2010: versio elokuuta 2010: version joulukuuta 2008: versio history.blogspot.com/2009/01/brief timeline of python.html 4
5 Lisenssi Copyright Python Software Foundation (suurin osa) Avoin lähdekoodi Lisensoitu Python lisenssin alla Salliva lisenssi OSI hyväksytty GPL yhteensopiva 5
6 Käyttöalueet (IMHO) Kaikki mihin komentosarjakieltä käytetään Ohjelmoinnin tuottavuus tärkeämpi kuin viimeinen prosentti suorituskykyä Useimmiten ilman (omaa) graafista käyttöliittymää Esimerkkejä, videoita jne
7 Esimerkkejä käytöstä Ubuntun tasonnosto ym. hallintaohjelmat on siis aina Ubuntussa asennettuna Mercurial versiohallinta Zope sovelluspalvelin MoinMoin wiki Django ohjelmistokehys webohjelmoinnille Ohjelmointikoulutuksen ensimmäisen kieli 7
8 Toteutukset CPython Jython Yleisin Python käännetään automaattisesti tavukoodiksi, jota tavukooditulkki ajaa Unladen Swallow LLVM pohjainen, 5 kertaa nopeampi (???) [PEP3146] IronPython (.NET) (???)... 8
9 Alustat Linux (myös Maemo) Windows (CE:stä Windows 7:ään) MacOS S60 Noin 20 muuta... Python koodi on hyvin portattavissa, niin kauan kun ei käytetä käyttöjärjestelmäspesifisiä asioita 9
10 Hello world Yksinkertaisin versio Python 2.x print 'Hello world!' Python 3.x print( 'Hello world!' ) 10
11 Hello word (2) Muuten Älä kirjoita koodia moduulitasolle Ei uudelleenkäytettävissä Ei testattavissa def hw(): print Hello world! if name == ' main ' : hw() 11
12 Hello world (3), TDD (1/4) import unittest import StringIO import hw3 # testhw3.py class TestHelloWorld(unittest.TestCase): def testoutput(self): out = StringIO.StringIO() hw3.hw(out) self.assertequal( out.getvalue(), 'Hello world!\n' ) if name == ' main ': unittest.main() $ python testhw3.py Traceback (most recent call last): File "testhw3.py", line 3, in <module> import hw3 ImportError: No module named hw3 $ 12
13 Hello world (3), TDD (2/4) def hw(): pass # hw3.py if name == ' main ' : hw() $ python testhw3.py E ============================================================== ERROR: testhelloworld ( main.testhelloworld) Traceback (most recent call last): File "testhw3.py", line 9, in testoutput hw3.hw(out) TypeError: hw() takes no arguments (1 given) Ran 1 test in 0.003s FAILED (errors=1) $ 13
14 Hello world (3), TDD (3/4) import sys def hw( out ): Pass # hw3.py if name == ' main ' : hw( sys.stdout ) $ python testhw3.py F ============================================================== FAIL: testoutput ( main.testhelloworld) Traceback (most recent call last): File "testhw3.py", line 10, in testoutput self.assertequal( out.getvalue(), 'Hello world!\n' ) AssertionError: ''!= 'Hello world!\n' Ran 1 test in 0.001s FAILED (failures=1) 14
15 Hello world (3), TDD (4/4) import sys # hw3.py def hw( out ): print >> out, 'Hello world!' if name == ' main ' : hw(sys.stdout) $ python testhw3.py. Ran 1 test in 0.001s OK $ python hw3.py Hello world! $ 15
16 Syntaksi WYSIWYG: sisennyksellä on merkitystä Kaarisulkuja yms. ei käytetä if wings > 0: print lintu tai hyönteinen If weight > 50: Print Luultavasti lentokyvytön else: print Ei lintu Muuten ei mitään yllättävää, samakaltaista kuin C tai Java 16
17 Datatyypit Tyypitys (melko) vahvaa dynaamista >>> a = 3 >>> b = 7 >>> a + b 10 >>> b = 'foo' >>> a + b [...] TypeError: unsupported operand type(s) for +: 'int' and 'str' >>> b + a [ ] TypeError: cannot concatenate 'str' and 'int' objects >>> a= 'bar' >>> b + a 'foobar' >>> 17
18 Yksinkertaiset tyypit bool: True ja False int ja long long on rajaton Eroa ei tarvitse ottaa huomioon ohjelmoinnissa Mikään char tyyppi ei ole olemassa Osoittimia ei ole olemassa Muistihallinta pohjautuu automaattiseen roskakeruun 18
19 Muu tärkeä tyyppi Decimal Käyttää desimaalista aritmetiikkaa from decimal import Decimal # dec.py def test(a, b): if a * 3!= b : print "not", print "equal" $ python dec.py not equal equal test(0.1, 0.3) test(decimal('0.1'), Decimal('0.3')) 19
20 Säiliötyypit Säiliötyypit ovat tärkeä ydinosa Pythonista Mahdollistavat Python ohjelmoinnin tuottavuuden Säiliötyyppejä Sarjatyypit Luettelot (dict) Jos kirjoitat monimutkaista algoritmia välttääksesi Joukot (set) duplikaatteja, muista joukot 20
21 Tärkeimmät sarjatyypit Muutettavissa Lista Ei muutettavissa >>> a = [ 3, None, True, 'foo', ['bar', 7.5 ]] >>> del a[0] >>> a.append(5) >>> a [None, True, 'foo', ['bar', 7.5], 5] Merkkijono 'foobar' Tuple ( 'Matti Meikäläinen', 'Kotikatu 17', '12345 Jossain', 1970 ) 21
22 Toistorakenteet For silmukka on Pythonille tyypillisin Käyttää iteraattoria (iteraattori on mekanismi, jolla voidaan käydä läpi säiliön arvoja) >>> for i in [0, 1, 2]:... print i >>> >>> for i in range(3):... print i >>> range(3) [0, 1, 2] while niin kuin muissakin proseduraalisissa kielissä 22
23 Esimerkkejä for-silmukasta Luetaan tiedosto läpi f = open( 'foo.txt' ) for line in f : print line Käydään hakemistopuu läpi import os for (path, dirs, files) in os.walk( "." ) : for f in files: print os.path.join( path, f ) 23
24 Tulkin interaktiivinen käyttö Tulkki mahdollistaa nopeita kokeiluja >>> s = 'hello, world' >>> s.find( ',' ) 5 >>> s[7:] 'world' >>> dir() built in paljastaa olemassa olevat attribuutit >>> import imaplib >>> dir(imaplib) ['AllowedVersions', 'CRLF', 'Commands', 'Continuation', 'Debug', 'Flags' 'IMAP4_SSL', 'IMAP4_SSL_PORT', 'IMAP4_stream', 'Int2AP', 'InternalDate', 'Literal', 'MapCRLF', 'Mon2num', 'ParseFlags', 'Response_code', 'Time2In 'Untagged_response', 'Untagged_status', '_Authenticator', ' all ', ' ' file ', ' name ', ' package ', ' version ', 'binascii', 'rando 'subprocess', 'sys', 'time'] 24 >>>
25 Tulkin interaktiivinen käyttö Tulkin avulla voi nopeasti katso sisäänrakennettua dokumentaatiota >>> split. doc Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'split' is not defined >>> print "a".split. doc S.split([sep [,maxsplit]]) > list of strings Return a list of the words in the string S, using sep as the delimiter string. If maxsplit is given, at most maxsplit splits are done. If sep is not specified or is None, any whitespace string is a separator and empty strings are removed from the result. 25
26 Olio-ohjelmointi Esimerkki import os, sys, stat class myfile(): # rakentaja (muodostaja) def init (self,path,name) : self.path = path self.name = name def size(self) : fullpath = os.path.join( self.path,self.name ) return os.stat( fullpath )[stat.st_size] if name == ' main ' : f = myfile( sys.argv[1],sys.argv[2] ) print f.size() 26
27 Funktionaalinen ohjelmointi Esimerkkejä >>> def isvowel(x):... return x in 'aeiou'... >>> s = "The quick brown fox jumps over the lazy dog" >>> filter( isvowel, s ) 'euioouoeeao' >>> filter( lambda x: not isvowel(x), s) 'Th qck brwn fx jmps vr th lzy dg' >>> l = [ 1, 2, 3, 4, 5 ] >>> m = [ 0, 1, 0, 1, 0 ] >>> import operator >>> map( operator.add, m, l ) [1, 3, 3, 5, 5] 27
28 Poikkeukset Vastaavia kuin C++:ssa tai Javassa for i in [ 4, 0, 5 ] : try: print i, ":", float(4)/i, except ZeroDivisionError: print "jakolasku ei toiminut", except : print "kaikki pielessa", else : print "kaikki hyvin", finally: print "ja tehty" 4 : 1.0 kaikki hyvin ja tehty 0 : jakolasku ei toiminut ja tehty 5 : 0.8 kaikki hyvin ja tehty 28
29 Dynaamisia ominaisuuksia class mydynamic(): # dyn.py def init ( self, name, value ): exec "self." + name + " = " + str( value ) def getattr (self, name ): return "you asked for " + name Älä käytä Pythonia kun ohjaat lentokonetta tai ydinvoimalaa >>> a = dyn.mydynamic( "x", 1) >>> (a.x, a.y) (1, 'you asked for y') >>> >>> del a.x >>> a.y = "foo" >>> (a.x, a.y) ('you asked for x', 'foo') >>> dir(a) [' doc ', ' getattr ', ' init ', ' module ', 'y'] 29
30 Omia iteraattoreita (Huonona) esimerkkinä oma xrange() Säiliö ja iteraattori samassa luokassa class myxrange() : def init (self,n) : self.n = n self.nextn = 0 def iter (self): return self def next(self): if self.nextn < self.n : self.nextn += 1 return self.nextn 1 else: raise StopIteration for i in myxrange( 3 ) : for j in myxrange( 2 ) : print i, j $ python it.py
31 Omia generaattoreita Esimerkkinä oma xrange() def myxrange( limit ) : a = 0 while a < limit : yield a a += 1 for i in myxrange( 3 ) : for j in myxrange ( 2 ) : print i, j $ python gen.py
32 Pythonin kirjasto Pythonin kanssa tulee erittäin laaja kirjasto Esim. (40 kappaletta!) Persistenssi (pickle, dbm, sqlite3,...) Internet protokollat (http, ftp, smtp, imap,...) Pakkaus (zipfile, zlib, gzip, bzip2, ) Työkalut (getopt, curses, getpass,...) 32
33 Lisämoduulien asentaminen Perinteinen tapa Kehittäjä käyttää moduulia distutils Paketti jaetaan.tar tai.zip tiedostona Käyttäjä purkaa ja ajaa $ sudo python setup.py install Tai aluksi vain $ python setup.py build Dokumentaatio 33
34 Lisämoduulien asentaminen (ei enää ihan) uusi tapa Kehittäjä ja käyttäjä käyttävät moduulia setuptools Paketti jaetaan.egg tiedostona Käyttäjä käyttää easy_install komentoa (kuuluu pakettiin setuptools) sudo apt get install python setuptools sudo easy_install termcolor Dokumentaatio kertoo muista kutsumuodoista 34
35 Python Package Index Virallinen pakettivarasto, PyPI : There are currently packages here : There are currently packages here. easy_install osaa etsiä PyPI:stä 35
36 Lisämoduulien asentaminen Uusin tapa $ apt cache show python pip Description: Alternative Python package installer pip installs packages. Python packages. An easy_install replacement. pip is a replacement for easy_install, and is intended to be an improved package installer. (en ole vielä kokeillut) 36
37 Sovelluksen jakelu Linux Distutils jne. toimii alan ihmisille Tavallisille käyttäjille pitää tehdä.deb tai.rpm paketti Windows py2exe 37
38 M$ Python on myös hyvä valinta, jos syystä tai toisesta joutuu käyttämään ei vapaata alustaa Pythonin vakiokirjasto tukee yleisimpiä rajapintoja käyttöjärjestelmään esim. Tiedostojärjestelmä aliprosessit PyWin32 tukee suuren osan WIN32 API:sta Myös COM tuettuna 38
39 Vianetsintä Pdb on Pythonin sisäänrakennettu debugger Komentorivikäyttöliittymä Ei tue säikeitä Winpdb (nimi ei viittaa Windowsiin, toimii Linuxissakin) Graafinen käyttöliittymä Tukee säikeitä Muistaa pysähdyspisteet 39
40 Suorituskyky Pythonin suorituskyky on useimmiten tarpeeksi hyvää Jos tulee suorituskykyongelmia Mieti ensin tietorakenteet ja algoritmit Kokeile psyco (JIT kääntäjä x86:lle) Katso Cythonia Kirjoittaa laajennusmoduuli C:llä 40
41 Verkko-ohjelmointi Twisted Kehys johon saa erilaisia toteutuksia Http palvelin Pikaviestiklienttejä Pikaviestipalvelimia Sähköpostipalvelin
42 Kritiikki Tiedon piilottaminen (information hiding) ei ole mahdollinen Olio ohjelmointi on vain kevyesti tuettuna On olemassa funktioita (siis ei kaikki ole olio) Kieli ei ole ihan dogmaattisesti puhdasoppista, mutta käytännössä tarpeeksi hyvää 42
43 Tiedonlähteitä
44 Kirjallisuus... Jussi Pekka Kasurinen: Python 3 ohjelmointi Ainoa (?) suomenkielinen, vain aloittelijoille Mark Pilgrim: Dive into Python (GPL documentation) (cc by sa) Saa kääntää suomeksi... 44
45 Ajankohtaista Suomessa Suomenkielinen Python Interest Group Perustettu kesällä interest grou PyCon konferenssi Turussa ja
46 Yhteenveto Python on ilmainen ja vapaa Pythonkoodi on portattavissa Python on helppo oppia Pythonilla on laaja kirjasto ja vielä enemmän lisäyksiä ovat saatavissa verkosta Pythonilla on nopea ja hauskaa koodata Graafiset käyttöliittymät eivät ole vahvin puoli 46
Ohjelmoinnin 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ä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ä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ä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ä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ä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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 10.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 10.2.2010 1 / 43 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 23.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 23.2.2009 1 / 44 Debuggeri Tyypillinen tilanne: ohjelma on kirjoitettu, Python-tulkki ei valita virheistä, mutta
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla
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ätiedotTähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python 7. helmikuuta 2009 Ohjelmoinnista Ohjelman peruselementtejä Koodin kommentointi Lohkorakenne Ohjausrakenteet If For While Try Funktiot Käyttö
Lisätiedotlinux linux: käyttäjän oikeudet + lisää ja - poistaa oikeuksia
L6: linux linux linux: käyttäjän oikeudet Käyttäjällä, username, on käyttöoikeus rajattuun levytilaan du -h /home/username/ tulostaa käytetyn levytilan. Yhteenvedon antaa du -h /home/jetsu/ - -summarize
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja
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ätiedotPython Perusteet Materiaalia
Python Perusteet Materiaalia Tero Tuovinen Tietotekniikan laitos tttuovin@cc.jyu.fi 6. lokakuuta 2004 1 Sisältö 1 Yleistä 3 2 Kommentointi 3 3 Tyypitys 4 4 Luokka 5 5 Oliot 6 6 Lista 6 7 Tuple 7 8 Palautusarvo
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ätiedotTIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli
TIE-20306 PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli Seminaariesitelmä ryhmä 24 Markku Ahokas Jani Kuitti i SISÄLLYSLUETTELO 1. YLEISTÄ EIFFELISTÄ... 1 1.1 Historia ja tausta... 1 1.2
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta
LisätiedotTech Conference 28.-29.5.2015. Visual Studio 2015, C#6,.NET4.6. Heikki Raatikainen. #TechConfFI
Tech Conference 28.-29.5.2015 Visual Studio 2015, C#6,.NET4.6 Heikki Raatikainen #TechConfFI Yleistä Avoimuus Open Source ja tuki yleisesti käytetyille ei-ms työkaluille Kaikki alustat tuettuna:.net 5
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2011 1 / 46 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
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ä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ätiedotOhjelmointi 1 C#, kevät 2013, 2. tentti
ITKP102 Ohjelmointi 1 C# 15.5.2013 1 / 6 Ohjelmointi 1 C#, kevät 2013, 2. tentti Tentaattori Antti-Jussi Lakanen Tässä tentissä saa olla mukana omia muistiinpanoja yhden arkin verran. Tentin valvojalla
LisätiedotGroovy. Samuli Haverinen, Aki Hänninen. 19. marraskuuta 2015
Groovy Samuli Haverinen, Aki Hänninen 19. marraskuuta 2015 Groovy on oliokieli Java-alustalle (käännetään/tulkataan Java-tavukoodiksi), jonka syntaksi on hyvin Java-ystävällinen ja jota voidaan käyttää
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 14.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 14.2.2011 1 / 55 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
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ä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 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ätiedotSystem.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Ohjelmointitehtävien osalta palautetaan
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ätiedotPython-luento. Jonne Itkonen April 11, It s Laskentaa Muuttujista Muita tietotyyppejä... 4
Python-luento Jonne Itkonen April 11, 2012 Contents 1 It s... 1 1.1 Laskentaa............................... 2 1.2 Muuttujista............................... 3 1.3 Muita tietotyyppejä..........................
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ä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ätiedotPerintä (inheritance)
Perintä (inheritance) Perintä on menetelmä, jonka avulla jostakin olemassaolevasta luokasta voidaan johtaa uusi luokka, joka saa automaattisesti käyttöönsä perimänsä luokan ominaisuuksia. Perittävää luokkaa
LisätiedotKokeellista matematiikkaa SAGE:lla
Kokeellista matematiikkaa SAGE:lla Tutkin GeoGebralla 1 luonnollisen luvun jakamista tekijöihin 2. GeoGebran funktio Alkutekijät jakaa luvun tekijöihin ja tuottaa alkutekijät listana. GeoGebrassa lista
LisätiedotHarjoitus 3 (viikko 39)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä. Ohjelmointitehtävien
LisätiedotOhjelmointikieli TIE Principles of Programming Languages Syksy 2017 Ryhmä 19
Ohjelmointikieli TIE-20306 Principles of Programming Languages Syksy 2017 Ryhmä 19 Juho Kärnä Ville Mäntysaari 1. Johdanto D on yleiskäyttöinen, strukturoitu, staattisesti tyypitetty, käännettävä ohjelmointikieli
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 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 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ätiedotJohdatus Python-kieleen
Tero Tuovinen Johdatus Python-kieleen Tietotekniikan kandidaatintutkielma 13. joulukuuta 2004 Jyväskylän yliopisto Tietotekniikan laitos Jyväskylä Tekijä: Tero Tuovinen Yhteystiedot: tttuovin@cc.jyu.fi
LisätiedotC++11 Syntaksi. Jari-Pekka Voutilainen Jari-Pekka Voutilainen: C++11 Syntaksi
1 C++11 Syntaksi Jari-Pekka Voutilainen 13.4.2012 2 Range-for Iteroi säiliön kaikki alkiot for-silmukassa. Säiliöltä vaaditaan begin- ja end-iteraattorit. Pätee kaikille C++11 STL-säiliöille, taulukoille,
Lisätiedot1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä
OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan
LisätiedotAS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin
AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 7: Funktionaalista ohjelmointia (mm. SICP 3.5) Riku Saikkonen 13. 11. 2012 Sisältö 1 Laiskaa laskentaa: delay ja force 2 Funktionaalinen I/O 3 Funktionaalista
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
LisätiedotTIE Principles of Programming Languages CEYLON
TIE-20306 Principles of Programming Languages CEYLON SISÄLLYSLUETTELO 1. YLEISTIETOA KIELESTÄ JA SEN KEHITTÄMISESTÄ... 1 2. CEYLONIN OMINAISUUKSIA... 2 2.1 Modulaarisuus... 2 2.2 Tyypit... 2 2.3 Muita
Lisätiedot1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä
OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan
LisätiedotListarakenne (ArrayList-luokka)
Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen
LisätiedotTIETORAKENTEET JA ALGORITMIT
TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle
LisätiedotASCII-taidetta. Intro: Python
Python 1 ASCII-taidetta All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/18cplpy to find out what to do.
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ätiedotSystem.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2009 1 / 33 Valintakäsky if syote = raw_input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet >=
LisätiedotOhjelmoinnin perusteet Pythonilla. Teemu Sirkiä, 2015
Ohjelmoinnin perusteet Pythonilla Teemu Sirkiä, 2015 Päivitetty 16.9.2015 Yleistä Materiaali sisältää lähinnä Aalto-yliopiston Ohjelmoinnin peruskurssi Y1:n harjoitustehtävissä tarvittavia keskeisiä asioita
LisätiedotHarjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
LisätiedotHarjoitus 5 (viikko 41)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä, käytä
Lisätiedot4. Luokan testaus ja käyttö olion kautta 4.1
4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään
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 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ätiedotJoonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011
1 Joonas Ruotsalainen GIT PIKAOPAS Tutkielma 2011 2 SISÄLTÖ 1. JOHDANTO... 3 2. ASENTAMINEN... 4 3. KÄYTTÖ... 4 3.1 Perusasetukset... 4 3.2 Git:n ottaminen käyttöön projektissa... 5 3.3 Tiedostojen lisääminen
LisätiedotTutoriaaliläsnäoloista
Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus
LisätiedotOperaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta
C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 22.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 22.3.2010 1 / 49 Lista luokan kenttänä Luokan kenttä voi olla myös esimerkiksi lista, sanakirja tai oliomuuttuja.
LisätiedotHarjoitus 2 (viikko 45)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista lisätä static-määre operaatioidesi otsikoihin, jotta ohjelmasi kääntyvät. Muista noudattaa hyvän
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ätiedotKoottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.
2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet
LisätiedotBlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä
Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2011 1 / 39 Haluatko antaa palautetta luennoista? Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast
LisätiedotJava-kielen perusteet
Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet
LisätiedotOhjelmoinnin perusteet, syksy 2006
Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen
LisätiedotOhjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.
Välikoe / 20.3 Vastaa neljään (4) tehtävään. Jos vastaat 5:een, 4 huonointa arvostellaan. Kunkin tehtävän vastaus eri konseptille. 1. Pöytätesti Pöytätestaa seuraava ohjelma. Tutki ohjelman toimintaa pöytätestillä
LisätiedotD-OHJELMOINTIKIELI. AA-kerho, 33. Antti Uusimäki. Arto Savolainen
D-OHJELMOINTIKIELI AA-kerho, 33 Antti Uusimäki Arto Savolainen 2 D-OHJELMOINTIKIELI D-kielen historia alkaa vuodesta 1999, kun Walter Bright aloitti uuden ohjelmointikielen kehittämisen. Ensimmäinen versio
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. X Poikkeusten käsittelystä
812347A Olio-ohjelmointi, 2015 syksy 2. vsk X Poikkeusten käsittelystä Sisältö 1. Yleistä poikkeusten käsittelystä 2. Poikkeuskäsittelyn perusteita C++:ssa 3. Standardissa määritellyt poikkeukset 4. Poikkeusvarmuus
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ätiedotHarjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5
Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät tekniset ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida
LisätiedotOlio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
LisätiedotTeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps
TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps Pikaohje Laite toimii Windows XP SP3, Windows 7,8,10 ja Mac OSx 10.5 tai käyttöjärjestelmissä, Linux tuki netistä ladattavilla ajureilla USB portin
LisätiedotFinFamily PostgreSQL installation ( ) FinFamily PostgreSQL
FinFamily PostgreSQL 1 Sisällys / Contents FinFamily PostgreSQL... 1 1. Asenna PostgreSQL tietokanta / Install PostgreSQL database... 3 1.1. PostgreSQL tietokannasta / About the PostgreSQL database...
LisätiedotTIE Principles of Programming Languages. Seminaariesityksen essee. Ryhmä 18: Heidi Vulli, Joni Heikkilä
TIE-20306 Principles of Programming Languages Seminaariesityksen essee Ryhmä 18: Heidi Vulli, Joni Heikkilä SISÄLLYSLUETTELO 1. Johdanto... 1 2. Ohjelmointikielen perusperiaatteet... 1 2.1 Paradigmat...
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 7.10.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 7.10.2015 1 / 36 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 8.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 8.2.2010 1 / 38 Debuggeri Tyypillinen tilanne: ohjelma on kirjoitettu, Python-tulkki ei valita virheistä, mutta ohjelma
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ätiedotP e d a c o d e ohjelmointikoulutus verkossa
P e d a c o d e ohjelmointikoulutus verkossa Java-kielen perusteet Teoria ja ohjelmointitehtävät Java-kielen perusteet 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN 10 JAVA-KIELEN PERUSTEET 10 OPISKELUN ALOITTAMINEN
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ätiedotList-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen
1 List-luokan soveltamista List-luokan metodeja Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen 1 List-luokan metodeja List-luokan
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 perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
Lisätiedot5. HelloWorld-ohjelma 5.1
5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2
LisätiedotPedacode Pikaopas. Java-kehitysympäristön pystyttäminen
Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 23.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 23.3.2009 1 / 48 Olio metodin parametrina: luokka Tasovektori Halutaan kirjoittaa luokka kaksiulotteisen vektorin
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ätiedotRajapinta (interface)
1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä
LisätiedotHarjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016)
Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Tietokoneavusteinen opetus -kurssilla opetetaan Adobe Flash CS6:n käyttämistä neljänä kertana: 11.3.2016, 15.3.2016, 18.3.2016 ja 1.4.2016. Harjoituskerroilla
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ätiedotC++11 lambdat: [](){} Matti Rintala
C++11 lambdat: [](){} Matti Rintala bool(*)(int) Tarve Tarve välittää kirjastolle/funktiolle toiminnallisuutta Callback-funktiot Virhekäsittely Käyttöliittymät Geneeristen kirjastojen räätälöinti STL:n
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 1.11.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 1.11.2017 1 / 38 Mahdollisuus antaa luentopalautetta Luennon aikana voit kirjoittaa kommentteja ja kysymyksiä sivulle
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ätiedotSisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista
Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
LisätiedotRinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti
Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi
Lisätiedot