DV1457 Programmering i UNIX-miljö

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

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%
  • Period: 2020 vecka 36 till 2020 vecka 44
  • 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.

Generella förmågor

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.

Arbetslivsanknytning

Större laborationsuppgifter.

Lärare

Examinator
  1. Lars Lundberg
Kursansvarig
  1. Stefan Axelsson

Planerade lärtillfällen

Föreläsningar, laborationer och examination.

Tidsåtgång

I genomsnitt bör en student räkna med att studera 200 timmar för att nå lärandemålen.
I denna tid ingår alla olika förekommande lärandeaktiviteter (föreläsningar, självstudier, examination m. m.).
Tidsuppskattningen baseras på att ett akademiskt år omfattar 60 högskolepoäng (motsvarar 60 ECTS credits),
som svarar mot en total studietid på ca 1 600 timmar. Den faktiska studietiden varierar individuellt.

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.

Kommande tentamenstillfällen

Inga kommande centralt samordnade tentamenstillfällen hittades för denna kurs.

För att få delta vid ett centralt samordnat tentamenstillfälle måste du ha anmält dig i Studentportalen senast 15 dagar innan tentamensdagen.


Lokal och tidpunkt publiceras ca 5 dagar innan tentamensdagen.


Det kan finnas andra planerade examinationstillfällen. Information om de finns i It's Learning eller på annan plats som kursansvarig hänvisar till.

Kursutvä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.