Scientific Programming in Python

The course is not on the list Without time-table
Code Completion Credits Range Language
12PYTHN Z 2 0+2 Czech
Garant předmětu:
Department of Laser Physics and Photonics

The aim of this course is to learn the fundamentals of the modern Python programming language with a focus on scientific computing. Emphasis is placed on effective solutions to real problems. The course is performed in an interactive form of practical exercises, whose topics are tailored to the content of other subjects, study level, and student theses. Students are also involved in ongoing research. In the introductory part of the course, students learn the basic features of Python?from basic types to object oriented or functional programming. The greater part of the course focuses on specific features of Python for scientific programming. Presented are the main numerical libraries NumPy, SciPy and the Matplotlib graphics library. We show how to generate efficient code, how to combine Python with other languages, what tools are available.


Mandatory: No particular subject needed for qualification

Recommended: Practical knowledge of at least one suitable programming language (C/C++, Fortran, Matlab, Java, Pascal, etc.), knowledge of basics of linear algebra and numerical methods (1st term level)

Syllabus of lectures:

1.Introduction to Python - basic features and tools, conventions, data types, conditions, functions

2.Containers and (im)mutable types, iterators, generators

3.Functional and object-oriented programming, modules

4.Exceptions, unit tests, Python debugger, core modules

5.Complete project in Python - conventions, good practices, documentation, available tools, documentation (Sphinx), package distribution

6.Introduction to NumPy - class ndarray, basic operations, polynomials

7.Graphical output - Matplotlib, reading and writing from / to files

8.Advanced work with NumPy - specifics of ndarray and other classes (matrix, masked array), linear algebra

9.Introduction to SciPy and SymPy

10. Optimization of numerical calculations - vectorization, profiling, Cython, f2py

11. Parallel Computing - threads, processes, message passing

Syllabus of tutorials:

Individual or group specific programming tasks using the acquired knowledge. Exercises will use larger simulation codes and libraries, or work on ongoing research projects. Students will also be given space to deal with problems associated with their further education or bachelor's or master's theses.

Study Objective:

Knowledge: Basics of Python, Python properties for solving scientific problems, an overview of available tools.

Skills: Effective design and implementation of scientific tasks in Python, the ability to find and use available tools.

Study materials:

Key references:

1.V. Haenel, E. Gouillart, G. Varoquaux: Python Scientific Lecture Notes, http://scipy-lectures.github.com

2.H.P. Langtangen: A Primer on Scientific Programming with Python

Recommended references:

3.H.P. Langtangen: Python Scripting for Computational Science

4.M. Pilgrim: Dive Into Python 3, http://getpython3.com/diveintopython3

5.Z.A. Shaw: Learn Python The Hard Way, http://learnpythonthehardway.org


Computer laboratory with UNIX/Linux OS and Python installed

Further information:
No time-table has been prepared for this course
The course is a part of the following study plans:
Data valid to 2024-06-16
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/en/predmet7310006.html