29227 - Foundations of Informatics T (L-Z)

Course Unit Page


This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.

Quality education

Academic Year 2021/2022

Learning outcomes

The aim of the course is to give the student a general overview about computers and scientific computing. After this introductory part, the course is focused on the C language and on numerical methods both at an elementary level.

Course contents

I. Computer architecture

Basic digital circuits for combinational circuits, arithmetics and memories.
RISC computers, pipelining, superscalar and parallel architectures. Memory hierarchy: registers, cache, main memory (RAM) and secondary memory(HD and CD-ROM). Addresses and buses. A brief mention of operating systems, Hard disk partitions and file system.

II. The C language

Binary numbers: integers and floating-point numbers (IEEE Standard 754), ASCII/UNICODE systems, RGB color palette. Sources of errors: absolute, relative and percentage errors. Numerical cancellation and error propagation. Machine precision and significant digits.

The function main, local declarations of variables, variable types. Assignment, arithmetic, relational and logical operators. Program blocks. Logical expressions. Flow control constructs: if-else if-else, switch, for, while e do-while. Multidimensional arrays. Functions and recursive functions. A brief mention of data structures, pointers and  dynamic memory allocation. I/O functions in C. Examples.

III. Introduction to numerical methods

Function approximation: Lagrangian interpolation, Taylor polynomial and series.

Finite difference methods: approximation of the first, second and n-th derivative with backward and forward finite differences, with first and second order truncation error; approximation of the first, second and n-th derivative with centered finite differences. ODE of the second order.

Root-finding algorithms: solution of linear system with Gauss method. Non linear equations: bisection, Fixed point and Newton-Raphson's (tangent) method. The secant method and Regula Falsi method.

Numerical integration: rectangle rule, trapezoidal rule, Simpson's formula. Richardson's extrapolation and Romberg's method. Gauss quadrature. Local and global truncation error and order of convergence.


Instructor lecture notes and lab tutorials (on the University platform: https://iol.unibo.it)

Additional books:
Brookshear, Kochan. Fondamenti di informatica e programmazione in C. Pearson
Kelley, Pohl. C-Didattica e programmazione. Pearson
Bellini, Guidi. Linguaggio C. McGraw-Hill
Ceri, Mandrioli, Sbattella. Informatica: arte e mestiere. McGraw-Hill
Monegato. Fondamenti di calcolo numerico. Levrotto & Bella
Epperson. Introduzione all'analisi numerica. McGraw-Hil

Teaching methods

Class lectures and 12 laboratory tutorials with Personal Computers.

Tutor assistance.

Assessment methods

Multiple choice test and written examination.

The grade is distributed as follows:

1. Computer architecture multiple choice test (minimum score: 4, max: 8)

-2. Programming written C language test in lab with linux operating system: ( minimum score: 5, max: 12)

3. Programming written numerical analysis test in lab with linux operating system (minimum score: 5, max: 12)

The total sum of the scores, greater than the minimum, forms the final grade, that must be >= 18.. Honors are given if the score is > 30.

Teaching tools

PC, projector; class lectures and computing laboratory tutorials.

Office hours

See the website of Ruben Scardovelli