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 and laboratory.
Fundamentals of algorithms and programs
- Automatic information processing. Algorithms and programs. Programming languages. Code Design. Structured programming. Flowcharts and pseudocode.
Information Representation
- Coding systems. Numbering systems and conversion algorithms. Full and floating point arithmetic. Representation of multimedia data.
Computer Architecture:
- 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.
Operating Systems
- 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.
Data structures
- Dynamic data structures. Dynamic allocation of memory. Stacksm Queues and Trees. Example codes.