List of courses at Division for Scientific Computing.
Computer Programming I
Computer systems and programming environments. Algorithms and problem
solving. Object oriented programming. Programming in Java: classes and
objects, input/output. Documentation, debugging and testing.
Credits: 5
Computer Programming II
Programming in Java: inheritance, polymorphism, exceptions. Object
oriented analysis and design. Data structures: stacks, queues, lists,
trees and hash tables. Basic algoriths for storing, searching and
sorting. Programming tecniques, tools for software
development. Programming in C.
Credits: 5
Scientific Computing I
Introduction to, programming and use of MATLAB. Ordinary differential
equations: properties and numerical methods for initial and boundary
value problems. Linear systems: properties, numerical methods and
applications. Numerical methods for non-linear equations and systems
of equations. Least squares approximation, interpolation and
splines. Numerical integration. Floating point arithmetic, error
propagation and stability.
Credits: 5
Introduction to computers
Workstations, Unix, e-mail. Introduction to MATLAB. Information and
communication on the Internet.
Credits: 1, 1.5, 2
Introduction to Scientific Computing
Linear spaces: linear independence, basis, dimension. Scalar product
and orthogonality. Euclidean spaces. Matrix computations, matrix
theorems, and classes of matrices. Basic properties of linear
algebraic systems. Column space, row space and null spaces. Floating
point arithmetic, error propagation, stability, condition,
efficiency. Numerical methods for linear systems of equations, and
nonlinear equations. Data-fitting with interpolation and least squares
approximation. Projection. Gram-Schmidt's ON-process and
overdetermined systems of equations. Numerical methods for integrals
and derivatives. Ordinary differential equations: numerical methods
for initial value problems. Computation of eigenvalues and
eigenvectors. Difference equations and Markov processes. MATLAB
programming. Project work focusing on scientific computing
applications. Written and oral presentation.
Credits: 10
Numerical methods for engineers
MATLAB and programming in MATLAB. Non-linear equations:
Newton-Raphson, fixpoint iteration. Linear systems: elimination, condition, stability and
efficiency. Approximation of data by interpolation, splines, and the
least squares method. Numerical integration.
Credits: 4.
Scientific Computing II
Matrices and
matrix algebra: norms, spectral radius, condition number,
transformations, factorization. The eigenvalue problem:
diagonalization, triangularization, Jacobis method, the QR method,
invers iteration, condition. Least squares problem: orthogonal
polynomials, QR factorization, overdetermined systems. Fourier
expansion, the fast Fourier transform (FFT). Splines. Numerical
solutions to timedependent partial differential equations (PDE) in one
dimension in space: well posedness, difference schemes, consistency,
stability and convergence. Semidiscrete methods. Numerical solution to
elliptic PDE:s in two dimensions. Finite element methods in one
dimension in space. Iterative methods for linear systems.
Credits: 5
Duration:September to mid-October and mid-March to May
Optimization
Linear programming, theory and applications. The simplex algorithm. Sensitivity analysis. Numerical methods for non-linear
problems without constrains. Duality. Heuristic methods for global
optimization. Genetic algorithms. Non-linear least square
problems. Applications and software.
Credits: 5
Duration:September to mid-October.
Analysis of numerical methods
Fundamental properties for numerical methods: concistency,
convergence, stability, efficiency. Methods for analysis of difference
schemes for time-dependent partial differential equations. Multi-grid
methods for elliptic differential equations. Special properties of
non-linear differential and difference equations: jump condition,
entropy condition, shock inequalities, TVD-schemes.
Credits: 5
Duration:mid-October to December.
Computer Graphics I
The rendering pipeline. Description of geometrical objects and
transformations. Visualisation, clipping and projections. Hidden
surface removal. Lighting models for polygon based graphics. Texture
mapping and bump mapping. Low level graphics libraries for 3D
programming (OpenGL). A practical part is included in the course where
the students implement some of the effects and methods introduced
during the course.
Credits: 5
Duration:mid-October to December
Computer Assisted Image Analysis II
Methods for solving problems in image analysis. Construction of
filters for image enhancement and analysis. Registration of images,
search methods and optimisation. Digital geometry. Colour images and
other multidimensional images. Analysis of 3D images (volume, stereo,
and time series). Computer vision
Credits: 5
Duration:mid-October to December.
Numerical linear algebra I
Analysis of solution methods for
linear systems, perturbations and error propagation. Singular value
decomposition and other factorisations. Pseudoinverse. Different
formulations of algorithms. Overdetermined systems and their
solution. Solution of rank deficient systems. Iterative methods for
linear systems: classical methods inc. convergence acceleraton and
ssor. Conjugate gradient methods and different types of
preconditioning e.g. incomplete factorisation. Krylov space methods
such as CGNE, GMRES and QMR. The symmetric eigenvalue
problem. Perturbation theory for eigenvalues and eigenvectors. The QR
and LR methods. Shift strategies. A detailed study of either the
nonsymmetric eigenvalue problem or iterative methods for linear
systems.
Credits: 5
Duration:mid-October to December.
Applied Scientific Computing
The course contains stages which are essential when
practically working with scientific computing in engineering and
research. The content is closely coupled to different application
areas such as fluid dynamics, structural mechanics, physics, chemistry
and biology. The content include grid generation and interface to
computer aided design (CAD), practical aspects of finite element
methods (FEM) and finite volume methods (FVM), choice of the
mathematical model and adjustment of the model, visualization and
post-processing. The course contains general parts, which all
participants take, as well as a number of eligible modules. Thus, the
course can in part be individually adjusted. Examples of modules are
Computational fluid dynamics, Computational structural dynamics,
Molecular dynamics.
Credits: 5
Duration:mid-January to mid-March.
High Performance Computing and Programming
Programming in C/C++ for high performance computing. Fortran 95 and comparison to other
languages. Portability. Tools for problem solving and program
development, debugging, organisation of code, scripting languages,
such as Python, analysis of performance. Different types of computer
architecture and memory organisation. Efficient implementation of
numerical methods on modern architectures. Applications from different
areas in science and technology.
Credits: 5
Duration:mid-January to mid-March.
Advanced Computer Graphics and Visualization
Alternative image generation methods in computer graphics. Parametrical
representation of surfaces. Methods for photo-realistic rendering.
Raytracing. Radiosity and radiometry. Discrete object representations.
Volume based rendering. 3D texture mapping. Advanced methods for polygon
based rendering. Methods for rendering of shadows and reflections.
Collision control. Modelling of dynamic scenes. Animation techniques and
physical models for motion. Scene graph based software development. Image
processing methods for computer graphics and JPEG coding.
Credits: 5
Duration:mid-January to mid-March.
Scientific Computing, advanced course
Project based course where the students form groups of two or three
and work on a project. The work includes problem analysis and studies,
mathematical modelling, numerical methods, computer implementation,
interpretation and presentation of the result. The Projects are taken
from industry or university. Lectures on oral and written presentation
of scientific results on seminars, posters and on the web are given in
parallel with the project.
Credits: 10.
Duration:mid-March to May.
Programming of parallel computers I
Classification of parallel computers. Different forms of memory
organisation, processors, networks, program control. Different forms
of parallelism. Programming models: Programming in a local name space
with MPI and in a global name space with OpenMP. Grid computing and
middleware. Performance measurements: speedup, efficiency, flops and
dicussions about these measurements and alternatives. Parallelisation
of basic algorithms in numerical linear algebra: matrix-vector
multiplication and matrix-matrix multiplication. Parallelisation of
algorithms in some of the areas solution to full systems of linear
equations, graph algorithms or searching and sorting.
Credits: 5
Duration:mid-March to May.
Digital image analysis
Representation of images in computers. Sampling. Different aims with
image processing. Imaging, image coding, compression and image
restoration. Introduction to different systems for image processing,
equipment and software. Orthogonal transformations (Fourier,
Hotelling). Image processing using point operators and neighbourhood
operators. Segmentation. Operations on binary images. Mathematical
morphology. Extraction of features from the images. Basic theory of
classification and decision. Baye's decision, maximum-likelihood,
discriminant analysis. Colour images and volume images. Examples of
applications. Visit at the Centre for Image Analysis.
Credits: 5
Duration:mid-March to May.
Master Thesis
The Master Thesis concludes the curriculum. It is advised by a
professor in a field of specialization and should teach the student to
work independently on a scientific topic.
Credits: 20.
Duration:Any time during the year.
The graduate programme in Scientific Computing is based on a core curriculum of graduate courses that are offered regularly. Typically, two of these courses are offered each semester. In addition to the core curriculum, other courses and seminars are organized, to cover special issues and timely material. Example of courses are:
For more information see www.it.uu.se/grad/courses/scicomp.php
.
The Swedish National Graduate School in Scientific Computing (NGSSC) is hosted by Uppsala university. NGSSC has enrolled 85 PhD students which are distributed all over Sweden, but get together two to three times per year for taking common courses that are mandatory. The NGSSC graduate student projects are interdisciplinary, but with the main thrust in a certain field. As an example, a student may be involved in a Physics project where computational techniques is the main tool. The NGSSC students gets an education in core areas of Scientific Computing which he/she would not get through a regular Physics programs. Another example is a student in Numerical Analysis working on a problem from an applied area like Chemistry or Fluid Dynamics, who in this way get a better understanding of the application field.
The Department has several distance and summer courses:
In the Swedish university system, the main part of the students go
into specified programs already from the first year. Within each
program, there is a certain flexibility, but a number of courses are
mandatory.
There are 9 different Master's in engineering programs in
Uppsala:
Engineering Physics,
Engineering Physics with Material Science,
Aquatic and Environmental Engineering,
Molecular Biotechnology Engineering,
Bioinformatic Engineering,
Chemical Engineering,
Energy Systems,
Information Technology Engineering,
Systems in Engineering and Society.
They all take 4.5 years to complete, which corresponds to 180 credit points (one year of full time study equals 40 credit points). All of the programs contain at least one mandatory course in Scientific Computing and one in Computer Programming.
The Engineering Physics program has yearly intake of 120 students and the syllabi includes the first and second course in Scientific Computing (Scientific Computing I and II) and Computer programming I. The second course in programming is an elective course.
After two years, the Engineering Physics program has a number of electives, and one is called Scientific Computing. The Scientific Computing elective was initiated as early as 1984, and among the courses are Programming and high performance computing, Programming of parallel computing, Finite element methods, Analysis of numerical methods (PDE's), Optimization, Scientific computing, advanced course (project based), Applied Scientific Computing.
In addition to the engineering programs, there is a program in Computer
Science and one in Natural Science, which also include courses in
Scientific Computing. There is of a course coordination between these
programs and the engineering programs.
Sweden is introducing a Master degree as standardized in Europe under
the 'Bologna model'. Universities can issue such a degree from July
2007. The programs in Computer Science and Natural Science will be
incorporated in this model, e.g. the Computer Science program will be
replaced by a three-year B.Sc. and two-year M.Sc. program in Computer
Science.
Among the programs launched in Fall 2007 is the M.Sc. program in Computational Science, a two-year program with international student recruitment. The program is hosted by DSC and offers a mixture of courses in Scientific Computing and courses chosen within one area of specialisation. Typical areas are chemistry, physics, biology, computer science or mathematics.