Yleistä kursseista

Tämä materiaali on tarkoitettu Helsingin yliopiston tietojenkäsittelytieteen laitoksen kursseille ohjelmoinnin perusteet (5 op) ja ohjelmoinnin jatkokurssi (5 op) sekä Ohjelmoinnin MOOCin materiaaliksi. Materiaalin ensimmäiset 7 osaa liittyvät kurssiin ohjelmoinnin perusteet ja seuraavat 7 osaa kurssiin ohjelmoinnin jatkokurssi.

HAMKin Liikennealan toteutusta varten on näistä kursseista tuotettu oma toteutus. Aineistoon on pyritty tekemään muutokset, jotka poikkeavat HAMKin ja Helsingin yliopiston toteutusten välillä. Muutokset koskevat mm. aikataulua ja paikkoja. Mikäli aineistoon on jäänyt viittauksia, jotka eivät ole HAMKin toteutuksessa oikein, ilmoita niistä Ramille, mielellään sähköpostilla (rami.tervo@hamk.fi)

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

Kohdeyleisö

Materiaali on tarkoitettu kaikille ohjelmoinnin oppimisesta kiinnostuneille. Aiempaa ohjelmointikokemusta ei oleteta tai vaadita. Kurssille osallistuminen vaatii kuitenkin tietokoneen sekä mahdollisuuden kurssilla käytettävien ohjelmistojen asentamiseen. HAMKin Riihimäen kampuksella kurssien suorittamisen edellyttämät ohjelmat asennetaan A214 luokkaan.

Osaamistavoitteet ja kurssin sisältö

Kurssilla opitaan ohjelmoinnin perustaidot. Tutuksi tulevat muunmuassa syötteen lukeminen, tulostaminen, ehtolauseet, toistolauseet, listojen käsittely, oliot, ymym. Käsitteitä paljon oleellisemmassa roolissa on konkreettinen soveltaminen.

Työskentelytavat ja aikataulu

Kevät 2018

Kurssin työskentelyyn kuuluu kurssimateriaalin lukeminen ja pohdinta, ohjelmointitehtävien tekeminen (joko kotona tai Riihimäen kampuksen luokassa A214) sekä konekokeiden suorittamisen.

Kurssilla järjestetään viikoittain ohjausta luokassa A214. Ohjelmoinnin perusteet –kurssin ohjausta järjestetään keskiviikkoaamuisin 10.1.-7.3. (ei. 28.2.) Aika on merkattu INLINU15 –ryhmä lukujärjestykseen, josta mahdolliset muutokset on tarkastettavissa.

Ohjelmoinnin jatkokurssin ohjauksesta sovitaan erikseen 4. periodin alkaessa.

Yksittäisen osan viimeinen palautusaika on sunnuntaisin klo 23:59. Ensimmäisen osan viimeinen palautuspäivä on 21.1.2018. Seuraavan osan palautuspäivä on aina viikon edellisen jälkeen (pl osa 7 kaksi viikkoa, hiihtoloma).

Luokassa A214 saa työskennellä myös ohjausaikojen ulkopuolella, jos siellä ei ole tuolloin muuta toimintaa.

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. Ohjelmoimaan ei ole vielä tietääksemme kukaan ihminen oppinut lukemalla (tai esim. luentoa kuuntelemalla). Oppiminen perustuu oleellisesti aktiiviseen tekemiseen ja rutiinin kasvattamiseen. Esimerkkien ja erityisesti erilaisten omien kokeilujen tekeminen on parhaita tapoja "sisäistää" luettua tekstiä. Kurssilla käytetyssä ohjelmointiympäristössä on kokeiluja varten tehtäväpohja, jonka nimi on "Hiekkalaatikko".

Pyri myös tekemään tai ainakin yrittämään tehtäviä sitä mukaa kuin luet tekstiä. 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.

Kannattaa toimia myös niin, että pyrit sulkemaan muut häiriötekijät pois kun luet materiaalia. Tällaisia ovat esimerkiksi puhelinsovellukset, sosiaalisen median sivun, sähköpostiohjelmistot ym. Eräs hyvä tapa työskentelyn ajoittamiseen on Pomodoro-tekniikka, missä (1) päätät seuraavan tavoitteesi tai tehtävän, (2) asetat kellon soimaan 25 minuutin kuluttua, (3) keskityt tavoitteeseesi kunnes kello soi. Jos saat hyvän ajatuksen tai idean, kirjoita se ylös, mutta älä lähde tekemään mitään siihen liittyvää. (4) Kun kello soi, lisää ruksi paperille. Jos rukseja on neljä, pidä pidempi tauko (esim. 30 minuuttia), vedä ne yli, ja aloita kohdasta 1. Jos rukseja on alle neljä, pidä lyhyempi tauko (n. 5 minuuttia). Voit käyttää esimerkiksi osoitteessa https://tomato-timer.com/ olevaa kelloa työsi ajastukseen.

