Yleistä

Tämä materiaali on tarkoitettu Helsingin yliopiston syksyn 2017 kursseille ohjelmoinnin perusteet (5 op) ja ohjelmoinnin jatkokurssi (5 op). Materiaalin osat 1-7 liittyvät periodissa I järjestettävään kurssiin ohjelmoinnin perusteet ja osat 8-14 periodissa II järjestettävään kurssiin ohjelmoinnin jatkokurssi.

Materiaali on tarkoitettu kaikille ohjelmoinnin oppimisesta kiinnostuneille. Kurssille saa osallistua kuka tahansa Helsingin yliopiston opiskelija. Aiempaa ohjelmointikokemusta ei oleteta tai vaadita. Kurssille osallistumista varten tarvitset tietokoneen sekä mahdollisuuden kurssilla käytettävien ohjelmistojen asentamiseen. Helsingin yliopiston opiskelijat voivat tehdä kurssin tehtäviä Kumpulan kampuksella sijaitsevilla koneilla, jolloin omaa tietokonetta ei tarvita.

Kurssien oletettu työkuorma on noin 8-20 tuntia yhtä osaa kohden. Varaa kurssin tekemiseen aikaa.

Osaamistavoitteet

Kursseilla opitaan perustaidot ohjelmoinnista Java-kielellä. Tutuksi tulevat muunmuassa syötteen lukeminen, tulostaminen, ehtolauseet, toistolauseet, listojen käsittely, oliot, ymym.

Ohjelmoinnin perusteet

Osa (Viikko) Osaamistavoitteet
1 Tuntee ohjelmoinnin peruskäsitteistä muuttujat, ehtolauseet, toistolauseet. Ymmärtää ohjelman suoritusjärjestyksen. Osaa kirjoittaa ohjelmia, jotka lukevat käyttäjältä syötettä ja tekevät laskentaa syötteen perusteella.
2 Ymmärtää vuokaavioiden idean ja osaa piirtää vuokaavioita annetusta ohjelmasta. Hahmottaa ja tunnistaa ohjelman käyttämien muuttujien tilan ohjelman eri suoritusvaiheessa. Osaa soveltaa toistolausetta ohjelmointiongelmissa. Tuntee käsitteet metodi, parametri ja kutsupino. Osaa luoda ja käyttää parametrillisia metodeja.
3 Tuntee loogiset operaatiot ja ja tai. Osaa luoda metodeja, jotka palauttavat arvon. Ymmärtää miten ohjelman suoritus etenee metodikutsun yhteydessä. Ymmärtää muuttujien näkyvyyden ja olemassaolon. Tuntee käsitteen merkkijono ja osaa käsitellä merkkijonoja (erit. vertailu). Tuntee käsitteet olio, konstruktori ja olion metodit. Luo ainakin yhden oman luokan. Luo olioita tekemistään luokista. Ymmärtää static-määreellä ja ilman static-määrettä olevien metodien eron.
4 Tietää olio-ohjelmoinnin perusperiaatteet ja luo luokkia, jotka kuvaavat annettua ongelma-aluetta. Tunnistaa käsitteet alkeis- ja viittaustyyppinen muuttuja. Osaa määritellä olioita, jotka sisältävät olioita. Osaa käyttää olioita metodin parametrina sekä luoda metodeja, jotka palauttavat olioita. Tuntee listarakenteen ja osaa lisätä ja poistaa listalla olevia alkioita. Tuntee käsitteen indeksi ja osaa käydä listan läpi while-toistolauseen avulla.
5 Ymmärtää alkeis- ja viittaustyyppisten muuttujien erot. Osaa käsitellä olioita listarakenteessa sekä käyttää listaa oliomuuttujana. Ymmärtää automaattisen testaamisen periaatteet ja osaa luoda yksinkertaisen luokan toimintaa testaavia automaattisia testejä.
6 Osaa käsitellä listassa olevaa tietoa virtana (stream-metodi) sekä tuntee muutamia virran perusoperaatioita (filter, map, collect). Tuntee käsitteen tiedosto. Osaa lukea tietoa erilaisista tietolähteistä (mm. tiedosto, verkko). Ymmärtää hajautustaulun periatteen. Osaa kirjoittaa hajautustaulua käyttäviä ohjelmia. Tutustuu sovelluksen pilkkomisen useampaan vastuualueeseen (tekstikäyttöliittymä, sovelluslogiikka).
7 Osaa pilkkoa ohjelman useampaan osaan, missä yhden vastuulla on (tekstimuotoinen) käyttöliittymä, toinen vastuulla sovelluslogiikka. Ryhmittelee arvoja hajautustaulun avulla ja osaa käyttää listaa hajautustaulun arvona. Osaa hyödyntää Javan valmiita kirjastoja satunnaisten lukujen luomiseen. Osaa luoda yksinkertaisia simulaatioita.

