[an error occurred while processing this directive]
58127-1 C-ohjelmointi (2 ov)
Kevät 2005
Tulokset
Kesäkuun erilliskokeen tulokset ovat nyt valmistuneet ja ne
ovat nähtävillä laitoksen ilmoitustaululla sekä
tällä sivulla.
Kurssi on nyt vihdoin arvosteltu.
Kurssin tulokset ovat nähtävillä laitoksen ilmoitustaululla ja
tällä sivulla.
Kokeen arvosteluperiaatteet:
Kokeen arvostelusta voi kysellä ke 1.6. klo 16.00-17.00 välisenä aikana
käymällä työhuoneissamme D214 ja D225. Jos tuo aika ei sovi, niin
henkilökohtaisesta ajasta voi sopia sähköpostilla.
Varsinainen palautetilaisuus kurssin tuloksiin liittyen on ma 6.6. klo
15.30 Tiinan huoneessa D225. Ainakin silloin on mahdollista tulla
tutustumaan omiin vastauksiin ja niiden arvosteluun.
Vastatkaa laitoksen kurssikyselyyn. Sen pitäisi olla käytettävissä ke 1.6 asti.
Kertokaa
erityisesti mikä kurssin rakenteessa oli hyvää ja mikä huonoa. Miten
mielestänne tällainen monimuotoinen kurssi pitäisi jatkossa toteuttaa
vai kannattaisiko heti palata vanhaan luennot+laskarit malliin.
Vinkkejä uusintakuulusteluun osallistujille
Kokeen rakenne on samanlainen kuin toukokuussa ollut kurssikuulustelu.
Siis kolme tehtävää, joista ainakin kaksi on ohjelmointitehtäviä. Kolmas
saattaa olla myös virheiden korjausta tms.
Kokeessa pitää siis osata:
- Aiempien kurssin asioista perusohjelmointi,
algoritmien kirjoittaminen, tietorakenteiden käyttö( taulukko, lista,
pino) ja niiden tavanomaiset käsittelyrutiinit (lisääminen, poisto ja
järjestäminen)
- C-kielen syntaksi ja semantiikka. Kirjastorutiinien käyttöä ei
sinänsä edellytetä, mutta erimerkiksi merkkijonojen ja tiedostojen
käsittelyyn käytettävät tavanomaiset funktiot on syytä hallita.
- Kielen rakenteista on hyvä hallita ainakin:
- Funktioiden ja niiden parametrien käyttö
- Taulukko
- Tekstitiedosto
- Linkitetty tietorakenne ja osoittimet
- Komentoriviparametrit
- Merkkijonot
Näistä muodostetaan sitten kokeessa erilaisia yhdistelmiä eri
tehtävissä. Esimerkiksi toukokuun kokeessa oli
- tehtävässä 1 funktion käyttöä ja
tietojen lukemista käyttäjältä (eli tiedostosta stdin),
- tehtävässä 2 funktio, osoittimia ja linkitetyn listan kopiointi ja järjestäminen sekä
- tehtävässä 3 Tekstitiedosto, komentoriviparametri ja taulukko
Kurssin rakenne
Kurssi pidetään keväällä 2005 verkkokurssina, jossa on neljä
lähiopetusjaksoa.
Kurssissa on neljä (tai viisi) osiota
Kokeeseen saa ottaa yhden A4-arkin kokoisen
'lunttilapun'.. Tästä on JAVA-kurssilla saatu hyviä
kokemuksia, joten jatkamme käytäntöä myös tällä ohjelmointi-kurssilla.
Lunttilapun käytön tarkoituksena on
- Vähentää huolimattomuusvirheitä.
- Mitata ohjelmointitaitoa edes hiukan oikeammanlaisessa tilanteessa.
Normaalistihan ohjelmoidessa voi käyttää oheismateriaali apunaan.
- Yksinkertaistaa arvostelua, koska
arvostelijan ei tarvitse sen jälkeen tulkita vastauksien puutteita
mahdollisiksi unohduksiksi, vaan ne voidaan selkeästi käsitellä
puutteellisina tai virheellisinä vastauksina.
Harjoitustyöohjauksesta:
- Liisalla on opintoneuvontavastaanottoja, joita voi hyödyntää
- Tiinan vastaanottoajat ovat käytettävissä
- Säköpostilla voi sopia henkilökohtaisesta tapaamisesta
- Pääsääntöisesti jompi kumpi on tavattavissa lisäksi tiistaisin 12-18, joitain poikkeuksia lukuunottamatta.
Ajankohtaista
- 18.4.2005: Viimeisen tapaamiskerran ohjelma on nyt päivitetty. Aihe on ehdottomasti ilmoitettava viimeiseen tapaamiseen
mennessä. Harjoitustyö, jonka aihetta ei ole ilmoitettu ajoissa, voidaan
palauttaa laajennettavaksi ohjaajien haluamalla tavalla.
- 8.4.2005: Kurssille ilmoittautui 80 opiskelijaa, joista noin 50 sai
käyttöoikeuden tuohon verkkokurssiin. Nyt kuitenkin vain 30 henkeä on
tiedottanut harjoitustyöaiheensa. Ilmoita siis aiheesi
pikaisesti kurssin vetäjille. Ilmoitettujen aiheiden perusteella
rakennetaan viimeisen tapaamiskerran aikataulu, joka tiedotetaan tällä
sivulla viimeistään tiistaina 19.4.
- 22.3.2005: Lisätty: harjoitustyön sovitut aiheet, harjoitustyön arviointiohje, kolmannen tapaamisen kalvot
- 2.3.2005: Vinkkejä kirjan tehtävistä jaksolle 2.
- 25.2.2005: Viopen järjestelmän loputkin sivut on avattu.
- 22.2.2005: 2. tapaamisen kalvot ja harjoitustyöaiheet päivitetty näkyville.
- 11.2.2005: Kysely. Jotta voimme muokata kurssia haluamaanne suuntaan, niin ole ystävällinen ja vastaa
oheiseen kyselyyn viimeistään pe 18.2.
- 11.2.2005: Viopen järjestelmässä on julkaistuna hiukan lisää materiaalia.
- 27.1.2005: Muokattu 1. periodin etätyöskentely ohjetta. Mm. lisätty
suosituksia kirjan tehtävistä.
- 25.1.2005: Lisätty kurssin arvostelutietoja sekä
pdf-tiedostona osa tämän päivän luentokalvoista.
- 20.1.2005: Kurssin kolme ensimmäistä lähitapaamista sijoitetaan
saliin D122, jonne mahdumme kun saamme sinne tarvittavan määrän
lisätuoleja.
Näin ollen kaikki ilmoittautuneet voidaan hyväksyä mukaan
kurssille. Verkkomateriaaliin meillä ei ole riittävää määrää lisenssejä,
joten asiasta neuvotellaan vielä. Tämä varmistuu vasta tiistain luennon
jälkeen, kun näemme kuinka moni on oikeasti tulossa mukaan kurssille.
Kaikille kurssilaisille ovat kaikki osiot pakollisia, ellei
erikseen sovita, että nimetyt opiskelijat eivät tuota verkkokurssiosiota käytä.
- 17.1.2005: Kurssille on ilmoittautunut lähes 80 opiskelijaa.
Yritämme löytää menettelytapaa, jolla melkein kaikki ilmoittautuneet
voisivat osallistua
kurssille. Joidenkin ilmoittautumistiedoissa oli epäselvyyksiä ja näistä on
lähetetty kysely asianomaisille, ilman lisäselvityksiä näitä henkilöitä
ei voida hyväksyä kurssille.
Kaikille ei välttämättä voida tarjota pääsyä tuohon
verkkokurssimateriaaliin, mutta se ei tule estämään kurssin
suorittamista hiukan enemmän itseopiskelutyyppisenä.
Tapaamisten sali joudutaan vaihtamaan, ja mahdollisesti myös tapaamisten aika
saattaa vaihtua.
- 13.1.2005: Kurssille voidaan näillä näkymin ottaa vain 50
opiskelijaa, joten osallistujat joudutaan valitsemaan ilmoittautuneiden
joukosta. Valinta tehdään maanantaina 17.1. ja valituille ilmoitetaan
sähköpostitse asiasta viimeistään tiistaina 18.1.
ilmoittautumisjärjestelmästä löytyvään osoitteeseen. Tarkastathan, että
osoitteesi on oikein, jotta saat tiedon asiasta.
Kurssimateriaali
Verkkomateriaalin lisäksi on syytä käyttää kurssikirjaa:
Kernighan B.W. & Ritchie D.M.: The C Programming Language, 2nd ed.,
Prentice Hall 1988. (ANSI C edition)
Kirja on saatavilla myös suomennettuna: Kernighan B.W. & Ritchie D.M.: C Ohjelmointi, IT Press, ISBN
951-826-138-5 on loppuunmyyty, mutta se on Editalta saatujen
tietojen (kiitos Riku!) mukaan saatavilla pocket-kirjana
Ohjelmointi (Pocket).
Kirja on saatavilla myös verkosta (Kiitos tiedosta Jessika!) osoitteesta
http://freebooks.by.ru/view/CProgrammingLanguage/kandr.html
Kirjaan liittyvä suhteellisen hyvä kommenttisivusto on osoitteessa
http://www.eskimo.com/~scs/cclass/ .
Ratkaisuja kirjan tehtäviin löytyy täältä.
HUOM: Ohjelmointia ei opi vain kopioimalla, joten käytä näitä
viisaasti. Ajattele ensin itse oma ratkaisusi, kokeile sen toimintaa ja
jos et kertakaikkiaan saa jotain kohtaa toimimaan, niin kurkista sitä
täältä. Kokeile ratkaisua, yhdistä se siis omaan ohjelmarunkoosi,
jotta varmistat ymmärtäneesi tehtävän.
Verkkokurssi
Rekisteröidy verkkokurssille osoitteessa helsinki.viope.fi.
Ilmoittautuessasi syötä järjestelmään nimi, s-postiosoite ja haluamasi
tunnus ja salasana. HUOM: Älä käytä minkään olemassaolevan järjestelmän
salasanaa.
Kurssillä käytetetään Viope Solutions
Oy:n opetusmateriaalia ja verkko-oppimisympäristoä. Kyseessä on siis
kaupallinen materiaali, josta maksetaan ihan oikeasti käytön mukaan.
Kukin kurssin aloittava opiskelija kuluttaa siis yhden maksullisen
lisenssin ja siksi kurssia aloittaessaan jokaisen on sitouduttava suorittamaan
kurssi loppuun asti. Pelkkien kokeilijoiden toivomme jättävän kurssin
suorittamisyrityksen seuraavalle lukuvuodelle.
Viopen verkkomateriaali on suunnattu aloitteleville ohjelmoijille, joten
ensimmäisiin lukuihin ei ole tarkoitus käyttää kovinkaan paljoa aikaa.
Verkkokurssi ei valitettavasti kata koko kurssikirjaa. Sitä
täydennetään lähiopetusjaksoilla.
Lähiopetusjaksot
Lähiopetusjaksoilla käydään läpi kurssin sisältöä erityisesti niiltä
osin kuin tuo verkkokurssi ei sitä kata mm. muistinvaraus ja osoittimien
käyttö käydään läpi lähiopetusjaksoilla.
- ti 25.1.2005 klo 12-16 D122
Kurssin aloitus.
- Käydään läpi kurssin rakenne ja käytettävät
järjestelmät
- C-ohjelmointi unix-ympäristössä
- makefile, kääntäminen
- virheenetsintä: debug, printf
Kalvokopiot osasta materiaalia.
- Etätyöskentely periodi 1
Kaikille opiskelijoille kuuluvat etätehtävät:
- Kirjan luvut 1,2,3 ja 4 (noin sivut 1-92)
- Kirjan tehtävien 4-3, 4-4 ja 4-5 toteutus laitoksen
ympäristössä.
Tehtävässä 4-4 on toteutettava ja käytettävä makroa swap, joka
oikeastaan on tehtävä 4-14.
Tee nämä laajentamalla ohjeen mukaan tehtävä kerrallaan kyseistä ohjelmaa.
Verkkokurssiryhmälle suositellaan myös itseopiskeluryhmän
tehtäviä tuon verkkomateriaalin lisäksi.
- Viopen c-kurssin luvut 1-8
- Kirjan tehtävät 4-3, 4-4 ja 4-5 kuuluvat teillekin.
Itseopiskeluryhmän kannattaa noudattaa vähintäänkin aikataulua yksi luku
per viikko. Tällöin ehtii käydä materiaalin läpi ennen seuraavaa
tapaamista.
Suosittelemme kaikkien tehtävien tekemistä. Jos kuitenkaan aika ei riitä
kaikkiin tehtäviin, niin voisitte harkita ainakin
seuraavien tehtävien tekemistä:
- Luku 1: 1-4, 1-9 tai 1-10, 1-13 tai 1-14, 1-18 ja 1-23. Muita
ehdokkaita:
tehtävät 1-3,1-5 ja 1-15 liittyvät samaan ohjelmaan. Seuraava ryhmä 1-7, 1-8
ja 1-12.
- Luku 2: 2-1, 2-5, 2-7 ja 2-9. Muita ehdokkaita: 2-2, 2-3, 2-8,
2-10.
- Luku 3: 3-2, 3-5. Muita ehdokkaita 3-1, 3-3 ja 3-4
- Luku 4: 4-1, 4-2, 4-13 ja 4-14. Älä unohda noita kaikille annettuja
tehtäviä 4-3, 4-4 ja 4-5.
Kirjan tehtäville on tyypillistä, että joku myöhempi tehtävä jatkaa
jotain aiemmin aloitettua ohjelmaa, joten kannattaa arkistoida
ohjelmansa siten, että ne löytää vielä myöhemminkin.
- ti 22.2.2005 klo 12-16 D122
Muistinvaraus ja osoittimet
- malloc
- pointers
- merkkijonot, merkkivakiot
- komentoriviparametrit
- Yleisön pyynnöstä: Harjoitustyön aiheiden jako
Kalvot: Osoittimet ja komentoriviparametrit
- Etätyöskentely periodi 2
- Viopen verkkokurssin kaikki loputkin luvut (luvut 1-13)
- Muutaman ohjelman toteutus laitoksen ympäristössä
Jos ei ole aikaa tehdä kaikkia kirjan tehtäviä, niin voisi olla hyvä
kuitenkin tehdä tehtävät:
- Luvusta 5: 5-4, 5-7, 5-8 ja 5-13 (Muita ehdokkaita 5-14, 5-15 ja 5-18)
- Luvusta 6: 6-1 ja 6-4
- Luvusta 7: 7-1, 7-2, 7-5 ja 7-6
- ti 22.3.2005 klo 12-16 D122
Monimutkaisempia tietorakenteita
- Tyyppimuunnokset, bittioperaatiot
- Puita, listoja, taulukoita, ...
- Harjoitustyön aiheiden jako ja työn aloitus
Kalvot
- Etätyöskentely periodi 3
- Harjoitustyön suunnittelu ja
toteutus laitoksen ympäristössä
Katso ohjeet harjoitustyön kohdasta.
- ti 26.4.2005 klo 12-16(17) DK116 ja CK111
Kurssin päätöstapaaminen: keskustelua harjoitustöistä, demoja ja ratkaisuperiaatteita.
- 12.15-13.15 aiheet 1-4 salissa CK111 ja aiheet 5-7 salissa DK116.
- 13.15-14.00 keskustelua kokeesta ja vinkkejä
lukemiseen
DK116
- 14.15-15.00 aihe 8 salissa CK111 ja aiheet 9-10 salissa DK116
- 15.15-16.00 henkilökohtaista ohjausta oman aiheen ongelmista tai
yleistä keskustelua kurssista
- Etätyöskentely periodi 4
- Harjoitustyön viimeistely palauttamista varten
- Kokeeseen lukemista
Harjoitustyöohjeet ja
-aiheet tulevat myöhemmin keväällä. Ne noudattavat
aiempien luentomuotoisten kurssien laajuutta.
Tapaamisissa ja sähköpostitse sovitut
aiheet ovat laitoksen intranetissä. Tarvitset laitoksen
käyttäjätunnuksen ja salasanan päästäksesi lukemaan tuota tiedostoa.
Tiedostossa on virheitä ja puutteita, joten varmistathan oman aiheesi ja
ilmoitat vastuuhenkilöille, jos nimesi puuttuu tai on väärän aiheen
kohdalla.
Harjoitustöiden
arviointi- ja palautusohje pyrkii kuvaamaan ne seikat, jotka arvioinnissa käydään läpi.
Kokeeseen saa ottaa mukaan JAVA-kursseilta
tutun yhden A4-arkin kokoisen 'lunttilapun'.
Kurssikokeeseen saavat osallistua vain harjoitustyön ennen koetta
tarkastettavaksi jättäneet opiskelijat.
Kurssikoe on alustavan suunnitelman mukaan to 12.5. klo 16-20 A111. Aika
kannattaa varmistaa laitoksen koeaikataulusta (nähtävillä opiskelusivun
kautta). Jos tähän ajankohtaan osuu paljon päällekkäisiä kokeita, niin
ota välittömästi yhteyttä kurssin vetäjiin. Voimme yrittää tehtä asialle
jotain.
Esimerkkejä aiempien vuosien koetehtävistä ja muutakin informaatiota kokeeseen liittyen on seuraavalla
sivulla
Tapaamisessa sovittiin, että kokeeseen ei tule essee tehtäviä, vaan noin 3
ohjelmointitehtävää. Näistä yksi voi olla myös jotain muuta kuin
uuden ohjelman kirjoittamista
Kurssin arvostelu
Kurssin kokonaispistemäärä on 60, kuten yleensä laitoksen kursseilla.
Arvosana määräytyy myös yleisen mallin mukaan, eli 30 pisteellä saa 1-
ja siitä arvosana nousee kolmen pisteen välein, kunnes 51 pisteellä saa
arvosanan 3.
Harjotustyöstä annetaan 20 pistettä. Nämä pisteet jakautuvat myöhemmin
keväällä ilmoitettavalla (sovittavalla) tavalla tehtävän laajuuden,
ohjelmointityylin, dokumentoinnin, testikuvauksen ja ohjelman
toimivuuden kesken.
Kokeesta saa 40 pistettä. Kokeessa todennäköisesti kysytään pienten
ohjelmien muodossa c-kielelle ominaisia piirteitä. Jokin verran kokeessa
toki mitataan myös yleistä ohjelmointitaitoa, vaikka pääpaino onkin
c-kielisissä toteutuksissa.
Kummastakin osiosta on saatava puolet pisteistä, jotta kurssista voi
päästä läpi.
Kiinnostavia linkkejä
Tähän listaan tulee linkkejä, joita löydämme tai joista kerrotte meille.
Näiden linkkien tavoitteena on tukea itsenäistä C-kielen opiskelua.
There is no possibility of participating this course in English during
Spring 2005. The web-based course is available only in Finnish.
Sivu luotu 28.12.2004, Tiina Niklander
[an error occurred while processing this directive]