COURSE GOALS: The aim of the course is to introduce students to numerical methods and numerical libraries using computer language Python. Students are required to solve problems in mathematics and physics using numerical methods. This course prepares students to the follow the higherlevel course User interfaces, as well as courses in physics where problems are solved by numerical methods.
LEARNING OUTCOMES AT THE LEVEL OF THE PROGRAMME:
1. KNOWLEDGE AND UNDERSTANDING
1.5. describe the purpose and use of common software packages;
1.6. list and describe the methods for manipulating data, basic principles of databases and fundamental algorithms in programming;
2. APPLYING KNOWLEDGE AND UNDERSTANDING
2.2. recognize and follow the logic of arguments, evaluate the adequacy of arguments and construct well supported arguments;
2.6. apply fundamental algorithms in programming;
2.7. use computing technology to solve scientific and technological problems;
4. COMMUNICATION SKILLS
4.4. use the written and oral English language communication skills that are essential for pursuing a career in physics, informatics and education
5. LEARNING SKILLS
5.1. search for and use professional literature as well as any other sources of relevant information;
5.2. remain informed of new developments and methods in physics, informatics and education;
5.3. develop a personal sense of responsibility for their professional advancement and development.
LEARNING OUTCOMES SPECIFIC FOR THE COURSE:
Upon completing the course students will be able to:
1. Write computer programs in Python using numerical methods and libraries
2. Solve problems in physics and mathematics using numerical methods
3. Visualize solutions of problems in physics and mathematics by using numerical libraries in Python
4. Demonstrate the basic knowledge of numerical methods and libraries
5. Develop and apply computer programming skills
COURSE DESCRIPTION:
1. History of computing and numerical methods [1 hour]
2. High performance computing, visualization and animation [2 hours]
3. Functional programming, IPython [4 hours]
4. Numerical errors, numerical derivatives, numerical solutions of algebraic equations [4 hours]
5. Libraries for programming in Python: NumPy, SciPy, mpmath, SymPy, Sage, matplotlib, PyLab. Application of these libraries in solution of algebraic equations [4 hours]
6. Numerical solutions of differential equations [8 hours]
7. Numerical linear algebra [8 hours]
8. Interpolations, numerical solutions of integrals [8 hours]
REQUIREMENTS FOR STUDENTS:
Students are required to regularly attend classes and online tests, as well as to solve problems in Python.
GRADING AND ASSESSING THE WORK OF STUDENTS:
During the course students attend online tests (50% of the final grade) and solve problems in computer labs (50% of the grade).
