Informatics for Science and Engineering A
The fundamental components of a computer.
The tools of a software development system.
The essential constructions of an imperative programming language.
Some fundamental notions of relational databases.
Some basic concepts involved in the World Wide Web.
Decompose a problem into simpler problems.
Design an algorithm for solving a simple problem.
Write a program, making a correct use of the basic constructions of an imperative programming language.
Test a program in a given programming environment.
State a very simple SQL query.
Access resources available in the network inside a program.
Ability to do a programming project.
Skills in time management.
Nuno Miguel Cavalheiro Marques, Pedro Abílio Duarte de Medeiros
Weekly - 5
Total - 60
This unit has no access requirements.
- John V. Guttag. Introduction to Computation and Programming Using Python, MIT PRESS, 2016. https://mitpress.mit.edu/books/introduction-computation-and-programming-using-python-second-edition
- Allen B. Downey. Think Python: How to Think Like a Computer Scientist (version 2.0.17). Versão PDF disponível em http://greenteapress.com/wp/think-python-2e/
- Ernesto Costa. Programação em Python - Fundamentos e Resolução de Problemas, FCA, 2015
There are two hours of lectures and a lab session of three hours each week.
Lectures are problem-driven. They start with a concrete problem, which motivates the presentation of some computer systems topic, some data type or some programming language construct, and end with the complete source code of a program that solves it.
In the lab classes, students design, implement and test programs for solving simple problems in Science and Engineering fields.
The evaluation consists of two components: the laboratory component
and the theoretical-practical component.
Laboratory Component and Frequency
The laboratory component consists of two mini-assignments and
one final assignment. The mini-assignments and the final assignment are
done in groups (of two students). Each mini-assignment is a small exercise
during a hands-on class and must be delivered by the end of that class day.
Therefore, all students (who are not exempt from obtaining attendance)
must be enrolled in a practical shift.
Although there are two hands-on classes dedicated to the final assignment,
this assignment should also be done outside of the class period.
Assignements will be evaluated individually during the tests.
The score of each group member depends on the work delivered
and the (individual) performance of that member in answering
the questions related to the work.
The grade of the laboratory component (CompL) is the weighted average
of the grades of the mini-works (M1, M2) and the final work (TF):
CompL = 0.15 M1 + 0.15 M2 + 0.7 TF.
To get frequency, you need to: CompL> = 8.0.
The theoretical-practical component consists of two tests
(during class) or an exam. The three tests are individual,
written and without consultation. The grade of the
theoretical-practical component (CompTP) is the weighted
average of the test scores (T1 and T2) or the
exam grade (Ex):
CompTP = 0.4 T1 + 0.6 T2
or CompTP = Ex.
To be approved, you must: CompTP> = 8.0.
Students'' final grade (F) is:
F = CompTP, if CompTP <8.0;
F = 0.4 CompL + 0.6 CompTP,
if CompTP> = 8.0.
All notes (M1, M2, TF, T1, T2, Ex, CompL, and CompTP) are rounded
to one decimal place, except the final note (F) which is rounded
Introduction: Problems, algorithms, programs, and computers. Goals and components of computer systems. Program execution. The interpreter.
Fundamental Concepts of Programming: Constants, variables and expressions. Numbers and strings. Predefined functions. Assignment statement and sequence of statements. Levels of abstraction in problem-solving. Functions. Source code files. Program life cycle. Kinds of error. Unit testing. FOR loops. Vectors. The IF statement. Relational and logical operators. Matrices. Graphics. WHILE loops. File systems. Binary and ASCII files. Structures. Vectors of structures.
Networks and communication protocols. The World Wide Web.
Introduction to databases: the relational model, relations, some basic SQL queries.
Simulation of continuous models.