Näitä voi tarkastella myös prosessin kannalta. Eräs koko kurssin kattava osaamistavoitehahmotelma löytyy osoitteesta https://docs.google.com/spreadsheets/d/1BFDSh1voHsllzXWPba_JnE9U9uYMOSr-HCrIRDNGMkc/edit#gid=1747703721. Dokumenttiin on toistaiseksi myös kommentointioikeudet.

Ohjelmoinnin jatkokurssi

Ohjelmoinnin jatkokurssin sisältö alkaa tämän materiaalin kahdeksannesta osasta.

Osa (Viikko) Osaamistavoitteet
8 Tuntee käsitteen object ja ymmärtää miksi jokaisella oliolla on metodi toString ja hashCode. Tietää joitakin käyttökohteita em. metodeille. Tuntee käsitteen rajapinta ja osaa luoda luokan, joka toteuttaa annetun rajapinnan. Osaa määritellä rajapinnan ja tietää, että eri luokista luodut oliot voivat toteuttaa saman rajapinnan. Ymmärtää käsitteen pakkaus ja osaa hyödyntää pakkauksia ohjelman rakenteen pilkkomisessa.
9 Tuntee luokkaakaavioiden merkintätavan ja luo luokkia luokkakaavioiden perusteella. Tuntee Javan erityyppiset poikkeukset ja luo ohjelmia, jotka varautuvat poikkeuksiin. Tuntee menetelmiä listojen järjestämiseen ja järjestetyistä listoista hakemiseen. Tuntee rajapinnan Comparable ja hyödyntää sitä olioiden järjestämisessä. Tuntee käsitteen perintähierarkia ja kertaa arvojen ryhmittelyä hajautustaulun avulla.
10 Tutustuu perintään ja syventyy Javan luokkarakenteeseen. Tuntee Javan perintähierarkian ja osaa luoda luokkia, jotka perivät toisten luokkien muuttujia ja metodeja. Ymmärtää perinnän hyödyt. Osaa esittää tapauksia, joihin perintä ei sovi. Tuntee abstraktin luokan käsitteen. Tutustuu säännöllisiin lausekkeisiin, lueteltuihin tyyppeihin sekä iteraattoriin.
11 Tutustuu graafisten käyttöliittymien ohjelmointiin. Tuntee muutamia käyttöliittymäkomponentteja, käyttöliittymäkomponenttien asettelun mekanismeja, sekä osaa käsitellä käyttöliittymän tapahtumia. Osaa piirtää graafisen käyttöliittymän avulla.
12 Tuntee erilaisia kaavioita (viivakaavio, pylväskaavio) ja osaa tehdä käyttöliittymiä, jotka sisältävät useamman näkymän (esimerkiksi kirjautumisnäkymä, tiedon listaukseen käytettävä näkymä, tiedon muokkaukseen käytettävä näkymä).
13 Osaa näyttää kuvia sekä soittaa äänitiedostoja. Luo suuremman ohjelman esimerkkiä noudattaen. Osaa tehdä graafista käyttöliittymää käyttävästä ohjelmasta paketin, jonka voi jakaa muille.
14 Osaa käyttää yksi- ja kaksiulotteisia taulukoita. Tuntee joitakin järjestys- ja hakualgoritmeja. Tietää miten paljon käytetyt ArrayList ja HashMap toimivat. Tietää aikaan perustuvan tavan tietorakenteiden toiminnallisuuden vertailuun. Tuntee testivetoisen ohjelmistokehityksen perusajatuksen. Tietää ohjelmoinnin jatkokurssin jälkeen otettavia kursseja.

