Informatics for Science and Engineering E
Objectives
Knowledge
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.
Application
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 (Python).
Test a program in a given programming environment.
State a very simple SQL query.
Access resources available in the network inside a program.
Soft-Skills
Ability to do a programming project.
Skills in time management.
General characterization
Code
11149
Credits
6.0
Responsible teacher
João Manuel dos Santos Lourenço
Hours
Weekly - 4
Total - 62
Teaching language
Português
Prerequisites
Use of computer applications.
Bibliography
Bibliography
-
Allen B. Downey. Think Python: How to Think Like a Computer Scientist. PDF e HTML em http://greenteapress.com/wp/think-python-2e/
-
Charles Severance. Python for Everybody: Exploring Data Using Python 3. PDF e HTML em https://www.py4e.com/book.php. Esta é uma versão baseada na referência anterior contendo novos capítulos sobre Internet e bases de dados. Inclui também uma versão (trinket.io) onde os exemplos podem ser alterados e executados dentro do livro.
- Sebenta do Prof. Ludwig Kripahl (http://iceb.ssdi.di.fct.unl.pt/1920/files/ICEB_notes.pdf)
Teaching method
There are two hours of lectures and a lab session of two 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. These lab sessions are prepared in a previous theorical-practical class.
Evaluation method
Evaluation Rules
***** Evaluation Components *****
The evaluation consists of two components: the laboratory component and the theoretical-practical component.
***** Laboratory Component and Frequency (Attendance) *****
The laboratory component is made up of 4 exercises and 1 practical assignment, carried out in a group of two students (or individually, in justified cases), and the work is mostly done outside of class.
The work is assessed individually, including a form to be completed during the second test on the respective work and possible oral discussion. This assessment determines the final grade awarded to each member of the group.
The grade for the laboratory component (CompL) is obtained as follows:
• compL = 0.1 x Q1 + 0.1 x Q2 + 0.1 x Q3 + 0.7 x TP (where Q1, Q2 and Q3 are the three best results from the 4 exercises).
To obtain frequency, CompL ≥ 8.0 is required.
***** Theoretical-Practical Component *****
The theoretical-practical component consists of two tests or an exam (in the Appeal/Recovery Season). The three examinations are individual, written and closed book. Students may not consult any material or use any electronic device.
The grade for the theoretical-practical component (CompTP) is obtained as follows:
• 0.4 x T1 + 0.6 x T2 or Ex (the exam mark).
To pass, CompTP ≥ 8.0 is required.
***** Final Grade *****
The final grade (NF) for students with attendance is calculated as follows:
• NF = CompTP, if CompTP < 8.0;
• NF = 0.3 CompL + 0.7 CompTP, if CompTP ≥ 8.0.
All grades are rounded to the nearest hundredth on a scale of 0 to 20, except for the final grade (NF) which is rounded to the nearest integer.
***** Grades obtained in previous years ****
Students who attended the course last year can keep their CompL grade. They should not enrol for practical classes. If they enrol in the practical classes, their CompL grade will be the grade obtained this year (they can attend the practicals as long as there are seats in the room).
Attendances prior to 2022/2023 are not valid!
Subject matter
Introduction: Problems, algorithms, programs, and computers. Goals and components of computer systems. Program execution. The interpreter.
Fundamental Concepts of Programming examplified in Python:
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. Dictionaries.
Networks and communication protocols. The World Wide Web.
Introduction to databases: the relational model, relations, some basic SQL queries.
Simulation of continuous models.
Programs
Programs where the course is taught: