58160 Ohjelmoinnin harjoitustyö (4 op, 2ov)

Samankaltaiset tiedostot
Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Ohjelmointi II. Erkki Pesonen Luennot ja harjoitukset. Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015

Ohjelmistotekniikan menetelmät, kevät 2008

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

A4.1 Projektityö, 5 ov.

58160 Ohjelmoinnin harjoitustyö Johdanto

Ohjelmistotekniikan menetelmät, kesä 2008

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Työkalut ohjelmistokehityksen tukena

Kurssin tavoitteista uennot. 4.1 Projektityö, 5 ov. Esitietovaatimukset

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

TIE Ohjelmistojen suunnittelu

Opettajatuutorointi-kurssin syksyn 2006 kyselyjen tulokset

58160 Ohjelmoinnin harjoitustyö

Sopimuspohjainen olio-ohjelmointi

Ohjelmistojen mallintaminen, kesä 2009

PROJEKTITOIMINTA Tietoa käytännöistä

Ohjelmistojen mallintaminen, kesä 2010

Myös opettajaksi aikova voi suorittaa LuK-tutkinnon, mutta sillä ei saa opettajan kelpoisuutta.

T Ohjelmistojen määrittely- ja suunnittelumenetelmät

Ohjelmoinnin peruskurssi Y1

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op)

TIEA4 Projektityö, 5-10 op.,

TIEA4 Projektityö, 5-10 op.,

TIEY1 Opintojen ohjattu suunnittelu (2 op) eli LuK-vaiheen HOPS-ohjaus eli Opettajatuutorointi

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Kurssijärjestelyt. CS-1180 Verkkojulkaisemisen perusteet (5 op) Hanna Hämäläinen Informaatioverkostot / Mediatekniikan laitos

Tietotekniikan Sovellusprojektit

OHJ-7400 Graafisen käyttöliittymän ohjelmointi 4/6op

19/20: Ikkuna olio-ohjelmoinnin maailmaan


Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

Kurssin oppimistavoitteet. Heikki Lokki Kurssin suorituksen jälkeen osaat

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät Olio-ohjelmoinnin perusteet (TIEA2.1)

Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

Harjoittelu omassa opetustyössä ammatillisen koulutuksen parissa

Maisteriopiskelijan infopaketti. Informaatiotutkimuksen ja interaktiivisen median opintosuunta

TIE Ohjelmistojen suunnittelu

Orientaatiotilaisuus Avoimen yliopiston tietojenkäsittelytieteen opintoihin

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

811393A JOHDATUS TUTKIMUSTYÖHÖN

Kurssijärjestelyt. ME-C2300 Verkkojulkaisemisen perusteet (5 op) Mari Hirvi Informaatioverkostot / Mediatekniikan laitos

T Käyttäjäkeskeisen tuotekehityksen harjoitustyö kevät 2005

Maisteriopiskelijan infopaketti. Internet- ja pelitutkimuksen opintosuunta

Tietojenkäsittelytieteet Tutkinto-ohjelman info. Henrik Hedberg (Heli Alatalo)

Tietojenkäsittelytieteet Tutkinto-ohjelman info. Henrik Hedberg Heli Alatalo

Tähtitieteen käytännön menetelmiä Kevät 2009

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät Olio-ohjelmoinnin perusteet (5 op) Tavoitteena

Harjoitustehtävät ja ratkaisut viikolle 48

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

käyttötapaukset mod. testaus

Projektisuunnitelma. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Lohtu-projekti. Testaussuunnitelma

Tietojenkäsittelytieteiden 26 op:n perusopinnot

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Opiskelutaidot Tiina Kerola

Kurssiesite Lausekielinen ohjelmointi Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Antti Ekonoja

P e d a c o d e ohjelmointikoulutus verkossa

Henkilökohtainen opintojen suunnittelu eli HOPS Urapalvelut opintojen alkuvaiheessa uraohjaaja Kirsi Vallius-Leinonen

T harjoitustehtävät, syksy 2011

Aalto CHEM Kandidaattiseminaari (+ BTT/KEM/MTE seminaarit)

Opinnäytetyön prosessikuvaus

S14 09 Sisäpeltorobotti AS Automaatio ja systeemitekniikan projektityöt. Antti Kulpakko, Mikko Ikonen

TU-C3010 Projektien suunnittelu ja ohjaus (5 op.)

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

SALAKIRJOITUKSEN VAIKUTUS SUORITUSKYKYYN UBUNTU käyttöjärjestelmässä -projekti


Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

lineitä oppimisen tueksi

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Johdatus Ohjelmointiin

