Scientific Computing courses at Uppsala University

List of courses at Division for Scientific Computing.

 

Bachelor's level

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.

 

Master's level

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.

 

Ph.D. level

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:

 
Research Methods in Scientific Computing
Classical Articles in Numerical Analysis,
Numerical Methods for ODE,
Numerical Linear Algebra,
Numerical Optimization,
Numerical Methods for PDE,
Finite Element Methods,
Initial Boundary Value Problems for PDE, I,
Initial Boundary Value Problems for PDE, II,
Load Balancing Methods for Parallel PDE Solvers,
Numerical Methods for Nonlinear Hyperbolic PDE,
Advanced Parallel Computer Architectures,
Parallel Algorithms for Numerical Linear Algebra.

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.

 

Distance education and summer courses

The Department has several distance and summer courses:

 
Computers and programming 1
Computers and programming 2
Script Programming
Object Oriented Programming with C++
Using MATLAB
Internet Programming

 

Scientific Computing education in Uppsala

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.

 

Relevant links