Työskentelytavat ja aikataulu

Merkittävä osa kurssin työskenteltystä on ohjelmointia. Kurssiin viikoittaiset ohjelmointitehtäväsarjat, jotka tulee olla tehtynä maanantaisin 23:59 mennessä. Ensimmäisen osan tehtävien viimeinen palautuspäivämäärä on 11.9., toisen osan viimeinen palautuspäivämäärä on 18.9. jne. Ohjelmoinnin jatkokurssin ensimmäisen (eli materiaalin kahdeksannen) osan tehtävien viimeinen palautuspäivämäärä on 6.11. klo 23:59 mennessä.

Kurssilla on viikoittaiset luennot tiistaisin klo 10-12 Kumpulan Exactumissa salissa A111 (ei luentoja 14.11. ja 12.12.). Luentojen lisäksi kurssilla järjestetään kurssitehtävien tekemiseen viikoittain ohjausta Exactum-rakennuksen salissa BK107. Ohjausta järjestetään 5.9.-20.10. (Ohjelmoinnin perusteet) ja 31.10.-15.12. (Ohjelmoinnin jatkokurssi). Ohjaustilaisuudet ovat kaikille avoimia.

Sähköpostitse tapahtuvaa ohjausta ei kurssilla ole.

Ohjaustilaisuuksien aikataulu (sali BK107)

Päivä Kellonajat
Maanantai 12-18
Tiistai 12-16
Torstai 14-16
Perjantai 10-16

Kumpulan Exactumin mikroluokissa (BK107, B221) saa työskennellä myös ohjausaikojen ulkopuolella, jos siellä ei ole tuolloin muuta toimintaa.

Tukiväylät

Kurssien ensisijainen tukiväylä on Kumpulan kampuksella Exactumissa tapahtuva ohjaus. Ohjaustilaisuudet ovat avoimia tilaisuuksia, johon saa tulla vapaasti kysymään apua tehtäviin tai juttelemaan tehtävistä.

Verkon yli nopein tapa avun kysymiseen on kurssin keskustelukanava #mooc.fi, johon pääsee helpointen kanavan Matrix-huoneen kautta: https://riot.im/app/#/room/#mooc.fi:matrix.org. Jos et pidä modernista teknologiasta, voit myös liityä huoneeseen Ircnetin kautta seuraamalla näitä ohjeita: http://mooc.fi/courses/general/ohjelmointi/tukikanavat/irc/ohjeet/.

Huomaathan, että kanavan osallistujat ovat kanssaopiskelijoita ja kurssin aiemmin tehneitä opiskelijoita. Toiminta perustuu vapaaehtoisuuteen.

Kurssimateriaalin lukeminen

Lue kurssimateriaalia siten, että teet samalla itse kaikki lukemasi esimerkit. Esimerkkeihin kannattaa tehdä pieniä muutoksia ja tarkkailla, miten muutokset vaikuttavat ohjelman toimintaan. Äkkiseltään voisi luulla, että esimerkkien tekeminen ja muokkaaminen hidastaa opiskelua. Tämä ei kuitenkaan pidä paikkansa.

Proseduraalisten taitojen kuten ohjelmoinnin oppiminen perustuu oleellisesti aktiiviseen tekemiseen ja rutiinin kasvattamiseen. Esimerkkien ja erityisesti erilaisten omien kokeilujen tekeminen on parhaita tapoja "sisäistää" kurssin aihepiiri.

