### Teachings

Select Academic Year:     2017/2018 2018/2019 2019/2020 2020/2021 2021/2022 2022/2023
Professor
GIOVANNI PUGLISI (Tit.)
Period
First Semester
Teaching style
Convenzionale
Lingua Insegnamento
ITALIANO

Informazioni aggiuntive

Course Curriculum CFU Length(h)
[60/61]  COMPUTER SCIENCE [61/00 - Ord. 2016]  PERCORSO COMUNE 6 48

### Objectives

Knowledge and understanding: The course presents some fundamental principles of computing systems, focusing on information representation, digital logic, and basic architectural elements.

Ability to apply knowledge and understanding: the student will be able to solve simple exercises on combinatorial and sequential logic circuits.

Making judgements: the student will be able to analyze simple digital logic circuits.

Communication skills: the student will acquire technical communication skills related to the topics studied in the course (fundamental principles of computing systems, information representation, digital logic, and basic architectural elements).

Ability to learn independently: starting from the basic concepts provided in the course, the student will be able to deepen some aspects of computing systems.

none

### Contents

1) INTRODUCTION
- Computer Science: the study of algorithms
- Languages for programming algorithms
- Algorithms and computability: Turing machines
- Computing machines: basic concepts, levels of abstraction, history.

2) INFORMATION REPRESENTATION
- Analog and digital representation
- Number systems: decimal, octal, hexadecimal, and binary systems
- Converting between different number systems
- Binary arithmetic: addition, subtraction, multiplication, division
- Negative numbers: sign-magnitude, one’s complement and two’s complement representations, using complements in computing, overflow
- Fixed-point and floating-point numbers
- IEEE standard for floating-point numbers
- Floating-point arithmetic
- Alphanumeric data representation.

3) BOOLEAN ALGEBRA AND LOGIC CIRCUITS
- Boolean algebra and its applications (logic circuits, propositional logic, set theory)
- Logic circuits: basic definitions and properties, logic gates
- Minterms, Maxterms, and Canonical forms
- Minimization: Karnaugh Maps, algorithmic methods, indifference conditions
- Other logic operations: NAND, NOR, XOR, NXOR
- Combinational circuits: analysis and synthesis, commonly used combinational modules (decoder, encoder, multiplexer), arithmetic circuits (binary adder, ALU example)
- Sequential circuits: general model, synchronization, flip-flop, excitation functions of flip-flops, synthesis of sequential circuits, registers and counters.

4) BASIC ARCHITECTURAL ELEMENTS
- Elements and behavior of the Von Neumann machine
- Main memory organization
- Encoding of instructions
- CPU: components, organization, instruction execution steps, performance
- Different types of computer memory: memory classification, memory hierarchy
- Extensions of Von Neumann machine.

### Teaching Methods

Frontal lectures and guided exercises (48 hours).
Homework assignments and exercises under the supervision of a tutor.

### Verification of learning

Written examination with:

- open questions, multiple-choice questions related to the fundamental principles of computing systems, information representation, digital logic, and basic architectural elements.

- exercises on information representation and digital logic circuits.

"In itinere" tests.

### Texts

- C. Bolchini, C. Brandolese, F. Salice, D. Sciuto, Reti logiche, Apogeo.
- J.G. Brookshear. Informatica. Una panoramica generale. Pearson, 2012.
- Lecture notes