Algoritmit ja tietorakenteetLaajuus (3 op)
Opintojakson tunnus: T0197
Opintojakson perustiedot
- Laajuus
- 3 op
Osaamistavoitteet
Opintojakson tärkein tavoite on oppia ymmärtämään abstraktion, yleisyyden ja ohjelmistokomponenttien merkitys ohjelmoinnissa ja oppia käyttämään niitä hyväksi. Opintojaksolla opitaan käyttämään ja rakentamaan ohjelmistokomponentteja. Opintojaksolla tutustutaan yleisten uudelleenkäytettävien ohjelmistokomponenttien problematiikkaan. Komponentteja rakennetaan sekä C-kielellä, jolloin käytetään ns. abstraktien tietotyyppien mallia että C++ -kielellä, jolloin käytetään luokkamallia. Tarkoituksena on nähdä, miten C-kielellä voidaan toteuttaa yleisiä uudelleen käytettäviä komponentteja. Näiden välineiden puutteet havaitaan konkreettisesti ja omakohtaisesti. Näin opitaan perusteellisesti ymmärtämään, mitä etuja olioperustainen lähestymistapa antaa perinteiseen ohjelmointikieleen nähden. C ja C++ kieliä siis verrataan toisiinsa niiden abstraktioon ja yleisyyteen tarjoamien välineiden osalta.
Opintojaksolla käsitellään myös yleiseen käyttöön tarkoitetut ohjelmistokomponentit kuten listat, pinot, jonot ja puut.
Opintojaksolla tutustutaan erilaisiin järjestämis- ja etsintämenetelmiin käyttäen lähestymistapana algoritmien analyysia. Myös näiden kohdalla on yhtenä tarkastelukulmana algoritmien yleisyys.
-----
Opiskelija osaa käyttää abstraktiota ohjelmointityössä. Osoittimien ja tietueiden käsittely C-kielessä.
Sisältö
Abstraktio, yleisyys ja ohjelmistokomponentit ohjelmointityössä. Abstraktit tietotyypit, pinot, jonot ja puurakenteet. Rekursio määrittelyissä, ongelman ratkaisussa ja ohjelmointitekniikkana. Iteraattorit ja säiliötyypit. Eri toteutusvaihtoehtojen kompleksisuus.
-----
Eri ratkaisutapojen soveltuminen erityyppisiin ongelmiin, lähinnä muistinkulutuksen ja laskentatehokkuuden suhteen.
Esitietovaatimukset
C ohjelmointikielen tuntemus
Lisätiedot
luennot ja laboratorioharjoitukset