COMPUTER SCIENCE I - MOD. 1

Academic year
2022/2023 Syllabus of previous years
Official course title
INFORMATICA I - MOD. 1
Course code
CT0569 (AF:374118 AR:209440)
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
1st Semester
Course year
1
Moodle
Go to Moodle page
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 and in bi-weekly assignments, plus an optional 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.
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).
Italian
written
Definitive programme.
Last update of the programme: 28/07/2022