AAU logo

Software, civilingeniør

Fagligt indhold

Fagligt indhold

Civilingeniøruddannelsen i software på Aalborg Universitet består af fire semestre, hvor du på de to sidste semestre skal vælge en retning, som du ønsker at fokusere dine studier på:

  • Databaseteknologi
  • Distribuerede systemer
  • Menneske-maskine interaktion
  • Semantik og verifikation
  • Maskinintelligens
  • Systemudvikling
  • Programmeringsteknologi

Se også studieordningen for kandidatuddannelsen i Software. Her kan du finde detaljer om kurser og projekter samt information om uddannelsens lovhjemmel mm.

OBLIGATORISK FOR ALLE IKKE-AAU BACHELORER

Alle bachelorer, som ikke har deres bachelorgrad fra Aalborg Universitet, skal deltage i et kursus om problembaseret læring (PBL) som en del af deres 1. semesterprojekt. Bachelorer, som har fået merit for 1. semester, skal deltage i kurset, så det sikres, at de lærer at arbejde efter PBL-modellen. Læs mere om PBL her.

Nedenfor har vi beskrevet de enkelte studieretninger:

Databaseteknologi

På denne specialisering skal du beskæftige dig med begreber og teknikker fra avancerede databaser, herunder design og implementering. Du kommer til at arbejde med bl.a. multidimensionelle databaser, fx data warehousing, Online Analytical Processing og data mining. Desuden skal du lære om spatiale (rumlige) og spatiotemporale databaser, herunder indeksering og processering af forespørgsler. Specialiseringen handler også om komplekse data i databaser, fx XML, Semantic Web og lign.

Distribuerede systemer

Distribuerede systemer er computersystemer, hvori programmer og/eller data er fordelt over en række samtidigt arbejdende processer, som udgør knudepunkterne i et kommunikationsnetværk, fx datakabler, telefonlinjer, satellitforbindelser osv. Du skal arbejde med videregående teorier og metoder inden for både distribuerede og indlejrede systemer. Fx indeholder kurserne emner som avancerede infrastrukturer og applikationer for fx grid-, cloud-, peer to peer- eller parallelle/multicore systemer.

Desuden kommer du til at lære om system og netværksprogrammel til indlejrede systemer, og du skal arbejde med ad hoc sensor networks, home automation, distribuerede algoritmer, paradigmer til programmering og teknikker til analyse. Med denne specialisering kommer du til at kunne anvende begreber og teknikker fra distribuerede systemer, samt designe og analysere distribuerede og indlejrede systemer.

menneske-maskine interaktion

Menneske-maskine interaktion eller Human-Computer Interaction (HCI) er en videnskabelig retning, som bl.a. handler om, hvordan man opbygger betjeningsdelen af en maskine (typisk men ikke nødvendigvis en grafisk brugerflade til en computer), så den er nem og intuitiv for mennesker at betjene. Ideen er, at brugerne ikke selv skal være teknisk kyndige, men at systemerne skal være tilpassede, så de bliver nemme og logiske at anvende. På denne specialisering kommer du til at arbejde med bl.a. interaktionsdesign og usabilityevaluering, og du bliver i stand til selv at designe og evaluere et konkret system.

semantik og verifikation

Semantik og verifikation handler om et programmeringssprogs opbygning (semantik), og at de anvendte algoritmer opfylder de krav, man har stillet til programmet (verifikation). På specialiseringen i Semantik og verifikation kommer du til at beskæftige dig med avancerede matematiske modeller til formel beskrivelse og verifikation af programmer, softwaresystemer og programmeringssprog. Det kan fx være Binary Decision Diagrams (BDD), SAT-algoritmer, prædikatlogik, Petrinet, temporallogikker og mobile proceskalkyler. Du kommer til at udvikle formelle modeller og verifikationsværktøjer til beskrivelse, analyse og verifikation af softwaresystemer.

maskinintelligens

Maskinintelligens går ud på, at intelligente computersystemer skal kunne tilpasse sig forskellige situationer og forskellige brugere. Fx skal et intelligent informationssystem give information og service, som brugeren netop har brug for, og ikke fremkomme med en masse resultater, som vedkommende ikke har behov for at vide noget om i den givne situation. På specialiseringen i Maskinintelligens skal du arbejde med bl.a. avancerede teknikker i data mining, avancerede metoder til ræsonnement og beslutningstagen under usikkerhed, design af intelligente systemer samt intelligente webbaserede systemer. Du skal også lære at analysere systemers anvendelighed og virkning ved løsning af specifikke opgaver.

systemudvikling

Systemudvikling består af en kombination af at finde frem til kravene til det system, man vil lave, analysere sammenhængene i det samt designe, programmere og teste det. Gennem denne specialisering vil du opnå viden om avancerede emner inden for systemudvikling i teori og praksis, og du kan bl.a. komme til at arbejde med analyse af systemudviklingspraksis, systemudviklingsmetoder, -processer og – kompetencer, organisation og ledelse af systemudvikling samt udvikling af systemer til komplekse sammenhænge, fx understøttelse af samarbejde i organisationer, vidensintensive systemer og informationsinfrastruktur.

