Ohjelmoinnin peruskurssi Y2, kurssimateriaali

1.1. Kurssin esittely

«  1. Kierros 1 (22.1.2016 kello 23:59)   ::   Etusivulle   ::   1.2. Python olio-ohjelmointi  »

1.1. Kurssin esittely

Tästä sivusta:

Pääkysymyksiä: Mihin tällä kurssilla pyritään? Miten kurssilla toimitaan?

Mitä käsitellään? Kurssin tavoitteita, osasuorituksia, toimintatapoja, arviointia ja tiedotus- ja neuvontakanavia.

Mitä sinun oletetaan tekevän? Lue teksti, ilmoittaudu Oodissa.

Suuntaa antava vaativuusarvio: Helppo.

Suuntaa antava työläysarvio:? Puolisen tuntia.

Course in English

All lectures, including this, are in Finnish. You can take this course in English too. Send email to the lecturer Esko Nuutila <esko.nuutila@aalto.fi>.

Kurssille ilmoittautuminen Oodissa

Ilmoittaudu kurssille Oodissa!

Kurssille ilmoittaudutaan Oodissa. Jos et ole vielä ilmoittautunut, tee se heti! Kurssille ilmoittautuminen on pakollista, mutta harjoitusryhmiin ei tarvi ilmoittautua. Ilmoittaudu myös Piazzaan (ks. Uutiset ja keskustelufoorumit: Piazza ja IRC)

Pythonista

Käytettävä Pythonin versio on 3

Kurssilla käytetään oletusarvoisesti Pythonin versiota 3.4 tai uudempaa. Koulun koneissa on tällä hetkellä asennettuna versio 3.4.

Älä käytä Pythonin versiota 2.

Python2 sisältää joitain harmillisia ja osittain vaikeasti havaittavia eroja python3:een.

Python-dokumentaatio ja asennustohjeet

Pythonin dokumentaatiota on koottu erilliseen dokumenttiin Python-tietoa. Samasta paikasta löytyvät myös asennusohjeet Pythonille, PyQt:lle ja Eclipselle.

Mikä Y2?

Kurssi jatkaa siitä, mihin kurssi CSE-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.

Jos olet suorittanut kurssin, jossa oli henkilökohtainen projekti (T-76.020, T-106.1240, T-106.1243, T-106.1215, tms.) voi olla että sinun ei tarvise suorittaa tätä kurssia. Voit tarkistaa nykyiset kurssikorvaavuudet tietotekniikan laitoksen sivulta. Jos epäröit, ota yhteyttä henkilökuntaan.

Tässä materiaalissa yhdistyvät lukemisto ja harjoitustehtävät. Tehtävineen ja liitteineen materiaali kattaa koko kurssisisällön. Kurssilla ei ole virallista oppikirjaa.

Kurssin tavoitteet

Hyvin laveasti sanottuna kurssin tavoitteet ovat seuraavat.

Kurssin jälkeen toivottavasti...

... osaat suunnitella tarvittaessa pienehkön ohjelman

... ja käyttää erilaisia ohjelmoinnin työvälineitä ohjelmointiprosessin tukemiseen

... pystyt halutessasi jatkamaan tietotekniikan sivuaineopiskelijana

Kurssin tavoitteena on siis, että oppisit suunnittelemaan, laatimaan ja muokkaamaan pienehköjä sovellusohjelmia kuten pelejä, kirjanpito-ohjelmia tai pieniä simulaatioitakin. Lisäksi toivomme, että huomaat, että moinen voi olla sekä hauskaa että hyödyllistä! Tarkoitus on myös tutustua erilaisiin ohjelmoinnin apuvälineisiin: versionhallintaan, testaukseen ja kääntämistyökaluihin

Tämä kurssi laajentaa ja syventää sitä, mitä opittiin Ohjelmoinnin peruskurssi Y1:llä ja avaa mahdollisuuksia osallistua taas uusille kursseille, joilla voidaan syventyä tarkemmin johonkin tiettyyn aihealueeseen, tai osallistua suurempaan ryhmäprojektiin.

Esitiedot

Kurssin esitietona on jokin kursseista CSE-A1111,T-106.1200/1203/1206/1207/1208/1210 tai T.93.211(Java) Jos aiempi ohjelmointikokemus on jollain muulla kielellä kuin Pythonilla, ota yhteyttä luenoijaan (esko.nuutila@aalto.fi).

