Ennen kuin aloitat...
Python-versio
Tämän kurssin tehtävät ovat tehty ja tarkastetaan TMC-serverillä Python3:lla. Helpoin tapa tarkistaa onko koneellasi Python 3 on kirjoittaa komento python3 komentoriville.
~$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Mikäli tietokoneellasi ei ole Python3:a voit ladata sen seuraavalla komennolla:
~$ sudo apt-get install python3
Pythonin Numpy-versio
Kurssin tehtävissä käytetään Numpy:stä versiota 1.11.0. Sitä uudemmat versiot käyvät myös, mutta vanhemmista voi puuttua joitain ominaisuuksia. Tarkista että sinulla on vähintään versio 1.11.0
~$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> numpy.version.version
'1.11.0'
>>>
Pythonin Scipy-versio
Kurssin tehtävissä käytetään Scipy:stä versiota 0.17.0. Sitä uudemmat versiot käyvät myös, mutta vanhemmista voi puuttua joitain ominaisuuksia. Tarkista että sinulla on vähintään versio 0.17.0
~$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import scipy
>>> scipy.version.version
'0.17.0'
>>>
TMC-CLI
Kurssilla hyödynnetään TMC (TestMyCode) alustaa, joka tarkistaa automaattisesti järjestelmään palautetun tehtävän sekä antaa siitä pisteet. Tarvitset kuitenkin itsellesi TMC-CLI:n. Seuraa tämän linkin ohjeita.
Kun saat TMC-CLI:n asennettua, tarkista sen toiminta.
~$ tmc
Usage: tmc [args] COMMAND [command-args]
TMC commands:
config Set/unset TMC-CLI properties
courses List the available courses
download Download exercises for a specific course
exercises List the exercises for a specific course
help List every command
info Show info about the current directory
login Login to TMC server
logout Logout from TMC server
paste Submit exercise to pastebin
submit Submit exercises
test Run local exercise tests
update Update exercises
Options:
-d,--no-update Disable temporarily the auto-update
-h,--help Display help information
--help-admin Display admin help information
--help-all Display all help information of tmc-cli
-u,--force-update Force the auto-update
-v,--version Give the version of the tmc-cli
Copyright(C) 2016 TestMyCode
Some rights reserved.
TMC-CLI:n käyttäminen
Kurssin tehtävien lataaminen tapahtuu TMC-CLI:n kautta. Aloita luomalla itsellesi kansio mihin tallennat kaikki kurssin tehtävät.
~$ mkdir TiLaI2019
~$ cd TiLaI2019
~/TiLaI2019$
Seuraavaksi tarvitset TMC-tunnuksen. Jos sinulla ei sellaista jo ole, luo se täällä. Valitse tsellesi käyttäjätunnus. Vastoin aiempaa ohjeistusta, älä aseta opiskelijanumeroasi käyttäjätunnukseksi. Kirjoita sen sijaan opiskelijanumero kohtaan "Organizarional identifier". Kun olet luonut tunnuksen voit kirjautua sisään komentorivillä komennolla:
~/TiLaI2019$ tmc login
server address:
Kirjoita osoitteeksi: https://tmc.mooc.fi/org/fyl
Seuraavaksi client kysyy käyttäjänimeä ja salasanaa, jotka loit äsken.
username: tmctest
password:
Tämän jälkeen valitse vielä organisaatioksi: fyl
Choose an organization by writing its slug: fyl
Lopulta komentoriville tulee ilmoitus
Login successful.
Saat kurssilistauksen esiin komennolla
~/TiLaI2019$ tmc courses
Server https://tmc.mooc.fi/org/fyl
fyl-tila-i-19
Found 1 courses from the server.
....
Lataa TiLa I tehtävät koneellesi komennolla
~/TiLaI2019$ tmc download fyl-tila-i-19
Tehtävien suorittaminen
Kurssin tehtävien suorittaminen tapahtuu lataamiisi tehtäväpohjiin. Esimerkiksi tämän viikon ensimmäisen tehtävän suorittaminen tapahtuu siirtymällä kansioon viikko1-01_hello ja siellä kansioon src. Listaamalla tiedostot tässä kansiossa huomaat:
~/TiLaI2019/fyl-tila-i-19/viikko1-01_hello/src$ ls
__init__.py main.py __pycache__
~/TiLaI2019/fyl-tila-i-19/viikko1-01_hello/src$ gedit main.py
Tee tehtävä tiedostoon main.py vapaavalintaisella editorilla. Voit kokeilla kirjoittamaasi koodia suorittamalla main.py tiedoston.
~/TiLaI2019/fyl-tila-i-19/viikko1-01_hello/src$ python3 main.py
Vaihtoehtoisesti voit suorittaa main.py tiedoston seuraavasti:
~/TiLaI2019/fyl-tila-i-19/viikko1-01_hello$ python3 src/main.py
Kun saat tehtävän tehtyä voit ajaa paikalliset testit siirtymällä takaisin viikko1-01_hello kansioon ja kirjoittamalla komennon
~/TiLaI2019/fyl-tila-i-19/viikko1-01_hello/src$ cd ..
~/TiLaI2019/fyl-tila-i-19/viikko1-01_hello$ python3 -m tmc
Running tests with some TMC magic...
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK
Paikalliset testit voi suorittaa myös komennolla tmc test tehtävä, eli esimerkiksi tmc test viikko1-01_hello.
Kun paikalliset testit menevät läpi voit palauttaa tehtävän TMC-serverille, missä testit ajetaan uudelleen ja sinulle merkitään tehtävästä suoritus. HUOM! Muista aina palauttaa tehtävä serverille, sillä muuten et saa tehtävistä pisteitä ts. paikallisen testin ajaminen ei riitä suoritukseen!
~/TiLaI2019/fyl-tila-i-19/viikko1-01_hello$ tmc submit
Submitting: viikko1-01_hello
Test results: 2/2 tests passed
All tests passed on server!
Model solution:
Tehtävien päivitysten tarkistaminen
Tehtäviin voi tulla päivityksiä ja korjauksia kurssin aikana. Päivityksien tarkistaminen tapahtuu seuraavasti.
~/TiLaI2019/fyl-tila-i-19$ tmc update
Jos tehtäviin on tullut päivityksiä ne lataantuvat komennolla tmc update. Mikäli kaikki tehtävät ovat ajantasalla, komento tuottaa vain ilmoituksen "All exercises are up-to-date".
Ensimmäisen viikon tehtävät
Ensimmäisten tehtävien palautus on ensi viikon torstaina 7.11. klo 21:00. Tehtäviä tehdessänne muistakaa, että ratkaisu kirjoitetaan main-funktioon. Koodi täytyy siis sisentää neljällä välilyönnillä, jotta Python osaa tulkita komennot osaksi tätä funktiota. Esimerkki sisennyksestä:
def main():
a=1
Esimerkin main-funktiossa siis yksinkertaisesti määritellään muuttujalle a arvo 1.
Tee ohjelma, jonka tulostus on seuraava:
Hei maailma!
Tee ohjelma, jonka tulostus on seuraava:
* * * * * * * * * * * * * * * * * * * * * * * * *
For-loop rakenne on kätevä apuneuvo, kun tahdotaan käydä esimerkiksi listoja läpi tai jos halutaan toistaa jotain asiaa tietty määrä. Esimerkiksi tehtävä 2 on tehtävissä lyhyemmin for-loopilla kuin kirjoittamalla kaikki print-komennot itse.
For-loopin rakenne on luennolta tuttu:
for val in sequence:
Body of for
Ylläolevassa val on arvo ja sequence on läpi käytävä kohde.
Esimerkiksi seuraava koodi tulostaa numerot 0-4
for i in range(5):
print(i)
Tee ohjelma, joka tulostaa jälleen 5x5 ruudukon tähtiä, mutta käytä tällä kertaa käyttäen for-looppia:
* * * * * * * * * * * * * * * * * * * * * * * * *
Pythonissa muuttujat esitellään yhtäsuuruusmerkin vasemmalla puolella, ja niiden arvo asetetaan merkin oikealla puolella. Muuttujan nimessä ei saa olla välilyöntejä, ja muuttujat kirjoitetaan pienillä kirjaimilla. Muuttujien nimet eivät saa alkaa numerolla.
Luennolla käytiin läpi peruslaskutoimitukset.
- summa +
- erotus -
- kertolasku *
- potenssi **
- jakolasku /
Laske, kuinka monta sekuntia on vuodessa käyttäen ohjelmarungossa määriteltyjä muuttujia, ja tulosta sekuntien määrä.
31536000
Tee ohjelma, missä määrität muuttujat a ja b sekä niiden summan c.
Anna a:n arvoksi 1 ja b:n arvoksi 2.
Tulosta sen jälkeen c:n sekä cos(c):n arvot.
3 -0.9899924966