Introduction to Programming
Áreas Científicas |
Classificação |
Área Científica |
CNAEF |
Informatics Sciences |
Ocorrência: 2022/2023 - 1S
Ciclos de Estudo/Cursos
Docência - Responsabilidades
Língua de trabalho
Portuguese
Objetivos
- Develop and improve logical and formal reasoning skills that allow you to analyze complex problems;
- Present the conceptual foundations and develop skills related to computer programming:
- Understanding the general principles of software engineering;
- Understanding and valuing the central role of the Algorithm;
- Learn the fundamentals of digital systems, number bases and base conversions;
- Development of logical and algorithmic reasoning;
- Learning a programming language and its application in solving paradigmatic exercises.
Resultados de aprendizagem e competências
- Understanding the basic concepts and principles of how a computer works;
- Understanding the concepts associated with the representation of values in different numerical bases and their conversion;
- Ability to code (implement) algorithms in programming languages;
- Ability to implement a project using a programming language.
Modo de trabalho
Presencial
Programa
1- Programming framework in the general context of computing
- Basic description of a computer;
- Basic operations performed by a computer and its connection to programming;
- What does computer programming consist of;
- Programming and troubleshooting; Information Representation;
2- Programming languages
- Concepts of: natural language, programming language and machine language;
- Characteristics and generations of programming languages;
- Brief history of the C language and historical context;
- Compiler vs interpreter;
- Program development phases;
- Lifecycle of a computer program;
3 – Algorithms
- Algorithm Concept; Pseudocode;
- Top-down approach;
4 - Digital systems
- Representation of numerical values in decimal, octal, binary and hexadecimal bases;
- Conversion between bases.
5 – Programming in a high-level language: C language
Introduction
- Structure of a program;
- Basic data types;
- Operators and Expressions;
Input and Output Functions
- printf, scanf, putchar, getchar, puts, gets;
conditional instructions
- if, switch, break, continue;
Cycles
- while, do...while, for;
Functions and Procedures
- Simple functions and procedures (ctype.h);
- Passing of parameters to functions;
- void and return types;
Arrays and Strings
- Functions and procedures on strings (string.h);
sharpeners
- Why use pointers;
- Arithmetic of pointers;
- Passing pointers as function arguments;
Files
- Basic file operations: open, read, write, close;
- standard input, standard output, standard error;
- Implementation of pipes;
Advanced Topics
- Records;
- Dynamic memory;
- Macros.
Bibliografia Obrigatória
Luís Damas; Linguagem C, FCA. ISBN: 9789727221561
Bibliografia Complementar
Dennis Ritchie e Brian W. Kernighan ; The C Programming Language, PEARSON EDUCATION . ISBN: 9780133086232
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 acquire and at the same time stimulate creativity and reasoning with real challenges. Additionally, students have extra-class support, made through the Moodle platform, Zoom, Teams and others.
Software
CodeBlocks
Tipo de avaliação
Distributed evaluation with final exam
Componentes de Avaliação
Designation |
Peso (%) |
Teste |
50,00 |
Trabalho laboratorial |
50,00 |
Total: |
100,00 |
Componentes de Ocupação
Designation |
Tempo (Horas) |
Estudo autónomo |
102,00 |
Frequência das aulas |
60,00 |
Total: |
162,00 |
Obtenção de frequência
The student may opt for continuous assessment or examination.
To pass the course, the student must have:
Test/Exam Grade >=10 values (out of twenty);
Practical Component Score >=10 values (out of twenty).
If you choose continuous assessment, the student will take A) two tests throughout the semester and B) practical component.
A) Each test will be divided into a practical component carried out on a computer and another carried out on paper. The tests will be carried out during the class hours of the discipline and are worth 50% of the final grade of the discipline.
B) The practical component of the course will consist of 4 evaluated laboratories (5% of the final grade/each=20%) and a final project (30%) that will be evaluated in 2 phases throughout the semester.
If you want to be assessed by exam, you will take the test in Regular Season and/or Season of Appeal.
A) Exam (70%);
B) Final project (30%).
Fórmula de cálculo da classificação final
Continuous evaluation:
- Laboratories (20% of final grade):
- Evaluated Laboratories: 4. (5% each). Groups of 2. There is no minimum score.
- Tests: >= 10. (50% of the final grade).
- T1 – Test 1 is worth 40% of the test scores (50% practice + 50% writing);
- T2 – Test 2 is worth 60% of the test scores (50% practice + 50% writing).
- Project: Final project grade >= 10 (30% of final grade).
- P1 >= 8;
- P2 >= 8;
- End: (P1*1/3 + P2*2/3) >=10.
- Final grade for Laboratories + Project (0..20) >=10.
Exam evaluation:
- Project (30%) - Grade (0..20) >= 10.
- Exam (70%) - Final Score (0..20) >=10.