نظرة عامة على البرنامج
FUNDAMENTALS OF COMPUTER SCIENCE
Course Overview
The purpose of the course is to provide the tools to imperative programming through the introduction of high-level languages.
Aims and Content
Learning Outcomes
The course aims to provide basis knowledge of computer programming, teaching how to analyze simple problems, how to solve them with procedural algorithms, with an object-oriented programming language. The basis to solve simple data analysis and numerical calculation problems will also be taught.
Aims and Learning Outcomes
In particular, the following topics will be covered:
- Basics about computers: data representation and arithmetic processors; Computer architecture hints and operating systems for the execution basic understanding of programs.
- Introduction to Programming: the high-level programming languages; state and change of state; statements and basic instructions; basic and structured types; simple algorithms and their implementation; structured and modular programming.
- Programming: design of sequential size programs starting from the informal specification of the problem; compilation; code execution; basic ideas of testing.
The programming parts will use a subset of the C++ language as an example of high-level language.
At the end of the course, students will be able to solve simple programming problems, even with the use of external libraries, and above all, they will be able to understand and modify C++ programs.
Prerequisites
None
Teaching Methods
The course will have theory lectures and practical lessons and exercises.
Syllabus/Content
- Basics about computers: data representation and arithmetic processors; Computer architecture hints and operating systems for the execution basic understanding of programs.
- Introduction to Programming: the high-level programming languages; state and change of state; statements and basic instructions; basic and structured types; simple algorithms and their implementation; structured and modular programming.
- Programming: design of sequential size programs starting from the informal specification of the problem; compilation; code execution; basic ideas of testing.
The programming parts will use a subset of the C++ language as an example of high-level language.
Recommended Reading/Bibliography
- Programming Principles and Practice using C++, Addison-Wesley Professional, 2008
- C++. Fondamenti di programmazione -- H. M. Deitel, P. J. Deitel; Editore: Apogeo 2009
Teachers and Exam Board
Teachers
- Manuela Chessa
- Francesca Odone
- Vito Paolo Pastore
Exam Board
- Manuela Chessa (President)
- Francesca Odone
- Vito Paolo Pastore (President Substitute)
- Enrico Puppo (Substitute)
- Fabio Solari (Substitute)
Lessons
Lessons Start
The timetable for this course is available.
Exams
Exam Description
The exam consists of two parts to be taken consecutively:
- An automatically graded quiz, consisting of a series of questions (maximum score of 6). Those who score >=3.5 can take the next part.
- A programming laboratory test on the computer (maximum score of 26, passing grade 12).
At the discretion of the instructors, if there are any doubts during the grading of the test, the student may be asked to take an additional oral exam, during which only the knowledge necessary for completing parts 1 and 2 will be verified. If the student fails the oral exam, the exam is considered not passed, and the student will be required to take the oral exam in all subsequent attempts until passing the exam.
The exam is considered passed if the sum of the two parts is >= 18. The final score is the sum of the two parts plus any bonus from exercises completed during the course; if the score is >30, a grade of 30 with honors will be recorded. The student may decline the recorded grade and retake the exam.
During the exams, it is allowed to consult handouts, any texts, and personal notes; however, it is not allowed to consult online resources.
Assessment Methods
The written exam has the aim of evaluating the main concepts presented during the course. The practical exam has the aim of evaluating the capability of writing a working program in C++. The exam will be evaluated by considering:
- if the code produces the correct results
- style of the code
- efficiency
Exam Schedule
- 09/01/2026: 09:30, GENOVA, Laboratorio
- 02/02/2026: 09:30, GENOVA, Laboratorio
- 08/06/2026: 09:30, GENOVA, Laboratorio
- 06/07/2026: 09:30, GENOVA, Laboratorio
- 09/09/2026: 09:30, GENOVA, Laboratorio
Course Details
- Code: 66052
- Academic Year: 2025/2026
- Credits: 9 cfu
- Scientific Disciplinary Sector: INF/01
- Language: Italian
- Teaching Location: GENOVA
- Semester: 2° Semester
- Prerequisites: Propedeuticitŕ in uscita. This course is propedeutic for the following courses:
- Biomedical Engineering 8713 (coorte 2025/2026)
- ALGORITHMS AND OBJECT ORIENTED PROGRAMMING 84377
- Biomedical Engineering 11878 (coorte 2025/2026)
- ALGORITHMS AND OBJECT ORIENTED PROGRAMMING 84377
