Master of Science in Engineering

A master of science in engineering envolves theese main areas:

  • Embedded Systems
  • Modern Artificial Intelligence
  • Robotics
  • Software Systems Engineering

Data technology provides a wide experience with fundamental physical principels concerning design of electronic circuits to advanced software solutions. Detailed information regarding how computers function and how computer technology can be integrated with state of the art high technological machinery and apparatus is basic knowledge when studying computer science of engineering. The education teaches modern interaction between hardware and software in information technology. With a solid background in courses like mathematics, physics, computer science, electronics and data technology the education provides detailed knowledge regarding hardware as well as software.

This page holds information regaring the courses I have attended at the University of Southern Denmark and the image below shows the courses I passed in chronological order.

Courses I have passed

AM/AMP24: Multi-Agent Systems (7.5 ECTS)

Go to top

Aims:

The significance of multi-agent systems research and technology is increasing due to the growing need to coordinate distributed operations, their increasing use to simulate complex systems in a decentralised way, and the developing communication infrastructure. The aim of the course is to give participants a grounding in Multi-Agent Systems - one of the most active areas of Computer Science and Artificial Intelligence - and put them in a position to participate in either Multi-Agent PhD projects and/or to prepare them for MAS use in the industry.

Synopsis:

After a general introduction to Multi-Agent Systems, we present the basic notions of the domain, insisting on methodological issues of how such systems may be conceived and realised. We show how MAS methodology is different from more traditional methodologies and we identify the best problems and the particular domains in which MAS seems to be the most promising paradigm to adopt. We approach MAS starting by splitting them into Agents, Environments, Interactions, Organisations and Dynamics. An important part of the presentation deals with the different types of "Interactions". Starting from Game Theoretic Interactions, followed by the communicational aspects of MAS and Interaction Protocols, we introduce different notions about Coordination, Coherence, Task Allocation and Negotiation. A discussion about "Organisations" and "Dynamics" of MAS follows. Having settled the different parts that constitute a MAS, enriched by MAS Learning issues, we then deal with the programming tools (from languages for building MAS to integrative enviroments) before presenting Multi-Agent Orented Programming (from agentcentred approach to alternative approaches where interactions or organisations may be considered at first). Implementation experiences are shared. In the final part of the presentation, examples of real-world applications are presented in various domains (vision, GIS, NLP, robotics, simulaiton of complex natural systems, software engineering, telecommunications, town and country development, Internet applications). We conclude by presenting current MAS structures (organisations and events) and we report some recent major MAS events. Emphasis is given to concepts, results, and algorithms that have direct applications to computational multi-agent systems. As part of the course, several exercises are analysed and programmed using a standard multi-agent oriented programming tool.

AM04: Adaptive Robotics (7.5 ECTS)

Go to top

Aims:

To give participants theoretical and practical understanding of modern artificial intelligence approaches to robotics. The course will enable the participants to use these approaches in practise with mobile robots.

Synopsis:

  • Neural network control.
  • Evolutionary robotics.
  • Behavior-based systems.
  • Biologically inspired robotics.
  • Artificial intelligence.
  • Simulation-reality transfer.

SD07: Pervasive and Ubiquitous Systems (9 ECTS)

Go to top

Prerequisites:

Prerequisites for SD01 - SD08 are fundamental knowledge about and experimental experience with:

  1. Object-oriented programming (e.g. Java)
  2. Construction of object-oriented systems using algorithms and data structures from libraries and frameworks (e.g. J2SE)
  3. Object-oriented analysis and design processes (e.g. Unified Process) as well as graphical modelling languages (e.g. Unified Modelling Language)
  4. Object-oriented construction of distributed and concurrent systems (e.g. using remote method invocation and threads in Java)
Students who have passed the courses SW01 and SW02 fulfil these prerequisites

Aims:

To give the student a theoretical and practical foundation for understanding and constructing systems with elements of pervasive and ubiquitous computing (PUC). After completing this course, students should be able to:

  • understand possibilities for application of PUC technologies
  • analyze, design and implement a system with elements of PUC
  • evaluate a system with elements of PUC with respect to relevant quality criteria
  • conduct and document a group-based development project with emphasis on the resulting prototype
  • conduct and document a problem-oriented study project.

Synopsis:

