COMPUTER SCIENCE I - MOD. 2

Academic year
2024/2025 Syllabus of previous years
Official course title
INFORMATICA I - MOD. 2
Course code
CT0569 (AF:510104 AR:288110)
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.
Generic librasies for scientific programming
NumPy
MatplotLib

Object-riented Programming
Classes and instances
Inheritance and Polymorphism

Data Structures:
Arrays, lists and trees
Graphs
Binary Search Trees
Heaps and priority queues

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

Fundamental techniques for algorithm design
Divide-and-conquer
Dynamic programming
Greedy algorithms

Code verification
Static analysis
"Think Python" -- Allen B. Downey, 2nd Edition, December 2015, O'Reilly Media, Inc. ISBN: 9781491939369
"A Primer on Scientific Programming with Python" -- H. P. Langtangen, 5th Edition, 2016, Springer, ISBN: 3662570467
"Introduction to algorithms (3rd Edition)" -- T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, 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
Definitive programme.
Last update of the programme: 05/03/2024