Topic outline

  • Y2 kevät 2023

    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 noin 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 (eli samaa A+-kurssia) ja keskustelufoorumia molemmilla kurssiversioilla.

    • Ilmoittautuminen, suorittaminen ja arvosana

      Kurssille pitää ilmoittautua Sisussa. Kurssilla käytetään A+-järjestelmää (sivu aukeaa 11.1. klo 14 viimeistään) materiaalin jakamiseen ja harjoitustehtävien palauttamiseen sekä Aallon Git-versionhallintajärjestelmää projektityön seuraamiseen ja palauttamiseen. Apua harjoituksiin saa Zulip-foorumilta.

      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ä,  kohdasta Kurssin esittely. Harjoituksien seitsemäs kierros on lisätehtävä, jonka voi halutessaan tehdä ja ansaista lisää pisteitä. Se toimii myös rästikierroksena. Mikään harjoitustehtäväkierros ei ole pakollinen, mutta kaikissa niissä opitaan taitoja, joita pitää osoittaa hallitsevansa kurssin projektissa.
      • 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 annettuna aikana 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! Katso lisää esimerkkejä "Yhteistyö ja projaaminen" -sivulta. Kurssilla käytetään automaattista harjoitustehtävien korjausta ja automaattista kopioinnin havaitsemista. 

      Kummankin osan tarkemmat ohjeet 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, 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 ja harjoitukset

      Kurssi on täysin läsnä: sekä luennot että harjoitukset ovat Otaniemessä. Harjoituksiin saa kuitenkin apua keskustelufoorumilla etänä ja viime vuoden luentovideot löytyvät MyCosta. 

      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 siis parhaiten luennoilta, jotka ovat osa kurssin oppimateriaalia. Harjoitusten ja projektin tekeminen edellyttää myös omaa tiedonhakua.

      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. 


    • Alustava aikataulu kaikesta kurssilla



      Alustava aikataulu kaikesta keväälle 2023 - määräajat ovat A+ssa
      viikko luento tehtävä muuta
      2 to 12.1. 10-12 johdanto, tietokone 
      Aloita tehtävien tekeminen heti!
      3 to 19.1. 10-12 arkkitehtuuri, oliot ja poikkeukset
      pe 20.1. klo 14:00
      kierros 1: warmup
      4 to 26.1. 10-12 mallit, UML, suoritusjärjestys
      pe 27.1. klo 14:00
      kierros 2: oliot

      5 to 2.2. 10-12 testaus
      pe 3.2. klo 14:00
      kierros 3: versionhallinta GIT + UML

      pe 3.2. klo 14:00
      oman projektiaiheen ehdottaminen (tarjottujen aiheiden ulkopuoliset aiheet)
      6 to 9.2. 10-12 tiedon talletus ohjelman ulkopuolelle
      pe 10.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 16.2. 10-12 tapahtumat ja käyttöliittymä

      pe 17.2. klo 14:00
      kierros 4: testaus + rekursio
      8 pe 24.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 Otaniemessä

      pe 3.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 17.3. klo 14:00
      kierros 6: käyttöliittymä
      12 pe 24.3 klo 14:00
      projekti: checkpoint1

      pe 24.3. klo 14:00 (vapaaehtoinen lisätehtäväkierros)
      Projektin välipalautus: jotain koodia GITissä + viesti assarille, ohjeet A+:ssa
      13
      14
      15 pe 14.4. klo 14:00
      projekti: checkpoint2
      Projektin välipalautus: jokin testi GITitissä + viesti assarille, ohjeet A+:ssa
      16
      17
      18

      19 pe 12.5. klo 14:00
      projekti: koodien ja dokumentaation palautus GITiin
      Projekti palautetaan GITiin. Tämän ajanhetken jälkeisiä muutoksia ei huomioida arvostelussa.
      20 viikko 20:
      projektin loppudemo assistentille
      Projektisuunnitelman esittely omalle assistentille, aikavaraus erikseen kerrotulla tavalla (assarikohtainen)
      21 (ei mitään luentoa, vaikka Sisu ehkä niin väittää) (Projektitöiden arvostelu)


    • 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. Apua voi kysyä myös keskustelufoorumilla.

      Harjoitukset alkavat 16.1.2023 ja päättyvät xx.3. Harjoituksia ei ole viikolla 8 (20-24.2.). Alla sv-merkityissä ryhmissä voi saada neuvoja myös ruotsiksi.

      Alustava aikataulu harjoituksille
      päivä ja aikapaikkaassistentit
      ma 10-12 OK1 Y342a
      ma 14-16 OK1 Y342a
      ma 16-18 OK1 Y342a
      ti 10-12 MaariB
      ke 14-16 MaariB
      ke 16-18 Maari B
      to 8-10 T-talo T7
      to 14-16 OK1 Y342a
      to 16-18 OK1 Y342a





    • 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. Sähköpostitse ei ole saatavissa apua ohjelmointiin.

      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). Only either one can be taken as they are the same course. 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.