DV1457 Programmering i UNIX-miljö

Programkurs, 7,5 Högskolepoäng, Grundnivå, höstterminen 2023

Denna kurs är del av program och går inte att söka till.

Kursen innehåller två huvuddelar: användning av avancerade system och utveckling av program på olika systemnivåer. Speciellt behandlas följande: Kommandon och scriptspråk. Programutveckling i C/C++. Programutveckling i assembler.

Kursen avser att ge en fördjupad förståelse av Unix-baserade system samt fördjupade kunskaper i operativsystemnära programmering.

Fakta

  • Undervisningsform: Campus, dagtid, deltid 50%
  • Studietid: 2023 vecka 35 till 2023 vecka 43
  • Nivå: G2F
  • Anmälan: Denna kurs är del av program och går inte att söka till.
  • Språk: Undervisningen ges på engelska.
  • Ort: Karlskrona
  • Huvudområde: Datavetenskap
  • Kursplan: Ladda ner
  • Välkomstbrev: Denna kurs är en del av ett program och saknar välkomstbrev.
  • 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.

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.

Lärandemål

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å.

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.

Kurslitteratur och övriga läromedel

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

Kurslitteratur och övriga läromedel

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

Lärande och undervisning

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.

Lärare

Planerade lärtillfällen

Föreläsningar, laborationer och examination.

Bedömning

Examinationsmoment för kursen
Kod Benämning Högskolepoäng Betyg
1310 Shellscript-programmering 2.5 A-F
1320 UNIX-programmering i C 2.5 A-F
1330 Assemblerprogrammering 2.5 A-F

Betyg

Kursen bedöms med betygen A Utmärkt, B Mycket bra, C Bra, D Tillfredsställande, E Tillräckligt, FX Otillräckligt, komplettering krävs, F Underkänd.

Tentamina

Du kan läsa mer om tentamen i Studentportalen och där anmäler du dig till de flesta tentamina.


Det kan finnas andra planerade examinationstillfällen. Information om dem finns i lärplattformen Canvas eller på annan plats som kursansvarig hänvisar till.

Kursvärdering

Kursansvarig ansvarar för att studenternas synpunkter på kursen systematiskt och regelbundet inhämtas och att resultaten av utvärderingar i olika former påverkar kursens utformning och utveckling.

Har du en fråga? Skriv den här, så återkommer vi så snart som möjligt!
×