Tehtävät

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

Sisällysluettelo