FOUNDATIONS OF COMPUTER SCIENCE
Academic Year 2025/2026 - Teacher: ALESSANDRO DI NUOVOExpected Learning Outcomes
Course Learning Objectives according to the Dublin Descriptors:
Knowledge and Understanding: The student will acquire a solid foundation in computer science as a discipline that studies algorithms, the principles of operation and organization of computers, information systems, and computer networks, as well as the basics of programming languages and in spreadsheets.
Applying Knowledge and Understanding: The student will be able to understand the structure and operational logic of modern information systems, design algorithms to solve moderately complex problems, and implement these algorithms in a programming programming language and/or in spreadsheets.
Autonomy of Judgment: The student will develop the ability to evaluate the suitability of IT tools in a professional context and to select appropriate data structures and methodologies to solve data processing problems.
Communication Skills: The student will be able to engage with IT specialists on the organization of modern information systems and describe in detail the solutions adopted for data processing problems.
Learning Skills: The student will have the skills to learn advanced methodologies and new programming languages, applying the fundamental concepts acquired in the course with flexibility.
In alignment with the United Nations 2030 Agenda for Sustainable Development (https://www.un.org/sustainabledevelopment/), the course fosters digital and analytical skills that contribute to responsible innovation, digital inclusion, quality education (Goal 4), sustainable economic growth (Goal 8), and the development of resilient and sustainable infrastructure (Goal 9).
Course Structure
Seminars will be alternated with computer-based exercises led by the instructor. The course also includes practical exercises performed by the students.
Should the course be delivered in a hybrid or remote format, necessary adjustments may be introduced as compared to what was previously stated, in order to fulfil the program outlined in the syllabus.
Required Prerequisites
Attendance of Lessons
Detailed Course Content
Minimum Competencies
-
Information Representation: Number systems and conversion algorithms. Integer and floating-point arithmetic.
-
Computer Architecture: Basic structure of a computer, central memory, central processing unit, and elementary operations.
-
Operating System: Program translation and execution. Development environments. Differences between compilers and interpreters. Core functions of an operating system.
-
Algorithms and Programming: Fundamental concepts of automatic information processing. Algorithms and their representation. Programming languages. Program design and development.
-
Computer Networks and the Internet: Basic concepts of computer networks, local area networks (LANs), wide area networks (WANs), the Internet, and common network applications.
-
Programming in Modern Languages: Syntax and semantics of a programming language. Control structures: assignment, selection, iteration. Simple data types (numeric, character) and structured types (arrays, strings, records/structures). References and pointers. Functions and modularity. Scope of identifiers. Local, global, and static variables. Parameter passing techniques. Recursion. File management: text and binary files. File access operations.
-
Search Algorithms: Sequential and binary search algorithms.
-
Dynamic Memory Allocation
-
Text Document Management
-
Spreadsheet Design and Management
-
Introduction to Database Design and Management
Textbook Information
Teaching materials
- Tutor's slides
- Tutor's handouts
- Suggested textbooks (not mandatory)
- Introduzione ai sistemi informatici ( D. Sciuto, G. Buonanno, L. Mari, 4^ Edizione - McGrawHill )
- Fondamenti di informatica per ingegneri civili, ambientali e gestionali (Massimiliano Salfi, McGraw-Hill )
Course Planning
Subjects | Text References | |
---|---|---|
1 | Introduction to Computer Science | handouts; recommended books |
2 | Representation of Information | handouts; recommended books |
3 | Boolean Algebra | handouts; recommended books |
4 | Computer Architecture | handouts; recommended books |
5 | Operative system and software applications | handouts; recommended books |
6 | Computer Networks and the Internet | handouts; recommended books |
7 | Algorithms and data structures | handouts; recommended books |
8 | Spreadsheets for statistics and probability calculations. | handouts; recommended books |
9 | Computer programming language | handouts; recommended books |
Learning Assessment
Learning Assessment Procedures
The exam consists of two parts:
- Practical written test: questions multiple choice and open; implementation of a program in C, spreadsheets, and a database
- Oral exam: review of the practical test and assessment of knowledge of the course content