COMPUTER TECHNOLOGY

Course objectives

GENERAL The course aims to provide students with an in-depth understanding of the structure and operating principles of computing systems, with particular reference to Intel-based 32- and 64-bit architectures. The curriculum combines theoretical and practical aspects related to data representation, numerical computation, hardware architectural choices, and C programming. In particular, the course is designed to develop students' ability to design algorithms for standard problem classes, to interpret existing programs written in C, and to write correct C code starting from predefined functional specifications. The course intends to equip students with critical and operational skills for hardware system design and evaluation and for low-level software development, establishing a solid foundation for advanced studies in computer architecture. SPECIFIC • Knowledge and understanding: understand the operating principles of computing systems, particularly Intel-based 32- and 64-bit architectures; know the fundamentals of structured programming in C and algorithm development principles. • Applying knowledge and understanding: compute and analyze errors arising from floating-point representation; design algorithms to solve standard classes of problems; interpret the behavior of programs written in C; develop C programs according to detailed functional specifications. • Making judgements: critically analyze hardware architectural choices and software solutions with respect to specific project requirements in computing systems. • Communication skills: clearly, logically, and coherently explain and justify hardware and software design choices. • Learning skills: to autonomously develop competencies for the study of advanced topics in computer architecture and programming.

Channel 1
CHRISTIAN NAPOLI Lecturers' profile

Program - Frequency - Exams

Course program
The course is structured into the following main topics: Computing Machines: Historical Overview - Introduction to the history of computing machines, from Maya arithmetic to the abacus, and the use of historical simulators. Analysis of early functional units and computing machine architectures. Binary Representation of Numbers and Information - Study of binary representation, the mathematical bases, and conversion between different numerical bases. In-depth exploration of data representation in computers. Algebraic Structures and Boolean Algebras - Introduction to fundamental algebraic structures and Boolean algebras. Application of Boolean logic in the design of logic circuits. Switching Logic and Logic Gates - Study of the principles of switching logic, basic logic gates, and the synthesis of logic functions. Sequential Circuits and Flip-Flops - Design and analysis of sequential circuits, including flip-flops and their application in registers and counters. Memory and Processor Chip Components - Exploration of registers, memory units, PLA, FPGA, ALU, and their functions in computer architectures. RISC and CISC Architectures - Study of RISC and CISC architectures, their advantages and disadvantages, and the addressing modes used. Assembly Language - Introduction to assembly language, assembler directives, the use of stacks and subprograms, with examples of real assembly languages. I/O Operations and Interrupt Handling - In-depth study of input/output operations, interrupt and exception handling, and support software in operating systems. Microarchitecture Design - Study of the basic structure of processors, microprogramming, pipelining, and predictive techniques for high-performance processors. Memory Devices and Memory Hierarchy - Analysis of main memory devices, cache memories, secondary memory, and performance enhancement techniques. Efficient Circuits for Binary Arithmetic - Design of circuits for binary arithmetic, including fast multiplication algorithms and floating-point arithmetic according to the IEEE 754 standard.
Prerequisites
To successfully follow the course, students should have a basic understanding of computer science and programming. It is essential that they are already familiar with programming concepts in a high-level language, preferably C, and have a grasp of the fundamentals of algebra and mathematical logic. Preliminary knowledge of how operating systems work and basic concepts in digital electronics will be beneficial for effectively engaging with the topics covered in the course.
Books
For the course, the following textbooks will be adopted: Carl Hamacher, Zvonko Vranesic, Safwat Zaky, Naraig Manjikian: "Computer Organization and Embedded Systems", McGraw-Hill (2013) - This book provides a comprehensive overview of computer architecture, covering fundamental aspects such as functional units, RISC and CISC architectures, and processor design principles. It is an essential text for understanding the basics of computing machines and their components. Andrew S. Tanenbaum: "Structured Computer Organization", Pearson (2013) - A classic and highly regarded text that delves deeply into the fundamental and advanced concepts of computer architecture. Tanenbaum covers key topics such as switching logic, registers, cache memory, and high-performance processors, providing practical examples and real-world applications.
Frequency
Fortemente consigliata Strongly suggested
Exam mode
The exam consists of a written test conducted in the classroom, lasting 1 hour. Students must bring only a valid identification document and a non-erasable black or blue pen. During the test, the use of notes, manuals, or books is not allowed, and it is forbidden to communicate with colleagues or use communication devices, under penalty of annulment of the test. To take the exam, students must present an identification document at the exam site. The evaluation will be comprehensive and will consider the outcome of the exam in all its parts. WRITTEN TEST REGULATIONS The test aims to assess the achievement of the essential learning objectives and is conducted in writing. The candidate is required to answer 12 questions: 10 questions that are awarded 1.75 points only if answered correctly, specifically: 8 multiple-choice questions 1 exercise for completing a diagram with labels (scored from 0 to 1.75 points) 1 exercise for identifying basic logical operators 1 exercise on combinational network synthesis (scored from 0 to 3 points; particularly outstanding answers will be awarded 3.5 points) 2 open-ended questions (scored from 0 to 4 points; particularly outstanding answers will be awarded 4.5 points) 1 assembly programming exercise (scored from 0 to 3 points; particularly outstanding answers will be awarded 3.5 points) The total score, which will constitute the grade of the written test expressed out of thirty, will be calculated by summing the scores obtained from the answers to the questions. The exam is conducted in the classroom; students must bring only a valid identification document and a non-erasable pen. The maximum duration of the exam is one hour. The use of notes, manuals, or books is not permitted, and it is also forbidden to communicate with colleagues during the test or use communication devices (cell phones, smartphones, smartwatches, written messages, carrier pigeons, trained ants, telepathy experiments, etc.). Any violations of these rules, as well as leaving the room before submitting the test, will result in the annulment of the exam. Should there be any evidence of violations of the exam rules stated here or the regulations in force at this university, the examination committee will annul the exam and record a negative result. Additionally, appropriate sanctions and disciplinary measures will be considered. The candidate's achievement of a basic knowledge of the subject is considered demonstrated by obtaining a score of at least 18 points on the written test. If the candidate receives a score of less than 18/30 on the written test, the exam will be considered failed. FINAL GRADE The evaluation will be comprehensive and will consider the outcome of the exam in all its parts. The exam is considered passed with a grade of 18/30 or higher. Particularly deserving candidates may be awarded honors in addition to the highest grade (30/30). By taking the exam, the candidate acknowledges, approves, and agrees to these regulations.
Lesson mode
Lezioni frontali in aula Frontal lectures in class
SIMONE LENTI Lecturers' profile
  • Lesson code1017401
  • Academic year2025/2026
  • CourseTelecommunication Engineering
  • CurriculumSingle curriculum
  • Year1st year
  • Semester2nd semester
  • SSDING-INF/05
  • CFU12
  • Subject areaIngegneria della sicurezza e protezione dell'informazione