Unit COMPUTER SCIENCE BASIS FOR ELECTRONICS
- Course
- Computer science and electronic engineering
- Study-unit Code
- A003461
- Curriculum
- Ingegneria elettronica
- Teacher
- Emilio Di Giacomo
- Teachers
-
- Emilio Di Giacomo
- Hours
- 81 ore - Emilio Di Giacomo
- CFU
- 9
- Course Regulation
- Coorte 2025
- Offered
- 2025/26
- Learning activities
- Caratterizzante
- Area
- Ingegneria informatica
- Academic discipline
- ING-INF/05
- Type of study-unit
- Obbligatorio (Required)
- Type of learning activities
- Attività formativa monodisciplinare
- Language of instruction
- Italian
- Contents
- Part in common with the first module of the course Fundamentals of Computer Science - PRELIMINARIES - PROCEDURAL PROGRAMMING (C language) - RECURSION Exclusive part for the course Fundamental of Computer Science for Electronics: - INTRODUCTION TO COMPLEXITY ANALYSIS - SEARCHING AND SORTING
- Reference texts
- Deitel and Deitel “Il linguaggio C, fondamenti e tecniche di programmazione”, Pearson
- Educational objectives
- After a brief introduction to the representation of information, procedural programming is introduced using the C language. In addition to presenting the language constructs, students are taught how to approach and solve simple computational problems, with the aim of developing computational thinking and an algorithmic approach to problem solving. To this end, recursion—an essential algorithmic technique in computer science—is also introduced. In the part of the course reserved exclusively for students in the Electronics curriculum, complexity analysis and the problems of searching and sorting are briefly presented. By the end of the course, students are expected to have the following knowledge: - understanding of the basic concepts of programming (data type, variable, parameter, control structures, arrays); - understanding of the constructs of the C language (functions, pointers, structures). By the end of the course, students are also expected to have the following skills: - ability to identify algorithmic solutions to simple computational problems, possibly using recursion; - ability to implement such solutions using the C language.
- Prerequisites
- No specific preliminary knowledge is assumed
- Teaching methods
- The course is organized as follows: 1- Lectures (54 hours, 6CFU) during which the various subjects of the course are explained and some excercises are done in order to help the understanding of the explained subjects and as a training for the exam. 2- Practical activity in the computer lab (27hours, 3CFU). Students, supported by the teacher, write programs on the computer thus applying the concepts that they learned during the lectures. These lab activities are also useful as a training for the practical test during the exam
- Learning verification modality
- The examination consists of the following two tests Written examination with multiple-choice tests. Duration: 60 minutes Score: 10/30 Objective: to ascertain knowledge of the theoretical concepts taught in the course and the ability to understand and use the C language constructs learnt in the course Practical programming test Duration: 120 minutes Score: 20/30 Objective: to ascertain the student's ability to write simple programs in C. The practical test is only taken if the result of the written test is sufficient. The overall score is obtained as the sum of the scores from the two tests. For information on support services for students with disabilities and/or DSA visit http://www.unipg.it/disabilita-e-dsa
- Extended program
- PRELIMINARY CONCEPTS + Representation of information (overview) + Algorithms, Languages, and Programs PROCEDURAL PROGRAMMING (C Language) + The C language + Data types, Variables, Expressions + Control statements + Functions + Arrays and Pointers + Characters and Strings + Input and Output + Structures, Unions, and Enumerations RECURSION + Stack and activation frames + Recursion + Recursive types + Recursion and iteration INTRODUCTION TO COMPLEXITY ANALYSIS + Program efficiency + Cost function + Best, worst, and average case + Asymptotic notation + Rules for complexity analysis SEARCHING AND SORTING + The search problem + Sequential search and binary search + The sorting problem + Examples of sorting algorithms