CODE 72536 ACADEMIC YEAR 2023/2024 CREDITS 5 cfu anno 3 INGEGNERIA MECCANICA 8784 (L-9) - LA SPEZIA SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05 LANGUAGE Italian TEACHING LOCATION LA SPEZIA SEMESTER 1° Semester MODULES Questo insegnamento è un modulo di: AUTOMATION SYSTEMS TEACHING MATERIALS AULAWEB OVERVIEW Computers are programmable machines that can execute assemply code. Although feasible, writing such low level code is extremely hard. High level languages allows to encode complex algorithms while abstracting from many physical details of a computer. Embedded devices require to easily switch from to abstract to the physical layer. The C programming language provides the access to both of them. AIMS AND CONTENT LEARNING OUTCOMES Provie the students with the know-how and the tools for developing software and, in particular, in the context of mechanic automation and mechatronics AIMS AND LEARNING OUTCOMES Acquire the necessary knowledge for developing C applications Understand the structure of computers and the relation between the abstract programming objects and the low level hardware aspects. Improve the understanding of the basic concepts relevant for programming, compiling and verifying the software. TEACHING METHODS Oral lecture and practical exercises SYLLABUS/CONTENT Introduction to computer structure Compiling source code to machine executable code Algorithm design C Language: type, expressions, variables and state C Language: imperative fragment C Language: functions and libraries C Language: structs and union C Language: pointers and vectors RECOMMENDED READING/BIBLIOGRAPHY The C programming language. Brian W. Kernighan, Dennis M. Ritchie TEACHERS AND EXAM BOARD MASSIMO NARIZZANO Ricevimento: The professor receives by appointment both in Person and via Teams Exam Board MASSIMO NARIZZANO (President) ENRICO SIMETTI VITTORIO BELOTTI (President Substitute) GIOVANNI INDIVERI (President Substitute) LESSONS LESSONS START https://corsi.unige.it/8784/p/studenti-orario Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION The exam is divided into two parts: one project and an oral presentation. Almost twenty days before the exam session the Professor will publish on aulaweb the project requirements and a deadline for the project commitment. The project should be completed alone without any external help. The project will be divided into two small subprojects: the first one is about the implementation of Software in C, while the second one regards the topics explained in the second part of the Course. Once the student has submitted the project then the Professor will assign a grade to it. If the grade is greater or equal to 18 then the Student can attend the oral presentation. A Student with a good project grade can postpone his oral presentation to another exam session, without submitting another project. However, a student that attends an oral exam session and he wants to attend a future oral session has to submit a new project ASSESSMENT METHODS The Project aims to verify that the student has acquired the technical skills necessary for programming in C language. In this part, in addition to the knowledge, the student's synthesis ability will also be assessed, together with the degree of autonomy that student acquired. The oral part aims to verify that the student has acquired knowledge on the structure of electronic computers and its internal mechanisms. A further objective of the oral part is to verify that the student has learned the abstract concepts related to programming and the software development process.