Vaikka kurssin ensisijainen opetuskieli on suomi, niin jonkinmoinen englannin kielen taito on myös tarpeen. Moniin esimerkkeihin ja tehtäviin liittyy englanninkielisiä dokumentteja. Tämä heijastaa sitä, että ohjelmointi on kansainvälinen ala, ja monet aiheeseen liittyvät web-sivustot ja työkalut ovat englanniksi. Yritysten ohjelmointiprojekteissa myös hyvin usein käytetään englantia.

Kurssin oppimateriaali ja palautukset: A+ ja Rubyric

Kurssin oppimateriaali ja tehtävät julkaistaan A+-järjestelmässä. Yhtä lukuunottamatta harjoitustehtävät palautetaan A+:aan; UML-suunnittelutehtävä palautetaan Rubyric-järjestelmään.

Uutiset ja keskustelufoorumit: Piazza ja IRC

Kurssiin liittyvät uutiset tulevat Piazzaan, jonne rekisteröidytään osoitteessa https://piazza.com/aalto.fi/spring2016/csea1121. Piazzaan voi laitella myös kysymyksiä esimerkiksi harjoitustehtäviin liittyen.

../_images/piazza.png

Toinen keskustelufoorumi on IRC-kanava nimeltä #ope-y2, jolla käydään reaaliaikaista keskustelua kurssiin liittyen. Kanavalla ei ole virallista henkilökuntapäivystystä, mutta osa kurssihenkilökunnasta ja opiskelijoista hengailee siellä muutenkin ja vastauksia kysymyksiin on mahdollista (takeettomasti) saada erittäinkin nopeasti.

Ohjeita "irkin" käyttöön löydät irkkioppaastamme.

../_images/irssi.png

Kurssin IRC-kanava Irssi-ohjelmassa. IRC voi näyttää vanhalta, mutta on hyvä systeemi.

Sähköpostista

Ethän pyydä assistenteilta apua ohjelmointitehtäviin sähköpostitse. Valtaosa assareista on opiskelijoita, jotka ovat töissä pienellä viikkotuntimäärällä, ja heillä on omat opintonsa suoritettavina. Kysy neuvoa harjoitusryhmissä tai mainituilla sähköisillä foorumeilla. Kurssilla on paljon kanavia ohjelmointikysymysten esittämiseen, mutta sähköposti ei kuulu niihin.

Luennot

Kurssilla on yksi luento viikossa. Luentokalvot ja muu luentomateriaali julkaistaan A+:ssa.

  • Pe 8.1.2016 on avausluento, joka esittelee kurssin käytäntöjä, aikataulua, yms. Käsitellyksi tulee myös osa ensimmäisestä kierroksesta.
  • Periodin III lopulla pidetään erillinen projektia käsittelevä luento, jossa esitellään aiheita, aikataulua, vaatimuksia jne.

Kurssin luennot pidetään perjantaisin klo 12–14 Tietotekniikan talon salissa T1.

Osasuoritukset

Kurssiin kuuluu kaksi osasuoritusta:

  1. Harjoitustehtävät liittyvät opiskeltavaan sisältöön ja niissä pääsee kokeilemaan projektissa tarvittavia taitoja jo ennalta. Tarkoitus on sekä parantaa koodausrutiinia ennen projektin aloittamista ja harjoitella kurssin uusia asioita. Kurssin läpäiseminen edellyttää hyväksyttyä arvosanaa harjoitustehtävistä eli vähintään ykköstä.

  2. Henkilökohtainen ohjelmointiprojekti.

    Projektissa laaditaan itsenäisesti kokonainen pienehkö ohjelma.

Aiemmin tehdyt osasuoritukset

Vuosina 2014 ja 2015 hyväksytysti tehdyt osasuoritukset kelpaavat vuoden 2016 osasuorituksiksi. Jos siis esim. 2015 teit harjoitustehtävät hyväksytysti, ei sinun tarvitse tehdä niitä uudestaan.

Harjoitustehtävät

Kurssin harjoitustehtävät kuvataan kokonaisuudessaan tässä materiaalissa. Tehtävät jakautuvat kierroksiin ja osatehtäviin.

Lue oppimateriaali

Tehtävissä tarvittava tieto löytyy tästä oppimateriaalista. Lue kuhunkin tehtävään liittyvä materiaali ennen kuin teet tehtävän.

Harjoitusryhmät

Kurssin assistentit päivystävät harjoitusryhmissä, joista on lisää sivulla Harjoitusryhmät.

Harjoituskierrokset

