The course aims to introduce the fundamental concepts of computer science, covering the following aspects: (i) The characteristics of computer systems, their organization, and the functionalities they provide. (ii) The methodologies for defining and solving problems through an algorithmic approach. (iii) The fundamental concepts of programming, mainly using the C language, to provide solid foundations in the computational and algorithmic approach. (iv) The application of the introduced concepts through problem-solving and practical use of the programming language. (v) The transfer of the introduced concepts to a language oriented towards numerical computation, data handling, and machine learning, such as Python. (vi) The concepts and methods will be illustrated with examples in C. An introductory discussion of the Python language will be provided, covering similarities and differences between the two languages.
Leonardo Cesani Federico Corso Ludovica Lerma