Kurssimateriaalia ei ole tarkoitettu vain kertaalleen luettavaksi. Joudut varmasti myöhemmin palaamaan jo aiemmin lukemiisi kohtiin tai aiemmin tekemiisi tehtäviin. Kurssimateriaali teksti ei 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ävien tekeminen

Kurssilla on käytössä ohjelmointiympäristö Test My Code (asennusohjeet alempana), joka lataa tehtävät sekä antaa niistä automaattista palautetta. TMCn tarkastuksen jälkeen tehtävä palautetaan palvelimelle tarkastettavaksi, minkä jälkeen pisteet kirjautuvat automaattisesti.

Yhteistyö

Hyvä yhteistyö keskittyy jokaisen osapuolen oppimiseen ja parantaa oppimistuloksia. Yhteistyö on kurssin ohjelmointitehtäviä pohtiessa sallittua ja suositeltavaa. Kumpulan kampuksella tehtävissä pariohjelmointitehtävissä yhteistyö on myös koko tekemisen ydin.

Kurssilla tehtävissä tehtävissä noudatetaan 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.

Jos teet tehtäviä yhdessä muiden kanssa, sinun tulee tehdä ja palauttaa omat ratkaisusi itse. Pidä yhteistyörupeaman jälkeen ainakin puolen tunnin tauko, jolloin teet jotain täysin muuta (esim. katsot jakson Gilligan's Islandia tai Salattuja elämiä), ja aloita omien tehtäviesi työstäminen vasta sitten. Kirjoita myös tehtävien palautuksen yhteyteen kommenteissa niiden kurssikavereidesi nimet, joiden kanssa teit yhteistyötä.

Opintovilpistä

Kurssilla seurataan Hämeen ammattikorkeakoulun 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ä. Luonnollisesti myös kaikki yhteistyö ja avun kysyminen tai antaminen on kiellettyä konekokeen tehtäviin liittyen.

Todettu opintovilppi johtaa kurssisuorituksen hylkäämiseen ja toistuva opintovilppi voi johtaa opinto-oikeuden määräaikaiseen menettämiseen. Lue lisää HAMKin opintojen arviointiohjeesta.

Tukiväylät

Kurssien ensisijainen tukiväylä on assarivetoiset työskentelyajat koululla. Täydentäviä tukikanavia voidaan järjestää tarpeen mukaan.

Arvostelu

Kevät 2018

(Päivitetty 17.1.2018)

Kurssien arvostelu perustuu tehtyihin ohjelmointitehtäviin ja niistä kertyneisiin pisteisiin.

Arvosanarajat:

Tehtäväpisteet Arvosana
190 tai yli 5/5
160-189 4/5
130-159 3/5
100-129 2/5
vähintään 1 piste osasta 3 1/5

 

Kevään aikana voi suorittaa kaksi kurssia: Ohjelmoinnin perusteet (materiaalin osat 1-7, kolmas periodi) ja Ohjelmoinnin jatkokurssin (materiaalin osat 8-14, neljäs periodi). Ohjelmoinnin MOOC koostuu molemmasta kurssista.

Huom! Edeltävä arvosteluasteikko olettaa, että hyväksyt analytiikkadatan keräämisen kurssin ohjelmointitehtävien tekemisestä. Analytiikkadata sisältää ajoittain kerättäviä aikaleimattuja kopioita kullakin ajanhetkellä työstämästäsi ohjelmointitehtävästä. Analytiikkadataa ei kerätä omista projekteistasi tai muualta koneeltasi.

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.

Huom! Käytä tunnuksena tunnsta, joka on yhdistettavissä omaan nimeesi, esimerkiksi etunimen ensimmäinen kirjan ja sukunimi. 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.

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 Riihimäen kampuksen luokasta A214 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ä

HAMK Liikenealan toteutus sijaitsee osoitteessa:

https://tmc.mooc.fi/org/hamk_liikenne/courses/274

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. Alla kuvakaappaus asetussivusta. Käytä omaa tunnusta ja salasanaa.

Analytiikkadatan kerääminen ja arvostelu

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.

Ensimmäisen ohjelman palauttaminen

Seuraavalla videolla näytetään miten tehtävien tekeminen ja palauttaminen NetBeansilla ja TMC:llä tapahtuu. Video perustuu hieman aiempaan kurssiin, joten tehtävä ei ole täysin identtinen nykyisen kurssin ensimmäisen tehtävän kanssa. Kaikki tehtävät palautetaan samalla tavalla.

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 samanlaisella vapaalla lisenssillä. Materiaalien käyttö kaupalliseen tarkoitukseen on ilman erillistä lupaa kielletty.

HAMKin Liikennealan toteutusta varten muutoksia aineistoon on tehnyt Rami Tervo.

Kurssilla tehtävästä tutkimuksesta

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.

Sisällysluettelo