Tehtävät jakautuvat ajallisesti kierroksiin 1-6.

Jokaisella kierroksella on määräaika (DL eli deadline), johon mennessä kierroksen suoritukset on palautettava. Ensimmäisen kierroksen DL 22.1.2016 kello 23:59. Seuraavien kierrosten määräajat ovat yleensä viikon välein edellisestä. Jokainen kierros, viimeistä lukuunottamatta, kestää siis suunnilleen 10 päivää ja kierrokset ovat osittain päälekkäin.

Ei kierroskohtaista minimiä

Edellisestä vuodesta poiketen tehtäväkierroksilla ei ole minimipistemäärää.

DL:t ja pisteet

Täydennä.

Alla on taulukko eri kierroksilla tarjolla olevista pisteistä ja deadlineista.

Kierros Maksimi DL
1 250 22.1.2016 kello 23:59
2 190 29.1.2016 kello 23:59
3 320 7.2.2016 kello 23:59
4 400 19.2.2016 kello 23:59

Deadline!

Ensimmäinen DL on 22.1.2016 kello 23:59 Huomaa, että jo ensimmäisen kierrokseen tehtäviin menee aikaa. Kannattaa varautua!

Ei bonusta aikaisesta palauttamisesta!

Emme valitettavasti tänä vuonna voi antaa bonusta aikaisesta palautuksesta, koska A+-järjestelmä ei sisällä tätä ominaisuutta.

Harjoitusten arvosanarajat

Pisteitä saa kunkin kierroksen tehtävistä. Lisäksi pisteitä voi saada vastaamalla palautekyselyihin sekä mahdollisista lisätehtävistä, jotka on merkitty erikseen. Opiskelijan arvosanaa laskettaessa lisätään hänen kaikkien kierrosten tehtävistä saamiinsa pisteisiin palautepisteet ja mahdollisista lisätehtävistä saadut pisteet. Tätä pistemäärää verrataan kaikkien kierrosten tehtävistä saatavien maksimipistemäärien summaan max_sum (ei siis sisällä palautepisteiden tai lisätehtävien maksimipistemääriä) ja arvosana määräytyy seuraavan taulukon mukaan:

Arvosanarajat

Arvosana Opiskelijan kokonaispisteet / max_sum
1 50%
2 60%
3 70%
4 80%
5 90%

Yksilötyötä, ei kopiointia

Harjoitustehtävien ratkaisujen kopiointi toisilta opiskelijoilta tai muualta ei ole sallittua. Samoin kiellettyä on pisteiden hankkiminen yrittämällä harhauttaa automaattista tarkastusjärjestelmää.

Kopioimisella ja muilla väärinkäytöksillä on seuraamuksia, ja opiskelijoiden kirjoittamia ohjelmia tutkitaan myös tässä mielessä.

Henkilökunta

Vastaava opettaja Esko Nuutila

../_images/esko.png

Esko vastaa kurssin suunnittelusta, oppimateriaalista, tiedotuksesta, ja luennoista.

Esko on tavattavissa luentojen yhteydessä sekä erikseen sähköpostitse sopimalla Tietotekniikan talon huoneessa B218.

Sähköposti: <esko.nuutila@aalto.fi>

Assistentit

Assarit auttavat opiskelijoita harjoitusryhmissä, ohjaavat projekteja sekä arvioivat joitain harjoitustehtäviä.

Yhteenvetoa

  • Kurssin pakolliset osasuoritukset ovat: harjoitustehtävät ja projektin kaikki vaiheet
  • Kurssimateriaaliin perehtyminen kannattaa, sillä tarvitset tietoja sekä materiaaliin upotettujen harjoitusten tekemiseen, että kurssiprojektiin. Kurssin kokonaisarvosana lasketaan painotettuna keskiarvona harjoitusten ja projektin arvosanoista.
    • 30% kurssiarvosanasta tulee harjoitustehtävien perusteella.
    • 70% arvosanasta tulee projektityöstä. Projektin pakollisia osia ovat suunnitelma, suunnitelmademo, versionhallinnan käyttö, checkpointit, toimiva projekti dokumentteineen, sekä loppudemo.
  • Harjoitusryhmät, keskustelufoorumit, luennot ja viikkokoosteet tukevat tehtävien tekemistä.
  • Ensimmäinen deadline on pian!

Palaute

«  1. Kierros 1 (22.1.2016 kello 23:59)   ::   Etusivulle   ::   1.2. Python olio-ohjelmointi  »