COMPUTER SCIENCE

Academic year
2026/2027 Syllabus of previous years
Official course title
INFORMATICA
Course code
CT0631 (AF:723599 AR:428088)
Teaching language
Italian
Modality
On campus classes
ECTS credits
6
Degree level
Bachelor's Degree Programme
Academic Discipline
IINF-05/A
Period
1st Semester
Course year
1
Where
VENEZIA
The course aims at introducing the basic elements of imperative programming to devise algorithmic solutions.
The student will learn and understand the foundations of computer science for what concerns imperative languages and basic algorithms.
Moreover, the student will understand problem solvability and the ability to select suitable methods for problem analysis and modeling.
At the end of the course the student must be able to use programming tools (such as IDEs, integrated development environment, or code editors) to develop and debug programs. In particular, he/she must know how to:
1. formalize a problem in order to be solved with a computational approach;
2. designing one or more algorithmic solutions;
3. implement these solutions using imperative programming languages;
4. verify the execution of the proposed programs and judge their efficiency.

The programming language used during the course will be Python.
No specific prerequisite is required, except for some elementary logic.
- Foundations of computers: numerical representation, Boolean algebra, von Neumann Architecture, computational thinking.
- Variables and elementary types in Python. Assignment and expressions.
- Conditional branching and loops.
- Single and multi-dimensional lists.
- Functions and variable scoping.
- Problem solving: decomposition of problems, divide and conquer.
- Recursion.
- Abstract data types: lists, dictionaries, and strings, sets.
- Classes and modules.
- Development and debug with editors or IDE.
- Plotting
"Think Python" -- Allen B. Downey, 2nd Edition, December 2015, O'Reilly Media, Inc. ISBN: 9781491939369
The exam consists of a written test plus a brief oral.
The written test aims to evaluate the student's problem solving skills, the knowledge of Python and the ability to code the algorithm devised as solution. The written exams is split into an initial test with multiple choice questions to assess the student's theoretical knowledge, and a second part focused on the evaluation of the applied knowledge of the student through the development of some algorithmic solutions and their Python implementation.
The optional oral test can be used to improve the written grade, but it can also reduce it.
written

The lecturer has a duty to ensure that the rules regarding the authenticity and originality of exam tests and papers are respected. Therefore, if there is suspicion of irregular conduct, an additional assessment may be conducted, which could differ from the original exam description.

Evaluation grid:
28-30L: mastery of topics covered in lecture, excellent skills in analyzing problems and translating them into working algorithms and codes.
26-27: good knowledge of topics covered in lecture, good skills in analyzing problems and translating them into working or partially correct algorithms and codes.
24-25: not always thorough knowledge of topics covered in lecture, fair skills in analyzing problems with often not fully correct codes.
22-23: often superficial knowledge of topics covered in lecture, deficiencies in analyzing slightly more complex problems, with errors in codes produced.
18-21: patchy knowledge of topics covered in lecture, barely sufficient skills in solving very simple problems with working code.
Lectures and hands-on sessions.
Lectures will be used to introduce the theoretical aspects of the Python language, and will use on-line editors to show code samples.
Hands-on lessons will be carried on using students' laptops and developing tools (local or on-line).
Definitive programme.
Last update of the programme: 10/06/2026