09730 - Principles of Informatics

Course Unit Page

Academic Year 2018/2019

Learning outcomes

At the end of the course, students have acquired knowledge and skills on the basics of logic circuits, digital devices and computer architecture. Moreover, students know the principles of algorithm design and how to write programs in high-level programming languages.

Course contents

Preliminary notions

Principles of information representation and processing. Algorithms and programs. Positional numbering systems and base conversion. Binary numbers. Operations between binary numbers.

Boolean logic and combinatorial and sequential circuits

Boolean algebra. Boolean expressions and functions. Combinatorial circuit analysis and design. Finite state automata. Sequential circuits.

Computer architecture

Von Neumann model. Computer hardware abstract representation. Microprocessor systems.

Programming

The concept of computing machine and algorithmic computation. Data structures (array, list, tree, graph). Flowchart. Algorithm design. Structured programming. Constructs for structured programming. Basic notions of computational complexity.

MATLAB/Octave programming language

Basic language constructs. Data structures. Operations with arrays. Principles of code vectorization. Input and output. Functions. Scope of variables. Graphic functions for plotting. Basic notions of debugging. Algorithms for data processing, control and simulation, and their implementation in MATLAB/Octave.

Readings/Bibliography

S. Attaway. MATLAB - A Practical Introduction to Programming and Problem Solving. Elsevier

(Students at Università di Bologna can download the digital copy of the 2nd edition for free from the publisher website)

W.J. Palm. Matlab. Un'introduzione per gli ingegneri. McGraw-Hill Education.

Teaching methods

The course consists of class lessons, in which the topics will be explained also by the discussion of notable examples. In addition, practical lessons in the lab will be held.

Assessment methods

The final assessment is done by means of a written examination composed of exercises and questions on the topics of the course, and if needed, an oral examination. The aim of the examination is to assess the learning outcomes; mainly, logic and algorithmic reasoning capabilities, and analysis and synthesis of MATLAB/Octave programs.

Teaching tools

Students will be given also teaching material prepared by the teacher (mainly slides, lecture notes and resources on the web, exercises and problems).

Office hours

See the website of Andrea Roli