LHV325 Ohjelmoinnin perusteet. WorkBook. Jussi Tapio Kuosa

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet (TIEA2.1) Kevät Olio-ohjelmoinnin perusteet (eli Oope) Laajuus

Kurssiesite Olio-ohjelmoinnin perusteet (TIEA2.1) Kevät 2018

15. Ohjelmoinnin tekniikkaa 15.1

PROJEKTIN EDISTYMISRAPORTTI Seurantajakso <jaksonumero, alkupäivä - päättymispäivä>

T harjoitustyö, kevät 2012

Tieto- ja viestintätekniikan opinnot Jyväskylän yliopistossa

Kasvatustiede (luokanopettaja/varhaiskasvatus) perusopinnot (25 op)

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

Antti Ekonoja

Jyväskylän normaalikoulu - opetusharjoittelu 2. Jyväskylän normaalikoulu - opetusharjoittelu

Työelämän taitojen harjoittelu teknologian käytettävyyden arvioinnin opetuksessa

Henkilökohtainen opiskelusuunnitelma

Opettajatuutoroinnissa ilmoittautuneita 192 analyysissä mukana 159 opiskelijan tiedot (HOPS:n täyttäneet)

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Tieto- ja viestintätekniikka (tvt) opetuksen ja oppimisen tukena

KT4 Projektiopinnot, 5 op (418013P)

Kurssin sisältö. Kurssilla vähemmän. Johdatus ohjelmistotekniikkaan. Mitä on ohjelmistotekniikka? Miten ohjelmistoja suunnitellaan ja toteutetaan?

Projektisuunnitelma Nero-ryhmä

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Kurssien esivalintaopas lukuvuodelle Tampereen yliopiston normaalikoulun lukio

TU-C3010 Projektien suunnittelu ja ohjaus (5 op.)

Ohjelmistoarkkitehtuurit. Syksy 2008

Internet-pohjaisen oppimisympäristön laadinta

Koulussamme opetetaan näppäilytaitoa seuraavan oppiaineen yhteydessä:

Transkriptio:

58160 Ohjelmoinnin harjoitustyö (4 op, 2ov) Kurssin kotisivu Opetus http://www.cs.helsinki.fi/kurssit/perus/58160-8/ Oppimistavoitteet, arvosteluperusteet, lista työaiheista ym. Yhteisluento I (2 h) - ennen pienryhmien alkua o Kurssin hallinnolliset asiat ja ryhmien muodostaminen läsnäolijoista o Preppausta harjoitustyön tekemiseen: mitä ja miten tehdään? o Sormiharjoituksia ja työkaluihin tutustumista mikroluokassa o Luentokalvot, aiheenvalinta ja muuta materiaalia: http://www.cs.helsinki.fi/u/nikander/oht Yhteisluento II (2h) - harjoitustyön puolivälissä (työviikon 4 alussa) o Ohjelmistojen testauksen alkeet: miten testaat harjoitustyösi? o Harjoitus: testiajurien kirjoittaminen Eclipsellä + Junitilla mikroluokassa Harjoitustyöryhmät (6 työviikkoa) o Itsenäistä opiskelua n. 0-8h / päivä oman aikataulun mukaan o Koko ryhmän tapaamisia yleensä 2 x 4 h (työviikoilla 3 ja 6) o Muina viikkoina henkilökohtainen ohjauspalaveri n. 15-20 min/vko o Opetusohjelmassa mainittu kokoontumisaika on suuntaa-antava: http://www.cs.helsinki.fi/opinnot/opetusohjelma.html henk. koht. ohjauspalaverin aika sovitaan työn alussa, mieluiten ko. aikavälille Neuvontapäivystys o 3 viimeisen työviikon aikana, 2. krs B- ja C-siipien välissä o Neuvontapäivystyksen ajat ilmestyvät opintoneuvonnan sivulle: http://www.cs.helsinki.fi/opintoneuvonta/ Esitietovaatimukset Seuraavien kurssien suoritusmerkintä edellytetään: o Ohjelmoinnin perusteet + Java-ohjelmointi/Ohjelmoinnin jatkokurssi o Ohjelmistotekniikan menetelmät / Ohjelmistojen mallintaminen Suoritukset tarkastetaan opintorekisteristä kurssin alussa. Poikkeuksia ei tehdä puuttuvien tenttien tms. takia. Harjoitustyön voi suorittaa 5 kertaa vuodessa, joten tilaisuuksia riittää. Erikoistapauksissa ota yhteyttä Ohj. harjoitustyön esimieheen (Tomi Pasanen). Suoritustapa Kurssi suoritetaan toteuttamalla pieni (n. 1000 riviä) Java-kielinen ohjelmistoprojekti sovitusta aiheesta. Tarkemmat vaatimukset kurssin kotisivulla, ks. myös luentokalvot. Työhön kuuluu ohjelman määrittely, suunnittelu, toteutus ja testaus sekä näiden dokumentaatio. Ajettava ohjelma dokumentteineen palautetaan ohjaajalle. Edistymisestä raportoidaan ohjaajalle viikoittain n. 20 minuutin seurantapalaverissa. Palavereissa käsitellään työn rajaukseen, toteutustapaan ja toteutustekniikoihin liittyviä kysymyksiä ja sovitaan seuraavista työvaiheista. Työn suorittamisessa, aikataulussa ja ohjeistuksessa on pieniä ryhmäkohtaisia vaihteluja; noudata aina ensisijaisesti oman ohjaajasi ohjeita. 58160 Ohjelmoinnin harjoitustyö Kurssiesite 2009 / Sami Nikander 1/6

