MAA11

Tervetuloa opintojaksolle MAA11!

Opintojaksolla tutustutaan nyky-yhteiskunnan tietotekniikan kannalta keskeisiin aihepiireihin kuten logiikkaan, algoritmeihin ja ohjelmointiinkin. Myös lukuteorialle, jota on tutkittu jo vuosisatojen ajan, on löydetty tärkeitä sovelluksia esimerkiksi salauksiin liittyen.

Tavoitteena on, että opiskelija
  • tietää, mikä on algoritmi, sekä oppii tutkimaan, kuinka algoritmit toimivat
  • laatii yksinkertaisiin matemaattisiin ongelmiin liittyviä algoritmeja
  • oppii ohjelmoimaan yksinkertaisia algoritmeja
  • perehtyy logiikan käsitteisiin
  • hallitsee lukuteorian peruskäsitteet ja perehtyy alkulukujen ominaisuuksiin
  • osaa tutkia kokonaislukujen jaollisuutta
  • käyttää ohjelmistoja ohjelmoinnissa ja lukujen tutkimisessa.

Keskeiset sisällöt

  • Algoritmisen ajattelun peruskäsitteet: peräkkäisyys, valinta ja toisto
  • vuokaavio
  • yksinkertaisten algoritmien, lajittelualgoritmien tai yhtälön numeerisen ratkaisuun liittyvän algoritmin ohjelmointi
  • konnektiivit ja totuusarvot
  • kokonaislukujenjaollisuus, jakoyhtälö ja kongruenssi
  • Eukleideen algoritmi
  • aritmetiikan peruslause

Opintokortti

Opintojakson aikataulu

Itsearviointi ja palaute

Harjoitustyön aiheita



  • Ohjelmoi peli joka arpoo pelaajan haluamalta väliltä kokonaisluvun ja tehtävänä on arvata oikea luku. Ohjelma ilmoittaa onko arvaamasi luku suurempi vai pienempi kuin oikea luku, pyytää arvaamaan uudestaan ja tulostaa lopuksi (kun arvasit oikein) arvausten määrän.
  • Ohjelmoi jokin oma peli esimerkiksi nopanheittoon (tai korttipakkaan) liittyen.
  • Tee ohjelma päässälaskujen treenaamiseen: Ohjelma generoi kaksi satunnaista kokonaislukua joltakin väliltä. (Väli voi olla ennalta määrätty tai käyttäjän antama.) Ohjelma valitsee satunnaisesti laskutoimituksen: yhteen-, vähennys- tai kertolaskun.. Esitä lasku käyttäjälle ja pyydä häntä syöttämään vastauksensa. Tarkista, onko käyttäjän vastaus oikein, ja ilmoita tulos.
  • Tee ohjelma, joka testaa Collatzin konjektuuria. Käyttäjä syöttää ohjelmaan jonkin positiivisen kokonaisluvun ja ohjelma tulostaa Collatzin algoritmin mukaisen lukujonon. (Tuloste mieluiten lukujonon muotoon, ei erillisille riveille.) Tämän lisäksi ohjelma laskee kuinka monella askeleella päädytään lukuun 1 (jonka jälkeen toistuisi silmukka1 -> 4 -> 2 -> 1.)
  • Simuloi jotain todennäköisyyslaskennan (yo-)tehtävää, esimerkiksi K2020/7 tai K2024/7. (Pythonin lista-tietotyyppi voi olla avuksi.)
  • Tee ohjelma, joka tarkistaa onko käyttäjän antama luku alkuluku ja tulostaa kaikki annettua lukua pienemmät alkuluvut.
  • Tee ohjelma, joka kysyy viidennen asteen polynomifunktion kertoimet ja ratkaisee sen nollakohdat valitsemallasi numeerisella menetelmällä.