Pyri tekemään tai ainakin yrittämään tehtäviä sitä mukaa kuin luet kurssimateriaalia. Jos et osaa heti tehdä jotain tehtävää, älä masennu, vaan kysy neuvoa tehtävän tekemiseen. Haastavimpia tehtäviä kannattaa tehdä useampaan otteeseen siten, että tehtävien uudelleen tekemisen välillä pitää muutaman tunnin tai päivän tauon.

Kurssimateriaalia ei ole tarkoitettu vain kertaalleen luettavaksi. Joudut varmasti myöhemmin palaamaan jo aiemmin lukemiisi kohtiin tai aiemmin tekemiisi tehtäviin. Kurssimateriaali teksti ei myöskään sisällä kaikkea oleellista ohjelmointiin liittyvää. Itse asiassa ei ole olemassa kirjaa josta löytyisi kaikki oleellinen. Joudut joka tapauksessa ohjelmoijan urallasi etsimään tietoa myös omatoimisesti. Kurssin harjoitukset sisältävät jo jonkun verran ohjeita, mistä suunnista ja miten hyödyllistä tietoa on mahdollista löytää.

Tehtävätyypit ja tehtävien tekeminen

Kurssin tehtävät on upotettu osaksi kurssimateriaalia. Kurssitehtävät sisältävät ohjelmointitehtäviä (20-30 osaa kohden), monivalintatehtäviä, selitystehtäviä (muutamia osaa kohden), selitystehtävien vertaisarviointia (muutamia osaa kohden), tehtävien keksimistehtäviä sekä kaavioiden piirtotehtäviä.

Ohjelmointitehtävät palautetaan kurssilla käytössä olevan Test My Code -ympäristön kautta. Monivalintatehtävät, selitystehtävät ja selitystehtäviin liittyvät vertaisarvioinnit palautetaan suoraan materiaalin kautta. Piirrustustehtävät palautetaan luennon lopuksi tai ohjaustilaisuuksissa.

Yhteistyö

Hyvä yhteistyö keskittyy jokaisen osapuolen oppimiseen ja parantaa oppimistuloksia. Yhteistyö on kurssin tehtäviä tehdessä sallittua ja suositeltavaa. Jos teet tehtäviä yhdessä muiden kanssa, sinun tulee kuitenkin tehdä ja palauttaa omat ratkaisusi itse.

Hyvä ohjesääntö yhteistyöhön on ns. Gilligan's Island -sääntö:

The Gilligan's Island Rule: You are free to meet with fellow students(s) and discuss an assignment with them. Writing on a board or shared piece of paper during the meeting is acceptable; however, you should not take any written (electronic or otherwise) record away from the meeting. Everything that you derive from the collaboration should be in your head. After the meeting, engage in at least a half-hour of mind-numbing activity (like watching an episode of Gilligan's Island), before starting to work on the assignment. This will assure that you are able to reconstruct what you learned from the meeting by yourself.

Opintovilpistä

Kurssilla seurataan Helsingin yliopiston opintokäytäntöjä. Plagiarismi ja opintovilppi, eli esimerkiksi netissä olevien tai kaverilta saatujen vastausten kopiointi ja niiden palauttaminen omana työnä on kurssilla kiellettyä.

Todettu opintovilppi johtaa kurssisuorituksen hylkäämiseen ja toistuva opintovilppi voi johtaa opinto-oikeuden määräaikaiseen menettämiseen. Lue lisää osoitteesta http://blogs.helsinki.fi/alakopsaa/opiskelijalle/.

Arvostelu

Kurssien arvostelu perustuu kurssitehtäviin ja koneella tehtäviin kokeisiin. Kokonaisarvostelussa tehtävien painoarvo on 70% ja kokeiden painoarvo on 30%. Toisessa (kurssin lopulla) järjestettävässä kokeessa on käytössä koeleikkuri, eli kurssin läpäisemiseksi kokeesta tulee saada vähintään puolet pisteistä.

Tehtäväpisteet:

