Curriculum-text
INTRODUCTION
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
SCIENTIFIC SCOPE OF CUGS
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
GOALS OF CUGS GRADUATE STUDIES
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.
ADMISSION REQUIREMENTS
In order to be admitted to CUGS, the following student
qualifications should be fulfilled:
(i) A university degree of at least 180 credits (three years
full-time study) or similar gained either in Sweden or abroad. Of the
180 credits, 90 credits in
computer science, relevant to CUGS subject areas.
(ii) Enrolled as doctoral candidate at a Swedish university
participating in CUGS.
(iii) 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.
STRUCTURE OF CURRICULUM
The curriculum consists of two parts:
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.
CUGS CORE COURSES
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
It is strongly recommended that students take all of these three
courses, since they are prerequisites for several other CUGS courses.
However, students
should at choose at least two of these courses.
In addition to the theoretical courses, the following set of
elective courses is part of the core. Similar to the theoretical
courses, students are encouraged to
take as many of these courses as possible, and we recommend that
students choose five of these courses, but students are expected to
choose at least four
courses (out of seven) from these courses:
THESIS PROPOSAL
Recommended time between year 1 and 2. Students who have been awarded a
licentiate degree (or passed 60% of the doctoral degree) are not
expected to present a thesis proposal.
The thesis proposal seminar consists of (I) a presentation made by the
student at a CUGS event, for doctoral students and fculty in CUGS,
followed by (II) a discussion session with questions from the audience.
Three people (faculty member and two students) are appointed to start
and lead the discussions initially; these should meet before the actual
thesis proposal to discuss their outline.
(The thesis proposal replaces the integration test, according to
decision at steering committee meeting February 13th, 2003)
CUGS ADVANCED COURSES
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
OTHER COURSES
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.
|