Arvostelu Arvosteluskaala 0 60 p Pisterajat 30 35 40 45 50 Arvosana 1 2 3 4 5 Työn osien painotus arvostelussa: toteutus 40%, dokumentaatio 40%, testaus 10%, projektinhallinta 10% Keskeyttäminen Työ on saatava valmiiksi työryhmän työskentelyaikana (6 viikkoa) ja sen on sisällettävä kaikki pakolliset osat. Muutoin kurssi katsotaan keskeytyneeksi. Jatkoaikaa voi saada sairauden takia lääkärintodistuksella. Matkat, työkiireet ym. eivät oikeuta jatkoaikaan. Kurssi katsotaan keskeytyneeksi myös, jos opiskelija ei viikkoon osallistu ohjaukseen tai muulla tavoin raportoi ohjaajalle edistymisestään. Työn keskeyttänyt opiskelija voi päästä kurssille uudestaan vain ns. jonotuslistan kautta. Keskeyttäneet ilmoittautuvat erilliseen jonotusryhmään, josta otetaan opiskelijoita kurssille ilmoittautumisjärjestyksessä ja vain, jos ryhmissä on tilaa. Uudet opiskelijat ovat siis etusijalla ryhmiä muodostettaessa. Linkkejä Ohjelmoinnin harjoitustyön Moodle-sivu Sisältää mm. aihekuvaukset ja ohjeita työkalujen käyttöön https://courses.cs.helsinki.fi/ --> Ohjelmoinnin harjoitustyö TTY:n Java-sivut Hyvää kertausmateriaalia ja käytännön pikku harjoituksia (automaattitarkistuksella) http://javala.cs.tut.fi/ Ohj. perusteet / Java-ohjelmointi -kurssien sivut Kertaa ruostuneet ja väliin jääneet aihepiirit esim. täältä. o http://www.cs.helsinki.fi/u/wikla/ohjelmointi/ o http://www.cs.helsinki.fi/u/tapasane/kurssit/java-ohjelmointi/kevat2008/ Ohjelmointitekniikka (Java) -kurssin sivu Syventävää materiaalia Java-ohjelmoinnista, jota peruskursseilla vain raapaistiin. http://www.cs.helsinki.fi/u/wikla/otj/ Sunin Java-materiaalien koostesivu Linkit API-kuvaukseen, tutoriaaleihin, koodiesimerkkeihin, sanastoon ym. http://java.sun.com/javase/reference/ Jaakko Nenosen linkkilista Linkkejä tarpeellisiin ohjeisiin yms. http://www.cs.helsinki.fi/u/jnenonen/alabra/linkit.html Sami Nikanderin harjoitustyösivusto Lisää sekalaisia linkkejä ja materiaalia http://www.cs.helsinki.fi/u/nikander/oht/ Kurssimateriaalin kehittäminen Jos kurssin aikana jäät kaipaamaan jotain tietynlaista oppimateriaalia, mainitse siitä esim. sähköpostitse sami.nikander@helsinki.fi tai kerro asiasta kurssipalautteessa. 58160 Ohjelmoinnin harjoitustyö Kurssiesite 2009 / Sami Nikander 2/6

