Tietorakenteet ja algoritmit Y CSE- A1141 (5 op)

Samankaltaiset tiedostot
Tietorakenteet ja algoritmit CSE- A1140 (5 op)

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Ohjelmoinnin perusteet Y Python

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Tietorakenteet ja algoritmit - syksy

T harjoitustehtävät, syksy 2011

CHEM-A1200 Kemiallinen rakenne ja sitoutuminen, syksy 2016

Kurssin käytännön järjestelyt. Tuotantotalous 1 Joel Kauppi

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

Kurssiesite. Rakentamisen tekniikat RAK-C3004. Syksy 2016, periodi I (+ II)


Trakla2-opetusympäristö

Ohjelmoinnin perusteet Y Python

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tentti kestää kolme tuntia. Tehdään sähköisesti mikroluokkien Windows-koneilla.

Kurssijärjestelyt. ME-C2300 Verkkojulkaisemisen perusteet (5 op) Mari Hirvi Informaatioverkostot / Mediatekniikan laitos

T Johdatus tietoliikenteeseen 5 op. Kevät 2013

T harjoitustyö, kevät 2012

Tietokoneen toiminta (Computer Organization I)

Ohjelmoinnin peruskurssi Y1

Mallilukujärjestys 1. vuosi 2013

Ohjelmoinnin peruskurssi Y1

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

Kurssijärjestelyt. CS-1180 Verkkojulkaisemisen perusteet (5 op) Hanna Hämäläinen Informaatioverkostot / Mediatekniikan laitos

Ohjelmointi II. Erkki Pesonen Luennot ja harjoitukset. Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015

Kurssin käytännön järjestelyt. Tuotantotalous 1 Tuomo Tanila

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Kurssiesite Olio-ohjelmoinnin perusteet (TIEA2.1) Kevät 2018

T Johdatus tietoliikenteeseen ja multimediatekniikkaan 5 op. Kevät 2013

Fysiikan opinnot Avoimen yliopiston opiskelijoille


Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet (TIEA2.1) Kevät Olio-ohjelmoinnin perusteet (eli Oope) Laajuus

22A00110 Laskentatoimen perusteet (6 op) SYLLABUS. Opettaja. Jari Melgin Huone H 3.35/Töölö Puhelin

PHYS-A0120 Termodynamiikka (TFM) Maanantai

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät Olio-ohjelmoinnin perusteet (5 op) Tavoitteena

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen. Helsingin yliopisto Tietojenkäsittelytieteen laitos

Tietokoneen toiminta (Computer Organization I)

KJR-C2002 Kontinuumimekaniikan perusteet Kurssiesite

Kurssiesite Lausekielinen ohjelmointi II Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Tuloslaskenta (22C00400, 6 op)

Tavoitteena voi olla

Tilastollinen päättely II (MAT22003), kevät 2019

Tavoitteena voi olla

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät Olio-ohjelmoinnin perusteet (TIEA2.1)

Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

Kurssiesite Lausekielinen ohjelmointi Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Luento 0: Kurssihallinto Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Orientaatiotilaisuus Avoimen yliopiston opintoihin

Ohjelmoinnin peruskurssi Y1

Tietokone työvälineenä

Kurssin käytännön järjestelyt. Tuotantotalous 1 Jukka Kurki

Kurssiesite. Rakentamisen tekniikat RAK-C3004

Fysiikan opinnot Avoimen yliopiston opiskelijoille

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

YLEISINFO. TIEY4 Tietotekniikkataidot Kevät Juhani Linna

TU-C3010 Projektien suunnittelu ja ohjaus (5 op.)

T Ohjelmistojen määrittely- ja suunnittelumenetelmät

Kurssin käytännön järjestelyt. Tuotantotalous 1 Tuomo Tanila

Ohjelmoinnin peruskurssi Y1

031075P MATEMATIIKAN PERUSKURSSI II 5,0 op

