Johdanto
Aikataulu
Opetusmuodot
Ohjelmointitehtävät
Esisuoritus TIEP109
Tentti
Esitietovaatimukset
Työmäärä
Muita suoritusmahdollisuuksia
Vanhat tiedotteet
Sivu perustettu 7.3.2024
Kurssit Algoritmit 1 ja Algoritmit 2 kattavat yhdessä tärkeimmät algoritmit ja tietorakenteet sekä niiden analysointi- ja suunnittelumenetelmät.
Vuonna 2023 kurssin ohjelmointitehtävät uusittiin täydellisesti. Vuonna 2024 kurssin luentoruudut ja kirjallinen aineisto uudistetaan täysin. Nämä muutokset siirtävät kurssin painopistettä teoriasta käytännön ohjelmoinnin suuntaan.
Opettajana toimii Antti Valmari ja assistenttina Ville Rantala.
päivä | 19.3. | 21.3. | 2.4. | 4.4. | 9.4. | 11.4. | 16.4. | 18.4. | 23.4. | 25.4. | 30.4. | 2.5. | 7.5. | 14.5. | 16.5. | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ruutuun | 14 | 24 | 34 | 47 | 57 | 67 | 84 | 98 | 111 | 125 | 138 | 149 | 167 | 186 | 207 |
Kurssi pidetään 19.3.2024‒23.5.2024.
Poikkeukset:
maanantai | tiistai | keskiviikko | torstai | perjantai | |
---|---|---|---|---|---|
8:15‒ 9:00 | |||||
9:15‒10:00 | |||||
10:15‒11:00 | Neuvonta Ag B122.1 Alfa | Luento Ag B103 Auditorio 3 | |||
11:15‒12:00 | |||||
12:15‒13:00 | Neuvonta Ag C231.1 | ||||
13:15‒14:00 | |||||
14:15‒15:00 | Luento Ag B103 Auditorio 3 | ||||
15:15‒16:00 | |||||
16:15‒17:00 | Neuvonta Ag B122.1 Alfa | ||||
17:15‒18:00 |
Kurssilla on luentoja, ohjelmointitehtäviä, neuvontatilaisuuksia ja tentti. Luentoihin ja neuvontatilaisuuksiin osallistuminen on vapaaehtoista. Ohjelmointitehtävät ja tentti ovat pakolliset.
Luennot noudattavat keskeneräistä tekstiä ja siitä tehtyjä luentoruutuja. Niitä täydennetään kurssin edetessä. Luentotekstin lomassa on pieniä ja keskisuuria tehtäviä, joihin on vastaukset luentotekstin lopussa. (Vuotta 2023 edeltäneet tekstit, luentoruudut ja luentovideot ovat saatavana TIM-sivun kautta.)
Kurssin ohjelmointitehtävät on uusittu täydellisesti vuonna 2023. Niistä on alla oma kohta.
Neuvontatilaisuuksissa keskustellaan tai kerrotaan niistä luentotekstin tehtävistä joista opiskelijat haluavat keskustella tai kysyä, ja annetaan apua ohjelmointitehtävien tekemiseen. Ohjelmointitehtäviä koskeviin kysymyksiin pyritään vastaamaan tavalla, joka auttaa eteenpäin mutta ei anna liian paljon valmiina. Neuvojilla on oikeus tarvittaessa ilmoittaa, että tämän yksityiskohtaisempia neuvoja ei voida antaa.
Opettajat neuvovat tarvittaessa myös sähköpostitse siinä määrin kuin heidän aikataulunsa sallii. Lähetä sähköpostikysymykset molemmille opettajille, niin saat vastauksen varmemmin pian.
Tenttin saa tulla sitten kun on saanut ohjelmointitehtävistä riittävästi pisteitä, katso tarkka aikaraja kohdasta Tentti. Hyväksytyt ohjelmointitehtävät ovat voimassa kunnes viimeinen tentti on pidetty. Aikaisemmin palautettuja ohjelmointitehtäviä saa palauttaa myöhempinä vuosina uudelleen, mutta TIM tarkastaa ne kulloinkin voimassa olevien vaatimusten mukaan. Vuonna 2024 vaatimukset ovat samat kuin 2023.
Kurssin arvosana on tentin arvosana kuitenkin siten, että jos vaiheista P3, A1, R2 ja E1 on hyväksytty useampi kuin yksi tai kaikkiaan on hyväksytty ainakin kuusi vaihetta, ja tentin arvosana on 1, 2, 3 tai 4, niin arvosanaa korotetaan yhdellä. Arvosanan korotuksen voi ansaita myös tentin jälkeen, kuitenkin viimeistään toteutuskerran viimeisen tentin ilmoittautumisajan päättymiseen mennessä.
Kaiken muun voi suorittaa etänä paitsi tentin.
Kurssilla on tarjolla viisi ohjelmointitehtävää, joista osassa on välipalautuksia. Kaksi ensimmäistä tehtävää ovat vain yleistä ohjelmoinnin harjoittelua. Kolme jälkimmäistä liittyy kurssin asioihin. Opettajan mallivastaus kuhunkin tehtävään on alle 150 riviä paitsi lukujärjestystehtävään alle 350 riviä. Tehtävien kuvaukset löytyvät täältä. Tästä tekstistä saattaa olla apua ohjelmoinnissa alkuun pääsemiseksi.
Kuten opiskelussa yleensä, plagiointi on kielletty. Muiden ihmisten tai tekoälyn kirjoittamaa koodia ei saa käyttää, seuraavin poikkeuksin. Opetus- tai havainnollistustarkoituksessa esitettyjä hyvin lyhyitä koodinpätkiä saa käyttää (muutama kymmenen merkkiä, tyyliin ”näin teet silmukan Javalla”). Tämän kurssin aineistossa esitettyjä pitkiäkin koodinpätkiä saa käyttää. Ideoita saa hakea kirjoista ja netistä sekä kysyä muilta, mukaan lukien tekoäly. Jos neuvot muita, pidä huoli että neuvot ideatasolla etkä anna valmista koodia.
Älä julkaise omia ohjelmointitehtävien vastauksiasi GitHubissa eikä muuallakaan.
Kukin tehtävä palautetaan TIM-sivulle, joka testaa palautuksen ja antaa pisteen tai virheilmoituksen. Palauttaa saa niin monta kertaa kuin haluaa. Viimeisin palautus jää voimaan.
Yhteensä tehtävissä on 9 (väli)palautusta. Kurssin läpäisemiseksi TIMin pitää hyväksyä yhteensä ainakin 5 (väli)palautusta, joista ainakin yksi on P3, A1, R2 tai E1.
Oman pistemääräsi voit tarkastaa klikkaamalla nappia ”Laske pisteesi” täällä.
Esisuoritus on vapaaehtoinen. Se muodostuu kahdesta ohjelmointitehtävästä, joiden tarkoitus on kehittää perusohjelmointitaitoa. Ne on tarkoitettu tehtäväksi ennen TIEA211:n ohjelmointitehtäviä. Ne hyväksytysti suorittamalla saat yhden opintopisteen kurssista TIEP109 Tietotekniikan perusopintoja. Suoritusmerkinnän esisuorituksesta voi saada vain yhtäaikaa TIEA211:n suoritusmerkinnän kanssa.
Niihin pätevät samat säännöt kuin TIEA211:n ohjelmointitehtäviin. Niidenkin kuvaukset löytyvät täältä. Niiden pisteiden seurantaan on eri sivu kuin TIEA211:n pisteille. Se on täällä.
Ensimmäinen tentti on kohdassa Aikataulu ilmoitettuna ajankohtana. Myöhemmin järjestetään kaksi tenttiä lisää.
Ohjelmointitehtävien pitää olla hyväksyttyinä TIMissä sillä hetkellä kun ilmoittautuu tenttiin SISUssa. Jos tenttiin ei tarvitse ilmoittautua SISUssa, niin ohjelmointitehtävien pitää olla hyväksyttyinä TIMissä kolme vuorokautta ennen tenttipäivän aamua.
ITKA201 Algoritmit 1 tai vastaavat tiedot. Vahvasti suositellaan TIEP111 Ohjelmointi 2 tai vastaavat ohjelmointitaidot. Virallisesti ohjelmoinnista riittää ITKP102 Ohjelmointi 1 tai vastaavat ohjelmointitaidot, mutta siltä pohjalta kurssi voi olla vaikea. Jos koet ohjelmointitaitosi kaipaavan kohentamista, lue ohjelmointiesimerkkejä ja/tai suorita Esisuoritus TIEP109.
Varaudu siihen, että työmäärä on suuri. Virallisen laskutavan mukaan 4 op tarkoittaisi 107 tuntia opiskelijan työtä. Minusta virallinen laskutapa on väärä, mutta 90 tuntia voidaan kyllä tarvita.
Varaa tälle kurssille 10,5 tuntia viikossa. Tässä yhteydessä tunti tarkoittaa 45 minuuttia opiskelua ja 15 minuuttia taukoa. Tauot ovat tärkeitä, ja onhan myös lähiopetuksessa aina vartin tauko jokaista kolmen vartin luentoa tai demoa kohden.
Helsingin yliopiston MOOC Tietorakenteet ja algoritmit II kelpaa korvaamaan TIEA211 Algoritmit 2.
Tenttiin 23.5.2024 saa tulla, jos ohjelmointitehtävät ovat TIMissä hyväksyttyinä 21.5.2024 23:59 mennessä. Siitäkin saa mennä muutamalla tunnilla yli, mutta emme tiedä etukäteen, kuinka monella. Todellinen takaraja on seuraavana päivänä sillä hetkellä kun luettelo tenttiin osallistujista haetaan TIMistä. Tähän tenttiin ei tarvitse ilmoittautua.