Umu logo Umeå University
Faculty of Science and Technology
Department of Computing Science


Address

Umeå University
Department of Computing Science
S-901 87 Umeå
SWEDEN
Fax: +46 90 7866126

Contact persons (post-graduate education and research)

Professor Bo Kågström
Numerical Analysis and Parallel Computing,
Head of department (Phone: +46 90 7865419, Email: bokg@cs.umu.se)
Professor Patrik Eklund
Computer Science (Phone: +46 90 7869914, Email: peklund@cs.umu.se)
Professor Per Åke Wedin
Numerical Analysis (Phone: +46 90 7865439, Email: pwedin@cs.umu.se)

Contact persons (directors of study for undergraduate education)

Lecturer Lennart Edblom (Phone: +46 90 7866137, Email: edblom@cs.umu.se)
Ass. professor Per Lindström (Phone: +46 90 7866124, Email: perl@cs.umu.se)
Lecturer Stefan Holmgren (Phone: +46 90 7866128, Email: stefanh@cs.umu.se)

Computer equipment

Our computer facilities include powerful workstations (IBM RS/6000, Power PC, Power Macintosh, Silicon Graphics Indigo, Sun SPARC etc). For educational purposes a distributed memory multicomputer (Intel iPSC/2 Hypercube with 32 processors and 16 vector processors) is used. In early 1997 we will have in house access to a 66 node IBM SP2 system, one of the most powerful high performance computers in Sweden. It is run by HPC2N (High Performance Computing Center North).

Undergraduate education

at the department of Computing Science, Umeå University

Computing science is taught in two different study programs with a duration of 4-4.5 years corresponding to 160-180 credit points respectively. The Computing Science and Engineering programme (Teknisk Datavetenskapliga programmet) is a 4.5 year programme with an annual admittance of 45 students leading to a Masters degree in Engineering (civilingenjörsexamen). During the first 2 years you get a broad knowledge of mathematics (26 points), computing science (33 points), physics, electronics and computer technology (21 points). Later on (in the 3:rd year) you specialize by choosing one of the profiles Cognitive science, Parallel computing, Software engineering or Scientific computing. These specializations are naturally integrated with much of our research activities (see below). This programme is characterized by problem solving (at large), construction, synthesis and the ability to apply and develop new technology at an international level.

The other study programme, Computing Science programme (Datavetenskapliga programmet) is a 4 year programme leading to a Master of Science degree. 20-30 students are admitted each year. This programme also begins with a basic 2-year block containing courses from mathematics and computing science, 40 points each. No physics-related courses are compulsory. During the last 2 years the student should specialize in some area of computing science in order to get a deeper scientific knowlegde. Examples of specialization areas are theoretical computer science, artificial/computational intelligence, human computer interaction, numerical analysis and parallel computing.

Many of the courses given within these study programs can also be read as separate courses (fristående kurser). Some of the courses are described shortly at the end of this information.

Research Activities

at the department of Computing Science, Umeå University

Research in computing science is conducted within three major areas: Computer Science, Numerical Analysis and Parallel Computing, with a professorship each. The research in numerical analysis and parallel computing is focused on the development of state-of-the art methods and software for scientific and high-performance computing. The research in computer science is focused on computational intelligence, software engineering and the border area between cognition and computation.

Inter-disciplinary activities are conducted in computer graphics and scientific visualization.

Current research at the department is devoted to the areas given below.

Numerical linear algebra with applications

The research comprises the whole spectrum of problems including perturbation theory and estimation of the conditioning of the problem, development of algorithms and computable error bounds and their robust and efficient implementation. Main topics: generalized eigenvalue and subspace problems, matrix factorizations and equations (Sylvester, Ricatti etc), least squares problems, sparse matrix techniques, systems of (higher-index) differential-algebraic equations (DAE).

Optimization

The department has a long tradition in solving non-linear least squares problems (NLS) of different kinds (e.g. unconstrained, constrained, weighted). NLS-problems are certain optimization problems that appear in a great variety of applications in medicine, science and engineering. Algorithms and software for NLS-problem classes are devloped, utilizing the special structure of the problems efficiently. Current research topics include: training of feedforward artificial neural networks, parameter estimation in ODE/DAE-systems, weighted NLS-problems.

