Course syllabus adopted 2021-02-08 by Head of Programme (or corresponding).
Overview
- Swedish nameProgrammeringsteknik och numerisk analys
- CodeSEE125
- Credits9 Credits
- OwnerTKTFY
- Education cycleFirst-cycle
- Main field of studyComputer Science and Engineering, Mathematics, Engineering Physics
- DepartmentSPACE, EARTH AND ENVIRONMENT
- GradingUG - Pass, Fail
Course round 1
- Teaching language Swedish
- Application code 57145
- Open for exchange studentsNo
- Only students with the course round in the programme overview.
Credit distribution
Module | Sp1 | Sp2 | Sp3 | Sp4 | Summer | Not Sp | Examination dates |
---|---|---|---|---|---|---|---|
0121 Project 3 c Grading: UG | 3 c | ||||||
0221 Project 6 c Grading: UG | 3 c | 3 c |
In programmes
- TKTEM - ENGINEERING MATHEMATICS, Year 1 (compulsory)
- TKTFY - ENGINEERING PHYSICS, Year 1 (compulsory)
Examiner
- Maxime Mouyen
Eligibility
General entry requirements for bachelor's level (first cycle)Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.
Specific entry requirements
The same as for the programme that owns the course.Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.
Aim
The purpose of this course is to provide the students with basic skills in programming and numerical analysis, a powerful combination to solve a wealth of scientific problems. The strength of this combination lies in their common reference to algorithms: numerical analysis develops and provides algorithms for solving mathematical problems, while programming automates and performs tasks from an algorithm. This course will train the students in these two fields, mainly using the Python programming language.Learning outcomes (after completion of the course the student should be able to)
Knowledge and understanding
- Express mathematical formulas as programming language expressions and algorithms
- Choose appropriate datatypes and data structures for different kinds of data
- Structure large programs into manageable and reusable units by the use of concepts such as object orientation, modules, classes, and functions
- Find relevant numerical analysis tools and program libraries and use them in adequate ways
- Learn the syntax of Python
Competence and skills
- Utilize functionality from existing Python modules, e.g., Numpy and Scipy
- Use e.g., linear algebra concepts, differential equations, integrators, root finders and other mathematical models for solving science problems
- Write well commented programs that manipulate numeric and textual data and produce properly formatted plots
- Make programs that read, transform, and generate files in the file system
- Use standard libraries and follow best programming practices
- Test programs by various methods.
- Use programming tools such as code editors and version control systems
Judgement and approach
- Assess the complexity and computational resources needed for typical programming tasks
- Determine the efficiency and reliability of an algorithm
- Analyse code written by others and find errors and possibilities for improvement
Content
The course introduces programming using primarily Python with specific focus on algorithm-based numerical solutions of common scientific problems. The student will gain comprehensive knowledge of the algorithms via Python and will be introduced to the basic concepts and tools of computer programming and numerical analysis, namely:
- Algorithm and source code interpretation
- Data types, variables and arrays
- Conditions and loops
- Functions, classes and objects
- Error analysis and floating-point arithmetic
- Numerical differentiation and integrations
- Linear algebra: working with matrices
- Roots of equations
- Interpolations and approximations
- Ordinary differential equations
Organisation
The course consists individual modules. Each module consists of introductory and follow-up lectures scheduled around exercise classes and project assignments.
Weekly lectures will present the students with a few programming and numerical analysis concepts and tools, together with a broad perspective on their application. Subsequently, a number of physics problem sets will be used as starting points for the students own learning. The student will produce their own code and implement existing algorithms. In connection with the problem sets, we will have follow-up lectures that discuss different solving strategies and reflect on the different solutions.
The course runs over three periods.
Literature
Numerical Methods in Physics with Python - Alex Gezerlis, Cambridge University Press, ISBN 9781108772310
Examination including compulsory elements
The course is examined through written assignments. All three periods include project work followed-up by self-reflection reports, set at a bi-weekly period. The project work will consist of programming assignments and problem sets and is typically performed in groups of two.
The course examiner may assess individual students in other ways than what is stated above if there are special reasons for doing so, for example if a student has a decision from Chalmers on educational support due to disability.