FUNDAMENTALS OF COMPUTER SCIENCE
Learning outcomes of the course unit
The main objective of the classes is to provide basic knowledge about the principles behind the functioning and of the organization of computing systems and about methodologies and tools to exploit the possibilities that computing systems offer. These objectives are reached through the introduction to programming principles and tools, which are known to be essential aspects for both theoretical and practical applications. Moreover, classes provide functional descriptions of the principal software/hardware modules of computing systems.
Course contents summary
- Hardware architecture of a computing machine and introduction to principia of the functional behavior of electronic computers:
Numbers and numbering systems
I/O units and control
Common peripheral devices
- Operating systems
- Programming and programming languages.
Languages (formalisms, grammars)
- Programming in C
Data types and data structures. Control structures.
- Productivity software.
Classes on programming deal with an in-depth analysis of ANSI C programming language and with practical laboratory exercises. Exercises are mainly devoted to problems of numerical analysis and complex data structures. In particular, students will design algorithms and programs regarding: sorting problems, search problems, lists and tables management, etc.
Any textbook on foundations of computer science is suitable for the classes. Slides from classes are available in the web site of the course.
D Mandrioli, S Ceri, L Sbattella, P Cremonesi G Cugola
"Informatica: arte e mestiere"
3a edizione McGraw Hill 2008
D. Glenn Brookshear
"Informatica: una panoramica generale"
9a edizione Pearson Addison-Wesley 2006
Two written tests: both exams must be sufficient. Final mark is based on the average of both tests. Only if the first exam is sufficient, it is possible to go for the second exam in the following session. All sessions will allow both first and second exams. The second exam regards solving a problem through a C program.