Study-unit Code
In all curricula
Marco Baioletti
  • Marco Baioletti
  • 78 ore - Marco Baioletti
Course Regulation
Coorte 2021
Learning activities
Discipline matematiche e informatiche
Academic discipline
Type of study-unit
Obbligatorio (Required)
Type of learning activities
Attività formativa monodisciplinare
Language of instruction
Introduction to the basic concepts of computer science
Introduction to algorithmics and programming.
C++ Programming language
A short introduction to Python Programming language
Reference texts
* class notes provided by the teacher
* "C++ Primer" di Stanley B. Lippman, Josee Lajoie, Barbara E. Moo. ADDISON WESLEY LONGMAN INC DIV PEARSON SUITE 300; 5 edizione, 2012
Educational objectives
This course represents the first course of Computer Science and examines the basic concept of computer science
The main purpose of this course is to provide to the students the tools and knowledge needed for an advanced
use of computers, mainly in a scientific environment.
Main knowledge acquired will be
* basic elements of hardware and software architectures
* computational problems and algorithms
* basic elements of computer programming
* object oriented programming
Main competence will be
*computational problem solving
*being able to write small scientific programs in C++
*being able to use Python and some libraries as a scientific toolkit
Basic knowledge from mathematical courses
Teaching methods
The course is organized as follows
* Lectures on all the subjects of the course
* Exercices at the class for solving programming problems in C++ and Python
* Exercices at the computer lab for solving programming problems in C++ and Python
Learning verification modality
The exam is divided in two tests.

A first practical/written test (with maximum duration of 2 hours) where it is required solve with the computer some programming exercices in C++, concerning the programming aspects indicated in the program. The purpose of this test is ascertain the capabilities of problem solving and writing C++ code acquired by the student.
A second oral test (with duration of about 30 minutes) concerning all the concepts indicated in the program: more in detail, it is required to solve one programming problem in C++, then the student will be asked to describe some theoretical topics see in the course. The purpose of this test is to ascertain the knowledge level, understanding capabilities and communication skills acquired by the student.

Students who do not speak italian can do the exam in french or english.
Extended program
1) Introduction to the basic concepts of computer science
* Computer organization
* Operating systems
* Information representation
* Operating system Linux

2) Introduction to algorithmics and programming
* Algorithms and their properties
* Algorithms and programs
* Programming and tools for programming
* Computational cost

3) C++ Programming language
* Variables, expressions and assignment
* Conditional and iterative instructions
* Vectors, matrices and structures
* Function definition and parameters
* Recursion
* Pointers, lists and dynamic data structures
* Introduction to object-oriented programming
* Inheritance and polymorphism

4) Python Programming language
* Foundation of the language
* Vectors and matrices
* Bidimensional graphics
* Symbolic computation
Condividi su