Topic outline

  • Y2 kevät 2022

    Tämä kurssi jatkaa siitä, mihin kurssi CS-A1111 Ohjelmoinnin peruskurssi Y1 päättyi. Tämän kurssin keskeisinä tavoitteina on opetella oman ohjelman kehitykseen tarvittavia tietoja ja taitoja, sekä harjoitella niitä toteuttamalla henkilökohtainen ohjelmointiprojekti. Tavoitteena on myös, että opiskelija saa riittävät valmiudet opiskella tietotekniikkaa sivuaineena.

    Kurssin vastuuopettaja on yliopistonlehtori Sanna Suoranta. Kurssilla on 20 kurssiassistenttia auttamassa opiskelijoita harjoitustehtävissä ja projekteissa. Kurssista on myös vastaava englanninkielinen versio (CS-A1123), jonka vastuuopettaja on yliopistonlehtori Talayeh Aledavood, mutta käytämme samoja materiaaleja ja tehtäviä sekä harjoituksia ja keskustelufoorumia molemmilla kurssiversioilla.

    • Ilmoittautuminen, suorittaminen ja arvosana

      Kurssille pitää ilmoittautua Sisussa. Kurssilla käytetään A+-järjestelmää ja Git-versionhallintajärjestelmää.

      Kurssi koostuu kahdesta pakollisesta osasuorituksesta:
      • Harjoitustehtävät, jotka tehdään yksilötyönä. Harjoitustehtäviä on kuusi kierrosta, joiden palautusajat ovat noin kerran viikossa, III periodin ja IV periodin alkupuolella. Harjoitustehtävistä pitää saada noin puolet jaossa olevista pisteistä, jotta harjoitustehtävät on suoritettu hyväksytysti. Tarkat pisterajat ja tehtävänannot löytyvät kurssin sivulta A+-järjestelmästä, ensimmäisen tehtäväkierroksen kohdasta Kurssin esittely. Harjoitustehtäviä on kuusi kierrosta.
      • Henkilökohtainen ohjelmointiprojekti, johon ei liity yhteistilaisuuksia, mutta joka sisältää henkilökohtaisia assistenttitapaamisia tiettyä aikataulua noudattaen (tapaamiset selitetty tarkemmin A+:ssa). Projekti alkaa aiheiden valinnalla helmikuun alussa ja loppuu, kun projekti dokumentteineen palautetaan viimeistään toukokuun alussa ja demotaan assistentille seuraavalla viikolla (V periodilla). Tarkemmat määräajat ja yksityiskohdat A+-järjestelmässä.

      Kumpikin osa tehdään itsenäisesti. Apua saa kysyä (myös kavereilta), mutta koodit ja dokumentit on kirjoitettava itse (eikä esim. toisen sanelusta). Jos/kun kaverisi kysyy apua, älä siis anna vastaustasi hänelle suoraan, vaan anna kaverille tilaa oppia itse! Kurssilla käytetään automaattista harjoitustehtävien korjausta ja automaattista kopioinnin havaitsemista. Lisätietoja yhteistyöstä MyCoursen sivulta.

      Kummankin osan tarkemmat tiedot tulevat A+-järjestelmään. Kurssin loppuarvosana on painotettu keskiarvo yllä olevista: round(0.4*harjoitusarvosana + 0.6*projektiarvosana), joissa molempien osien tulee olla hyväksytysti suoritettu.

      Kurssilla ei ole tenttiä.

    • Esitiedot

      CS-A1111 Ohjelmoinnin peruskurssi Y1 on tämän kurssin esitieto. Jos et tehnyt sen kierroksen 9 oliotehtäviä, kannattaa yrittää tehdä ne ennen tämän kurssin tehtäviä, vaikka palautusjärjestelmä ei enää arvioikaan tehtäviä. 

      Materiaali ja tiedottaminen sekä opiskelijoiden kysymykset

      Kurssin ohjeistus ja materiaali on pääosin A+-järjestelmässä , jossa ovat erityisesti kurssiin liittyvä lukemisto, linkit, ja kurssin harjoitustehtävät. Englanninkielinen kurssi käyttää samaa kurssialuetta ja tehtäviä sekä harjoituksia. A+:ssa kielen voi valita vasemmasta yläkulmasta löytyvän XA -napin avulla. Tehtävät liitteineen kattaa kurssin koko perussisällön, mutta tietoa pitää hakea myös itse erityisesti, jos kohtaa ongelmia tehtäviä tai projektia tehdessään. Ohjelmointikielenä kurssilla käytetään Pythonia.

      MyCoursesin kautta lähetetään kaikkia koskevia tiedotteita ja yhteistä palautetta viikkotehtävien palaute-osiossa esiin nousseista asioista (eli jos jokin jää ohjelmoinnissa askarruttamaan, kirjoittakaa kysymyksiä ja ihmettelyitä A+-järjestelmän kunkin tehtävän jälkeen olevaan palautekyselykenttään).

      Apua kurssilla saa kysymällä  Zulip-foorumilla. Aivan ensimmäiseksi kannattaa käydä lukemassa ohjeet viestien kirjoittamiseen "help with zulip / apua zulipin käyttöön" -osasta. Keskustelufoorumilta löytyy omat osat jokaiselle tehtävälle (sitä mukaa kun kierrokset aukeavat), luennoille, kurssijärjestelyille, asennuksille ja yleisille ohjelmointikysymyksille. Ennen oman viestin kirjoittamista kannattaa katsoa, josko joku toinen opiskelija olisi kysynyt samaa ja saanut vastauksen, jonka avulla omakin ongelma selviäisi. 



      Luennot jaharjoitukset

      Joudumme aloittamaan kurssin täysin verkkokurssina. 

      Luentovideot tulevat MyCourse-sivulle, samoin kuin luentokalvot. Luennoilla käydään ohjelmoinnin lisäksi läpi ohjelmien toimintaympäristöä (tietokonetta ja tietoverkon tarjoamia ohjelmontialustoja) sekä ohjelmointiprojektin hallintaan liittyviä asioita. 

      Ohjelmointia oppii paljon ihan vain tekemällä, mutta koska kurssin materiaali on pitkälti harjoituksien ja projektin tekemiseen tarkoitettuja linkkejä ohjelmointityökalujen dokumentaatioon, voi kokonaiskuvan saaminen olla hankalaa ilman luentoja. Kokonaiskuvan asioista saa parhaiten luennoilta, jotka ovat osa kurssin oppimateriaalia.

      Jos esitietokurssin suorittamisesta on pitkä aika, voi olla hyvä kerrata asioita mm. katsomalla Ohjelmoinnin peruskurssi Y1:n luentovideoita, erityisesti virheiden etsiminen eli debuggaus on hyvä kerrata. 

      Kurssilla on harjoitustilaisuuksia, joihin voi tulla kysymään assareilta apua harjoitustehtävissä oleviin ongelmiinsa. Harjoituksiin ei ole pakko osallistua eikä niihin tarvitse ilmoittautua erikseen (jollei pandemian vuoksi muuta ilmoiteta). Linkki harjoitusten jonoon löytyy A+:n sivupalkista. Harjoitukset ovat aluksi Zoomissa (ainakin tammikuun), mutta saattavat pandemiatilanteen helpotuttua siirtyä olemaan Otaniemessä. Ruotsiksi voi saada neuvoja keskiviikon klo 16-18 ja torstain klo 14-16 harjotuksissa. 


    • Alustava aikataulu kaikesta kurssilla



      Alustava aikataulu (huom: luennot videoina, harjoitukset tammikuussa online)
      viikko luento tehtävä muuta
      2 to 13.1. 10-12 johdanto, tietokone ja GIT
      (videoita)
      Aloita tehtävien tekeminen!
      3 to 20.1. 10-12 arkkitehtuuri, oliot ja poikkeukset
      (videoita)
      pe 21.1. klo 14:00 kierros 1: warmup
      4 to 27.1. 10-12 mallit, UML, suoritusjärjestys
      (videoita)
      pe 28.1. klo 14:00 kierros 2: oliot + GIT  Git-tehtävä siirretty 1. kierrokselta tähän
      5 to 3.2. 10-12 testaus
      (videoita)
      pe 4.2. klo 14:00 kierros 3: perintä + UML
      6 to 10.2. 10-12 tiedostot
      (videoita)
      pe 11.2. klo 14:00 projekti: aiheiden valintatoiveet Projektiaiheiden valinta MyCourses-sivuilla!
      Huom! kierroksen 4 tehtäville on varattu enemmän aikaa tarkoituksella, eli aloita niiden tekeminen jo tällä viikolla!
      7 to 17.2. 10-12 tapahtumat ja käyttöliittymä
      (videoita)
      pe 18.2. klo 14:00 kierros 4: testaus + rekursio
      8 pe 25.2. klo 14:00 projekti: suunnitelma Projektin suunnitelma palautetaan GITin avulla
      Huom! kierroksen 5 tehtäville on varattu enemmän aikaa tarkoituksella, eli aloita niiden tekeminen jo tällä viikolla!
      9 viikko 9: suunnitelmatapaaminen
      pe 4.3. klo 14:00 kierros 5: tiedostot
      Projektisuunnitelman esittely omalle assistentille, aikavaraus erikseen kerrotulla tavalla (assarikohtainen)
      10 Huom! kierroksen 6 tehtäville on varattu enemmän aikaa tarkoituksella, eli aloita niiden tekeminen jo tällä viikolla!
      11 pe 18.3. klo 14:00 kierros 6: käyttöliittymä
      12 pe 25.3 klo 14:00 projekti: checkpoint1
      pe 25.3. klo 14:00 (vapaaehtoinen lisätehtäväkierros)
      Projektin välipalautus: GIT + viesti, ohjeet A+:ssa
      13
      14
      15 pe 15.4. klo 14:00 projekti: checkpoint2 Projektin välipalautus: GIT + viesti, ohjeet A+:ssa
      16
      17
      18 pe 6.5. klo 14:00 projekti: koodien ja dokumentaation palautus Projekti palautetaan GITiin. Tämän ajanhetken jälkeisiä muutoksia ei huomioida arvostelussa.
      19 viikko 19: projektin loppudemo assistentille Projektisuunnitelman esittely omalle assistentille, aikavaraus erikseen kerrotulla tavalla (assarikohtainen)
      20 (Projektitöiden arvostelu)
      21 (ei mitään luentoa, vaikka Sisu niin väittää)


    • Harjoitustilaisuudet

      Kurssilla on harjoitustilaisuuksia, joihin voi tulla kysymään assareilta apua harjoitustehtävissä oleviin ongelmiinsa. Harjoituksiin ei ole pakko osallistua eikä niihin tarvitse ilmoittautua erikseen (jollei pandemian vuoksi muuta ilmoiteta). Linkki harjoitusten jonoon löytyy A+:n sivupalkista. Tee itse julkinen zoom-istunto (ohjeet Aallon zoomin käytölle: https://www.aalto.fi/en/services/zoom-quick-guide) ja liitä sen linkki jonoon. Jää odottamaan. Assari liittyy vapautuessaan tekemääsi Zoom-istuntoon. Apua voi kysyä myös keskustelufoorumilla.

      Harjoitukset alkavat 17.1. ja päättyvät 24.3. Harjoituksia ei ole viikolla 8 (21-25.2.). Alla sv-merkityissä ryhmissä voi saada neuvoja myös ruotsiksi.

      Huom. Harjoitukset tammikuussa vain online!
      päivä ja aikapaikkaassistentit
      ma 10-12 Online (ehkä myöhemmin OK1 Y342a)Kim Amir, Jenna Hantula
      ma 14-16 OK1 Y342aThomas Tjurin, Eero Asikainen
      ma 16-18OK1 Y342aSimeon Seppälä, Tuomas Rislakki
      ti 10-12Online (ehkä myöhemmin MaariB)Stas Tatun, Jenna Hantula
      ke 14-16Online (ehkä myöhemmin MaariB)Simeon Seppälä, Anni Niskanen, Bai-Bai Bairoh
      ke 16-18 (sv)Online (ehkä myöhemmin Maari B)Niko Miller, Anni Niskanen, Johanna Järviluoto
      to 8-10Online (ehkä myöhemmin T-talo T7)Tuomas Rislakki, Eero Asikainen
      to 14-16 (sv)OK1 Y342aNiko Miller, Thomas Tjurin, Stas Tatun
      to 16-18Online (ehkä myöhemmin OK1 Y342a)Kim Amir, Bai-Bai Bairoh, Johanna Järviluoto





    • Henkilökunta ja yhteydenotot

      Kurssin vastuuopettaja on yliopistonlehtori Sanna Suoranta. Kurssilla on 20 kurssiassistenttia auttamassa opiskelijoita harjoituksissa ja projekteissa. Jokainen opiskelija saa projektia varten oman assistentin.

      Henkilökohtaisissa ongelmissa (kuten pitkäaikainen sairastuminen tai muu vastaava ongelma) voit ottaa yhteyttä vastuuopettajaan käyttäen sähköpostiosoitetta CS-A1121@aalto.fi. Ole hyvä, ja liitä viestiisi opiskelijanumerosi. Muualta kuin aalto-osoitteesta lähetetyt viestit päätyvät nykyisen pilvipalvelun aikaan turhan helposti roskapostiin, jonne ne hukkuvat, eli kannattaa käyttää aalto-osoitettaan.

      Kaikki muut kysymykset pitää lähettää yllä mainitulle kurssin Zulip-foorumille

    • Osasuoritusten voimassaolo

      Kurssin osasuoritukset ovat voimassa vain kyseisen kurssikerran ajan, eli sekä kaikki harjoitustehtävät että projekti on tehtävä saman kevään kuluessa.

      Vanhoja osasuorituksia ei hyväksytä.

      In English

      If you want to take this course in English, please choose CS-A1123 Basics in programming Y2 (despite the claim in Sisu saying it is only for a certain CHEM program). However, the material in A+ is both in Finnish and English and we use the same "course" instance in A+. In the English version of the course, all submissions have to be done in English. There exist some minor changes in ways to communicate with responsible teachers, otherwise the courses are the same.



    • Tutkimuksia kurssilla

      Kurssilla saatetaan tehdä osaa tai kaikkia opiskelijoita koskevia tutkimuksia. Näistä kerrotaan aina erikseen, ja osallistuminen on vapaaehtoista.