Päivitetty 27.9.2015 (lisätty luentopäivän materiaali). Jorma Boberg.
Tietojenkäsittelytieteen perusteet I (TTP I), 2015
Kurssiin kuuluu opintomoniste ja opiskeluopas. Opiskeluopas ohjaa opiskelun kulkua sisältäen viikottaisen ohjelman ja harjoitustehtävät, tarkentaa opintomonisteen tekstiä (ns. rautalankaa) ja sisältää lisäesimerkkejä. Opiskeluoppaassa luetellaan myös ne opintomonisteen asiat, joita ei vaadita. Aloita jokaisen viikon opiskelu lukemalla ensin opiskeluopasta.
Materiaalit: Tulosta aina pdf-versiot ja 2-puolisesti jos mahdollista.
Näillä sivuilla olevaa materiaalia voi käyttää omilla kursseillaan, kunhan
ilmoittaa
lähteen omissa materiaaleissaan. Myös tätä sivua voi jakaa
opiskelijoille.
Opiskeluopas: pdf
Opintomoniste:
Johdatus tietojenkäsittelytieteeseen
(pdf) alkuosa, joka käsitellään osittain tällä jaksolla TTP I. Opintomonisteen alussa on
kaksi tyhjää sivua, jotta pdf-lukija näyttää samat sivunumerot, jotka ovat
monisteessakin. Monisteesta
ohitetaan (ja ei siis vaadita) useita kohtia, erityisesti lopusta. Nämä
kohdat luetellaan jakson opiskeluoppaassa. Monisteen loppuosa jaetaan
ja käsitellään viimeisellä jaksolla TTP II. Koko monisteen löytää myös sivulta http://staff.cs.utu.fi/staff/jorma.boberg/Mat/
Imperatiivisen ohjelmoinnin peruskäsitteet ja opintomonisteen pseudokielen
syntaksi (yhteenveto)
Opintomonisteen ja opiskeluoppaan lisäksi ei tarvita lisämateriaaleja, mutta tarvittaessa Brookshearin kirja (ks. tämän sivun loppu) on hyvä lisämateriaali.
Harjoitustehtävien malliratkaisut jaetaan
ryhmäkokoontumisen yhteydessä paperilla ja Moodlessa TTP I-foorumilla perjantaisin.
Luentopäivä
on Turussa lauantaina 10.10.2015 klo
10:15- n. 14:30 ja sen pitää Jorma Boberg. Päivän sisältö on kuvattu pääpiirteissään
opiskeluoppaassa ja päivän kalvomateriaali on
tässä ja
se sisältää myös vanhoja tenttikysymyksiä. Saat tästä
paperiversion luentopäivällä, mutta tutustu siihen etukäteen.
Materiaali sisältää
paljon opiskeluoppaan asioita. Alkupuolella on tuttu esimerkki n!,
jonka käsittelyn aikana tulee
ilmi se miten algoritmia aletaan kirjoittamaan, missä järjestyksessä
lauseita kirjoitetaan ja miten ne liittyvät toisiinsa. Lopuksi
käsitellään viimeisen viikon asioita: mm. abstrakti tietotyyppi ja
taulukot. Lisäksi käsitellään joitakin harjoitustehtäviä. joten ota kaikki kurssimateriaali mukaan. Päivän sisältö
on laadittu niin, että siitä on hyötyä sekä vasta-alkajalle että myös
asioita jo osaavalle. Lähtökohtana on kuitenkin se, että jakson
asioihin on tutustuttu. Vaikka päivän
nimi on luentopäivä, niin tarkoituksena on tehdä myös materiaalin
tehtäviä yhdessä (materiaalin tyhjät kohdat!) ja lisäksi ideana
on: kysymällä opin. Mieti siis kysymyksiä etukäteen ja ole
aktiivinen.
Luentopäivä pidetään ICT-talossa salissa beta (β)
Joukahaisenkatu 3-5 eli samassa paikkaa, jossa Turun ryhmän
infotilaisuudet pidettiin. ICT-talossa opiskelevat Turun korkeakoulujen
(Turun yliopisto, ammattikorkeakoulu, kauppakorkeakoulu ja Åbo Akademi)
tietotekniikan ja informaatioteknologian opiskelijat. Katso talon
sijainti
oheisesta kartasta (nuoli osoittaa sisäänkäynnin, Euromarkettia ei enää ole vaan siinä on NEO-sairaala)). Sali beta on samassa
kerroksessa kuin aula ja salin sijainti löytyy aulan kartoista. Tässä on
Turun kartta.
Ulko-ovi on kiinni, mutta tulen avaamaan sen n. klo 10:12. Tule
ajoissa, koska 10:15 jälkeen ovi on kiinni. Pidän
kännykkäni päällä aluksi ja voit soittaa jos jäät oven taakse,
0452770593. Huom. ICT-talon kahvila on kiinni, joten ota omat eväät
mukaan. Tiloissa on automaatteja, joista saanee juotavaa (eivät ole aina toimineet).
Aiempien vuosien palautteiden perusteella luentopäivä on
todettu erittäin hyödylliseksi ja motivoivaksi. Sinne kannattaa siis
ehdottomasti tulla.
Ottakaa asia puheeksi ryhmäistunnossa, koska tuutorillasi on varmaankin
käytännön palautetta luentopäivistä. Luentopäivällä ei käsitellä varsinaisesti uusia
asioita, vaan tilaisuuden luonne on kertaava, joskin taatusti jotain uusiakin
näkökulmia asioihin ilmenee. Päivän aikana käsitellään tarkasti mm. seuraavia
asioita:
* algoritmien rakentamisessa tarvittavat työkalut
* mitä asioita algoritmin suunnittelussa tulee ottaa huomioon
* miten algoritmia aletaan kirjoittamaan
* miten valmiin algoritmin toimintaa voidaan tutkia
* moduulit eli metodit ja niiden parametrit
* abstrakti tietotyyppi
* vektori eli 1-ulotteinen taulukko
* lukuisia esimerkkejä (mukana myös hiukan Javaa, jota tällä kurssilla ei vaadita)
* tarkastellaan vanhoja
tenttikysymyksiä
Verkossa oleva havainnollistusohjelma ViLLE (ViLLE-harjoitustehtävät ovat täällä ja avain on sama kuin Moodleen).
Seuraavan linkin takana on useita algoritmien toiminnan animointeja. Kyseisellä sivulla on seuraavat havainnollistukset, jotka tukevat suoraan kurssiamme ja niihin kannattaa siis tutustua (sulkeiden sisällä on opintomonisteemme sivunumero). Nämä sivut kuitenkin vaativat poikkeuksen lisäämisen Javaan, joka tehdään seuraavasti: Valitse vasemmalta alhaalta Start, Control Panel, Java, Security, Edit Site List. Lisää tähän http://www.cosc.canterbury.ac.nz/.
Linear search (osoitteenhaku s. 31, mutta animoinnissa käytetään taulukkoa ja taulukon alkiot indeksoidaan lähtien nollasta)
Bubble Sort (kuplalajittelu s. 35)
Linked List (linkitetty lista, s. 62)
Stack (ADT pino, s. 64, push: laita alkio pinoon, pop: ota alkio pinosta)
Queue (ADT jono, s. 64)
Lisäksi opintomonisteessa käsitellään puita, joita ei kuitenkaan vaadita tällä kurssilla:
Binary Tree Traversal (binääripuun läpikäyntitavat: esi-, väli ja jälkijärjestys, s. 67),
Binary Search Tree (alkion haku lajitellusta binääripuusta, tätä ei ole monisteessa, mutta sen algoritmi on hyvin samanlainen kuin s. 69 moduuli LisääPuuhun)
Tentistä:
Tenttipäivät ja ajat on esitetty pääsivun linkissä Tentit: ...
Alla mainitut materiaalit 1. ja 2. kuuluvat jakson Tietojenkäsittelytieteen perusteet I (TTP I) ja jakson tentissä on yksi kysymys, joka käsittelee näitä asioita.
Sivut http://www.helsinki.fi/tvt-ajokortti/materiaali.htm sisältävät Helsingin yliopiston TVT-ajokortin. Käy huolellisesti läpi linkin Tietokoneen käytön perusteet/ Tietokoneen toimintaperiaate kohdat
Tietokoneen perusosat ja toimintaperiaate
Tallennusvälineet ja oheislaitteet (ohita HY:n osuus)
Käyttöjärjestelmä ja käyttöliittymä
Monisteen
Johdatus
tietojenkäsittelytieteeseen (yllä) s. 5-14. Tietokoneen osat ja toimintaperiaate ovat tässä tarkemmin kuin yllä olevassa.
Näitä asioita voi täydentää seuraavan linkin avulla:
Sivut http://fi.wikipedia.org/wiki/Tietokonelaitteisto sisältävät erittäin tarkat kuvaukset tietokonelaitteistosta ja niiden osista.
Oheismateriaalia:
Internetistä löytyy myös paljon informaatioteknologian perusteita koskevaa tietoa. Esimerkiksi
http://staff.cs.utu.fi/kurssit/JAJO (Turun yliopisto) sisältää vastaavan Turun yliopiston kokopäiväopiskelijoiden opintojakson vanhat kotisivut. Sivuilla on harjoitustehtäviä ja niiden ratkaisuja sekä lisämateriaalia monisteeseen. Täällä kannattaa tietysti vierailla.
http://www.cs.tut.fi/etaopetus/titepk/ sisältää Tampereen yliopiston tietotekniikan peruskurssin. Alkuosa tukee jaksoa 'Johdatus algoritmeihin ja ohjelmointiin'.
Kirja: Brookshear: Computer Science: An Overview. Addison-Wesley, 2005 tai uudempi (sisältää hyvin samankaltaista asiaa kuin meidän kurssi, hyvä hankinta!). Kirjan vanhempi painos on myös suomennettu: Tietotekniikka, IT Press, Edita 2003. Sitä voi lainata myös joistakin kirjastoista.