60/61/114 - FUNDAMENTALS OF COMPUTER SCIENCE
Academic Year 2022/2023
Free text for the University
GIOVANNI PUGLISI (Tit.)
- Teaching style
- Lingua Insegnamento
|[60/61] COMPUTER SCIENCE||[61/00 - Ord. 2016] PERCORSO COMUNE||6||48|
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.
- 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.
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.
- C. Bolchini, C. Brandolese, F. Salice, D. Sciuto, Reti logiche, Apogeo.
- J.G. Brookshear. Informatica. Una panoramica generale. Pearson, 2012.
- Lecture notes
Auxiliary learning materials: lecture slides and exercises with solutions.