Ohjelmoinnin harjoitustyö Pohdittavaa Käsityksesi kurssin sisällöstä Millainen on tämänhetkinen käsityksesi ohjelmistotuotannosta? Mitä se pitää sisällään? Millaisia työvaiheita ja menetelmiä ohjelmistoprojekteissa käytetään? Mitä ohjelmointi on? Entä koodaaminen? Ovatko ne sama vai eri asia? Mitä ohjelmistotuotannon aihepiireistä arvelet kurssilla käsiteltävän? Mitä ei käsitellä? Omat oppimistavoitteesi / arvosanatavoitteesi Mitä odotat oppivasi tällä kurssilla? Tähtäätkö viitoseen vai riittääkö läpipääsy? Mitkä asiat kurssin aihepiirissä tuntuvat vaikeimmilta? Listaa joitain haasteellisimpia aiheita. (Tai: jos arvioit jo osaavasi kurssilla opiskeltavia asioita, pohdi mitä osa-alueita hallitset parhaiten? Mitä kautta olet oppinut kurssin asioita aiemmin, onko osaamisesi itseopiskeltua käytännön kokemusta vai esim. aiempia opintoja? Onko jokin näkökulma kuitenkin uusi?) Arvio työmäärästä Arvioi myös omaa työmäärääsi. Miten arvelet laskennallisen työmäärän (n. 80h) sopivan omaan tilanteeseesi? Tuleeko sakkokierroksia vai pääsetkö vähemmällä? Joudutko kertaamaan paljon tai muuten preppaamaan keskimääräistä enemmän? Onko sinulla aiempaa kokemusta koodauksesta, teknisestä kirjoittamisesta tms? Aiotko ottaa kunnianhimoisen vai minimalistisen työaiheen? Miten arvosanatavoitteesi vaikuttaa työmäärään? Kiinnostavat aihepiirit? Millainen työaihe voisi olla itseäsi kiinnostava ja motivoiva? Haluatko tehdä ajanvieteohjelman? (esim. peli, puppugeneraattori, tietovisa) Vai hyötyohjelman? (esim. CD-kortisto, budjettilaskuri, sanastoharjoitus) Vai onko sillä väliä? Mieti myös haluatko tässä työssä opetella esim. graafisen käyttöliittymän tekemistä (ei pakollista) tai uusia ohjelmointityökaluja (ks. myös tarkistuslista jäljempänä). 58160 Ohjelmoinnin harjoitustyö Kurssiesite 2009 / Sami Nikander 3/6

Ohjelmoinnin harj. työ Aikataulusuunnitelma Tarkastele edellisessä kohdassa arvioimaasi työmäärää (oletuksena n. 80h) tarkemmin. Miten aiot jakaa työmäärän kuudelle työviikolle? Mitä hommia teet milläkin viikolla? Onko sinulla muita kursseja, tenttejä tms. kiireitä, jotka vaikuttavat aikatauluun? Miten arvioit työmäärien painottuvan projektissasi eri vaiheisiin? (erityisesti suunnittelu / toteutus / testaus) Tämä ei ole sitova aikataulu. Arvio on vain alustava ja lähinnä oman työskentelysi tueksi. Sovi viikottaisista tavoitteista ja etapeista ohjaajasi kanssa. Voit kurssin aikana seurata työsi edistymistä ja tarkkailla samalla alkuperäisten arvioittesi osuvuutta. Vko 1 Yhteisluento I (työkaluihin tutustumista, projektisuunnitelman tekoa) Vko 2 Vko 3 Suunnitelmien esittely omassa ohjausryhmässä Vko 4 Yhteisluento II (testauksen harjoittelua) Neuvontapäivystys Vko 5 viikoilla 4-6 Vko 6 Työn palautus vkon 6 lopussa 58160 Ohjelmoinnin harjoitustyö Kurssiesite 2009 / Sami Nikander 4/6