This course further elaborates the skills needed for conducting software projects from both a practical and academic point of view. The task is to specify, design, construct, document, and evaluate a software prototype given one or two technologies and an application idea. The course also elaborates on the practice of software engineering in a research context: problem analysis, project scoping and planning, documentation (development project and study project), presentation skills, and teamwork skills. Topics include:

  • Introduction to PUC: mobile computing, spatial computing, embedded devices.
  • PUC technologies and applications. - Interfaces to PUC systems: input, output.
  • Interacting with PUC systems.
  • Construction of a PUC system: specification, adapting, designing, implementing, evaluating.

DM18-T: Compiler Construction (9 ECTS)

Go to top

Aims:

To give participants knowledge regarding the theoretical basis for translation of imperative programming languages, and also employment of simple front end tools, such as Flex (Scanner tool) and Bison (Parser tool).

Synopsis:

  • Overview of the components of a compiler.
  • Lexical analysis.
  • Regular expressions.
  • Programs for generating scanners.
  • Top-down parsing for LL(1) grammars.
  • Recursive descent.
  • Bottom-up parsing for LR(1) grammars.
  • Table driven parsers.
  • Programs for generating parsers.
  • Semantic analysis.
  • Type checking.
  • Different forms of scopes for variables, especially in block structured languages.
  • Code generation, including the handling of procedures and different control structures.
  • Optimization including liveness analysis and register allocation.

SSE02 - Software Evolution (5 ECTS)

Go to top

Prerequisites:

Prerequisites are fundamental knowledge about and experimental experience with:

  1. Object-oriented programming (e.g. Java)
  2. Construction of object-oriented systems using algorithms and data structures from libraries and frameworks (e.g. J2SE)
  3. Object-oriented analysis and design processes (e.g. Unified Process) as well as graphical modelling languages (e.g. Unified Modelling Language)
  4. Object-oriented construction of distributed and concurrent systems (e.g. using remote method invocation and threads in Java)

Aims:

To give the student a theoretical and practical foundation for understanding and addressing advanced topics in software evolution, including processes, methodologies and tools. After completing this course, students should be able to: Understand and categorize the causes of software evolution Understand the advantages and disadvantages of various technologies for evolving software systems Analyse an existing system, explore possible change strategies and construct a release plan for evolving the system Specify the necessary quality attributes of the new system and decide on a strategy to ensure and validate them Detect and isolate obsolescence parts of a software system Detect and resolve problems caused by unexpected feature interaction Develop hands-on experience in reverse engineering and reengineering of existing systems

Synopsis:

This course will focus on concepts and advanced technologies in software evolution such as:

  • Change and configuration management.
  • Program comprehension.
  • Reverse engineering.
  • Architecture reconstruction and modelling.
  • Variability analysis.
  • Impact analysis.
  • Feature interaction.
  • Architectural restructuring.
  • Refactoring.
  • Design for change.
  • Component reuse.
  • Clone detection.
  • Re-modularization.
  • Reengineering.
  • Migration strategies.
  • Release management.

AF27: Introduction to Robotics (6 ECTS)

Go to top

Aims:

To give the students theoretical and practical knowledge to the basis methods to describe a robot and the belonging methods of robot control (trajectory planning).

Synopsis:

  • Robot co-ordinates
  • direct kinematics
  • inverse kinematics
  • work space analysis
  • redundancy of robots
  • robot dynamics
  • dynamical methods for trajectory planning

DM26: Database Systems (7.5 ECTS)

Go to top

Prerequisites:

The content of DM01 must be known.

Aims:

The purpose of this course is to give an introduction to all the essential aspects of database systems with the main emphasis on the role of the database administrator. The database administrator must design a database such that typical queries can be evaluated efficiently. This requires a thorough understanding of design and (high level) optimization, but also familiarity with the lower levels of disk layout and file systems up to query analysis and index creation.

Synopsis:

The relational model, disks, files, indexes, sorting, relational algebra and calculus, SQL, implementation of relational operators, query optimization, database design, normal forms, parallellism, crash recovery.

REG: Control Theory (6 ECTS)

Go to top

Synopsis:

Mathematical and grafical methods to synthesis of linear time-variant systems

  • modelling.
  • discreet and continuous transfer functions
  • discreet and continuous state descriptions
  • analysis in time and frequency
  • stability
  • adjustment velocity
  • sensitivity and error
  • digital PI, PID, LEAD and LAG controllers
  • state control systems
  • pole-placement and state-estimation(observer)
  • optimal control systems
  • kalman filters
  • realization of digital control systems
  • introduction to adaptiv and fuzzy logic
  • usage of numerical simulation tools (Matlab)

