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

Nuno Miguel Cavalheiro Marques, Pedro Manuel Corrêa Calvente Barahona

Hours

Weekly - 4

Total - 62

Teaching language

Português

Prerequisites

Use of computer applications.

Bibliography

Main Reference:

  • Lectures Slides
  • Prof. Ludwig Kripahl''''''''s notes . 2018/19 edition i http://iceb.ssdi.di.fct.unl.pt/1819/files/ICEB_notes.pdf
  • 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)
Complementary References:
 
  • 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

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

Assessment Components

The assessment consists of two components: the laboratory component and the theoretical-practical component.

***** Laboratory Component and Frequency *****

The laboratory component consists of two practical assignments, carried out in a group of two students (or individually, in justified cases) outside the class period, with the work being partially carried out in a practical class.

The evaluation of the works is done individually, during the corresponding tests, which will include a group of questions related to the respective works. The evaluation of these groups depends on the final grade given to the works, but not on the test grades.

The grade of the laboratory component (CompL) is obtained by the weighted average of two practical assignments (TP1 and TP2):
 
    • CompL = 0.4 TP1 + 0.6 TP2.

To obtain frequency it is necessary that CompL ≥ 8.0.

***** Theoretical-Practical Component *****

The theoretical-practical component consists of two tests (during class time) or an exam (at the time of recourse). The three tests are individual, written and without consultation.

The grade of the theoretical-practical component (CompTP) is the arithmetic mean of the test scores (T1 and T2) or the exam grade (Ex):

    • CompTP = max (0.5 T1 + 0.5 T2 , Ex).

To obtain approval, CompTP ≥ 8.0 is required.

*****   Final grade   *****
The final grade (NF) of students with frequency is calculated as follows:
    • NF = CompTP,                     if CompTP < 8.0;
    • NF = 0.4 CompL + 0.6 CompTP,    if CompTP ≥ 8.0 .

All grades are rounded to the nearest decimal, on a scale from 0 to 20, except for the final grade (NF) which is rounded to the nearest integer.

***** Rankings Obtained in Previous Years *****
Students who have attended UC since the year 2018/19 (when the Python language was used) can keep this grade.
If they do, they should not enroll in practical classes and this grade corresponds to CompL above. Oterwise, the CompL grade will be the maximum between the previous grade and the grade obtained this year.

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.