Topic outline


  • Osasuoritukset ja arvosana 

    Kurssilla on kaksi pakollista osasuoritusta: harjoitustehtävät ja tentti. Molemmat osasuoritukset arvostellaan asteikolla 0-5. Jos vähintään toisen osasuorituksen arvosana on 0, kurssin kokonaisarvosanaksi tulee 0 (hylätty). Muussa tapauksessa kurssin kokonaisarvosanaksi tulee harjoitustehtäväarvosanan ja tenttiarvosanan keskiarvo. Keskiarvon mahdolliset puolet numerot pyöristetään ylöspäin. Keskiarvo lasketaan tavallisena aritmeettisena keskiarvona ilman painokertoimia.

    Tentistä

    Tenttiin pitää aina ilmoittautua ensin Sisussa viikkoa ennen kurssin tenttijakson alkua. Ensimmäinen tämän kurssin tentti järjestetään EXAM-konetenttinä Otaniemessä 28.11.-15.12.2023. Kukin opiskelija varaa tenttiluokasta itselleen kolmen tunnin (175 min) ajan. Tentissä opiskelijalle arvotaan omat kysymykset suuresta kysymysjoukosta. Tarkempaa tietoa tenttiajoista ja niiden varauksista julkaistaan hyvissä ajoin ennen tenttiä asiaa koskevassa kurssiuutisessa ja MyCon alasivulla Tentti.

    Ensimmäisen tentin jälkeen järjestetään vielä neljä tenttiä, joissa syksyllä 2023 hyväksytysti suoritetut harjoitustehtävät ovat voimassa:

    • kaksi tenttiä kevätlukukaudella 2024: periodin III arviointiviikolla (viikko 8) ja periodilla V toukokuun loppupuolella.
    • kesätentti elokuussa 2024 tarkemmin myöhemmin määriteltävänä ajankohtana. Kesätenttiin voi ilmoittautua vasta sen jälkeen, kun on ilmoittautunut Aalto-yliopistoon läsnäolevaksi syyslukukaudeksi 2024.
    • tentti lokakuussa 2024, periodin I arviointiviikolla (viikko 42).

    Näistä tenttimahdollisuuksista ja niihin ilmoittautumisesta ilmoitetaan tarkemmin myöhemmin.

    Syksyllä 2022 hyväksytysti tehdyt kurssin harjoitustehtävät ovat voimassa vielä lokakuussa 2023 järjestettävässä rästitentissä ja kesällä 2023 hyväksytysti tehdyt harjoitustehtävät ovat voimassa vielä toukokuussa 2024 järjestettävässä tentissä. Tätä vanhemmat harjoitustehtäväsuoritukset eivät enää ole voimassa. 

    Tenttitehtävät ovat pääosin ohjelmointitehtäviä, joissa pitää joko koodata ohjelmia tai selittää valmiiksi annetuista ohjelmista, miten  ne toimivat, mitä ne tulostavat tai miten virheellistä ohjelmaa pitäisi korjata.

    Tenttivaatimuksista on kerrottu tarkemmin alempana tällä sivulla.

    Erityisjärjestelyt tentissä

    Jos tarvitset tentissä erityisjärjestelyjä esimerkiksi lukihäiriön tai jonkin vamman vuoksi, tarvitset todistuksen sinulle myönnetyistä erityisjärjestelyistä (esim. lisäajasta) oman koulusi opiskelijapalveluista. Ota sinulle aikaisemmin annetut todistukset ja selvitykset (esimerkiksi todistukset ylioppilastutkintolautakunnan ylioppilaskokeisiin antamasta lisäajasta) mukaan, kun menet hoitamaan asiaa opiskelijapalveluissa. Ota huomioon, että asian käsittely opiskelijapalveluissa voi kestää, joten hoida asia ajoissa. Opiskelijapalveluista saamaasi todistusta voit käyttää myös Aallon kaikilla muilla kursseilla.

    Jos olet saanut oman koulusi opiskelijapaveluista todistuksen tarvittavista erityisjärjestelyistä tentissä, ilmoita siitä sähköpostitse Sanna Suorannalle viimeistään kaksi viikkoa ennen tenttiä (mieluummin jo aikaisemmin, jotta tarvittavat järjestelyt ehditään hoitaa, mutta ei liian aikaisin, ettei asia unohdu. Dokumenttien lähettäminen kerran riittää). Jos haluat ruotsin- tai englanninkieliset tenttikysymykset, toimi alasivulla Tentti (sivu julkaistaan myöhemmin) kerrotuissa ohjeissa selitetyllä tavalla.

    Harjoitustehtävät 

    Kurssin harjoitustehtävät on jaettu kierroksiin. Jokaisella kierroksella on oma viimeinen palautusaikansa. Kierroksia on yhteensä yhdeksän (9), joista kahdeksan (8) ensimmäistä on pakollisia. Pakollisuus tarkoittaa sitä, että jokaisesta kierroksesta on saatava vähintään kierrokselle määritelty minimipistemäärä, jotta voisi saada hyväksytyn harjoitustehtäväarvosanan (katso korvausmahdollisuudesta kohdasta Rästitehtävistä). Jos saa jokaisesta pakollisesta kierroksesta minimipistemäärän, saa harjoitustehtävistä arvosanan 1. Keräämällä enemmän pisteitä harjoitustehtävistä voi saada paremman harjoitustehtäväarvosanan. 

    Jos opiskelija haluaa harjoitustehtävistä arvosanan 3, 4 tai 5, hänen on saatava minimipistemäärä myös vapaaehtoiselta kierrokselta 9. (Kierrosten minimipistemäärät yhteensä eivät riitä arvosanaan 3, mutta arvosanaa 3 tai parempaa ei voi saada ilman kierroksen 9 minimipisteitä.) 

    Opiskelijalta, joka on osallistunut tehtäväkierroksen aihetta käsitelleille luennoille mutta jolla ei ennen kurssin alkua kokemusta ohjelmoinnista, oletetaan kuluvan yhden kierroksen materiaalien lukemiseen ja tehtävien tekemiseen keskimäärin 10-12 tuntia. Kierroksen minimipistemäärä on yleensä vähän yli puolet kierroksen tehtävien maksimipistemäärästä. Kierroskohtaiset pistemäärät näkyvät A+ssa.

    Harjoitustehtävät palautetaan A+-järjestelmässä automaattiselle tarkastajalle, joka tarkistaa ja antaa pisteet ratkaisusta. Kurssihenkilökunta käy kuitenkin osan palautetuista ratkaisuista käsin läpi myöhemmin. Tällöin automaattitarkastuksen antamaa pistemäärää voidaan laskea, jos palautettu ohjelma on kirjoitettu huonolla ohjelmointityylillä tai esimerkiksi ohjelma ei ratkaise tehtävää tehtävänannossa pyydetyllä tavalla. Automaattinen tarkastus antaa siis alustavat pisteet.

    Harjoitustehtäväarvosanojen pisterajat syksy 2023

    Harjoitusarvosana Harjoitustehtäväpisteet
    0 0-2849
    1 2850-3699*
    2 3700-4499*
    3 4500-5349**
    4 5350-6049**
    5 6050-**

    ** Pistemäärän lisäksi vaaditaan vähintään minimipistemäärät kierroksilta 1-9.
    * Pistemäärän lisäksi vaaditaan vähintään mimipistemäärät kierroksilta 1-8.

    Harjoitustehtäväarvosana määräytyy harjoitustehtävistä yhteensä saatujen pisteiden perusteella yllä olevan taulukon mukaisesti. Lisäksi arvosanaan 1 vaaditaan, että jokaiselta pakolliselta kierrokselta 1-8 on vähintään minimipisteet. Nämä minimipisteet riittävät harjoitusarvosanaan 1. Arvosanoihin 3-5 vaaditaan arvosanaan oikeuttavan yhteispistemäärän ja kierrosten 1-8 minimipisteiden lisäksi minimipisteet kierroksen 9 tehtävistä.  Aallon kurssipalautekyselyyn vastaamisesta kurssin lopuksi saa 200 harjoitustehtäväpistettä. Rästitehtävistä saatuja pisteitä ei lasketa suoraan yhteen muiden pisteiden kanssa

    Rästitehtävistä

    Jos opiskelija ei ole saanut tarpeeksi pisteitä pakollisilta kierroksilta, hän voi korvata korkeintaan kolmen kierroksen harjoitustehtävät tekemällä rästikierroksen tehtäviä. Rästikierroksen tehtävät julkaistaan 9.11.2023. Jotta opiskelija saisi pakollisen kierroksen suoritettua, hänen on tehtävä tätä kierrosta vastaava rästitehtävä ja saatava siitä tarpeeksi pisteitä. 

    Rästitehtävillä ei voi parantaa hyväksyttyä arvosanaa, vaan sillä voi vain saada minimipistemäärän kierrokselta (poikkeus: rästitehtävällä voi myös saavuttaa vapaaehtoisen kierroksen 9 minimipistemäärän). Jos opiskelija korvaa jonkin pakollisen kierroksen rästitehtävällä, ei kierrokselta alunperin saatuja pisteitä ja rästitehtävästä saatuja pisteitä lasketa yhteen, vaan opiskelija saa kierroksesta ko. kierroksen minimipistemäärän. Edellytyksenä kuitenkin on siis se, että rästitehtävästä on saatu tarpeeksi pisteitä.

    Osasuoritusten voimassaoloaika

    Alla kerrotut harjoitustehtävien voimassaoloajat koskevat vain kokonaista hyväksyttyä harjoitustyösuoritusta (kaikista pakollisista kierroksista vähintään minimipisteet). Yksittäisten harjoituskierrosten pisteet eivät säily seuraaville kurssikerroille.

    Syksyllä 2022 hyväksytysti tehdyt harjoitustehtävät ovat voimassa vielä lokakuussa 2023 järjestettävässä kurssin tentissä.

    Kesällä 2023 hyväksytysti tehdyt harjoitustehtävät ovat voimassa vielä toukokuussa 2024 järjestettävässä tentissä.

    Syksyllä 2023 hyväksytysti tehdyt harjoitustehtävät ovat voimassa vielä lokakuussa 2024 järjestettävässä kurssin tentissä. 

    Tätä vanhemmat harjoitustehtäväsuoritukset eivät ole enää voimassa muuten kuin erityistapauksissa (ks. kohta pitkäaikaiset sairaudet ym.)

    Tämän kurssin osasuorituksia ei voi korvata Aalto-yliopiston tai TKK:n muiden ohjelmointikurssien osasuorituksilla. 

     

    Yhteistyö ja prujaaminen

    Harjoitustehtävien ratkaisujen kopiointi ei ole sallitua, kuten ei myöskään pisteiden hankkiminen yrittämällä harhauttaa automaattista tarkastusjärjestelmää hyväksymään tehtävänantoa täyttämätön ohjelma. Tekoälytyökalujen (esim ChatGPT) käyttö tehtävien ratkaisemisen apuna on kielletty. Opiskelijoiden palauttamia ohjelmia tutkitaan myös vilpin kannalta.

    Harjoitustehtävien ratkaisuista saa keskustella muiden opiskelijoiden kanssa, mutta jokaisen on kirjoitettava oma ohjelmakoodinsa itsenäisesti. Tarkemmin hyväksytyn ja luvattoman yhteistyön rajoja on selitetty alasivulla Sallittu ja kielletty yhteistyö. Luvattomasta pari- tai ryhmätyöskentelystä voi seurata koko  harjoitustehtäväsuorituksen hylkääminen, jolloin kaikki harjoitustehtävät on tehtävä uudelleen seuraavalla kurssikerralla. Lisäksi vilpistä seuraa tyypillisesti kirjallinen tiedote opiskelijan oman koulutusohjelman kansliaan (tiedotetta säilytetään kansliassa opiskelijan tietojen yhteydessä opiskelijan valmistumiseen asti). Epäilyt luvattomasta ryhmätyöstä tai vilpistä tutkii yleensä Perustieteiden korkeakoulun opintoasioiden päällikkö, ei kurssin opettaja.

    Pitkäaikaiset sairaudet, kertausharjoitukset ym.

    Yleensä harjoitustehtäväkierrosten viimeiset palautusajat ovat ehdottomia. Luennoija voi kuitenkin myöntää poikkeuksia palautusaikoihin tai korvaavia tehtäviä painavista syistä. Tällaisia syitä ovat  esimerkiksi pitkäaikainen sairaus (parin päivän flunssaa ei vielä lasketa pitkäaikaiseksi), perheenjäsenen kuolema, äitiys- tai isyysloma, vaihto-opiskelu ulkomailla tai yli viikon kestävät kertausharjoitukset kurssin aikana. Tällaisista painavista syistä voidaan myös myöntää poikkeuksia esimerkiksi kurssin osasuoritusten voimassaoloaikoihin. Näissä tapauksissa on aina syytä kääntyä luennoijan puoleen, ja yleensä painavasta syystä on oltava kirjallinen todiste (esim. lääkärin kirjoittama sairauslomatodistus).

    Tämän kurssin korvaaminen toisen yliopiston kurssilla

    Tarkista ohjeet oman koulusi kansliasta tai Intosta (yleensä Opintojen suunnittelu -> Opintojen hyväksiluku).

    Muuta kurssikorvaavuuksista

    Tämä kurssi korvaa aikaisemman kurssin CSE-A1111 Ohjelmoinnin peruskurssi Y1 ja T-106.1208 Ohjelmoinnin perusteet Y (Python). Tutkintoon voi sisällyttää kursseista CS-A1111, CS-A1113, CSE-A1111, T-106.1208 ja T-106.1210 vain yhden.


    Tenttivaatimuksista

    Kaikki A+-kurssimateriaalissa kerrotut asiat kuuluvat tenttivaatimuksiin, paitsi seuraavat asiat: 

    • Tulostuksen muotoilu eli tenttitehtävissä tulostusta ei tarvitse muotoilla tai muotoilukomennot on annettu valmiina. 
    • Monikko
    • Sanakirja
    • Listoja käsittelevistä funktioista ja metodeista seuraavia ei tarvitse osata ulkoa (jos niitä tarvitaan, ne on annettu tehtävänannossa): index, insert, remove, sort, sorted ja reverse. Myöskään sellaisia Pythonin valmiita listoja käsitteleviä funktioita ja metodeita ei tarvitse osata, joita ei ole esitelty lainkaan opetusmonisteessa.
    • Merkkijonoja käsittelevistä funktioista ja metodeista seuraavia ei tarvitse osata ulkoa (jos niitä tarvitaan, ne on annettu tehtävänannossa): index, lower ja upper. Myöskään sellaisia Pythonin valmiita merkkijonoja käsitteleviä funktioita ja metodeita ei tarvitse osata, joita ei ole esitelty lainkaan opetusmonisteessa. Huom. Merkkijonoja pitää kuitenkin osata tehdä tai käsitellä.
    • Asioita, joita on käsitelty vain A+:ssa vain esimerkeissä, joiden otsikossa lukee Haastavampi esimerkki, mutta ei muualla materiaalissa, ei vaadita tentissä. Näiden esimerkkien ymmärtäminen ei ole myöskään välttämätöntä tenttiin valmistautuessa. Nämä esimerkit eivät ole käytössä tentin aikana.

    Tentissä on yksi olio-ohjelmointitehtävä, joka vastaa vaativuustasoltaan yhteensä harjoitustehtäväkierroksen 9 tehtäviä 2 ja 3. (Kirjoita yksinkertainen luokka ja pääohjelma, joka luo luokan olioita ja kutsuu niille luokan metodeita.) Tämän tehtävän pistemäärä on 25 prosenttia tentin maksimipistemäärästä. Käytännössä se tarkoitttaa sitä, että tentistä voi päästä läpi, mutta on vaikea saada arvosanaa 3 tai parempaa, jos ei saa lainkaan pisteitä olio-ohjelmointitehtävästä. Olio-ohjelmoinnilla tarkoitetaan tässä kurssimateriaalin kierroksella 9 esitettyjä asioita. Varsinaisen olio-ohjelmointitehtävän lisäksi tentissä voi olla myös tehtäviä, joissa joutuu käyttämään esimerkiksi metodeita listojen, merkkijonojen ja tiedostojen käsittelyyn. 

    Koodin ymmärtämistä testaavat tehtävät voivat olla esimerkiksi seuraavan tyyppisiä:

    • Mitä tehtävänannossa annettu ohjelma tulostaa?
    • Mikä arvo annetussa ohjelmassa käytetyllä muuttujalla/muuttujilla on oltava, jotta ohjelma tulostaisi halutun rivin?
    • Mitä annettu ohjelma tai funktio tekee?
    • Mitä virheitä annetussa ohjelmassa on? 
    Koodin kirjoittamista vaativissa tehtävissä voidaan pyytää esimerkiksi
    • Kirjoita ohjelma, joka tekee vaaditun asian.
    • Kirjoita funktio, joka saa parametrit tehtävänannon mukaisesti ja palauttaa vaaditun arvon.
    • Olkoon valmiina funktio X, jonka parametrit ja paluuarvo on kerrottu tehtävässä (itse funktion koodia ei ole välttämättä annettu). Kirjoita ohjelma, joka tekee vaaditun asian käyttämällä hyväksi funktiota X.

    Näiden tehtävien ratkaisuja kirjoittaessa voi tarvita esimerkiksi seuraavia asioita:

    • If-käsky
    • Toistokäskyt
    • Listojen tai merkkijonojen käsittely
    • Funktion kirjoittaminen (sisältää parametrien ja paluuarvojen käytön)
    • Tiedostosta lukeminen tai tiedostoon kirjoittaminen
    • Poikkeusten käsittely mm. try-except-rakenteen avulla.
    Lisäksi tentissä on aina yksi olio-ohjelmointitehtävä, josta on kerrottu tarkemmin ylempänä.

    Koska sisennyksillä on Python-koodissa tärkeä merkitys, tenttivastauksissa kirjoitettu koodi on sisennettävä selvästi ja tarkasti. Jos sisennyksessä on virheitä tai epäselvyyksiä, niin se vähentää ratkaisusta saatavia pisteitä.

    Tenttiä harjoittelua varten A+:ssa julkaistaan harjoitustentti.