PRD: Project D (6 ECTS)

Go to top

Synopsis: (Danish)

Fagligt: - Gennemførelse af et projekt med udgangspunkt i et projektoplæg indenfor temaet: "Styring, regulering og overvågning". - Projektet omfatter følgende fagområder: Digital signalbehandling, Datakonvertering, Sensorer, aktuatorer og interfacing, Regulering.Metodisk: - Anvendelse af projektstyring i henhold til en faseorienteret projektmodel. - Anvendelse af studiekredse og selvstudieer i forbindelse med tilegnelse af ny viden. - Dokumentation.

SW02: Software Production (7.5 ECTS)

Go to top

Aims:

To give the students a theoretical and practical knowledge regarding more advanced studies in subjects in the program production process including methods, notation and tools to support the process.

Synopsis:

Synopsis: Advanced concepts and technologies in software engineering (distribution, concurrency, security, reliability, availability, scalability, performance), software architecture (frameworks, patterns, components), advanced programming in Java (distributed objects, threads and object persistence) and other topics.

SW01: Software Design (6 ECTS)

Go to top

Synopsis:

Synopsis: Requirement specification, object-oriented analysis and design. Design methods and tools. Object-oriented programming languages, libraries and tools. Design patterns.

DIG: Digital Electronics (7.5 ECTS)

Go to top

Synopsis: (in Danish)

Digitalt grundkursus: Talsystemer og koder, Boolsk algebra, kombinatoriske netværk, Programmmerbar logik. Microcontroller hardware: CPU arkitektur og funktion, Hukommelseskredsløb, Parallel og seriel I/O, A/D og D/A konvertering, Timere og interrupt. Microcontroller programmering: Programstrukturering, Assembler programmering. Digitale periferienheder og interfacing: I/O enheder, Motorstyring. Analog interfacing: Feedback-teori (negativ), Operationsforstærkere, Differensforstærker, Dioder og transistorer, Målebro.

ELA: Electronics A (7.5 ECTS)

Go to top

Synopsis: (in Danish)

Passive komponenter: Resistorer, kapacitorer og selvinduktioner. Strøm og spændingskilder: Thevenin- og Nortonækvivalenter. Kredsløbsanalyse: Ohms lov, Kirchoffs love, superpositionsprincippet. Knudepunkts- og maskemetode. Kompleks repræsentation af strøm, spænding og impedans Effektivværdi og effekt. Transient og steady state analyse. Laplacetransformation som analyseværktøj. Impedanstilpasning. Halvledere: Fænomenologisk beskrivelse af ladningstransport i rene og doterede halvledere, pn-overgangen. Aktive komponenter: Dioden, diodemodeller, diodeligningen og arbejdslinier. Transistoren, simpel fysisk model, arbejdslinier og transistor som switch. Integrerede forstærkere: Ideelle operations- og instrumenteringsforstærkere, introduktion til forstærkerfejl, feedback koblinger.

CMP: Computer Architecture (7.5 ECTS)

Go to top

Synopsis: (in Danish)

Von Neumann arkitektur: Bussystem, CPU (kontrolenhed, ALU og instruktionssæt), hukommelsessystem, I/O-system, cache memory, selekteringskredsløb, exceptions og interrupts, eks. på periferienheder (DMA, timer, UART, interrupt controller, programmable peripheral interface). Parallelle arkitekturer: Pipelining: Instruktionspipelining, aritmetrisk pipelining, schedulering, datahazard, controlhazard. RISC kontra CISC arkitektur: Load/store filosofi, registerbehov, superscalar, superpipeline, pipelineudnyttelse, compilerkompleksitet. Multiprocessor- og multicomputersystemer: Klassifikation af parallelle arkitekturer (SISD, MISD, SIMD, MIMD), forbindelsesnetværk (n-dimensional, n-cube), koblingsgrad, busarbitrering, prioritering, cacheproblematik. Dataflow og systolisk array arkitekturer.

ELB: Electronics B - Transducer interfacing (7.5 ECTS)

Go to top

Synopsis: (in Danish)

