58127 C-ohjelmointi (4 op /2 ov) Kevät 2006
Kevään 2006 C-kurssi käsittää luennot, harjoitukset, verkkokurssiosion, harjoitustyön ja kurssikokeen. Kurssi on kahden periodin mittainen.Ajankohtaista
- [26.09.2006] Erilliskuulustelu 12.09.2006 on tarkastettu ja tulokset ovat intranetissa. Omien vastaustensa arvosteluun voi käydä tutustumassa Liisa Marttisen vastaanottoaikoina tai sopimalla sähköpostitse jonkin muun ajan.
- [19.06.2006] Erilliskuulustelu 13.6.2006 on tarkastettu ja tulokset ovat intranetissa.
Omien vastaustensa arvosteluun voi käydä tutustumassa Liisa Marttisen vastaanottoaikoina tai sopimalla sähköpostitse jonkin muun ajan.
- [19.05.2006] Kurssikoe on tarkastettu ja tulokset ovat intranetissa.
Omien vastaustensa arvosteluun voi käydä tutustumassa Liisa Marttisen vastaanottoaikoina tai sopimalla sähköpostitse jonkin muun ajan.
Seuraava erilliskuulustelu on ti 13.6. 16-20 A111. Siihen voivat osallistua kaikki ne kurssilaiset, jotka ovat jättäneet harjoitustyönsä tarkastettavaksi viimeistään maanantaina 12.6. Kokeeseen on ilmoittauduttava normaalisti.
- [20.4.2006] C-harjoitustöiden palautus sähköpostitse: laskintyöt palautetaan Risto Saarelmalle (risto.saarelma@iki.fi) ja muut työt Liisa Marttiselle (liisa.marttinen@cs.helsinki.fi)
- [6.4.2006] Verkosta löytyi luettelo gcc-kääntäjän yleisimmistä varoitus- ja virheilmoituksista. Luettelosta voi olla apua harjoitustyötä tehtäessä.
- [16.3.2006] Niille, jotka kurssikokeelle varattuna koeaikana suorittavat Käyttöjärjestelmät II -kurssin tai jonkin muun kurssin kokeen, järjestetään ylimääräinen C-kurssin koe 8.5. klo 9-12.
- [16.3.2006] Muista ilmoittaa harjoitustyösi aihe viimeistään 17.3. Liisa Marttiselle (liisa.marttinen@cs.helsinki.fi). Tässä on jo aiheensa ilmoittaneiden lista.
- [2.3.2006] Ohjeita harjoitustyön tekemiseen
- [26.2.2006] C:n ja KJ-II:n kurssikokeet ovat samaan aikaan. C-ohjelmoinnista järjestetään vaihtoehtoinen koeaika myöhemmin tenttiviikolla. Pyydämme kaikkia joille koeaika 2.5. ei käy, lähettämään sähköpostia luennoijille viimeistään pe 17.3. ja kertomaan kaikki muut sopivat koeajat tenttiviikolta.
- [21.2.2006] Viopen vapaaharjoittelulinkin toiminta on beta-testausvaiheessa ja sen saa käyttöönsä kirjautumalla järjestelmään osoitteen beta.viope.com kautta. Normaalisti helsinki.viope.fi:n kautta kirjautuessa linkki näkyy mutta ei toimi.
- [21.2.2006] Harjoitustöiden aiheet
- [14.2.2006] Luentokerralla 6 käsitellään tietueiden lisäksi myös niihin ja osoittimiin pohjautuva tietorakenne linkitetty lista
- [14.2.2006] Luennon 5 kalvoihin tuli vielä tiistaina pieni päivitys, joten maanantainen versio on pieneltä osin erilainen.
- [1.2.2006] Viope harjoitusten pohjalta annettavat
lisäpisteet lasketaan 2. periodin alussa ma 13.3. tilanteen mukaan.
Senkin jälkeen harjoituksia voi toki tehdä, mutta ne eivät enää vaikuta
pisteytykseen.
Nopeimmat voisivat käydä vielä varmistamassa, että olette tehneet myös pelkkiä harjoituksia sisältävän luvun 14 tehtävät. Ne tulivat pienellä viiveellä verkkoon. - [24.1.2006] Jan Lindströmin verkkomoniste on linkitetty kurssin
sivulta.
Luentokertojen 1 ja 2 kalvot on linkitetty. - [19.1.2006] Viopeen ilmoittautuneista opiskelijoista verkkokurssille on nyt hyväksytty luennolla olleet ja muuten yhteyttä henkilökohtaisesti ottaneet opiskelijat.
- [17.1.2006] Kurssille perustetaan toinen laskuharjoitusryhmä. Kaikki ilmoittautuneet pääsevät mukaan kurssille.
Luennot
17.01.-21.02. TI 16-18 CK11214.03.-25.04. TI 16-18 CK112
Ass. Liisa Marttinen, Leht. Tiina Niklander
Harjoitukset
Tuntiop. Risto Saarelma
Ryhmä 1: 08.02.-22.02. KE 12-14 B222, 15.03.-29.03. KE 12-14 C221
Ryhmä 2:
08.02.-22.02. KE 14-16 CK107,
15.03. KE 14-16 C221,
22.03. KE 14-16 B221,
29.03. KE 14-16 B119
Verkkokurssiosuus
Kurssilla on mahdollisuus käytää Viope Solutions Oy:n opetusmateriaalia ja verkko-oppimisympäristoä. Kyseessä on siis kaupallinen materiaali, josta maksetaan ihan oikeasti käytön mukaan.
Mikäli haluat käyttää verkkokurssia, niin 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, tunnuksen voit myös valita vapaasti.
Kukin verkkomateriaalia käyttävä opiskelija kuluttaa yhden maksullisen lisenssin ja siksi kurssia aloittaessaan jokaisen on sitouduttava suorittamaan kurssi loppuun asti.
Verkkokurssiosuus kattaa vain osan kurssin aineistosta. Sen tarkoituksena on helpottaa C-kielen oppimista ja rohkaista ohjelmoimaan C-kielellä. Viopen verkkomateriaali on suunnattu aloitteleville ohjelmoijille, joten ensimmäisiin lukuihin ei ole tarkoitus käyttää kovinkaan paljoa aikaa.
Kurssimateriaali
Kurssikirjana käytetään Tomasz Müldnerin kirjaa C for Java programmers , Addison-Wesley 2000, ISBN 0-201-70279-7 Kirjaan liittyvällä sivustolla on mm. luettelo havaituista virheistä, kirjan ohjelmakoodit, kalvosarja yms. materiaalia.
Jan Lindströmin vuosina 2000 ja 2001 laatima verkkomoniste on myös kurssin opiskelijoiden käytettävissä.
Verkkomateriaalina on Viope Solutions Oy:n kehittämä C-kurssi.
Muuta C-kirjallisuutta
Muita C-kielen oppikirjoja on runsaasti. Ehkä tärkein näistä on C-kielen klassikkoKernighan B.W. & Ritchie D.M.: The C Programming Language, 2nd ed. , Prentice Hall 1988. (ANSI C edition)
Kirja on saatavilla myös suomenkielisenä IT Pressin julkaisemana pocket-kirjana: Kernighan B.W. & Ritchie D.M.: Kernighan B.W. & Ritchie D.M.: Ohjelmointi (Pocket).
Kirjaan liittyy myös suhteellisen hyvä kommenttisivusto ja kirjan tehtävien ratkaisuja.
Kurssin aikataulu
Tämä aikataulu tarkentuu kurssin edetessä.
Kurssilla on 9 luentokertaa ja 6 harjoituskertaa. Lisäksi 3 kurssin harjoitustyön ohjauskertaa.
Periodi/viikko | Luentojen sisältö | Harjoitukset | |
Periodi I/1 (17.1.) |
Kurssin aloitus Kalvot 2p, 6p |
Verkkokurssin harjoituksia | |
Periodi I/2 (24.1.) |
Tyypit, rakenteet ja makrot Kalvot 2p, 6p |
Verkkokurssin harjoituksia | |
Periodi I/3 (31.1.) |
Tekstitiedostot Kalvot 2p, 6p |
Verkkokurssin harjoituksia | |
Periodi I/4 (7.-8.2.) |
Funktiot Kalvot 2p, 6p |
1. harjoitus: tekstitiedostot
12-14: B222; 14-16: CK107 |
|
Periodi I/5 (14.-15.2.) |
Osoittimet Kalvot 2p, 6p |
2. harjoitus: funktiot
12-14: B222; 14-16: CK107 |
|
Periodi I/6 (21.-22.2.) |
Tietueet ja joukot sekä linkitetty lista Kalvot 2p, 6p |
3. harjoitus: osoittimet
12-14: B222; 14-16: CK107 |
|
Periodi II/1 (14.-15.3) |
Merkkijonot ja komentoriviparametrit Kalvot 2p, 6p |
4. harjoitus:tietueet ja joukot
12-14: C221; 14-16: C221 |
|
17.3. | Sovi harjoitustyön aiheesi viimeistään pe 17.3. | ||
Periodi II/2 (21.-22.3.) |
Taulukot ja binääritiedostot Kalvot 2p, 6p |
5. harjoitus: merkkijonot ja komentoriviparametrit
12-14: C221; 14-16: B221 |
|
Periodi II/3 (28.-29.3.) |
Modulaarinen ohjelmointi Kalvot 2p, 6p |
6. harjoitus: taulukot
12-14: C221; 14-16: B119 |
|
Periodi II/4 (5.4.) |
--------- |
Harjoitustöiden ohjausta ja neuvontaa
keskiviikkona 12-16 salissa A319 |
|
Periodi II/5 (12.4.) |
--------- |
Harjoitustöiden ohjausta ja neuvontaa
keskiviikkona 12-16 salissa A319 |
|
Periodi II/6 (19.4.) |
--------- |
Harjoitustöiden ohjausta ja neuvontaa
keskiviikkona 12-16 salissa A319 |
|
24.4. | Harjoitustyön palautus 24.4. | ||
2.5. | Kurssikoe 2.5. klo 16-19 |
Harjoitustyö
Kurssiin liittyy harjoitustyö, jonka tekeminen aloitetaan 1. periodin lopulla. Harjoitustyön on valmistuttava ennen kurssin kuulustelua, alustavasti 24.4. Harjoitustöiden aiheet on nyt julkaistu.
Tämän kurssin omat täsmälliset ohjeet ilmoitetaan myöhemmin. Nopeimmat harjoitustyön tekijät voivat käyttää viime kevään kurssin ohjeita. Arvostelun osalta noita viime kerran ohjeita ei kannata lukea. Arvostelu muuttuu, koska pisteytyskin on muuttunut.
Kurssikoe
Osallistumisoikeus kokeeseen on kaikilla harjoitustyön ennen koetta palauttaneilla.
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.
Kokeessa edellytetään osattavaksi kielen perusrakenteiden lisäksi:
- Funktiot ja erityisesti niiden parametrien käyttö
- Taulukko
- Tekstitiedosto
- Linkitetty tietorakenne ja osoittimet
- Komentoriviparametrit
- Merkkijonot
Näistä muodostetaan sitten kokeessa erilaisia yhdistelmiä eri tehtävissä.
Kurssikoe on alustavan suunnitelman mukaan ti 2.5. klo 16-19. Aika kannattaa varmistaa laitoksen koeaikataulusta. Siellä myös ilmoitetaan kokeen sali.
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.
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 viiden pisteen välein, kunnes 50 pisteellä saa arvosanan 5.
Kurssin kokeesta saa maksimissaan 40 pistettä. Kurssi läpäisemiseen kokeesta on saatava vähintään puolet pisteistä eli 20 pistettä.
Viope-verkkokurssin tehtävien tekemisestä saa 5 pistettä, samoin kurssin harjoitustehtävistä toiset 5 pistettä. Pisteitä saa tehdyistä tehtävistä seuraavasti:
tehtyjä tehtäviä pisteitä 80% 5 60% 4 40% 3 20% 2 vähintään 1 1
Harjoitustyöstä saa maksimissaan 10 pistettä. Kurssi läpäisemiseen tarvitaan vähintään 3 pistettä harjoitustyöstä. Harjoitustyön pisteet jakautuvat myöhemmin keväällä ilmoitettavalla (sovittavalla) tavalla tehtävän laajuuden, ohjelmointityylin, dokumentoinnin, testikuvauksen ja ohjelman toimivuuden kesken.
Viope-harjoitusten pisteytys
Viope-verkkokurssin tehtävistä saa 1-5 pistettä, jos niistä on tehnyt edes yhden.
Kurssissa on 36 ohjelmointi ja 66 monivalintatehtävää. Puhdas
yhteenlasku suosii liikaa pelkkiä
monivalintatehtäviä tehneitä ja siksi pisteet lasketaan seuraavasti:
eli prosenttiosuutta laskettaessa ohjelmointitehtävien painoarvo on yksi ja monivalintatehtävien puolikas. Täydet 5 pistettä saa siis esimerkiksi tekemällä joko (kaikki ohjelmointitehtävät ja 39 monivalintatehtävää) tai (kaikki monivalintatehtävät ja 23 ohjelmointitehtävää)
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.
- The Ten Commandments for C Programmers
- The Top 10 Ways to get screwed by the "C" programming language
- Jukka Korpelan linkkisivut C-kieleen liittyvistä sivustoista
- http://www.ohjelmointiputka.net/oppaat.php suomenkielisiä oppaita eri ohjelmointikielille myös C:lle.
- http://www.programmersheaven.com/ Erilaisia kehitystyökaluja ja koodin pätkiä useille eri kielille myös c:lle
- Oulun yliopiston C-ohjelmointi
English version
The Spring 2006 course will be given fully in Finnish. However, if you cannot follow Finnish lectures and need to do the course now, please contact the lecturers (Liisa or Tiina). We can negotiate about an individual way of taking the course.
Sivu luotu 3.1.2006, Liisa Marttinen
Muokattu 19.1.2006 Tiina Niklander