Programming and Numerical Computing
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Matemática e Informática |
Ocorrência: 2022/2023 - 2S
Ciclos de Estudo/Cursos
Sigla |
Nº de Estudantes |
Plano de Estudos |
Anos Curriculares |
Créditos UCN |
Créditos ECTS |
Horas de Contacto |
Horas Totais |
CIVD |
11 |
Study Plan |
2 |
- |
4 |
67,5 |
108 |
Docência - Responsabilidades
Língua de trabalho
Portuguese - Suitable for English-speaking students
Objetivos
It is intended that the student acquires programming and numerical calculus skills.
At the end of the course, the student should be able to:
- Understand the basic programming principles that will allow the student to adapt to new programming languages;
- Develop logical reasoning;
- Understand and apply numerical methods to solve mathematical problems: nonlinear equations, polynomial approximation of functions, numerical integration and ordinary differential equations;
- Implement the algorithms obtained from the numerical methods and apply them to Civil Engineering problems;
- Recognize the advantages, disadvantages and limitations of each method;
Develop teamwork skills.
Resultados de aprendizagem e competências
Not applicable
Modo de trabalho
Presencial
Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)
Previous knowledge about real functions (continuity, differentiability, integration) and about ordinary differential equations.
Programa
- Introduction to programming: constants, variables, operators (arithmetic, relational and logical), functions (2 weeks)
- Pseudocode: structure of na algorithm, declaration of variables, assignment of values,, comments, input and output data, basic structures (sequential, conditional and repetition) (3 weeks);
- Error theory: absolute error, relative error, propagation of errorsn(1 week)
- Calculation of roots of nonlinear functions: fixed point, bisection, secant and Newton-Raphson methods (1 week);
- Function interpolation: Lagrange and Newton methods (2 weeks)
- Numerical integration: (2 weeks)
- Problems arising from Civil Engineering that require numerical integration
- Difference between algebraic integration and numerical integration
- Rules for numerical integration: Newton-Cotes and Gauss quadrature
- Numerical resolution of ordinary differential equations (odes) (4 weeks);
- Introduction to the numerical resolution of odes
- Euler and Runge-Kutta methods
Bibliografia Obrigatória
Chapra, S.C., Canale, R. P.; Numerical Methods for Engineers - 7th edition, McGraw-Hill, 2015
Correia dos Santos, F., Duarte, J., Lopes, N. D.; Fundamentos de Análise Numérica com Python 3 e R – 2ª edição, Edições Sílabo, 2019
Guttag, J. V; Introduction to Computation and Programming Using Python, MIT Press, 2013
Bibliografia Complementar
Liang, Y.D.; Introduction to Programming Using Python, Pearson, 2013
Quarteroni, A., Salero, F. ; Cálculo Científico com Matlab e Octave, Springer, 2006
Burden, R. L., Faires, D. J.,Burden, A. M.; Numerical Analysis – 10th Edition, Cengage Learning, 2016
Métodos de ensino e atividades de aprendizagem
In the theoretical-practical classes, the concepts will be introduced, with the help of application exemples whenever possible, trying to stimulate the interest, reasoning and critical thinking of the sudents.
The laboratory classes will take place in computer rooms and will be dedicated to the resolution of programming exercises that allow the student to put into practice the knoweledge acquired. A programming language will be introduced in order to implement the concepts.
Team work will be encouraged.
The continous assessment will be made trough 3 assignments , 1 written test and a final project.
The assessmente during the exams periodo is made throught an written exam and a project (that can be the same that was done during the semester).
Software
Jupiter Notebook
Python3
Tipo de avaliação
Distributed evaluation with final exam
Componentes de Avaliação
Designation |
Peso (%) |
Teste |
30,00 |
Trabalho escrito |
70,00 |
Total: |
100,00 |
Componentes de Ocupação
Designation |
Tempo (Horas) |
Elaboração de projeto |
12,00 |
Frequência das aulas |
52,50 |
Trabalho escrito |
6,00 |
Estudo autónomo |
37,50 |
Total: |
108,00 |
Obtenção de frequência
Not applicable
Fórmula de cálculo da classificação final
Continuous assessment
- 10%*assignment1+10%*assigment2+10%*assignment3+30%*test+40%*project
Final assessment
- 70% exame + 40% project
- Not applicable 100% exam because the project represents a crucial role of integration of the various components of knowledge through its application to solve an actual problem and it allows the student to consolidate his/her programming skills