Sensorer: Sensorprincipper (resistive, kapacitive, enkodere, …). Karakteristiske parametre for udvalgte sensortyper. Elektronik: Operations- og instrumenteringsforstærkere; - ideelle operationsforstærkere, eksempler på anvendelser. - bias, offset, drift, støj, PSRR, CMRR, fejlfaktor, slewrate og generel feed back teori. - kompensationsnetværk. Passive og aktive filtre. Transistortyper (BJT, FET): - funktionsbeskrivelse og opbygning. Halvlederkomponenter på storsignal niveau: - tab og idealiseringer. - eksempler på dioder og deres karakteristika - eksempler på anvendelser til switching. Simulering af kredsløb (Pspice). Elektriske aktuatorer: Beskrivelse af enkelte vigtige aktuatortyper (f.eks. DC og stepmotorer, moving coil devices.) ved hjælp af karakteristiske parametre og deres sammenhænge. Der lægges vægt på de parametre, der har betydning for interfacing på driversiden.

PRA: Project A (4.5 ECTS)

Go to top

Synopsis: (in Danish)

Fagligt: - Gennemførelse af et projekt med udgangspunkt i et projektoplæg indenfor temaet: “Microdatamatbaseret måling/analyse/styring af et fysisk system”. - Projektet omfatter følgende fagområder: Digitalteknik, Analogteknik, Microcontrollerteknik, Mekanisk fysik. Metodisk: - Anvendelse af projektstyring i henhold til en faseorienteret projektmodel. - Anvendelse af studiekredse og selvstudie i forbindelse med tilegnelse af ny viden.

PRB: Project B (4.5 ECTS)

Go to top

Synopsis: (in Danish)

Fagligt: - Gennemførelse af et projekt med udgangspunkt i et projektoplæg indenfor temaet: “Specifikation og syntese af hardware til formålsbundne systemer”. - Projektet omfatter følgende fagområder: Digitalteknik, Hardwarebeskrivende sprog, Hardwaresyntese, Programmerbar logik, Mikroprocessorsystemer. Metodisk: - Anvendelse af projektstyring i henhold til en faseorienteret projektmodel. - Anvendelse af studiekredse og selvstudie i forbindelse med tilegnelse af ny viden.

PRC: Project C (9 ECTS)

Go to top

Synopsis: (in Danish)

Fagligt: - Gennemførelse af et projekt med udgangspunkt i et projektoplæg indenfor temaet: “Udvikling af systemsoftware til indlejrede systemer”. - Projektet omfatter følgende fagområder: Operativsystemer: Procesadministration, -skedulering, -synkronisering, proceskommunikation. Systemprogrammering. Datakommunikation og kommunikationsprotokoller. Metodisk: - Anvendelse af projektstyring i henhold til en faseorienteret projektmodel. - Anvendelse af studiekredse og selvstudie i forbindelse med tilegnelse af ny viden.

OPS: Operating Systems (7.5 ECTS)

Go to top

Synopsis: (in Danish)

Low-level programmeringsteknikker. Programmering i assembler og C. Udviklingsmiljø: Editor, assembler, compiler, target-system, debygger. Periferikredse (programmering med udgangspunkt i databladet.). Operativsystem struktur. Proces administration: Processer, CPU scheduling, Proces synkronisering, Interproces kommunikation, Deadlocks. Lager administration: RAM-lager administration, Virtuel hukommelse. Filsystem. I/O-system. Sikkerhed. Introduktion til distribuerede systemer.

KOM: Computer Networks (7.5 ECTS)

Go to top

Synopsis: (in Danish)

Grundlæggende ledningsteori: Model af transmissionsledning. Laplacetransformation. Transmissionsligninger, refleksion, ledningsimpedans. Puls på ledning. Refleksionsdiagram. Datakommunikation: Kodning og modulationsformer. Synkroniseringsmetoder. Fejldetektion og -korrektion. Kommunikationsnetværk: Referencemodeller. Netværkstopologier. Adresserings- og rutningsprincipper. Rutnings- og transportprotokoller.

SIG: Digital Signal Processing (6 ECTS)

Go to top

Synopsis: (in Danish)

Centrale begreber fra tidskontinuert systemteori: Overføringsfunktion, Frekvensanalyse. Datakonvertering: Ideel og praktisk sampling og rekonstruktion, Aliasing, Kvantisering og dynamikområde, Konverteringsprincipper (A/D, D/A), Implementationsprincipper (Sample & Hold, A/D, D/A), Multirate sampling. Digital signalbehandling: Diskret-tid signaler og systemer i tids- og frekvens-domænet, Z-transformationen, Overføringsfunktion for lineære tidsinvariante systemer, Systemanalyse, Frekvensanalyse, Lineær fase systemer, Realisationsstrukturer for diskret-tid systemer. Hovedanvendelser af digital signalbehandling: Digitale IIR-filtre og transformation af analoge filtre, Digitale FIR-filtre og vindues-funktioner, Diskret Fourier-transformation og Fast Fourier-transformation, Adaptive filtre. Introduktion til beregnings/simulerings-værktøjer.

