Bachelor's Degree in Electrical Engineering and Information Technology

Page Banner

Vinaora Nivo Slider 3.x

Fundamentals of Computer Engineering

COURSE LANGUAGE: English

YEAR OF THE DEGREE PROGRAMME (I, II, III): I

SEMESTER (I, II, ANNUAL): I

CFU: 12

REQUIRED PRELIMINARY COURSES (IF MENTIONED IN THE COURSE STRUCTURE “REGOLAMENTO”) 
None.

PREREQUISITES (IF APPLICABLE) 
None.

LEARNING GOALS
Provide the basics for computer science disciplines, introducing the student to the study of the theoretical foundations of computer science, computer architecture, and high-level programming languages. To provide the knowledge necessary for the development of programs for solving problems of limited complexity.

EXPECTED LEARNING OUTCOMES (DUBLIN DESCRIPTORS)

Knowledge and understanding
The student must demonstrate knowledge, understanding and ability to describe mechanisms for representing information and for designing and implementing solutions to problems of limited complexity.

Applying knowledge and understanding
The student must demonstrate the ability to apply the technical/practical knowledge (e.g., C language) learned to the solution of simple programming problems by designing and developing programs to solve problems of limited complexity.

COURSE CONTENT/SYLLABUS

  • (0.5 cfu) Lab on INFORMATION AND ITS REPRESENTATIONS: numbers in binary; representation of relative numbers (sign and modulus, one's complement, two's complement, excess-k); representation of real numbers (IEEE 754);
  • (0.5 cfu) Lab on BOOLE ALGEBRA: propositional logic; Boolean operators; Boolean algebra; Boolean functions and truth tables; De Morgan's theorem.
  • (3 cfu) Lab on PROGRAM DEVELOPMENT and STRUCTURE, DATA, CONTROL in C: The translation process; Compilation; Linking; Loading; Compiler vs. Interpreter; The development environment; Design and implementation of program libraries; The general characteristics of the C language; Programs and type management; Functions; Scope and Visibility, Global and Local Variables; Substitution mechanisms by value and by reference; Arrays; Records; Libraries for handling character strings; Single, double pointers, and their use; Specifying an algorithm in C; Control Structures in C; The management of I/O in C; Text files in C; Modularity and parameterization of code; Subprograms: Procedures and functions; Parameter exchange. Abstract Data types: Stack, List, and Queue.
  • (2 cfu) Lab on BASIC ALGORITHMS IMPLEMENTED IN C: Insertion into a vector.; Deleting elements from a vector; Linear (or sequential) search; Binary search; The search for the maximum/minimum value in a vector; The search for the position of the minimum/maximum value in a vector; Sorting a vector; Basic operations on Stack, List, and Queue. Examples of complete programs in C.  

READINGS/BIBLIOGRAPHY 
Check the teacher's website.

TEACHING METHODS 
The teachers will use: a) face-to-face tutorial classes for about 35% of the total hours, which will be conducted in the laboratory using an integrated development environment and through virtual teaching lab platforms; b) asynchronous tutorial classes for about 65% of the total hours, for which the student will be assigned to solve problems studied in the Fundamentals of Computer Science module and related implementations in C language.

EXAMINATION/EVALUATION CRITERIA 

Exam type:

  • Other.

Evaluation criteria:
The outcome of the programming test is binding for access to the oral test. The outcome of the programming test will be used together with the outcome of the Fondamenti di Informatica module test to define the final teaching assessment.