A&O:n käyttöohje. 1. Rekisteröityminen ja kurssille ilmoittautuminen. 2. Sisäänkirjautuminen. (Lisää löydät osoitteesta:

031075P MATEMATIIKAN PERUSKURSSI II 5,0 op

T Johdatus tietoliikenteeseen 5 op

Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Tietorakenteet ja algoritmit. Kertaus. Ari Korhonen

Kon Hydrauliikka ja pneumatiikka Tutkimustehtävät - info

Kurssiesite Lausekielinen ohjelmointi I Kesä Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

MS-A0102 Differentiaali- ja integraalilaskenta 1

Pikaohjeet A&O oppimisympäristön käytön aloittamiseen

LC-8011 Työelämän venäjän perusteet 1. Aalto-yliopisto Kielikeskus Alexandra Belikova

pikaperusteet 3.3. versio

AB TEKNILLINEN KORKEAKOULU

CHEM-A1000 Korkeakouluopiskelijan ABC

ABTEKNILLINEN KORKEAKOULU Tietoverkkolaboratorio

Tietotekniikan perusopetuksen kehittäminen

perusteet kysellen ja keskustellen

CHEM-A1200 Kemiallinen rakenne ja sitoutuminen, syksy 2019

Lukujärjestyksen laatiminen, kursseille ilmoittautuminen KTK/KTM-opiskelijat TkK/DI-opiskelijat

031010P MATEMATIIKAN PERUSKURSSI I 5,0 op

CHEM-A1620 Näkökulmia ympäristöasioihin (3 op) Kevät 2018

Tervetuloa jatkamaan DIGITAALI- TEKNIIKAN opiskelua! Digitaalitekniikka (piirit) Luku 0 Sivu 1 (8)

Mallilukujärjestys Teknistieteellinen kandidaattiohjelma Tietotekniikka, 2. vuosikurssi

Tuloslaskenta (22C00400, 6 op)

MATEMATIIKAN PERUSKURSSI b

ENE-C3001 Energiasysteemit

YLIOPPILASKIRJOITUKSET. Info

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi Syksy Tavoitteet ja keinot. Lausekielinen ohjelmointi (10 op)

22A00110 Laskentatoimen perusteet (6 op) SYLLABUS. Opettaja (alkukurssi)

Sisältö: Kurssi koostuu johdantoluennoista, analysoitavien elokuvien katselusta, harjoitustöiden tekemisestä sekä verkkokeskusteluista.

DEE Aurinkosähkön perusteet (Foundations of Solar Power) Sali SE211 Keskiviikkoisin ja perjantaisin klo

Tervetuloa opiskelemaan DIGITAALI- TEKNIIKKAA! Digitaalitekniikan matematiikka Luku 0 Sivu 1 (9)

Biokemian menetelmät I P (10 op / 8 op / 3,5 op) Juha Kerätär (F210, Kontinkangas,

HAHMONTUNNISTUKSEN PERUSTEET

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

Graafisen käyttöliittymän ohjelmointi Syksy 2013

Transkriptio:

Tietorakenteet ja algoritmit Y CSE- A1141 (5 op) Syksy 2015 Ari Korhonen 1 CSE-A1141, Ari Korhonen

1. Kurssikuvaus 1.0 Yleistä 1.1 Esitiedot 1.2 Ilmoittautuminen 1.3 Tavoitteet 1.4 Opetuksen järjestelyt ja oppimateriaali 1.5 Tiedottaminen 1.6 Suorittaminen 1.7 Palaute 1.8 Henkilökunta 8.9.2015 CSE-A1141, Ari Korhonen 2

1.0 Yleistä Tietorakenteet ja algoritmit / Kurssikuvaus Kurssi CSE-A1141 on tarkoitettu muille kuin Perustieteiden korkeakoulun opiskelijoille (Perustieteiden korkeakoulun opiskelijat suorittavat kurssin CSE-A1140, joka alkaa torstaina 10.9.2015) Tämän kurssin osasuorituksilla ei voi korvata aikaisempien kurssien osasuorituksia Viime kevään kurssin osasuoritukset eivät kelpaa alkavan kurssin osasuorituksina Huom! Syksyn kurssilla erikseen alleviivattiin, että Alkavan kurssin osasuoritukset ovat voimassa vain vuoden. (lue: TÄLLÄ kurssilla) VARAA KURSSIIN RIITTÄVÄSTI AIKAA, JOTTA SAAT SUORITETTUA KAIKKI HARJOITUKSET KEVÄÄN AIKANA! 8.9.2015 CSE-A1141, Ari Korhonen 3

1.1 Esitiedot Kyky ymmärtää yksinkertaista lausekielistä ohjelmakoodia: muuttujat, sijoitus-, ehto- ja toistolauseet, lohkot, iteraatio, rekursio, jne. Kyky ymmärtää alkeistyypeillä toteutettuja yksinkertaisia rakenteita, joissa käytetään tallennusrakenteina taulukoita, tietueita ja tarvittaessa osoittimia Esimerkkiohjelmissa käytetään jotakin lausekieltä, kuten C:tä, Javaa, Pascalia, Pythonia tai jälkimmäistä muistuttavaa vapaampaa pseudokieltä Ohjelmointiharjoituksen tehdään Python-kielellä. Mutta sinällään algoritmien implementointi jollain tietyllä kielellä ei ole kurssin sisällön kannalta keskeistä 8.9.2015 CSE-A1141, Ari Korhonen 4

1.2 Ilmoittautuminen Kurssille ilmoittaudutaan WebOodin kautta (kurssille/ luennoille). Ilmoittaudu ajoissa (lue: tällä viikolla)! Kurssin kotisivut ja sähköinen tiedotus, ks. MyCourses (MC) Kurssilla on käytössä A+-oppimisympäristö A+-ympäristöön täytyy rekisteröityä käyttäjäksi ensimmäisellä yhteyskerralla (1. kierros avataan aloitusluennon jälkeen) Kaikkiin em. järjestelmiin pääsee kertakirjautumisella (Aaltotunnus + salasana, eli ns. HAKA-login) Laskuharjoitusryhmiin ei tarvitse ilmoittautua. Luokkaan voi mennä tekemään tehtäviä, jos tilaa on. 8.9.2015 CSE-A1141, Ari Korhonen 5

1.3 Tavoitteet Tietorakenteet ja algoritmit / Kurssikuvaus Oppia tuntemaan tärkeimmät tietorakenteet ja niiden käsittelyssä käytettävät algoritmit (algoritmien lukutaito, yksinkertaisten algoritmien suunnittelu ja toteutus) Oppia valitsemaan esiin tulevissa ongelmissa järkevä ratkaisumenetelmä ja soveltamaan sitä käytäntöön Oppia algoritmianalyysin perusteet Kyky perustella valintansa Kyky opiskella itsenäisesti 8.9.2015 CSE-A1141, Ari Korhonen 6

1.3 Tavoitteet... Keskeisiä aihepiirejä ovat lineaariset rakenteet, puurakenteet, verkot perustietorakenteet (jono, pino) prioriteettijonot (binäärikeko) hakurakenteet (hakupuut, hajautusmenetelmät) järjestäminen verkko-algoritmit! 8.9.2015 CSE-A1141, Ari Korhonen 7

1.4 Opetusmuodot Osa kurssin sisällöistä ja luennoista ovat yhteisiä kurssin CSE-A1140 kanssa Yhteiset opetusmuodot molemmilla kursseilla Luennot (ti klo 14-17 A; luentorunko kurssin MC-sivulla) Laskutupa (Maari-C) vapaaehtoiset, ei ilmoittautumista Viikkoharjoitukset, luentotehtävät, projekti, bonustehtävät A+-järjestelmässä Vastaanotot ja verkkokeskustelu Tentti 8.9.2015 CSE-A1141, Ari Korhonen 8

1.4 Opetusmuodot / Luennot Tietorakenteet ja algoritmit / Kurssikuvaus Luennot tiistaisin klo 14-16 salissa A (ks. poikkeuksen MC:ssä) Johdatus kurssin keskeisiin asioihin Luentorunko MC:ssä Sähköinen oppikirja (linkki A+:ssa) tutustu luennon aihepiiriin jo ennen luentoa! Flipped Class (keskustelufoorumilla / sähköpostilla voi esittää kysymyksiä luentoa varten etukäteen, ks. luentotehtävät A+:ssa) Kurssin luennoi vanhempi yliopistonlehtori Ari Korhonen 8.9.2015 CSE-A1141, Ari Korhonen 9

1.3 Opetusmuodot / Laskuharjoitustilaisuudet Toteutetaan laskutupana Keskiviikkoisin 9-16, Maari-C:ssä Paikalla ohjausta antaa 1-2 tuntiassistenttia Vapaaehtoisia (mutta tehtävät pakollisia), ei tarvitse ilmoittautua Voi mennä paikalle tekemään tehtäviä (jos on tilaa) ja kysymään neuvoa assistentilta Tehtävät voi tehdä myös kotona / etänä Laskuharjoitustilaisuuksista vastaavat pääassistentti Tapio Auvinen sekä tuntiassistentit Kasper Hellström, Riikka Soitinaho, Ossi Galkin, Timo Haario ja Esa Koskinen. 8.9.2015 CSE-A1141, Ari Korhonen 10

1.4 Opetusmuodot / Viikkoharjoitukset Pakollinen osasuoritus tehdään kokonaan verkossa (A+) Ohjelmointitehtäviä Python-kielellä (voi tehdä pareittain) Simulaatiotehtäviä, joissa kuvataan, miten annettu ohjelma tai algoritmi muuttaa muuttujien ja tietorakenteiden tilaa Joitakin analyyttisiä tehtäviä Automaattinen välitön palaute Tavoitteena oppia perusalgoritmien toiminta ja niihin liittyvä terminologia käsitteellisellä tasolla Implementaation ymmärtäminen ja toteuttaminen on mahdollista vain, jos on hyvä käsitteellinen ymmärrys algoritmin toiminnasta. 8.9.2015 CSE-A1141, Ari Korhonen 11

1.4 Opetusmuodot / Viikkoharjoitukset (simulaatiot) Algoritmi- ja koodisimulaatiotehtäviä kotilaskujen jakaminen ratkaisujen palautus automaattinen tarkastus ja palaute uudelleenpalautukset mallivastaukset pistekirjanpito WWW-käyttöliittymä Ohjeet verkossa 8.9.2015 CSE-A1141, Ari Korhonen 12

Automaattinen tarkastaminen ja palaute Opiskelija alkutila Algoritmi alkutila T 1 T k T 1 T 2 lopputila lopputila 8.9.2015 CSE-A1141, Ari Korhonen 13

1.4 Opetusmuodot / Ohjelmointitehtävät Perusalgoritmien implementaatiotehtäviä, joissa harjoitellaan algoritmien toteutusta. Ratkaisujen palautus A+:n kautta Automaattinen arviointi ja palaute Useita palautuskertoja / tehtävä Pistekirjanpito Tehtävät keskittyvät ajallisesti kurssin alkupuolelle Pariohjelmointi (ks. extreme programming) sallittua Kurssin loppupuolella oleviin vaativampiin tietorakenteisiin ei liity ohjelmointitehtäviä 8.9.2015 CSE-A1141, Ari Korhonen 14

1.4 Opetusmuodot / Analyysitehtävät Pieni määrä tehtäviä, joissa käsitellään algoritmianalyysiä ja algoritmien analyyttistä vertailua. Monivalintatehtäviä 8.9.2015 CSE-A1141, Ari Korhonen 15

1.4 Opetusmuodot / Tentti Tietorakenteet ja algoritmit / Kurssikuvaus Pakollinen, kaksiosainen Alkuosa, josta saatava vähintään tietty minimipistemäärä (koodin luku- ja kirjoitustaito), mutta joka ei yksin riitä arvosanaan 1. Loppuosa, joka määrää tentin arvosanan Vuoden aikana 2-3 tenttimahdollisuutta Tentteihin tulee ilmoittautua ajoissa! Tenttiajankohdat julkaistaan MC:ssä 8.9.2015 CSE-A1141, Ari Korhonen 16

1.4 Opetusmuodot / Mitoitus Tietorakenteet ja algoritmit / Kurssikuvaus Itsenäisellä asioiden opiskelulla on suuri merkitys: kurssi edellyttää noin 130 tuntia työtä (~9-10 h/vko) 1. ja 2. periodilla. Varaa luentojen (2 h) lisäksi kalenterista aikaa viikottain 7-8 h itsenäiseen opiskeluun (kirjan lukeminen, A+-tehtävät, laskutupa, kertaus, jne.). Osa asioista jää omien muistiinpanojen varaan Muistiinpanojen pohjaksi voi hakea vanhan kurssin opetusmonisteen (https://noppa.aalto.fi/noppa/kurssi/t-106.1223/ materiaali), joka seurailee luentoja 8.9.2015 CSE-A1141, Ari Korhonen 17

1.4 Oppimateriaali Seuraavaa kirjaa suositellaan erityisesti: Tietorakenteet ja algoritmit / Kurssikuvaus T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein: Introduction to algorithms 8.9.2015 CSE-A1141, Ari Korhonen 18

1.4 Oppimateriaali... Myös muita oppikirjoja voi käyttää Tietorakenteet ja algoritmit / Kurssikuvaus Sähköinen oppikirja (A+:ssa ja MC:ssä on linkki) Sisältää vuorovaikutteisia lisätehtäviä Osa tehtävistä myös viikkotehtävinä A+:ssa 8.9.2015 CSE-A1141, Ari Korhonen 19

1.5 Tiedottaminen Kaikki olennainen tiedotus kerrotaan luennoilla ja MC:ssä MC:n keskustelufoorumilla voi esittää yleistä mielenkiintoa sisältäviä kysymyksiä. Seuraa keskustelua säännöllisesti! Kurssin assistentit lukevat sähköpostitunnukselle trak@cs.hut.fi lähetetyt henkilökohtaiset viestit ja pyrkivät vastaamaan kysymyksiin lyhyesti yleensä päivän parin sisällä. Kurssin epäviralliset tiedostuskanavat IRC-kanava: #trak (IRCNet) 8.9.2015 CSE-A1141, Ari Korhonen 20

1.6 Suorittaminen Tietorakenteet ja algoritmit / Kurssikuvaus 1. Harjoitustehtävät (H) verkossa sekä Tentti (T) arvioidaan kukin asteikolla 0-5 2. Kurssin kokonaisarvosana määräytyy seuraavasti: Y-kurssi (5 op): min{1, H, T}*round( 0.5*H + 0.5*T ) 8.9.2015 CSE-A1141, Ari Korhonen 21

1.7 Palaute 1. Rakentava palaute kurssin järjestelyistä on tervetullutta koko kurssin ajan 2. Kurssin lopuksi järjestetään lomakepohjainen palautekysely 3. Palautteeseen vastataan uutisryhmissä ja kurssin kotisivuilla (päivitykset, FAQ, jne.) 8.9.2015 CSE-A1141, Ari Korhonen 22

1.7 Palautetta Osaaminen perustuu liikaa koodausosaamiseen eli jos esitiedot huonosti hallussa, on kurssi todella työläs ja vaikea. Jos osaa koodata, ei pitäisi olla vaikeuksia tällä kurssilla. Kurssi on mielenkiintoinen, ja tällainen tehokkuus on ihan hyvä ymmärtää. 8.9.2015 CSE-A1141, Ari Korhonen 23

1.7 Palautetta Simulaatiotehtävät auttoivat oppimista hyvin, välitön palauta ja eri tietorakenteiden ja algoritmien toiminnan selveneminen. Y-kurssilta puuttuvat ohjelmointitehtävät olisivat varmaan edistäneet oppimista. 3 tuntia on liian pitkä aika keskittyä ja vielä iltapäivällä. 8.9.2015 CSE-A1141, Ari Korhonen 24

8.9.2015 CSE-A1141, Ari Korhonen 25