FY01: General Physics (9 ECTS)

Go to top

Synopsis:

Classical mechanics (kinetics, dynamics, statics, work, energy and momentum), thermodynamics, transport phenomena (diffusion, heat conduction), elasticity, motions of fluids, radioactivity, wave motions, sound, light, geometrical optics.

FY02B: Electromagnetism (6 ECTS)

Go to top

Synopsis:

Electric fields and potentials, magnetic fields and magnetic properties of matter. Maxwells equations and electromagnetic waves.

DM01: Structured Programming (9 ECTS)

Go to top

Synopsis:

The fundamental steps of program development: - classes, objects and their interplay - specification - program design - implementation. Examples of algorithms and data structures.

DM02: Algorithms and Data Structures (9 ECTS)

Go to top

Synopsis:

Algorithms: correctness and complexity analysis, greedy algorithms, divide and conquer, dynamic programming, sorting, graph algorithms, lower bounds. Data structures: abstract data types, trees, dictionaries, priority queues, disjoint sets.

DM03: Numerical Analysis (7.5 ECTS)

Go to top

Synopsis:

Solution of linear and nonlinear (systems of) equations, approximation of functions, numerical integration and differentiation, solution of ordinary and partial differential equations.

DM17: Automata Theory and Computability (7.5 ECTS)

Go to top

Synopsis:

Finite automatas, push-down automatas, Turing machines, regular languages, context free languages, grammars, decidability and computability.

MM01: Calculus (12 ECTS)

Go to top

Synopsis:

Differentiation and integration of the standard functions, including hyperbolic and inverse trigonometric functions. Taylors approximation of degree n for a function of one variable, lHospitals rule. Solutions of first and second order linear ordinary differential equations and methods for nonlinear first order equations. Complex numbers, the complex exponential function and the complex quadratic equation. Infinite series and power series, radius of convergence, representation of functions by power series and applications to solving differential equations. Vectors and matrices, linear transformations of n-dimensional coordinate space. The Jacobi matrix for a vector-valued function of several variables, Taylors formula in two variables and the classification of stationary points. Line integrals of vector fields and the existence of potential functions. Multiple integrals, surface integrals and the flow of a vector field through a surface. The theorems of Green, Stokes and Gauss and applications to calculations of line, surface, and volume integrals.

MM02: Linear Algebra (6 ECTS)

Go to top

Synopsis:

The aim of teaching linear algebra is to enable the student to: 1)determine the dimension of a subspace of a vector space, find a basis and transform it to an orthonormal basis in the case where the given space has an inner product (Gram-Schmidt orthogonalization); 2)use the connection between linear mappings and matrices; 3)compute the determinant of a matrix; 4)find eigenvalues and eigenvectors for a given linear mapping or matrix; 5)find an orthonormal basis consisting of eigenvectors for a given Hermitian linear mapping on a finite dimensional Euclidean space (diagonalization of Hermitian matrices); 6)compute the projection of a given vector on a given subspace of Euclidean space, in particular compute approximations of continuous functions by trigonometric polynomials; 7)reduce a quadratic form and draw the graphs for systems of polynomial equations; 8)apply the simplex method for determining optimal solutions to problems in linear programming; 9)use the duality theory of linear programming.

AM11: Mathematics on Computers (9 ECTS)

Go to top

Synopsis:

  • General introduction to mathematics on computers.
  • Introduction to the computer program Mathematica.
  • Programming techniques: How is a mathematical problem translated into a problem that can be solved on a computer?
  • Symbolic integration and differentiation.
  • Visualization of mathematics.
  • Introduction to numerical methods.
  • Introduction to image processing, the Fourier transformation, differential equations and the Laplace transformation.

AM12: Analytical and Computational Mechanics (9 ECTS)

Go to top

Synopsis:

External and internal mechanical forces, the formalism of D´alembert, Euler-Lagrange and Hamilton, the theory of rigid bodies, multivariable constrained optimisation, the calculus of variations