Topic outline

  • Y2 kevät 2024

    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. Jos haluat tehdä kurssin englanniksi, ole hyvä ja valitse siis CS-A1123 Sisussa ja siirry englanin kielisen kurssin MyCo-tilaan.

    • Ilmoittautuminen, suorittaminen ja arvosana

      Kurssille pitää ilmoittautua Sisussa. Kurssilla käytetään A+-järjestelmää (sivu aukeaa 11.1.2024 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 aikatauluineen on 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! Kurssin tehtävien tekemiseen ei saa käyttää tekoälyä, sillä peruskurssilla se estää olennaisten asioiden oppimisen itse. Katso lisää esimerkkejä "Yhteistyö ja projaaminen" -sivulta. Kurssilla käytetään automaattista harjoitustehtävien korjausta ja automaattista kopioinnin havaitsemista ihmissilmien lisäksi. 

      Kummankin osasuorituksen tarkemmat ohjeet tulevat A+-järjestelmään. Kurssin loppuarvosana on painotettu keskiarvo yllä olevista: round(0.3*harjoitusarvosana + 0.7*projektiarvosana), joissa molempien osien tulee olla hyväksytysti suoritettu. (Huom. harjoitusten ja projektin painoarvot muutettu keväällä 2024)

      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 näkyvän 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. 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 aiempien vuosien luentovideot löytyvät MyCosta. 

      Luennoilla käydään ohjelmoinnin lisäksi läpi ohjelmien toimintaympäristöä (tietokonetta ja tietoverkon tarjoamia ohjelmontialustoja) sekä ohjelmistoprojektin 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 2024 - varsinaiset määräajat ovat A+ssa
      viikko luento tehtävä muuta
      2 to 11.1. 10-12 johdanto, tietokone 
      Aloita harjoitustehtävien tekeminen heti!
      3 to 18.1. 10-12 arkkitehtuuri, oliot ja poikkeukset
      pe 19.1. klo 14:00
      kierros 1: warmup
      4 to 25.1. 10-12 mallit, UML, suoritusjärjestys
      pe 26.1. klo 14:00
      kierros 2: oliot

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

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

      pe 16.2. klo 14:00
      kierros 4: testaus + rekursio
      8 pe 23.2. klo 14:00
      projekti: suunnitelma (Git)
      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 1.3. klo 14:00
      kierros 5: tiedostot
      Projektisuunnitelman esittely omalle assistentille, aikavaraus erikseen kerrotulla tavalla (assarikohtainen)
      (viimeistään nyt oma Git-repositorio toimii)
      10 Gitiin projektin viikkoraportti + seuraavan viikon suunnitelma Huom! kierroksen 6 tehtäville on varattu enemmän aikaa tarkoituksella, eli aloita niiden tekeminen jo tällä viikolla!

      11 pe 15.3. klo 14:00
      kierros 6: käyttöliittymä

      Gitiin projektin viikkoraportti + seuraavan viikon suunnitelma
      12 pe 22.3 klo 14:00
      projekti: checkpoint1

      pe 22.3. klo 14:00 vapaaehtoinen lisätehtäväkierros
      Projektin välipalautus: jotain koodia GITissä + viesti assarille, ohjeet A+:ssa
      13 Gitiin projektin viikkoraportti + seuraavan viikon suunnitelma
      14 Gitiin projektin viikkoraportti + seuraavan viikon suunnitelma
      15 pe 12.4. klo 14:00
      projekti: checkpoint2
      Projektin välipalautus: jokin testi GITitissä + viesti assarille, ohjeet A+:ssa
      16 Gitiin projektin viikkoraportti + seuraavan viikon suunnitelma
      17 Gitiin projektin viikkoraportti + seuraavan viikon suunnitelma
      18
      Gitiin projektin viikkoraportti + seuraavan viikon suunnitelma
      19 pe 10.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, dl pe 17.5.
      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 15.1.2024 ja päättyvät 22.3. Harjoituksia ei ole viikolla 8 (19-23.2.). Alla sv-merkityissä ryhmissä voi saada neuvoja myös ruotsiksi.

      Alustava aikataulu harjoituksille - tarkista paikat Sisusta, vaihtelee eri viikkoina
      päivä ja aika paikka assistentit
      ma 10-12  OK1 Y342a Joel, Tetiana
      ma 14-16 (sv) OK1 Y342a Andrei, Tatu
      ti 10-12  MaariB Jenni, Muhammad, Parham
      ke 14-16 (sv)  MaariB/T7 (tarkista Sisusta paikka!) Alex, Andrei, Christopher, Kiia, Parham, Tetiana
      ke 16-18  T7/Maari B (tarkista Sisusta paikka!) Alireza, Elias, Shubham, Tuomas
      to 8-10  T-talo T7 Jenni, Joel, Kiia
      to 14-16  OK1 Y342a Alex, Alireza, Elias, Mohammad
      to 16-18  T7/OK1 Y342a (tarkista Sisusta paikka)! Christopher, Shubha, Tatu, Tuomas





    • 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.