COMPUTER SCIENCE I - MOD. 2

Academic year
2021/2022 Syllabus of previous years
Official course title
INFORMATICA I - MOD. 2
Course code
CT0569 (AF:355375 AR:186678)
Modality
On campus classes
ECTS credits
6 out of 12 of COMPUTER SCIENCE I
Degree level
Bachelor's Degree Programme
Educational sector code
ING-INF/05
Period
2nd Semester
Course year
1
Moodle
Go to Moodle page
The course is one of the fundamental courses of the Bachelor's Degree in Physical Engineering and provides an introduction to object-oriented programming, algorithms and data structures, with an emphasys on the formalization of problems, the identification of computational solutions, and the analysis of such solutions, from of correctness and efficiency point of use.
Knowledge and understanding:
- knowledge and understanding of the fundamental algorithms and data structures;
- understanding and evaluation of the complexity of computational problems and the ability to select appropriate methods for modeling and solving them;

Ability to apply knowledge and understanding:
- logical-deductive and problem-solving skills;
- ability to formalize and implement solutions for real problems and identification of appropriate solution patterns.

Evaluation skills
- being able to formulate and argue solutions, also developing a critical approach to the evaluation of alternative solutions.
Basic elements of logic. Elementary notions of programming. Introductory knowledge of the Python programming language.
Object-riented Programming
Classes and instances
Inheritance and Polymorphism
Design pattern: singleton, strategy, command, factory, listener-observer

Data Structures:
Arrays, lists and trees.
Dictionaries and Hash Tables.
Binary Search Trees.
Heaps and priority queues.

Algorithms, computation models and analysis techniques:
Informal introduction to algorithms.
Computation models.
Asymptotic notation.
Recurrences.

Fundamental techniques for algorithm design:
Divide-and-conquer.
Dynamic programming.
Greedy algorithms.
Hans Petter Langtangen: "A Primer on Scientific Programming with Python", 3rd edition, Springer.

T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein. Introduction to algorithms (3rd Edition), MIT Press, 2009.
The achievement of the teaching objectives is assessed through participation in the activities and exercises assigned during the course and a final written exam.

The final written exam consists of problems similar to those carried out in class during group work. During the exam, the use of notes, books and other teaching materials is not allowed. A facsimile of the task will be made available.

Students attending classes can accumulate additional points by participating in the quizzes and exercises proposed in class. The bonus will be added to the grade of the written assignment.
Seminars: limited lectures, group work (peer-teaching, problem solving)
Exercises: group work (peer-teaching, problem solving)

Italian
written and oral
Definitive programme.
Last update of the programme: 31/05/2021