Osa 8 9 10 11 12 13 14 yht.
Maksimipisteet 10 10 10 10 10 10 10 70
Viimeinen palautuspäivämäärä 6.11. 13.11. 20.11. 27.11. 4.12. 11.12. 18.12.

 

Kokeet järjestetään toisen viikon jälkeen sekä kurssin lopussa. Ensimmäisestä kokeesta voi saada 10 pistettä ja toisesta kokeesta 20 pistettä.

Arvosanarajat:

Kurssipisteet Arvosana
91 tai yli 5/5
86-90 4/5
81-85 3/5
76-80 2/5
70-75 1/5
< 70 hylätty

 

Täydet tehtäväpisteet saa kustakin osasta tekemällä 90% kyseisen osan tehtävistä. Huomaathan, että kaikki tehtävät eivät ole saman arvoisia ja joistakin tehtävistä voi saada enemmän pisteitä kuin toisista.

Huom! Edellä kuvattu arvostelu olettaa, että hyväksyt analytiikkadatan keräämisen kurssin tehtävistä ja mahdollisesti koneella tehtävistä koetehtävistä. Analytiikkadata sisältää ajoittain kerättäviä aikaleimattuja kopioita työstämästäsi tehtävästä sekä tietoa kurssimateriaalin käytöstä. Analytiikkadataa ei kerätä henkilökohtaisista projekteistasi tai muualta koneeltasi.

Luennoille osallistumisesta saa luentokertaa kohden puolikkaan lisäpisteen kurssia kohden. Lisäpisteitä luennolla läsnäolosta voi saada yhteensä korkeintaan 2.

Sairaspoissaolot ja väliin jääneet tehtävät

Sairastapauksista johtuen tekemättä jääneet tehtävät hyväksiluetaan siten, että pisteitä annetaan muina viikkoina tehtyjen tehtävien keskiarvon perusteella.

Ohjelmoinnin jatkokurssin loppupuolella julkaistaan lisäksi kertaustehtäväsarja, mikä lasketaan "bonustehtäväviikoksi". Kertaustehtävillä voi paikata väliin jääneitä tehtäviä. Kertaustehtäväsarja löytyy kohdasta Osa X.

Kurssin kokeet

Kurssilla on kaksi koetta. Ensimmäinen koe tehdään kotona kurssin toisen osan jälkeen ja toinen kurssin lopussa.

Ensimmäinen koe

Ensimmäinen koe käsittelee kurssin osien 8 ja 9 sisältöä (sekä luonnollisesti myös osien 1-7 sisältöä). Kokeen voi tehdä missä tahansa haluamassaan sijainnissa. Koe on yksilösuoritus, eli sen tekemiseen ei saa pyytää apua, eikä toisia saa auttaa sen tekemisessä.

Kokeen tekemiseen on sen aloitushetkestä aikaa 48 tuntia. Koe tulee aloittaa 21.11. klo 23:59 mennessä.

Kokeen aloittaminen tapahtuu asettamalla NetBeansissa TMC:n osoitteeksi (server address) https://tmc.mooc.fi/org/hy/courses/268 ja valitsemalla kurssilistasta kurssi hy-ohja-s17-konekoe1. Tämän jälkeen TMC lataa tehtäväpohjan "KonekoeOhjaOhjeet".

Tämän jälkeen tehtäväpohjassa olevaa koodia tulee muokata muotoon, missä tehtävä tulostaa merkkijonon "aloita". Kun tehtävän palauttaa ja se läpäisee palvelimella olevat testit (testit tarkastavat, että tulostus on "aloita"), TMC tarjoaa ladattavaksi konekokeen tehtäviä. Samalla konekokeen aika alkaa. Konekokeen tehtävänannot löytyvät TMCn ladattavaksi tarjoamista tehtäväpohjista.

Muistathan palauttaa tehtävät kun saat ne valmiiksi. tehtävät niitä tehdessäsi sekä tehtävien tekemisen

Toinen koe