Parallel computing

The research focuses on algorithms, tools and applications for scalable high-performance computer systems. One important issue is the scalability of a parallel algorithm (or application), which is a measure of its capability to effectively use an increasing number of processors. Current research topics include: high performance and portable level-3 BLAS, block algorithms for linear algebra problems, simulation and problem solving environments for parallel matrix computations, concurrent data structures, parallel algorithms in optimization.

Mathematical and scientific software

The end products of our research are robust and efficient algorithms implemented as reusable software modules for different computer architectures. Contributions are included in international software libraries (e.g. ACM Collected Algorithms, LAPACK).

Computational intelligence

The research group develops techniques and tools to support data mining and software development. The computational method is a hybrid combination of learning strategies, including techniques from fuzzy systems and neural computations. Software developments include systems for supporting applications in the medical and industrial domains.

Main topics: Fuzzy logic, industrial applications, medical informatics , neural networks, pattern recognition.

Information systems

The research develops concepts and models group systems with a particular focus on decision support for project management. Topics include: project and product structures, project simulation, intelligent project management, communication systems (TCP/IP based), GDSS.

Theoretical computer science

Our current interests are focused on the following topics: foundations of many-valued logic (fuzzy logic), category theory in computing.

Programming languages

Functional languages is a class of programming languages that possess such desirable properties as mathematical tractability, expressiveness and conciseness. They are also naturally amenable to implementation on parallel data flow and reduction machines. Topics: the use of functional languages in scientific software, and the implementation on parallel computers.

Software engineering

In almost all computer applications software is, or is expected to become the main cost factor. Therefore methods, languages, and tools are necessary to support the management, analysis, production, and maintenance of complex software systems. Main topics: classification, storage, and retrieval of prefabricated (software) artifacts to support their reuse; architectural description of complex software systems; user-centred requirements acquisition; methods, languages, and tools to support the areas above.

More information on these topics can be found here.

Human-computer interaction design

Our research on the design of human computer interaction centers on the concept of the user`s mental model, and comprehensibility as a fundamental requirement on the user interface. We combine theory development with analytical case studies reconstructing user`s models, and synthetical case studies, building design examples. Current research topics include: the structure and use of different interaction forms, gender and human-computer interaction, computer-supported learning, the use of new media (multimedia, hypermedia, virtual reality).

Knowledge representation and symbol theory

The long term goal is to contribute to the development of a general symbol theory useful to computer science in general and artificial intelligence in particular, bringing out and developing the cognitive possibilities of different types of symbol systems. Two subareas have been selected for closer studies: the representation of change and the so-called frame problem, the question of pictorial vs verbal representation and the development of a theory of pictorial representation.

Computer technology use

Various models or metaphors for computer technology and its use have consequences for technology choices, for how computer artifacts are actually used, and for research strategies. Conversely, concepts from computer technology are making their way into society and everyday life, shaping our ways of understanding the world, in much the same way as the clockwork shaped the mechanistic world view. We examine possibilities as well as dangers and costly mistakes that might be avoided.

PROJECTS AT THE DEPARTMENT OF COMPUTING SCIENCE

Version: October 15, 1994

Anders Barrlund, Bo Kågström: Differential algebraic systems - theory, algorithms and applications.

Jürgen Börstler, Stefan Björnander:
FOCS (Feature-Oriented Classification System): Tool support for the application of feature-oriented classification to the area of software reuse.

Jürgen Börstler:
RECORD (REquirements COllection, Reuse, and Documentation): An approach for user-centred requirements acquisistion.

Jürgen Börstler:
Languages and tools for software architectural design. The language EMIL (Extended Module Interconnection Language) is an example of such a language.

Lennart Edblom, Olof Johansson:
Scientific computing in functional programming languages.

Patrik Eklund, Christer Ericson, Jan Tångring, Jun Zhou:
Computational intelligence systems application design, development and integration workbench.

Patrik Eklund:
Laboratory information systems in a medical informatics environment.

