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: 1
Dnr: BTH-4-1-14-0211-2025


Kursplan

Socketprogrammering i C/C++ för internettillämpningar

Socket Programming in C/C++ for Internet Applications

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

Kurskod: DV1728
Huvudområde: Datavetenskap
Utbildningsområde: Tekniska området
Utbildningsnivå: Grundnivå
Fördjupning: G1F - Grundnivå, har mindre än 60 hp kurs/er på grundnivå som förkunskapskrav

Undervisningsspråk: Engelska
Gäller från: 2025-03-13
Fastställd: 2025-03-13

1. Beslut

Denna kurs är inrättad av dekan 2024-11-06. Kursplanen är fastställd av prefekten vid institutionen för datavetenskap 2025-03-13 och gäller från 2025-03-13.

2. Förkunskapskrav

För tillträde till kursen krävs 6 avklarade hp i C-programmering alternativt 12 avklarade hp i annat programmeringsspråk.

3. Syfte och innehåll

3.1 Syfte

Syftet med kursen är att studenterna ska få
- Grundläggande förståelse om hur Internet fungerar, och hur sockets (POSIX) kan användas för att kommunicera över ett IP-nätverk.
- Förståelse hur klient- och serverapplikationer kan designas och implementeras, med focus på UDP och TCP som transportprotokoll.
- Förståelse för olika programmeringsmodeller, samt metoder för att hantera kommunikation till/från system som ligger bakom Nätverksadressöversättning (NAT).

3.2 Innehåll

  • Introduktion och historisk genomgång av datorkommunikation och kommunikationsnätverk.
  • Introduktion till Internet och de vanligaste och viktigaste protokollen (IP, DNS, UDP, TCP, HTTP) i ett Internetperspektiv.
  • Översikt av Ethernet, med fokus på aspekter kopplade till IP-kommunikation.
  • Systematisk genomgång av UDP och TCP för olika kommunikationstillämpningar och programmeringsmodeller.
  • Analys och diskussion av HTTP, SSL och NAT i slutet av kursen.
  • Framåtblick över vad som är på gång inom datorkommunikation.

4. Lärandemål

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

4.1. Kunskap och förståelse

Efter genomförd kurs ska studenten kunna:

  • Beskriva hur kommunikation sker över Internet.
  • Beskriva hur DNS, UDP, TCP och NAT fungerar.

4.2. Färdighet och förmåga

Efter genomförd kurs ska studenten kunna:

  • Implementera en IP/TCP/UDP klient som följer ett applikations protokoll.
  • Implementera en IP/TCP/UDP server som följer ett applikations protokoll.
  • Implementera en IP/UDP/TCP server som hanterar multipla klienter.
  • Implementera en klient som använder sig av HTTP/s för att kommunicera med en server.

5. Läraktiviteter

Kursen använder sig av föreläsningar, seminarier och övningsuppgifter. Den börjar med en kort presentation av internetprotokollet och Ethernet.

Därefter följer en genomgång av UDP-kommunikation och TCP-kommunikation, för både klient- och serverperspektiv. När grunderna är avklarade tittar vi på problematiken som uppstår när vi har flera användare samtidigt, både för UDP och TCP. Studenterna arbetar med små övningsuppgifter på alla dessa delar.

Sedan tittar vi på HTTP, SSL och HTTPS, och utmaningarna att implementera detta på klientsidan. I samband med det blir det också en genomgång av NAT och hur detta kan skapa en kommunikationsutmaning.

Till respektive område finns det examinerande inlämningsuppgifter som kräver att studenten kan tolka, designa och implementera lösningar som uppfyller uppgifternas krav. Inlämningsuppgifterna består av två delar, en källkodsdel och en reflektionsdel. Vid behov kan även en inlämning kompletteras med en diskussion där studenten får förklara och motivera sin källkod.

6. Bedömning och examination

Examinationsmoment för kursen

Kod Benämning Omf. Betyg
2511 Inlämningsuppgift 1 2 hp GU
2521 Inlämningsuppgift 2 2 hp GU
2531 Inlämningsuppgift 3 2 hp GU
2541 Inlämningsuppgift 4 1,5 hp GU

Kursen bedöms med betygen G Godkänd, UX Underkänd, något mer arbete krävs, U Underkänd.

Examinator har möjlighet att muntligen följa upp skriftliga examinationer.

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

Unix Network Programming, Volume 1 – The Sockets Networking API; W. Richard Stevens, Bill Fenner; Andrew M. Rudoff; Third Edition; ISBN 978-0-013-141155-5, 2003

10. Övrigt

Denna kurs ersätter kursen DV1619