FACOLTA' DI INGEGNERIAUniversita' di Pavia
Home
  Teaching > Course1011 > Fondamenti di informatica Translate this page in English
About the Faculty
Orientation
Teaching
Research
Services
Industry partnerships
Mobility Erasmus
Shortcuts
Search in this site
Fondamenti di informatica

2010-11 Academic year

Lecturer: Giovanni Danese   Tullio Facchinetti  

Course name: Fondamenti di informatica
Course code: 500655
Degree course: Ingegneria Elettronica e delle Telecomunicazioni, Ingegneria Informatica
Disciplinary field of science: ING-INF/05
University credits: CFU 12
Course website: n.d.

Specific course objectives

Primary goals are to provide the logic principles of behavior and the organization of computing systems, and the methodologies to exploit computing capabilities. In particular, computer programming techniques will be illustrated. Moreover, the most relevant hardware and software system components will be described. The course will allow the student to properly manage techniques and arguments to profitably continue the study of specific topics related with the Computer Science Engineering. In particular, the course will provide knowledge of algorithm development and analysis, evaluation of complexity, and computer programming using the C language.

Course programme

Introduction
Basic concepts, technical terms and application scopes are defined with regard to computer structure and organization.

Information coding
The topics include the representation of several types of information (numbers, text, graphics, etc.). Binary codes are presented, both redundant and non-redundant, as well as error detection/correction codes. The boole algebra is also introduced.

Computer architecture
The structure of a computer is described, together with building components. We describe logic and behavior of processors, the format of the instruction set and the execution cycle. Moreover, the description include peripherals, memories, access and interfacing techniques. The architecture of a complex information system in described, with special attention to memory and resource management, as well as parallelism. The presentation aims at giving a comprehensive overview of the system architecture, both in terms of software and hardware components. Such a description includes the basics of operating system programs.

Operating systems
The main features of operating systems are presented, including the kernel and system programs. A classification of operating systems is provided, based on the most relevant features.

Program development
The program development environment is presented. This basically addresses the UNIX shell, where the compiler and other useful tools can be used. For this purpose, the UNIX environment is briefly introduced.

Data structures
The most common and important data structures are presented. Both the abstract definition and their actual implementation are dealt.

Programming
Basic concepts of computer programming are introduced. The process that brings the implementation of a computer program is presented, including the problem definition and its formalization, formal methods to develop an algorithm (flowcharts in particular), the analysis, testing, debugging and validation of a program.

C language
The actual implementation of programs will be illustrated through the explanation of the C language. The presentation spans over the language syntax, data types, flow control structures, and I/O techniques.

Course entry requirements

Those ones required for the admission.

Course structure and teaching

Lectures (hours/year in lecture theatre): 60
Practical class (hours/year in lecture theatre): 40
Practicals / Workshops (hours/year in lecture theatre): 30

Suggested reading materials

Prof. Danese content.

More information are avilable at http://gamma.unipv.it/fdi/.

J. Glenn Brookshear. INFORMATICA una panoramica generale. Pearson - Addison Wesley. 9^ edizione, 11/2006.

P. Tosoratti. Introduzione all’Informatica. Casa Editrice Ambrosiana, 1998, Milano.

Prof. Facchinetti content.

Tullio Facchinetti, Cristiana Larizza, Alessandro Rubini. Dalla A alla Z passando per C. Biblioteca Delle Scienze, Pavia, 2009. (Available in Italian language only).

Brian W. Kernighan, Dennis M. Ritchie. C language - second edition. Jackson, 1989. (available in English language).

Testing and exams

There are a written and a practical test. The written test will cover 8 out of all the possible topics (2 of them will be related to theoretical topics covered by Prof. Facchinetti). The overall score will the the arithmetic average of single scores.

The practical test consists in the implementation of a program using the C language. The test will take place within the computer laboratories. The whole exam will be considered as passed once both parts (theory and practice) will be sufficient. The overall score is the weighted average between theory and practice (weights 3/5 and 2/5 respectively).

An optional oral examination can be requested to

* improve a sufficient score (the score may also be reduced)

* in case of an insufficient score in the written test, whether the evaluation is higher than 16/30, the oral examination may allow to reach a sufficient score.

In case of an insufficient or a non-satisfactory result in one of the two tests only, only that test is required to be repeated. However, a sufficient result will remain valid until the winter examination session of the next academic year.

Intermediate test

Since the course spans over two semesters, an intermediate written test will take place at the end of the first semester. The test will deal with the topics covered in the first semester. The participation to the intermediate test is optional.

In case of participation to the intermediate test, the whole exam results as composed by 3 tests, and the following rules hold:

* a first test (written) will deal with the topics covered in the first semester; it will be composed by 5 questions; one of them will address topics covered by Prof. Facchinetti;

* the second test (written) will deal with topics covered in the second semester; the total number of questions is 3; one of them will be related with topics covered by Prof. Facchinetti; the second test can only be done whether the first test was sufficient;

* the third test (practice) consists of a programming challenge using the C language.

The overall score is calculated as the weighted average among the three scores (weights (15/40, 9/40 and 16/40, respectively).

An optional oral test can be done only whether the overall score is sufficient.

Copyright © Facoltà di Ingegneria - Università di Pavia