Tarkistuslista Ohj. harjoitustyön aloittajalle Tämän listan tarkoitus on auttaa hahmottamaan kurssilla vastaantulevien asioiden paljoutta. Mitä paremmin osaat ennestään luettelossa mainittuja aihepiirejä, sitä vähemmän joudut nyt käyttämään aikaa kertaukseen ja opetteluun. Vastaavasti jos opeteltavaa kertyy kovin paljon, voit arvioida työmääräsi kasvavan samassa suhteessa. Listan käyttäminen on vapaaehtoista, eikä sen toteutumista seurata; lista on vain oman suunnittelusi tueksi :-) Esitiedot: Aiemmilta kursseilta tuttua Nämä asiat sinun oletetaan osaavan jo ennestään, ainakin jossain määrin. Jos taidot puuttuvat tai ovat ruostuneet, joudut itse opettelemaan tai kertaamaan nämä asiat. Ohj.perusteet ja Java-ohjelmointi: Rastita jos tiedät osaavasi tai sitä mukaa kun olet kerrannut: Ohjelmoinnin peruskäsitteet (tyypit, lausekkeet, operaatiot, aliohjelmat...) Olioiden peruskäsitteet (luokat, kapselointi, periytyminen, rajapinnat... ) Näkyvyys ja pakkaukset Poikkeusten käsittely Tiedostojen käsittely: lukeminen, kirjoittaminen Kokoelmaluokat, geneeriset tietotyypit (ArrayList<E> ja HashMap<K,V>) Ohjelmistotekniikan menetelmät: Ohjelmistotuotannon vaiheet UML-tekniikka, erityisesti luokkakaavio, luokkien yhteydet/moniarvoisuusmääreet sekvenssikaavio kaavioiden yhteys (Java-)toteutukseen Yksikkötestaus, JUnit (ainakin käsitteenä) Johdatus tietojenkäsittelytieteeseen: Ei pakollinen esitieto, mutta kurssin sisällöstä kannattaa palauttaa mieleen erityisesti nämä ohjelmointiin läheisesti liittyvät ohjenuorat (myös alkuperäisartikkelit saattaisivat avautua nyt paremmin?!). Suunnittelun periaatteet: 6.1 Yksinkertaisuus ( ohjelmistohelmet ; suunnittelu ennen toteutusta...) Tietojenkäsittelyn käytännöt: 7.1 Ohjelmointi (hyvän ohjelmakoodin ominaisuudet: selkeys, ulkoasu, nimet...) Tietojenkäsittelyn käytännöt 7.2 Järjestelmien rakentaminen (ohjelmistotuotannon ongelmat: muuttuvat vaatimukset, rönsyily, olennaisen unohtaminen, määrittelyjen ja projektisuunnitelman puuttuminen...) 58160 Ohjelmoinnin harjoitustyö Kurssiesite 2009 / Sami Nikander 5/6

Kurssilla opeteltavia uusia asioita Nämä ovat kurssin keskeistä aihepiiriä, mutta kaikkien ei tarvitse opetella kaikkea juuri nyt. Oman kurssisi painotukset muotoutuvat pitkälti työaiheen ja oman kiinnostuksesi pohjalta. Jos osaat näitä jo ennestään, työmääräsi voi olla hieman keskimääräistä pienempi. Java-tekniikkaa Osaan jo Opettelen Javan kokoelmaluokat (Java Collections): java.util Merkkijonojen, päivämäärien ym. käsittely: java.util Graafisen käyttöliittymän tekeville: Tapahtumaohjelmointi: mm. java.awt.event Käyttöliittymäkomponentit: mm. javax.swing Reaaliaikaista vuorovaikutusta (esim. räiskintäpeli) tarvitseville: Moniajo, ajastimet, säikeet: mm. java.lang.thread Tiedon lataamista verkosta (esim. linkkitarkistin) tarvitseville: HTTP-kutsut, URLien käsittely... mm. java.net Monimutkaisia tiedostoja (esim. asetustiedostot) tarvitseville: XML-tiedostojen käsittely mm. javax.xml.* Ohjelmistotuotannon taitoja Teknisten dokumenttien lukutaito (mm. API-kuvaukset!) Hyvä koodaustyyli Systemaattinen virheenjäljitys ( debuggaus ) Systemaattinen testaus Teknisen dokumentin kirjoittaminen Suunnitelmien ja ohjelmien esittely/demoaminen yleisölle Ohjelmistotuotteen viimeistely: asennuspaketit, käyttöohjeet Omaa työtä helpottavia työkaluja Näiden käyttöä ei edellytetä kurssilla, mutta opetteluun käytetty vaiva maksaa itsensä moninkertaisesti takaisin viimeistään myöhemmissä opinnoissa yleensä jo harjoitustyön kuluessa. Hyödyllistä ammatillista tietotaitoa varsinkin pääaineopiskelijoille. Työkaluista mainittu muutamia TKTL:n Linuxeissa toimivia, muitakin on. Näitä aion opetella: Dokumentaatiotyökalu JavaDoc ( API-generaattori ) Sovelluskehitin eli IDE (Eclipse, NetBeans) Testikehys JUnit (mm. osana Eclipseä) UML-piirtotyökalu (Umbrello, Visual Paradigm, ArgoUML...) Versionhallinta (bzr, svn, cvs) Käännöksen automatisointityökalu (ant, make) 58160 Ohjelmoinnin harjoitustyö Kurssiesite 2009 / Sami Nikander 6/6