programmeringsteknologi

Denne specialisering dækker over et stort spektrum inden for datalogiens verden. Specialiseringen indeholder bl.a. emner som avancerede programmeringsteknologier og -teknikker, herunder programmeringssprog. Du får viden om både nye tendenser inden for programmering samt klassiske avancerede emner. Du kommer til at arbejde med fx biblioteksdesign, scripting, performance studier, forskellige hardware platforme, deklarativ og generisk programmering mm. Med denne specialisering bliver du i stand til at udvælge de rette programmeringsværktøjer til en given opgave, at skrive korrekte og effektive programmer, der er lette at vedligeholde, og du bliver i stand til at vurdere ressourceforbrug, foretage optimeringer og udføre performance studier.

1. SEMESTER, TEMA: INTERNETTEKNOLOGi

På 1. semester af kandidatuddannelsen i software skal du og din gruppe lave projekt inden for temaet ”Internetteknologi”. Her skal I udvikle en internetapplikation, -agent eller -service. Dette skal forstås bredt og spænder fra de mere gængse internetapplikationer til autonome agenter og det såkaldte ”Internet of Things”, hvor internetteknologi benyttes til at knytte fysiske objekter såsom husholdningselektronik sammen, og hvor der ikke nødvendigvis er en traditionel browserbaseret brugergrænseflade.

Projekteksempler på 1. semester

  • Play 2 Learn
  • SmartKitchen
  • Cykelnet

Der er ét obligatorisk kursus på 1. semester, og herudover skal du vælge to blandt tre mulige. Det obligatoriske kursus hedder ”Programmeringsparadigmer”, og her skal du lære om alternativer til imperativ og objektorienteret programmering, fx funktionsorienteret og logisk programmering. Blandt de valgfri kurser kan du lære om data warehousing og data mining, typer af web applikationer og deres anvendelse (fx dataintensive, serviceorienterede, samarbejde, integration, sociale) samt agentarkitektur og -kommunikationssprog.

2. SEMESTER, TEMA: MOBILE SYSTEMEr

Gennem projektarbejdet på 2. semester vil du lære at udvikle mobile applikationer og services. Igen skal temaet forstås bredt; mobile applikationer og services er specielt kendetegnet ved anvendelse af udstyr med begrænsede ressourcer i form af skærm, interaktion, processor og hukommelse. Det er samtidig applikationer, som med et begrænset strømforbrug kan udnytte trådløs kommunikation med andet udstyr og servere, og hvor brugerne og udstyret er mobile, dvs. kan flytte sig.

Projekteksempler på 2. semester

  • FestivalAid
  • Mobile Call Administration for Cisco Terminals
  • TACO : Tourist App for Cultural Organisations

Ligesom på 1. semester er der ét obligatorisk kursus, mens du skal vælge to ud af tre andre. Det obligatoriske kursus hedder ”Software innovation” og handler om innovation af produkter og processer, men også ledelse af innovativt arbejde og personlige og organisatoriske forudsætninger for innovation vil blive inddraget som en del af kurset. I de valgfri kurser kan du komme til at arbejde med arkitektur og programmering af mobil software, positionering og tracking, interaktionsdesign for mobile teknologier, scripting, avancerede biblioteker, softwareværktøjer til automatiseret test og verifikation mm.

3. SEMESTER, TEMA: FORSPECIALISERING I SOFTWARe

På 3. semester vælger du hvilken retning, du ønsker, da du her skal vælge et kursus, som passer til. Projektet laves ligeledes inden for den valgte retning. Selve semesterprojektet hedder overordnet "Forspecialisering i software", som består i, at du lærer at formidle et aktuelt forskningsproblem inden for software, og med forspecialisering menes, at du gennem 3. semesters projektarbejde forbereder arbejdet med dit speciale, som du skal lave på 4. semester.

Projekteksempler på 3. semester

  • A Study of Safety-Critical Java and its Specification Applied
  • Cross-Device Interaction Techniques for Card Games
  • Skyline i MapReduce: Design og Evaluering af Algoritmer

4. SEMESTER, TEMA: SPECIALE I SOFTWARe

Der udbydes ikke kurser på 4. semester, for her skal du bruge hele tiden på dit kandidatspeciale. Det kan laves i grupper eller alene, hvis man ønsker det.

Eksempler på specialer i software

  • Detection of Web Application Vulnerabilities
  • The potential for pervasive computing to change people’s cooking and eating habits
  • Home Automation Systems Integration
  • Behaviour-Based Fuzzy Logic for World of Warcraft
  • Developing a low-cost driving simulator and the physical components effect on validity
  • Emptio - A mobile phone application for selfservice shopping in Harald Nyborg

Når du er færdig med din kandidatuddannelse, er du cand.polyt. (civilingeniør) i software. 

Gruppe- og projektarbejde

Gruppe- og projektarbejde

Gruppe- og projektarbejdet på Aalborg Universitet giver dig mulighed for at få en spændende og lærerig studietid både fagligt og socialt.
 

Læs mere om gruppe- og projektarbejde