Kurssiaiheet 1 ja 2

Viikkoharkat

Ei viikkoharjoituksia ennen viikkoa 3.

Itseopiskelu (videot ja kalvot suomeksi)

Luentokysymykset

Algoritmi on
Mitkä seuraavista ovat hyvin määritellyn algoritmin tärkeitä ominaisuuksia?
Oletetaan, että henkilö X esittää algoritmin pseudokoodilla ja henkilö Y lukee sen. Mitä oletuksia X voi tehdä Y:stä?
Oletetaan, että henkilö X on keksinyt uuden algoritmin tietyn ongelman ratkaisemiseksi. X kirjoittaa pseudokoodin uudelle algoritmille. Mikä seuraavista kuvaa parhaiten sitä, mikä X:n päätavoite pitäisi olla esitellessäsi uutta algoritmia pseudokoodina?
Tyypillisesti algoritmin pseudokoodi ei sisällä virheiden tai syötetietojen oikeellisuuden testausta, kun taas tosielämän sovellusten koodin tulisi sisältää tällainen testaus. Mikä seuraavista on paras selitys tälle pseudokoodin testauksen puutteelle?
Oletetaan, että algoritmille on annettu pseudokoodi. Toteutettaessa algoritmia jollain ohjelmointikielellä, kuten C++, mikä seuraavista tulee ottaa huomioon?
Mikä seuraavista kuvaa parhaiten pala kerrallaan -strategiaa?
Lisäyslajittelu toimii
Kun lisäyslajitteluun syötettävän tiedon koko kasvaa, lisäyslajittelun suoritettavien laskelmien määrä..
Mikä seuraavista osoittaa, että lisäyslajittelu käyttää pala kerrallaan -strategiaa?
Muotoile kurssin kannalta keskeinen kysymys, johon tämän viikon videot antavat vastauksen.
Minkä videon aiheesta pitäisi erityisesti keskustella keskustelutilaisuudessa?
Oliko videoiden sisällössä jotain erityisen vaikeaa? Entä mielenkiintoista? Jotain josta haluaisit oppia lisää?

Linkkejä viikon aiheisiin:

Viikkotehtävien palautus

Ei vielä mitään palautettavaa

Kurssiaihe 2

Itseopiskelu (videot ja kalvot suomeksi)

Luentokysymykset

Mitä oikeastaan mitataan, kun mitataan algoritmin tehokkuutta?
Miksi algoritmin asymptoottinen suorituskyky on kiinnostava?
Valitse oikeat väittämät
Miksi algoritmin ratkaisun laskemiseen kuluvan ajan mittaaminen ei ole toteuttamiskelpoinen tapa mitata algoritmin tehokkuutta?
Oletetaan, että meillä on pseudokoodi jollekin algoritmille A ja meille annetaan tehokkuusanalyysi tälle pseudokoodille. Mitä voimme tehdä tällä tehokkuusanalyysillä?
Missä ohjelmoinnin osa-alueissa järkevä tiedon jakaminen tehostaa algoritmia?
Oletetaan, että tietokonekieli X käyttää arvosemantiikkaa ja tietokonekieli Y viitesemantiikkaa. Oletetaan, että on olemassa suuri objekti A ja meillä on seuraava koodirivi: B=A. Mikä seuraavista on väärin?
Oletetaan, että C++:ssa jokainen taulukon A elementti sisältää suuren objektin. Useita tekniikoita voidaan käyttää A:n elementtien jakamiseen: osoittimet, älykkäät osoittimet, indeksit ja niin edelleen. Mitkä seuraavista ovat totta?
Rekursio on hyödyllinen, koska
Mitkä seuraavista kutsupinoa koskevista väittämistä ovat tosia rekursiolle?
Oletetaan, että taulukko A sisältää lukuja, jotka on järjestetty pienimmästä suurimpaan ja käytämme rekursiivista binäärihakua elementin etsimiseen. Mitkä seuraavista väitteistä ovat totta?
Oletetaan, että X on rekursiivinen funktio. Mikä seuraavista väitteistä on totta?
Muotoile kurssin kannalta keskeinen kysymys, johon tämän viikon videot antavat vastauksen.
Minkä videon aiheesta pitäisi erityisesti keskustella keskustelutilaisuudessa?
Oliko videoiden sisällössä jotain erityisen vaikeaa? Entä mielenkiintoista? Jotain josta haluaisit oppia lisää?

Palauta viikkotehtävät

Kysymyksiä tämän viikon aiheista