FOUNDATIONS OF COMPUTER SCIENCE

Academic Year 2025/2026 - Teacher: ALESSANDRO DI NUOVO

Expected 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

No requirements

Attendance of Lessons

Attendance is compulsory.

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)
- Informatica arte e mestiere ( S. Ceri, D. Mandrioli, L. Sbattella - McGrawHill )

- 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

 SubjectsText References
1Introduction to Computer Sciencehandouts; recommended books
2Representation of Informationhandouts; recommended books
3Boolean Algebrahandouts; recommended books
4Computer Architecturehandouts; recommended books
5Operative system and software applicationshandouts; recommended books
6Computer Networks and the Internethandouts; recommended books
7Algorithms and data structureshandouts; recommended books
8Spreadsheets for statistics and probability calculations.handouts; recommended books
9Computer programming languagehandouts; 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
The assessment can also be carried out remotely, should circumstances require it.