This document presents the general structure for the CUGS course curriculum, describing the goals with CUGS graduate education, as well as a specification of the core course curriculum that is part of the CUGS course curriculum. The curriculum is also available in PDF


The graduate school focuses on central parts of the scientific areas core computer science (sv. datalogi) and computer engineering (sv. datorsystem), emphasizing applied research with a strong theoretical foundation. As such, the scientific scope of CUGS embraces the following characteristic subject areas:

  • ways of specifying computational behaviour, including both algorithms and large-scale software: programming languages on all levels, specification languages, special-purpose and script languages, etc

  • ways of describing computational processes on different substrates, including computational processes on the electronic level (VLSI etc) as well as software configuration systems

  • ways of describing the structure and expressing the contents of data collections (data bases in a broad sense, including mark-up languages etc)

  • information systems in the sense of software artefacts (but not information systems in the sense of e.g. enterprise information system)

  • the study of specific (classes of) algorithms and data structures, in particular, those that are used for systems related purposes in computing systems

  • industrial-strength formal methods for software and systems design

  • real-time systems and embedded systems

  • distributed systems and other net-centric systems

  • techniques for implementing autonomous and intelligent behaviour in computational systems (agent technology, problem-solving, planning, learning, and other similar behaviour in AI systems)

  • ways of defining autonomous behaviour in mechanical systems with embedded computing capability (robotics in a broad sense)

  • soft computing, including fuzzy and rough theories, probability based representation schemes, and neural networks

  • ways of characterizing the computational requirements (space, memory) of computational processes, and of using those estimates in higher level processes (e.g. real time systems)

  • ways of presenting information to the computer user in multi-modal forms, including in particular the use of graphics

  • the formal basis for several of the above, including the relevant branches of discrete mathematics, formal logic, and complexity theory, programming languages and systems


The overall goal of CUGS graduate studies is to prepare CUGS students for a professional career in teaching and research development. The more specific goals are:

  • stimulate CUGS students in their pursuit of knowledge, such that both the knowledge depth and breadth within the research area are achieved

  • train CUGS students to become independent researchers that master research methods and scientific thinking and interact with peers;

  • train CUGS students' ability to identify and formulate research problems, plan and perform research projects;

  • train CUGS students' skills in communicating and presenting research results; and

  • support CUGS students in building a personal network at both national and international level.

These goals are to be achieved by carrying out independent research under the guidance of a supervisor, and participation in a course curriculum. The present document specifies the course curriculum of CUGS.


In order to be admitted to CUGS, the following student qualifications should be fulfilled:

(i) A university degree of at least 240 credits (four years full-time study) or similar gained either in Sweden or abroad. Of the 240 credits, 90 credits in computer science, relevant to CUGS subject areas.

(ii) The ideal student has basic knowledge (A- to C-level) in all or most of the following subject areas (relevance considers student's background and research topic, and set of elective courses):

  • discrete structures (similar to the review course "Discrete Structures I")

  • logics (similar to the review course "Logics Structures I")

  • principles of computation (similar to the review course "Computation I")

  • Compilers and Interpreters or Compiler Construction (TDDB44)

  • computer networks

  • database systems

  • discrete mathematics

  • distributed and parallel systems (concurrent programming)

  • operating systems

  • programming languages

  • real-time and/or embedded systems

  • software engineering

  • artificial intelligence

  • computer architecture

Note, the student should further satisfy any specific qualifications required by the laboratory the prospective students apply to.


The curriculum consists of two parts:

  • Course work of at least 90 credits, divided into three groups:

    • CUGS core courses

    • CUGS advanced courses

    • other courses

  • Doctoral dissertation.

CUGS is responsible that CUGS courses are of excellent quality and meet the following standards and characteristics: (i) match the profile and scientific scope of CUGS;

(ii) identify and present research within the course topic, providing in-depth knowledge in the topic area;

(iii) emphasize research methodology by exemplifying good research methodology and practice within the topic area, as well as identifying strengths, weaknesses, and alternative methods; and

(iv) are evaluated by CUGS.

In addition to CUGS courses, CUGS organizes a seminar series that focus on research methodology, computer ethics, and presentation techniques.


Core courses form the basis for a common foundational knowledge for all CUGS' PhD students. The block consist of both (i) theoretical courses in logics and mathematical training, and (ii) courses in specific applied research areas. Each core course has a prerequisite that the student has taken a corresponding course during his/her undergraduate study program.

Theoretical core courses include

You should select at least four out of the courses stated below and finish them as well as Logic II and Computation II before reaching licentiate level (50%)

Some courses are given each year, some every second year – and the plan above is dependent on enough participants. Courses are given if we have at least five LiU PhD students registered.

As titles may have changed over time and some courses have been replaced - here is a list of former core courses:

  • Discrete Structures II
  • Artificial Intelligence
  • High-Performance Network
  • Databases
  • Knowledge Representation

Advanced courses

There is also always a selection of advanced CUGS courses available in the course program, for you to choose depending on your study area.

(The thesis proposal replaces the integration test, according to decision at steering committee meeting February 13th, 2003)


In order to maintain focus, it is recommended that advanced courses are in principle taken after fulfilling the requirements of the CUGS core courses. The advanced courses are elective, and provide in-depth knowledge in CUGS subject areas. Each course in this category is primarily aimed for those students who are doing their thesis in a closely related area or have a strong interest in the subject of the course. The prerequisites for the advanced courses originate from: (i) CUGS core courses, (ii) courses taken under pre-doctoral education, or (iii) other CUGS advanced courses.

Below is an incomplete list of courses that have been identified in this category.

  • Computation/Complexity III (specified in Doherty et al's document)

  • Logic III (specified in Doherty et al's document)

  • Knowledge Representation

  • Advanced Compiler Construction

  • Operating systems

  • Algorithms and data structures in computer graphics

  • Algorithms and data structures in computational geometry

  • Simulation languages and tools

  • Software engineering II

  • Parallel and distributed processing: models, algorithms and languages

  • Modelling using stochastic methods

  • Constraint programming

  • Soft computing techniques

  • Probability theory, fuzzy logic, neural networks and genetic algorithms, etc.

  • Distributed AI: autonomous agents etc.

  • Computer communication architectures and protocols

  • Dependable systems: highly available systems, safety-critical systems.

  • Advanced programming and specification languages

  • Programming 3D graphics and virtual reality

  • etc


Courses in this category include other courses, e.g., non-computer science courses such as research methodology, presentation techniques etc, that the student and supervisor find to be a strong complement considering the individual student's interests, abilities, and future career.



Travel reports

Licentiate seminars


Courses Spring 2016


Last modified on January 2015 by Anne Moe