Programming in C

58127
5
Ohjelmistojärjestelmät
Aineopinnot
Kurssilla opitaan ohjelmoimaan standardin mukaisella C-kielellä. Esitietoina oletetaan Tietorakenteet ja algoritmit sekä Aineopintojen harjoitustyö: Ohjelmointi. Kurssin harjoitukset alkavat jo ensimmäisellä viikolla ja ne tehdään ohjelmointipajassa. Kurssiin ei enää liity harjoitustyötä, vaan pajatyöskentely sisältää sekä harjoitukset että harjoitustyön. Kurssilla oletetaan, että jokaisella on käytössä jokin C-oppikirja, esim. Müldner, T.: C for Java Programmers, Addison-Wesley, 2000, tai Kernighan B.W. & Ritchie D.M.: The C Programming Language (2nd ed.), Prentice Hall, 1988. (ANSI C edition).

Koe

17.10.2013 16.00 A111 ja B123
Vuosi Lukukausi Päivämäärä Periodi Kieli Vastuuhenkilö
2013 syksy 03.09-08.10. 1-1 Englanti Timo Karvi

Luennot

Aika Huone Luennoija Päivämäärä
Ti 10-12 CK112 Timo Karvi 03.09.2013-08.10.2013

Kaikki ilmoittautuvat jonotusryhmään! Harjoitukset alkavat jo ensimmäisellä luentoviikolla. Harjoitusryhmät pidetään pajassa, jossa tehtävät ratkotaan yhdessä muiden opiskelijoiden sekä ohjaajien kanssa. Ohjaajien läsnäoloajat ilmoitetaan piakkoin.

Exercises begin on the first lecture week. The schedule for exercises will be published soon.

Yleistä

Kurssilla perehdytään C-ohjelmointiin. Pääpaino on käytännön ohjelmoinnissa. Tavoitteena on ohjelmoida  kuuden viikon ajan toistakymmentä tehtävää per viikko. Tänä syksynä ohjelmat voi ensimmäistä kertaa palauttaa palautusautomaatin kautta kuten Java-kursseilla. Ohjeet ilmestyvät tälle sivulle ennen ensimmäistä luentoviikkoa. Samoin ohjausajat pajassa ilmoitetaan tällöin. Pajassa saa neuvoja ratkaisuvaihtoehdoista ja apua virhetilanteiden selvittelyssä. Kurssilla oletetaan, että jokainen osaa ohjelmoida Java-kielellä ja hallitsee tietorakenteet sekä niiden totetuksen. Myös C-oppikirja tai -manuaali on hyödyllinen,  sillä luennoilla ei käydä C:tä läpi systemaattisesti.

Kurssiin ei sisälly enää erillistä harjoitustyötä. Sen sijaan osa joidenkin viikkojen (laajahkoista)  tehtävistä on pakollisia ja näiden ohjelmoiminen vastaa aikaisempaa harjoitustyötä. Pakollisissa tehtävissä on mahdollista käyttää joitakin aikaisempien viikkojen ratkaisuja joko suoraan tai vähän muokattuna, joten kaikkien tehtävien ratkaiseminen on suositeltavaa. 

Tehtävät palautetaan TestMyCode - järjestelmään, joka on ollut käytössä viimevuosina ohjelmoinnin perusteissa ja ohjelmoinnin jatkokurssilla.

Installation Guide for TMC plugin: https://www.cs.helsinki.fi/group/cpro/c.html

Help for installing TMC plugin and NetBeans are given in paja. You may also email guestions aboTMC to Jarmo, jarmo.isotalo@cs.helsinki.fi.

 

Paja-ajat - Workshop times

Weekly workshop times /paja-ajat vary on each week, depending how much there are need for paja.

Paja times for sixth week:

  • Monday: 12-14
  • Wednesday: 16-18
  • Thursday: 12-14
  • Friday: 13-16

More times will be announced soon.

Paja is at BK107 or B221

Remember that (paja=workshop) class can be used each day 07.45-19.30

 

Course in TMC: http://tmc.mooc.fi/hy/courses/25

Kurssin suorittaminen

Kurssi suoritetaan tekemällä harjoituksia ja osallistumalla kokeeseen. Harjoituksista osa on siis pakollisia. Maksimipistemäärä harjoituksista on 30 ja kokeesta 30.  Läpipääsyraja on 30. Kuitenkin kokeesta täytyy saada yli puolet pisteitä eli vähintään 15 pistettä, jotta kurssin saisi suoritettua hyväksytysti. Kokeessa ohjelmoidaan joitakin harjoitustehtäviä ja vastataan teoriakysymyksiin.

The course is passed by making exercises and taking part in the exam. Some of the exercises are compulsory.  The exam and exercises produce points. The maximum amount of points from exam is 30, and from exercises 30. So together 60 points. You need 30 points to pass the course, but you must get at least 15 points of the exam points.

Compulsory exercises can be returned later than the deadline, but in that case they do not produce points. The compulsory exercises are : 4-9 of the exercises of the third week, all the exercises of the fourth week.

Exercises for week1: https://www.cs.helsinki.fi/group/cpro/harj1_13.pdf - Deadline Monday 9.9.2013 23:59

Exercises for week2: https://www.cs.helsinki.fi/group/cpro/harj2_13.pdf - Deadline Monday 16.9.2013 23:59

Exercises for week3: https://www.cs.helsinki.fi/group/cpro/harj3_13.pdf - Deadline Monday 23.9.2013 23:59

Exercises for week4: https://www.cs.helsinki.fi/group/cpro/harj4_13.pdf - Deadline Monday 30.9.2013 23:59

Exercises for week5: https://www.cs.helsinki.fi/group/cpro/harj5_13.pdf - Deadline Tuesday 8.10.2013 23:59

Exercises for week6: https://www.cs.helsinki.fi/group/cpro/harj6_13.pdf - Deadline  Frieday 18.10 23.59

OBS: Some of the exercises are compulsory. In the week 3, exercises 4-9 are compulsory. They must be made in order to pass the course.

Huomaathan, että mikäli testit ja tehtävänanto vaativat eriävän ratkaisun, on testien vaatima ratkaisu oikea.

Mikäli tehtävänannoissa tms. on epäselvyyksiä, ilmoita siitä IRCssä kanavalla #cee (@IRCnet) Jamo:lle

Exercises can be downloaded from TMC server (installation guide above)

 

Remember that partial solutions to exercises can be submitted to server:

Kirjallisuus ja materiaali

Lecture notes for week 1: https://www.cs.helsinki.fi/group/cpro/c1-bea_13.pdf

Lectuure notes for week 2: http://www.cs.helsinki.fi/group/cpro/c2-bea_13.pdf

Lecture notes for week 3: http://www.cs.helsinki.fi/group/cpro/c3-bea_13.pdf

Lecture notes for week 4: http://www.cs.helsinki.fi/group/cpro/c4-bea_13.pdf(corrections in the bit mask example, September 26.)

Lecture notes for week 5: http://www.cs.helsinki.fi/group/cpro/c5-bea_13.pdf

Lecture notes for week 6: http://www.cs.helsinki.fi/group/cpro/c6-bea_13.pdf

Viikon luentokalvot tulevat jakoon tälle sivulle ennen viikon luentoa. Kalvot eivät välttämättä  riitä kaikkien tehtävien ratkaisemiseen, vaan tueksi tarvitaan myös oppikirja. Esimerkiksi

1) Tomasz Muldner: C for java programmers,

2) K. N. King: C Programming, A Modern Approach.