Kurssin toinen koe järjestetään koeviikon aikana Kumpulan kampuksella, missä koe tehdään mikroluokissa. Kumpulan kampuksella järjestettävä koe kestää kaksi ja puoli tuntia, ja sen voi tehdä joko omalla koneella tai Kumpulan kampuksen koneella. Koetilanteessa valvojat osaavat neuvoa Kumpulan kampuksen koneisiin liittyvissä pulmissa -- tukea oman koneen käyttöön koetilanteessa ei ole.

Kokeisiin ilmoittaudutaan sähköisesti. Koeaikoja on ma 18.12, ke 20.12 ja to 21.12. Lisää aikoja julkaistaan aikojen täyttyessä. Ilmoittautuminen kokeeseen tapahtuu osoitteessa https://koeilmo.testmycode.io/.

Kokeet, joihin mahtuu 24 ihmistä, järjestetään salissa B221. Kokeet, joihin mahtuu 30 ihmistä, järjestetään salissa BK107.

Huom! Otathan yhteyttä ennalta osoitteeseen arto.hellas@cs.helsinki.fi jos sinulla on tarve pidemmälle koeajalle (esim. lukihäiriö).

Huom! Jos et hyväksynyt analytiikkadatan keräämistä, kurssin koe järjestetään Kumpulassa torstaina 21.12. klo 9:00 myöhemmin ilmoitettavassa salissa. Tällöin kurssikoe on "perinteinen" paperimuotoinen tentti -- vanhoja tenttejä löytyy harjoittelua varten mm. Googlen avulla.

Tunnukset ja työvälineet

Käyttäjätunnuksen luominen

Kurssilla tarvitaan käyttäjätunnus Test My Code (TMC) -järjestelmään, jota käytetään tehtävien automaattiseen arviointiin. Käyttäjätunnuksella voit myös kirjautua tähän materiaaliin, jolloin pääset vastaamaan materiaalissa oleviin kyselyihin.

Huom! Jos olet Helsingin yliopiston opiskelija, aseta käyttäjätunnukseksesi opiskelijanumerosi. Näin opintopisteiden liittäminen kurssisuoritukseen helpottuu merkittävästi. Jos taas et ole Helsingin yliopiston opiskelija, keksi itsellesi sopiva käyttäjätunnus. Kun jatkossa kysymme TMC-tunnustasi, tarkoitamme sillä tätä käyttäjätunnusta.

Käyttäjätunnuksen luominen onnistuu sivulla https://tmc.mooc.fi/user/new.

Kun olet luonut käyttäjätunnuksen, voit kirjautua tähän materiaaliin materiaalin oikeassa ylälaidassa olevan "Kirjaudu sisään"-napin kautta.

Ohjelmointiympäristön asentaminen

Kurssin ohjelmointiympäristönä käytetään NetBeans-nimistä ohjelmointiympäristöä, johon lisätään TMC-niminen liitännäinen. Nämä työvälineet löytyvät Kumpulan kampuksen Exactumin mikroluokista B221 ja BK107 asennettuna nimellä "TMCBeans".

Jos teet kurssia kotoa, tulee sinun asentaa koneellesi sekä tuki Java-ohjelmien kehittämiselle, että ohjelmien kehittämiseen käytettävä NetBeans with TMC-ympäristö.

  • Javan asentaminen (* linux, kts. alla!): lataa uusin Javan kehitysympäristö (Java SE Development Kit 8u112) osoitteesta http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html. Lataamasi versio riippuu käytössäsi olevasta käyttöjärjestelmästä, esimerkiksi Macintosh-käyttäjät lataavat tiedoston jdk-8u112-macosx-x64.dmg ja 64-bittisen Windows-käyttöjärjestelmän käyttäjät lataavat tiedoston jdk-8u112-windows-x64.exe. Kun olet ladannut tiedoston, asenna se koneellesi.
  • NetBeans with TMC:n asentaminen: Mene osoitteeseen http://update.testmycode.net/installers/tmc-netbeans_org_mooc/. Osoitteessa on listattuna eri asennusohjelmat eri käyttöjärjestelmille -- valitse listalla olevista sopivin ja lataa se. Esimerkiksi Windows-käyttäjät lataavat tiedoston http://update.testmycode.net/installers/tmc-netbeans_org_mooc/tmc-netbeans_org_mooc_tmcbeans-windows.exe ja Linuxilla http://update.testmycode.net/installers/tmc-netbeans_org_mooc/tmc-netbeans_org_mooc_tmcbeans-windows.sh jne. Kun tiedoston lataaminen on valmis, asenna sovellus koneellesi.

