Unit COMPUTER SCIENCE BASIS

Course
Computer science and electronic engineering
Study-unit Code
A003124
Curriculum
Ingegneria informatica
Teacher
Emilio Di Giacomo
CFU
12
Course Regulation
Coorte 2025
Offered
2025/26
Type of study-unit
Obbligatorio (Required)
Type of learning activities
Attività formativa integrata

Code A003125
CFU 6
Teacher Emilio Di Giacomo
Teachers
  • Emilio Di Giacomo
Hours
  • 81 ore - Emilio Di Giacomo
Learning activities Caratterizzante
Area Ingegneria informatica
Academic discipline ING-INF/05
Type of study-unit Obbligatorio (Required)
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

Code A003126
CFU 6
Teacher Emilio Di Giacomo
Teachers
  • Emilio Di Giacomo
Hours
  • 54 ore - Emilio Di Giacomo
Learning activities Caratterizzante
Area Ingegneria informatica
Academic discipline ING-INF/05
Type of study-unit Obbligatorio (Required)
Language of instruction Italian
Contents - OBJECT ORIENTED PROGRAMMING (Java language) - JAVA COLLECTIONS _ INTRODUCTION TO COMPLEXITY ANALYSIS
Reference texts E. Di Giacomo, W. Didimo "Fondamenti di Informatica in Java" Maggioli Editore
Educational objectives Object-oriented programming is first introduced using the Java language. In addition to presenting the language constructs, the key concepts of object-oriented programming (class and object, information hiding, inheritance, and polymorphism) are explained and illustrated through examples and exercises. Complexity analysis is briefly introduced as well, with examples related to the problems of searching and sorting. Finally, the Java Collection Framework is presented, and the use of collections in Java is illustrated. By the end of the course, students are expected to have the following knowledge: - understanding of the basic concepts of object-oriented programming (class, object, inheritance, polymorphism); - understanding of the constructs of the Java language (class, interface, generics, collections); - understanding of the main concepts related to complexity analysis. By the end of the course, students are also expected to have the following skills: - ability to program using the basic tools of the Java language; - ability to use Java Collections; - ability to evaluate the complexity of simple code.
Prerequisites The course assumes no special prior knowledge. The second module assumes the student has attended the first.
Teaching methods The course is organized as follows: 1- Lectures (36 hours, 4CFU) 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 (18 hours, 2 CFU). 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 Java 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 Java. 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 OBJECT-ORIENTED PROGRAMMING (Java Language) + Object-oriented programming + Data types, Variables, Expressions + Class implementation + Control statements + Arrays + Inheritance and Polymorphism COLLECTIONS IN JAVA + Generics + Java Collection Framework + Collection, Set, List, and Map INTRODUCTION TO COMPLEXITY ANALYSIS + Program efficiency + Cost function + Best, worst, and average case + Asymptotic notation + Rules for complexity analysis + Examples on searching and sorting
Share on/Follow us on