The course covers the fundamental concepts of compure science: digital information representation, computer architectures, operating systems, algorithms, programming languages, on compilers and interpreters and on structured programming and programming in C language. In particular, the development of C programs for the management of complex data structures (libraries, archives, etc.).
Lectures, hands-on exercises.
Should teaching be carried out in mixed mode or remotely, it may be necessary to introduce changes with respect to previous statements, in line with the programme planned and outlined in the syllabus.
Fundamentals of algorithms and programs
- Automatic information processing. Algorithms and programs. Programming languages. Code Design. Structured programming. Flowcharts and pseudocode.
- Coding systems. Numbering systems and conversion algorithms. Full and floating point arithmetic. Representation of multimedia data.
- Computer components: central memory, central unit, basic operation of the computer (machine cycle). Peripheral devices and memories.
Computer networks and the Internet
- Local networks. Geographical networks. Network protocols. Overview of the Internet and the most widespread network applications.
- Programming Environment. Compilers vs. interpreters. Architecture and functionality of an Operating System. Process management. Memory management. File system.
The C programming language: syntax and semantics
- Instruction set. Control structures. Data types in C: int, char, float, double, arrays and strings, structures. The C pointer. Functions.
Sorting and searching algorithms
- Sequential and binary search. Sorting algorithms.
- Dynamic data structures. Dynamic allocation of memory. Stacksm Queues and Trees. Example codes.
Fondamenti di Informatica per Ingegneria Industriale, a cura di: Daniela Giordano, Salvatore Cavalieri e Concetto Spampinato. McGraw-Hill.
Linguaggio C - 5a ed. - Guida alla programmazione con elementi di Objective-C, a cura di Bellini, Guidi.