NITH 2012 - 2013 / Emner / Programmeringsemner (PG,IPG) / PG3400 Programmering i C for Linux  

PG3400 Programmering i C for Linux

Emnenivå
Bachelor

Emnekode
PG3400

Emnenavn
Programmering i C for Linux

Studiepoeng
7,50

Emneansvarlig
Kjetil Raaen

Godkjenningsdato


Hensikt
Emnet gir innføring i programmeringspråket C og hvordan dette kan brukes til å interaktere direkte med operativstytemet. Det skal også gi forståelse av operativsystemet Linux og kunnskap om hvordan dette virker.

Forutsetninger
Grunnleggende programmeringskunnskap (PG2100 Programmering 2 eller tilsvarende) samt grunnleggende digital teknologi (TK1100 Digital teknologi eller tilsvarende).

Læringsutbytte

Kunnskaper

Etter å ha fullført emnet skal studenten:

  • Kjenne til operativsystemene Unix og Linux:
    • bakgrunn og historie
    • overordnet arkitektur og oppbygning
  • Kjenne til utviklingen av og bruksområdet for programmerinspråket «C»
  • Forstå hva «viritualisering» er
  • Kjenne til byggeprosessen i C inkludert:
    • compile
    • link
  • Forklare konseptet «everything is a file» og kjenne til eksempler inkludert:
    • devices
    • procfs
  • Forstå hva et «filsystem» er og hva det brukes til
  • Forstå konseptene bak brukere og permissions i Linux
  • Kjenne til forskjellen på userspace og kernelspace og hvordan bruke systemkall og signaler
  • Kjenne til minneområdene «stack» og «heap» og forklare forskjellen

Ferdigheter

Etter å ha fullført emnet skal studenten:

  • Bruke grunnleggende konstuksjoner i programmeringspråket «C» inkludert:
    • main, basic types, printf, scanf, strings, #include, enum, typedef, struct, union, command line parameters, macros, varargs
    • Statisk minnehåndtering
  • Utvikle programmer under paradigmet «strukturert programmering»
  • Anvende dynamisk minnehåndtering inkludert:
    • malloc, free, pointers, memcpy, sprintf, arrays, sizeof
  • Lese og skrive enkeltbits og grupper av bits in en større datastruktur.
  • Generere kjørbare filer fra C-kode
    • makefile
    • static libraries
  • Implementere lesing og skriving til fil
    • r/w modes
    • seek
    • buffer size
  • Operere kommandolinjen i linux for å utføre viktige operasjoner inkludert:
    • ls, cd, mkdir, rm, cp, chmod, chown, pwd, ps, kill, man, wget
    • pipes, redirection
    • starte programmer
    • mounting av filsystemer

Generell kompetanse

Etter å ha fullført emnet skal studenten kunne:

  • Vurdere hvilke situasjoner det er fornuftig å bruke programmeringspråket «C»
  • Anvende «C» for å løse systemprogrammeringsoppgaver
  • Forholde seg til manuell minnehåndtering
  • Forholde seg til linux som operativsysem
Gjennomføring
Kurset gjennomføres med 12 forelesninger a ca 2 timer og 12 lærerstyrte øvinger a ca 2 timer. Øvingene er ikke obligatoriske, men for å oppnå kompetansemålene forventes det at studentene fullfører øvingsoppgavene på egenhånd der øvingstimene ikke strekker til.

Anbefalt tidsbruk

Aktivitet

Tidsbruk

Deltakelse i undervisning/forelesning

24

Selvstudium

110

Forberedelse til presentasjon/diskusjon

0

Øving/prosjektarbeid/workshop

24

Vurdering

42

Anbefalt tidsbruk totalt

200

Verktøy

Linux og gcc

Karakterskala
Letter grades A-E for passed and F for failure

Vitnemålstekst
Etter å ha gjennomført emnet skal studentene kunne bruke operativsystemet Linux. De skal også være i stand til å programmere i programmeringspråket «C».

Pensum

Pensum skal være egnet til å sikre kandidatenes kompetanse i relasjon til læringsutbyttene for emnet.

Vurderingstype
Mappevurdering

Vurdering

Vurdering skjer gjennom en mappeoppgave. Mappen består av 4 individuelle innleveringer underveis i semesteret. Mappen vurderes som helhet, ikke med spesifisert vekting per element.




Litteraturliste:
Tittel Forfatter Forlag Utgitt år ISBN Utgave Kommentar Type Litteratur
C Programming for Unix  John Valley  Sams Publishing;  1992  978-0672485183    Bok  Pensum 

Vurdering / Assessment

Vekting (%):
100

Vurderingstype:
Mappe (se emnesiden) / Portfolio

Hjelpemiddel:
Alle / All

Varighet:
-

Semester:
Høst / Autumn