T-106.3100, Ohjelmoinnin jatkokurssi T2 (6 op)
Tiedotukset
- Kurssin yhteydessä on mahdollista suorittaa myös kurssi T-106.3105, josta löytyy lisätietoa täältä
- 4. Periodilla on vain yksi viikkoharjoitusryhmä viikossa, joka pidetään torstaisin.
- Projektityön osatehtävien pisteytyksessä oli virheitä. Lisäysten pisteytys on päivitetty 12.3. siten, että toisen iteraation palautusten pisteytystä on muokattu. Ryhmät voivat vaihtaa valitsemaansa tehtäväkokonaisuutta ilmoittamalla tästä 1. iteraation palautuksen yhteydessä.
- Goblin tehtävistä järjestetään rästikierrokset 4. periodilla. Tehtävät avataan 12.3. ja ne ovat avoinna 30.4. asti. Rästikierrokset koostuvat samoista tehtävistä, kuin varsinaisetkin kierrokset, mutta tehtävien pisteitystä on skaalattu alapäin.
- Projektityö julkaistiin 7.3. Koska tehtävä julkaistiin
ilmoitettua myöhemmin projektityöhön littyviä määräaikoja
siirrettiin eteenpäin. Uudet määräajat löytyvät kohdasta aikataulu.
- Torstaina 8.2. ei ole luentoa
- 19.1.2007 Arvosanan laskentakaavassa ollut virhe korjattiin siten,
että projektityöstä pitää saada vähintään puolet kaikista pisteistä, eikä 2000 pistettä 5000 pisteestä riitä.
- 19.1.2007 Aikaisemmista tiedoista poiketen kurssin koko on 6 op
- 19.1.2007 Kurssin aikatauluun lisättiin tietoa harjoitusryhmistä.
Päivitämme luento-ohjelman mahdollisimman pian. Toistaiseksi tulevista luennoista vain vierailuluentojen aiheet on merkitty.
Esitietoina tarvitaan välttämättä seuraavien kurssien suorittaminen
- T-106.1200/1203/1206 Ohjelmoinnin perusteet T tai L tai Y
- T-106.1220/1223 Tietorakenteet ja algoritmit T tai Y
- T-106.1240/1243 Ohjelmoinnin jatkokurssi T1 tai L1
Moni on suorittanut vanhoja kursseja. Silloin esitiedoiksi käyvät
- T-93.211 Johdatus ohjelmointiin T JA T-106.235 Ohjelmoinnin jatkokurssi 1
- TAI T-106.213/216 Ohjelmoinnin peruskurssi L1 tai Y1
- Lisäksi tarvitaan T-106.250/253 Tietorakenteet ja algoritmit T/Y
Huom1. Kurssien T-106.230 Ohjelmoinnin peruskurssi T2 tai T-106.231
Lausekielisen ohjelmoinnin perusteet suorituksilla ei voi korvata
tämän kurssin osasuorituksia.
Huom2. Kurssi on siinä määrin päällekkäinen kurssin AS-0.1101
C-ohjelmoinnin peruskurssi kanssa, että molemmista ei voi saada
suoritusta.
Kurssille tulee ilmoittautua Topin kautta. Kurssi-ilmoittautuminen
on välttämätöntä, koska ohjelmointiharjoituksissa tarvittavat
Goblin-tunnukset lähetetään vain ilmoittautuneille.
Kurssilla on kaksi pakollista osasuoritusta, jotka ovat voimassa vuoden:
- Itsenäiset ohjelmointiharjoitukset kolmannella periodilla,
joiden tavoitteena on C-kielen perusteiden hallinta. Tehtävät eivät
ole kovinkaan yksinkertaisia, vaan sisältävät mm. tietorakenteiden ja
algoritmien implementointia.Ohjelmointiharjoituksissa käytetään
Goblin-järjestelmää.
- Projektityö on laajempi
ohjelmointityö, joka tehdään kolmen henkilön ryhmissä neljännellä
periodilla. Tämä on kurssin tärkein osasuoritus, jossa opitaan
suuremman ohjelman toteuttamista ja käsittelyä ryhmätyössä. Projektin
painopiste on selkeästi ohjelmoinnissa. Projekti- ja
ryhmätyöskentelyyn liittyviä asioita otetaan kuitenkin esille niiltä
osin, kuin ne ovat käytännön työn kannalta tärkeitä.
Harjoitusten ja projektityön tekemiseen tarvitset Niksulan käyttäjätunnuksen.
Kurssilla ei ole tenttiä. Kurssin arvosana lasketaan seuraavalla kaavalla,
jossa O tarkoittaa ohjelmointiharjoituksista saatuja pisteitä (maksimi on 3000 pistettä)
ja P projektityöstä saatuja pisteitä (maksimi on 5000 pist):
(O >= 1500 && P>=2500) ? min( 5, trunc(( O + P - 4000) / 750 ) + 1 ) : 0
Kurssilla käytetään kirjaa B. Kernighan,
D. Ritchie, The C Programming Language. 2nd edition. Myös muut
vastaavat C-käsikirjat soveltuvat, mutta suosittelemme edellä
mainittua. Kurssista ei toimiteta opetusmonisteita.
Learning
C from Java -artikkeli vertailee C:n ja Javan eroja ja täydentää
luennoilla esillä olleita asioita.
Työn aihe on www-palvelimena toimiva risti-nolla-peli.
Peliä pelataan toruksen muotoisella pinnalla. Merkittävä
osa ohjelmakoodista on valmiina.
Ohjelmaan on tarkoitus tehdä joukko lisäyksiä. Jokainen ryhmän
jäsen on henkilökohtaisesti vastuussa kahden asian
toteuttamisesta, joista yksi on yksinkertainen (ensimmäisen iteraation palautus) ja toinen vaativa (toisen iteraation palautus).
Ryhmä saa itse sopia, miten tehtävät jaetaan
jäsenten kesken. Lisäksi harjoitukseen kuuluu osia, joista
opiskelijat vastaavat yhdessä.
Projektissa on käytettävä kurssin tarjoamaa
SVN-versionhallintajärjestelmää. Saat ohjeet järjestelmän
käyttämisestä ilmoittauduttuasi noin yhden työpäivän viiveellä. Myös
projektisuunnitelma palautetaan ilmoittautumisen yhteydessä
seuraavalla lomakkeella. Ryhmän tulee täyttää lomake yhdessä palauttaa se vain kertaalleen.
Palautukset hoidetaan SVN-versionhallinnan kautta. Käytännössä reposta haetaan
deadlinen päätösajankohtaa vastaava tilanne, joten erillistä "palautusta" ei
ryhmän tarvitse tehdä. Ainoastaan on huolehdittava, että repossa on palautusajankohtana
toimiva versio. Lisäksi olisi hyvä, jos palautettava versio olisi erillisessä kansiossa
kuin missä varsinainen koodi, esimerkiksi "iteration1". Myös dokumentit laitetaan
repoon muiden tiedostojen joukkoon.
Kurssin luennot ovat kolmannella periodilla tiistaisin ja torstaisin klo 8-10 salissa T1.
Luennot alkavat 18.1. Torstaina 8.2. ei ole luentoa.
Vapaaehtoiset viikkoharjoitukset (3. periodilla), joissa voi käydä tekemässä tehtäviä ja kysymässä neuvoa assistenteilta ovat:
- Ma klo 12-14, A117 (Markus Virtanen)
- Ti 14-16, A117 (Anssi Kolehmainen)
- Ke 16-18, A117 (Leo Moisio)
- To 14-16, A117 (Sami Liedes)
Neljännellä periodilla järjestetään yksi viikkoharjoitus viikossa:
Harjoitusten ja projektitöiden määräajat:
- 31.1. Ensimmäisen harjoitustyökierros sulkeutuu
- 11.2. Toinen harjoitustyökierros sulkeutuu
- 22.2. Kolmas harjoitustyökierros sulkeutuu
- 11.3. Neljäs harjoitustyökierros sulkeutuu
- 15.3. Projektisuunnitelman palautus
- 9.4. Projektityön 1. iteraation palautus
- 2.5. Projektityön 2. iteraation palautus
- Kurssin kotisivut:
- kurssin uutisryhmässä:
- Kurssin IRC kanava:
- #jatko2@ircnet
- Kanavalla ei ole virallista assaripäivystystä.
- Vastaava opettaja:
- Assistentit:
- Anssi Kolehmainen
- Sami Liedes
- Leo Moisio
- Markus Virtanen
- Goblin