Programming
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Informática |
Ocorrência: 2022/2023 - 1S
Ciclos de Estudo/Cursos
Sigla |
Nº de Estudantes |
Plano de Estudos |
Anos Curriculares |
Créditos UCN |
Créditos ECTS |
Horas de Contacto |
Horas Totais |
LTB |
51 |
Plano de Estudos |
1 |
- |
6 |
75 |
162 |
Docência - Responsabilidades
Língua de trabalho
Portuguese
Objetivos
The student will obtain knowledge, skills and proficiency in:
- To learn the conceptual foundations for developing and coding of algorithms in programming languages;
- To develop computer applications in high-level languages;
- Practical application of the course contents in real problems, using the procedural and imperative programming paradigm, and also the object-oriented programming paradigm;
- To develop logical and formal reasoning skills for solving complex problems.
Resultados de aprendizagem e competências
Upon completion of this curricular unit students will acquire the knowledge and skills necessary to:
- Apply their (acquired) logical and formal reasoning skills in solving complex problems.
- Develop algorithms and methods to solve real problems, particularly in the field of biomedical sciences.
- Implement software prototypes / informatics solutions applying recent programming paradigms and tools, using the Python language.
Modo de trabalho
Presencial
Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)
Given that it is the first contact with algorithms and data structures, and programming languages in the current curricular plan. This curricular unit introduces procedural and imperative programming and also, the object-oriented paradigm (Introduction to Object-Oriented Programming), being of vital importance for the future graduate / engineer in biomedical technologies. Therefore, students do not need to have prior knowledge regarding computer sciences.
Programa
- Basic concepts (5%)
- Basic elements of a computer.
- Information Representation.
- Programming and problem solving.
- Algorithms (5%)
- Algorithms and programs.
- Algorithm concept, bottom-up and top-down approaches
- Programming Languages (5%)
- Natural language, pseudocode, and programming languages concepts.
- Low-level languages vs high-level languages.
- Typed and untyped, compiled and interpreted languages.
- Programs development phases.
- Programming in a high-level, example-oriented language: Python (85%)
- Python programming principles:
- Program structure.
- Expressions and Data Types.
- Input and output statements.
- Control structures.
- Functions / Subprograms
- Structured data types.
- Arrays, Lists, dictionaries, tuples, sets
- Introduction to object-oriented programming.
- Class, object, and attributes.
- Visibility and encapsulation
- Inheritance and polymorphism
- Introduction to exceptions handling.
- Using external libraries.
- Introduction to development tools (e.g., IDEs, Jupyter Notebooks, Google colab, github).
- Processing data sequences (e.g., text files, Excel).
- Introduction to the development of simple graphical interfaces.
Bibliografia Obrigatória
Andrew Bird, Dr Lau Cher Han, Mario Corchero Jiménez, Graham Lee, Corey Wade; The Python Workshop: Learn to code in Python and kickstart your career in software development or data science. 1st Edition., Packt Publishing, 2019. ISBN: 978-1-83921-885-9
Sebastian Raschka, Vahid Mirjalili; Python Machine Learning Third Edition, Packt Publishing, 2019. ISBN: 978-1-78995-575-0
Bibliografia Complementar
John V. Guttag; Introduction to Computation and Programming Using Python with Application to Understanding Data, Massachusetts Institute of Technology, 2016. ISBN: 9780262529624
Steven F. Lott, Dusty Phillips ; Python Object-Oriented Programming: Build robust and maintainable object-oriented Python applications and libraries, 4th Edition , Packt Publishing, 2021. ISBN: 978-1801077262
Mark Lutz; Programming Python, O’Reilly Media, 2011. ISBN: 978-0-596-15810-1
Python Software Foundation; The Python Tutorial (website (https://docs.python.org/3/tutorial/index.html))
Behrouz A. Forouzan; Foundations of Computer Science, 4th Edition, Cengage Learning EMEA, 2018. ISBN: 9781473751040
Métodos de ensino e atividades de aprendizagem
The teaching methodology is essentially based on theoretical-practical classes and laboratories. It is intended that students directly apply the knowledge they will acquire and at the same time stimulate creativity and reasoning with real challenges. Additionally, students have extra-class support, provided through the e-Learning platform.
The Python programming language will be used to support the practical implementation of the theoretical concepts. To this end, the fundamental concepts of the language are taught, using the (i) procedural and imperative, and (ii) object-oriented programming paradigms.
Software
Plataforma Anaconda-Python (Individual Edition)
Visual Studio Code
Tipo de avaliação
Distributed evaluation with final exam
Componentes de Avaliação
Designation |
Peso (%) |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
40,00 |
Teste |
30,00 |
Trabalho laboratorial |
10,00 |
Trabalho escrito |
20,00 |
Total: |
100,00 |
Componentes de Ocupação
Designation |
Tempo (Horas) |
Elaboração de projeto |
40,00 |
Estudo autónomo |
30,00 |
Frequência das aulas |
56,00 |
Trabalho escrito |
4,00 |
Trabalho laboratorial |
30,00 |
Total: |
160,00 |
Obtenção de frequência
9,5/20
Note: Students who have won any of the TP (Theoretical - Practical) or LAB (Project + Laboratory) components, will be exempt from doing that component in the appeal season.
Fórmula de cálculo da classificação final
50% TP + 50% LAB (average> = 9.5)