Skriv ut som pdf om du vill ha en pdf! Om du vill ha en snyggare utskrift, klicka bort webbläsarens automatiskt tillagda sidhuvud och sidfot.

Blekinge Tekniska Högskola
Institutionen för datavetenskap

Revision: 3
Dnr: BTH 4.1.1-0274-2013


Kursplan

Programmering i UNIX-miljö

Programming in UNIX Environment

7,5 högskolepoäng (7.5 credits)

Kurskod: DV1457
Huvudområde: Datavetenskap, Programvaruteknik
Utbildningsområde: Tekniska området
Utbildningsnivå: Grundnivå
Fördjupning: G2F - Grundnivå, har minst 60 hp kurs/er på grundnivå som förkunskapskrav

Undervisningsspråk: Engelska
Gäller från: 2013-05-21
Fastställd: 2013-05-21

1. Beslut

Denna kurs är inrättad av Sektionen för datavetenskap och kommunikation 2013-05-21. Kursplanen är fastställd av Sektionen för datavetenskap och kommunikation 2013-05-21 och gäller från 2013-05-21.

2. Förkunskapskrav

För tillträde till kursen krävs att den studerande har avklarat kurser i programmering, 15 hp, algoritmer och datastrukturer, 6 hp, operativsystem, 6hp och datakommunikation alt lokala nätverk, 4 hp.

3. Syfte och innehåll

3.1 Syfte

Syftet med kursen är att studenten ska tillägna sig en fördjupad förståelse för UNIX-baserade system och för operativsystemnära programmering. Detta innebär bl a att kunna programmera på operativsystemets mest abstrakta nivå, närmast användaren, och nedåt genom abstraktionsnivåerna till den lägsta nivån, systemanropen.
Kursen lär ut hur man designar mjukvara som interagerar med datorn via operativsystemet UNIX (och UNIX-baserade/liknande operativsystem såsom Linux och MacOS). Den lägger grunden för vidare studier inom andra områden (till exempel datasäkerhet) som kräver konkret förståelse för den underliggande teknologin. Syftet uppnås genom att studenten via en serie laborationer får praktisk erfarenhet av att utveckla program i en UNIX-miljö.

3.2 Innehåll

Kursen behandlar följande specifika abstraktionsnivåer av UNIX-programmeringen mer i detalj:

  • Kommandon och script-språk. Scriptspråk är ett sätt att automatisera det som normalt anses vara användarinteraktion, det vill säga att interaktivt ge datorn kommandon att till exempel läsa in filer, sortera innehållet och skriva ut dem. På så vis är script-språk (exemplifierat med Bourne shell) mycket kraftfulla, men tyvärr ocksåmindre generella än vanliga programspråk.
  • Programutveckling i C. C är grundpelaren i programmering av UNIXapplikationer, och ofta är stora delar av UNIX-system skrivna i C. Avancerad UNIX-programmering, t ex implementation av nätverkstjänster, utförs ofta i C med hjälp av system- och biblioteksanrop till operativsystemet.
  • Programutveckling i assemblerspråk. Ibland är högnivåspråk såsom C inte tillräckligt uttrycksfulla eller bär på oönskad eller onödig funktionalitet, som kan påverka prestanda. Då kan det bli nödvändigt/viktigt att kunna tala ”direkt” till datorn på dess egna språk, dvs i assemblerspråk. En viktig fördel med att kunna programmera ”maskinnära” är en fördjupad förståelse för hur datorn verkligen arbetar.

4. Lärandemål

Följande lärandemål examineras i kursen:

4.1. Kunskap och förståelse

Efter genomförd kurs skall studenten:

  • ha en förståelse för UNIX-systemets huvudsakliga delar och hur dessa delar hör ihop.
  • ha grundläggande kunskap om programmering i skript-språk.
  • ha en grundläggande kunskap om hur program skrivna i C interagerar med operativsystemet i en UNIX-miljö.
  • ha grundläggande kunskap om programmering i assemblyspråk och programvarans interaktion på hårdvaran på en maskinnära nivå.

4.2. Färdighet och förmåga

Efter genomförd kurs skall studenten:

  • kunna använda UNIX-systemets kommandoradgränssnitt.
  • kunna skriva program med hjälp av byggstenarna i UNIX programmeringsgränssnitt.
  • kunna utveckla program i C och assemblerspråk som kan köras i en UNIX-miljö.

***Värderingsförmåga och föhållningssätt***

Efter genomförd kurs skall studenten:

  • kunna avgöra vilken abstraktionsnivå på programmeringen som är mest lämplig för att lösa en viss uppgift.
  • muntligt och skriftligt kunna motivera, diskutera och värdera sina lösningar.

5. Läraktiviteter

De teoretiska grunderna i kursen presenteras på föreläsningar och/eller övningar. Studenten förväntas dessutom att självständigt tillgodogöra sig teoretiska kunskaper med hjälp av självstudier av relevant litteratur.
De teoretiska kunskaperna tillämpas och fördjupas på praktiska laborations-/projektuppgifter där ämnesrelaterade problem ska lösas genom implementation i aktuellt system. Varje laboration redovisas skriftligt och muntligt.

6. Bedömning och examination

Examinationsmoment för kursen

Kod Benämning Omf. Betyg
1310 Shellscript-programmering 2,5 hp AF
1320 UNIX-programmering i C 2,5 hp AF
1330 Assemblerprogrammering 2,5 hp AF

Kursen bedöms med betygen A Utmärkt, B Mycket bra, C Bra, D Tillfredställande, E Tillräckligt, FX Underkänd, något mer arbete krävs, F Underkänd.

Slutbetyget är ett viktat och avrundat genomsnitt av betygen på momenten. Om sammanvägt betyg ligger exakt mellan två betygssteg sker avrundning nedåt.

I kurstillfällets information inför kursstart framgår i vilka examinationsmoment som kursens lärandemål examineras samt gällande bedömningsgrunder.

Examinator kan, efter samråd med högskolans FUNKA-samordnare, fatta beslut om anpassad examinationsform för att en student med varaktig funktionsvariation ska ges en likvärdig examination jämfört med en student utan funktionsvariation.

7. Kursvärdering

Kursvärdering ska göras i enlighet med BTH:s beslut om frågeställning i kursvärderingar och beslut om process för hantering och uppföljning av kursvärderingar.

8. Begränsningar i examen

Kursen kan ingå i examen men inte tillsammans med annan kurs vars innehåll, helt eller delvis, överensstämmer med innehållet i denna kurs.

9. Kurslitteratur och övriga lärresurser

Huvudlitteratur

[1] Stephen Rago, Richard Stevens Advanced

Programming in the UNIX Environment,

2nd ed. Addison-Wesley Professional, 2005,

ISBN 0201433079

[2] Material från sektionen.

--

Referenslitteratur

[1] Brian W. Kernighan, Dennis M. Ritchie The

C Programming Language, 2nd ed. Prentice

Hall, 1998, ISBN 0131103628

[2] B. Stroustrup The C++ Programming Language,

4th ed. Pearson Education, 2013,

ISBN 0-321-56384-0

[3] N.M. Josuttis The C++ Standard Library:

A Tutorial and Reference, 2nd ed. Pearson

Education, 2012, ISBN 0-321-62321-52

10. Övrigt

De huvudsakliga programmeringsspråken är C och Bourne Shell. Studenterna förväntas behärska dessa programmeringsspråk eller lära sig dem på egen hand under kursens gång. Ersätter DV1305 och DV1425.