Patrik Eklund:
Intelligent project management.

Patrik Eklund, Erik Marklund, Olof Johansson:
Category theory in functional and logic programming.

Lars-Erik Janlert, Kjell Borg, Anders Broberg, Erik Elmroth, Peter Poromaa:
Generalized eigenvalue problems, matrix pencils and canonical forms with applications in control theory.

Bo Kågström, Krister Dackland, Erik Elmroth, Peter Poromaa:
Design modelling and evaluation of scalable algorithms for matrix computations.

Bo Kågström, Per Ling, Krister Dackland, Mikael Rännar:
High performance, portable and scalable level-3 BLAS.

Bo Kågström, Peter Jacobson, Erik Lindström, Stefan Bylund, Ying Zhang, Anders Wikman:
Term rewriting and equational programming.

Ji-guan Sun, Anders Barrlund, Bo Kågström, Per-Åke Wedin:
Perturbation analysis of problems in numerical linear algebra.

Per-Åke Wedin, Per Lindström, Jerry Eriksson:
Methods and software for NLS-problems and investigation of complex processes by neural networks.

Per-Åke Wedin, Gunilla Wikström, Lennart Edsberg:
Parameter estimation and simulation of ODE-systems.

Per -Åke Wedin, Niclas Börlin, Johan Kärrholm:
Digital images in Radiostereometric Analysis.

Per-Åke Wedin, Mårten Gulliksson, Marie Nordström:
Stable algorithms for weighted and constrained NLS-problems.

Some details of some of the courses taught in the computing science study programs.

Computing Science, introductory course, 10 credit points

The goals of the course are:

* to give knowledge about problem solving and programming methodology,

* to give proficiency in solving and programming technical and scientific problems,

* to give knowledge about structure and use of numerical methods for technical and scientific problems,

* to give experience of using standard software packages for these methods .

Data Structures and Algorithms, 5 credit points

The goals of the course are:

* to give detailed knowledge about the basic building blocks (data structures and algorithms) of the art and science of programming and software engineering.

Numerical Linear Algebra, 5 credit points

The goals of the course are:

* to give knowledge about the structure, use and analysis of numerical methods for problems in linear algebra,

* to give experience in computing with matrices and vectors .

Software Engineering Project, 5 credit points

The goals of the course are:

* to give practical experience matching previously acquired theoretical knowledge in computer science and programming methodology,

* to give experience of practical software construction working in teams .

C, Unix, and Operating Systems, 5 credit points

The goals of the course are:

* to give knowledge about the use of operating systems, their user interfaces and systems software

* to develop proficiency in the design of software that depends on the operating system

Programming language concepts, 5 credit points

The goals of the course are:

* to give knowledge about basic concepts and principles that influences the design of programming languages,

* to show the importance of programming languages in software engineering, how the choice of language influences what type of abstractions will be used.

Human-Computer Interaction, 5 credit points

The goals of the course are:

* to give insight into the fundamental conditions for human-computer interaction

* to give knowledge about methods, techniques and equipment for interaction

* to give experience of the design, construction, critical analysis and evaluation of human-computer interfaces.

Artificial Intelligence, 5 credit points

The goals of the course are:

* to give an introductory survey of the artificial intelligence subject area

* to give more detailed knowledge about some concepts and methods, developed within the AI community, but generally useful within computer science

Theory of computation, 5 credit points

The goals of the course are:

* to give knowledge about different formal models for computation,

* to give insight about theoretical possibilities and limitations when computing with computers.

Parallel Computing, 5 credit points

The goals of the course are:

* to give basic knowledge about parallel computers and about methodologies for the design of efficient algorithms for such computer architectures.

Parallel Computing, advanced course, 5 credit points

The goals of the course are:

* to give detailed knowledge about the design and construction of algorithms for various types of scalable, parallel computer architectures

* to develop the ability to analyze and understand the behaviour of a parallel algorithm

Computer Graphics and Visualization, 5 credit points

The goals of the course are:

* to give knowledge about the theoretical basis for two- and three-dimensional graphic methods

* to give an understanding of how to apply these methods within scientific visualization in order to present large data sets.