(*) Linux-koneilla OpenJDK:n asentaminen on todennäköisesti helpompaa kuin yllämainitun Oraclen Java-version. OpenJDK:n asennus tapahtuu Ubuntussa komentoriviltä seuraavalla komennolla:

sudo apt-get install openjdk-8-jdk

Asenna tämän jälkeen vielä OpenJFX, jota käytetään käyttöliittymien tekemiseen ja käsittelyyn. Tämän asentaminen onnistuu Ubuntussa (komentoriviltä) komennolla:

sudo apt-get install openjfx

Joissain Linux-koneissa tulee lisäksi NetBeans with TMC:n asennuksen yhteydessä asettaa ensiksi ladatulle asennuspaketille suoritusoikeudet. Tämä tapahtuu klikkaamalla asennuspakettia oikealla hiirennapilla ja valitsemalla Properties. Valitse tämän jälkeen Permissions, ja aseta Allow executing file as a program -ruutuun ruksi. Ohjelman asennuksen pitäisi tämän jälkeen käynnistyä kun tuplaklikkaat tiedostoa ja valitset Run.

Kun olet saanut kurssin työvälineet asennettua, seuraava askel on kurssin valinta ohjelmointiympäristössä.

Oikean kurssin valinta ohjelmointiympäristössä

Kurssimateriaalia käytetään kahdella kurssilla.

  • Helsingin yliopiston syksyn 2017 kurssi Ohjelmoinnin perusteet (kurssi https://courses.helsinki.fi/fi/TKT10002/119284736). Jos teet kurssia Helsingin yliopistolla, valitse TMC:n asetuksista palvelimen osoitteeksi (server address) https://tmc.mooc.fi/org/hy/courses/243. Kurssin nimi on tällöin hy-ohpe-s17.
  • Helsingin yliopiston syksyn 2017 kurssi Ohjelmoinnin jatkokurssi (kurssi https://courses.helsinki.fi/fi/TKT10003/119284733). Jos teet kurssia Helsingin yliopistolla, valitse TMC:n asetuksista palvelimen osoitteeksi https://tmc.mooc.fi/org/hy/courses/264. Kurssin nimi on tällöin hy-ohja-s17.

Ylläolevat asetukset saa asetettua NetBeans with TMC:n valikosta TMC -> Settings. TMC:hen asetettava käyttäjätunnus on aiemmin luomasi TMC-tunnus, ja salasana on luomallesi tunnuksellesi asettamasi salasana.

Analytiikkadatan keräämisestä ja kurssilla tehtävästä tutkimuksesta

Analytiikkadatan kerääminen ja arvostelu

Kurssin aikana tehdyistä tehtävistä kerätään tietoa. Kerätty tieto sisältää materiaalissa olevia kyselyitä, ohjelmointitehtävien vastauksia, sekä kurssimateriaalin käyttöä. Jos et hyväksy tiedon keräämistä, kurssin pisteytyksessä ei voida ottaa näitä suorituksia huomioon. Tallennettu tieto sisältää henkilökohtaisen tunnisteen, jonka perusteella ei voida suoraan päätellä henkilöllisyyttäsi. Tieto ei esimerkiksi siis sisällä nimeäsi tai sähköpostiosoitettasi.

Varmista että TMC:n asetuksissa (Valikko TMC -> Settings) kohdassa "Send snapshots of your progress for study" on ruksi. MOOC-suorituksia tai Helsingin yliopiston avoimen yliopiston suorituksia ei arvostella ilman tätä. Jos olet opiskelijana Helsingin yliopistolla ja et halua että työstämistäsi tehtävistä kerätään ajoittaista dataa kurssiarvostelua varten, voit suorittaa kurssin Kumpulassa järjestettävällä erilliskokeella. Analytiikkadataa kerätään vain kurssiin liittyvistä harjoitustehtävistä, ei muista projekteistasi tai muualta koneeltasi.

Kurssilla tehtävästä tutkimuksesta

Kurssilla tehdään oppimiseen liittyvää tutkimusta. Tällä tutkimuksella on useampia tavoitteita: (1) lähestyä tilannetta, missä oppimateriaali ja tehtävät osaavat ottaa oppijoiden yksilölliset erot paremmin huomioon ja reagoida niihin tarjoten kohdennetumpaa opetusta, (2) kehittää digitaalisissa ympäristöissä tapahtuvaan oppimiseen liittyvää ymmärrystä ja tietoa, sekä (3) tukea tutkimustiedon kautta muita oppimaterialien kehittäjiä ja oppimisen tutkijoita. Tutkimusdatan hallinnasta vastaa Helsingin yliopiston tietojenkäsittelytieteen laitoksen Agile Education Research -ryhmän Arto Hellas. Anonymisoimattomaan tutkimusdataan eivät pääse käsiksi muut tutkijat. Voit myös pyytää milloin tahansa sinusta kerätyn datan poistamista lähettämällä sähköpostin osoitteeseen arto.hellas@cs.helsinki.fi

Työskentelystä kerättyä tietoa käytetään tutkimuksessa jos sallit. Tutkimuksemme päätavoitteena on osaamisen kehittymisen arviointi tekemisen arvioinnin sijaan, mikä mahdollistaisi yksilöllistä osaamista parhaiten kehittävien vinkkien ja tehtävien tarjoamisen. Tutkimustuloksista ei pystytä tunnistamaan yksittäisiä opiskelijoita. Jos et salli kurssin aikana kerättyjen tietojen käyttämistä tutkimuksessa, siitä ei tule minkäänlaisia seuraamuksia.

Kurssilla tehdään lisäksi tutkimusta, joka voi vaikuttaa kurssikokemukseen (esim. kurssisisältö). Jos osallistut tutkimukseen, saatat saada esimerkiksi uusia ominaisuuksia materiaaliin. Jos et halua osallistua tutkimukseen, saat kurssin sisällöstä perusversion. Tutkimukseen osallistuminen ei vaikuta loppuarvosanaan.

Sitten materiaaliin...

Löydät tämän sivun ylälaidasta linkin "Osa 1", jolla pääset ensimmäiseen osaan käsiksi. Siirtyminen onnistuu myös tästä painamalla. Ohjelmoinnin jatkokurssi alkaa materiaalin osasta 8.

Kurssimateriaalin tekijät ja lisenssi

Kurssimateriaalin ovat tehneet Arto Hellas (né Vihavainen) ja Matti Luukkainen. Kurssin sisältöön ovat vaikuttaneet myös Matti Paksula, Antti Laaksonen, Pekka Mikkola, Juhana Laurinharju, Martin Pärtel, Joel Kaasinen ja Mikael Nousiainen.

Tämä materiaali on lisensoitu Creative Commons BY-NC-SA-lisenssillä, joten voit käyttää ja levittää sitä vapaasti, kunhan alkuperäisten tekijöiden nimiä ei poisteta. Jos teet muutoksia materiaaliin ja haluat levittää muunneltua versiota, se täytyy lisensoida samalla lisenssillä. Materiaalien käyttö kaupalliseen tarkoitukseen on ilman erillistä lupaa kielletty.

Voit osallistua kurssimateriaalin parantamiseen myös itse. Jokaisen sivun alalaidassa on linkit, joilla pääset ehdottamaan muutoksia. Muutosten ehdottaminen vaatii Github-tunnuksen.

Sisällysluettelo