Tietorakenteet ja algoritmit CSE- A1140 (5 op)



Samankaltaiset tiedostot
Tietorakenteet ja algoritmit Y CSE- A1141 (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

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Tietorakenteet ja algoritmit - syksy

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

T harjoitustehtävät, syksy 2011

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


Ohjelmoinnin perusteet Y Python

Trakla2-opetusympäristö

PHYS-A0120 Termodynamiikka (TFM) Maanantai

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

T Johdatus tietoliikenteeseen 5 op. Kevät 2013

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

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

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

Tietokoneen toiminta (Computer Organization I)

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

CHEM-A1200 Kemiallinen rakenne ja sitoutuminen, syksy 2016

031075P MATEMATIIKAN PERUSKURSSI II 5,0 op

031075P MATEMATIIKAN PERUSKURSSI II 5,0 op

Tietokoneen toiminta (Computer Organization I)

Ohjelmoinnin peruskurssi Y1

Tietokoneen toiminta (Computer Organization I)

Tietokone työvälineenä

Kurssiesite. Rakentamisen tekniikat RAK-C3004

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

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

031010P MATEMATIIKAN PERUSKURSSI I 5,0 op

Fysiikan opinnot Avoimen yliopiston opiskelijoille

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

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

Ohjelmoinnin peruskurssi Y1

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

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

YLEISINFO. TIEY4 Tietotekniikkataidot Kevät Juhani Linna

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

T Johdatus tietoliikenteeseen 5 op

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

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

HAHMONTUNNISTUKSEN PERUSTEET

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

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

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

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

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

T Ohjelmistojen määrittely- ja suunnittelumenetelmät

Fysiikan opinnot Avoimen yliopiston opiskelijoille

Tietokoneen toiminta (Computer Organization I)

Tietotekniikan perusopetuksen kehittäminen

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

KJR-C2002 Kontinuumimekaniikan perusteet Kurssiesite

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

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

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

AB TEKNILLINEN KORKEAKOULU

ABTEKNILLINEN KORKEAKOULU Tietoverkkolaboratorio

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

T harjoitustyö, kevät 2012

WebOodin opinto-opas ja ilmoittautuminen

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

Tuloslaskenta (22C00400, 6 op)

Opiskelun aloitusvuosi:

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

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

Weboodi. Katri Laaksonen Oppimisen IT

AB TEKNILLINEN KORKEAKOULU

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

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

ABTEKNILLINEN KORKEAKOULU Tietoverkkolaboratorio

Aikuisopetuksen tehtäviin suuntautuvat opettajan pedagogiset opinnot 60 op

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

Johdanto kurssiin ja ohjelmoijan työkaluihin

21C00250 Organisaatiokäyttäytyminen, 6 op

Mallilukujärjestys 1. vuosi 2013

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

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

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

Johdanto kurssille. Vastuuopettaja: Ilona Mikkonen, Yliopiston lehtori. Tapaaminen sopimuksen mukaan;

Joustavasti verkossa ERIVERIA.FI

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

pikaperusteet 3.3. versio

HAHMONTUNNISTUKSEN PERUSTEET

CHEM-A1000 Korkeakouluopiskelijan ABC

Tietorakenteet ja algoritmit. Kertaus. Ari Korhonen

perusteet kysellen ja keskustellen

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

Tervetuloa! CS-C2110 Ohjelmointistudio 1: mediaohjelmointi. Koittakaa löytää istumapaikka!

Opintoihin orientointi

Flippausta 3 korkeakoulun opiskelijoille

CHEM-A1410, Materiaalitieteen perusteet Kurssin esittely

Kurssikäytännöt ja opintojen suunnittelu. Leikola

Teknologiset valinnat

Transkriptio:

Tietorakenteet ja algoritmit CSE- A1140 (5 op) Syksy 2015 Ari Korhonen 10.9.2015 CSE-A1140, Ari Korhonen 1

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 10.9.2015 CSE-A1140, Ari Korhonen 2

1.0 Yleistä Tietorakenteet ja algoritmit / Kurssikuvaus Kurssi CSE-A1140 on tarkoitettu Perustieteiden korkeakoulun opiskelijoille (muiden koulujen opiskelijat suorittavat kurssin CSE-A1141, joka alkoi tiistaina 8.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! Myös viime 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 SYKSYN AIKANA! 10.9.2015 CSE-A1140, 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 Scalalla. Sinällään algoritmien implementointi jollain tietyllä kielellä ei ole kurssin sisällön kannalta keskeistä 10.9.2015 CSE-A1140, Ari Korhonen 4

1.2 Ilmoittautuminen Kurssille ilmoittaudutaan kurssin WebOodin kautta (kurssille/luennoille). Ilmoittaudu ajoissa (lue: tällä viikolla)! Kurssin kotisivut löytyvät MyCoursesista (jatkossa MC) ja esim. keskusteluryhmää pääsee seuraamaan, kun on ilmoittautunut WebOodissa 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 on jo auki) Kaikissa em. järjestelmissä käytetään Aalto-tunnuksia ja salasanaa (HAKA-login, single-sign-on) Laskuharjoitusryhmiin ei tarvitse ilmoittautua. Luokkiin voi mennä tekemään tehtäviä, jos tilaa on. 10.9.2015 CSE-A1140, 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 10.9.2015 CSE-A1140, 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! 10.9.2015 CSE-A1140, Ari Korhonen 7

1.4 Opetusmuodot Osa kurssin sisällöistä ja luennoista ovat yhteisiä kurssin CSE-A1141 kanssa Yhteiset lähiopetusmuodot molemmilla kursseilla Luennot torstaina 10.9.-1.10. klo 14-16 T1:ssä, jatkossa tiistaisin klo 14-16 A-salissa; luentorunko löytyy kurssin MC-sivuilta Laskutupa vapaaehtoiset, ei ilmoittautumista Viikkoharjoitukset, luentotehtävät, projekti Muuta A+-järjestelmässä pakolliset Vastaanotot ja verkkokeskustelu (MC) Lopputentti (pakollinen osasuoritus) 10.9.2015 CSE-A1140, Ari Korhonen 8

1.4 Opetusmuodot / Luennot Tietorakenteet ja algoritmit / Kurssikuvaus Luennot torstaisin (myöhemmin tiistaisin) klo 14-16 salissa T1 (myöhemmin A- eli Aalto-sali Johdatus kurssin keskeisiin asioihin Luentorunko MC:ssä Sähköinen oppikirja (linkki A+:ssa) tutustu luennon aihepiiriin jo ennen luentoa! Flipped Class (keskustelufoorumilla voi esittää kysymyksiä luentoa varten etukäteen, ks. luentotehtävät A+:ssa) Kurssin luennoi tutkija Ari Korhonen 10.9.2015 CSE-A1140, Ari Korhonen 9

1.3 Opetusmuodot / Laskuharjoitustilaisuudet Toteutetaan laskutupana Keskiviikkoisin 9-16, Maari C 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. 10.9.2015 CSE-A1140, Ari Korhonen 10

1.4 Opetusmuodot / Viikkoharjoitukset Pakollinen osasuoritus tehdään kokonaan verkossa (A+) Ohjelmointitehtäviä Scala-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. 10.9.2015 CSE-A1140, 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 10.9.2015 CSE-A1140, Ari Korhonen 12

Automaattinen tarkastaminen ja palaute Opiskelija alkutila T 1 T k Algoritmi alkutila T 1 T 2 lopputila lopputila 10.9.2015 CSE-A1140, 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ä 10.9.2015 CSE-A1140, 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ä 10.9.2015 CSE-A1140, Ari Korhonen 15

1.4 Opetusmuodot / Tentti Pakollinen, kaksiosainen Tietorakenteet ja algoritmit / Kurssikuvaus 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 Kurssi päättyy tenttiin joulukuussa Toinen tentti keväällä ja viimeinen mahdollisesti kesällä 2016 10.9.2015 CSE-A1140, 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-10h/vko) 1. ja 2. periodilla. Varaa luentojen lisäksi kalenterista aikaa viikottain 7-8h 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 10.9.2015 CSE-A1140, 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 10.9.2015 CSE-A1140, 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 10.9.2015 CSE-A1140, 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 ryhmiä 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) 10.9.2015 CSE-A1140, 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 ) 10.9.2015 CSE-A1140, 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 (WWW) 3. Palautteeseen vastataan uutisryhmissä ja kurssin kotisivuilla (päivitykset, FAQ, jne.) 10.9.2015 CSE-A1140, 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ää. 10.9.2015 CSE-A1140, Ari Korhonen 23

1.7 Palautetta Trakla-tehtä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ä. 10.9.2015 CSE-A1140, Ari Korhonen 24

10.9.2015 CSE-A1140, Ari Korhonen 25