INTRODUCTION TO PROGRAMMING

Academic year
2024/2025 Syllabus of previous years
Official course title
INTRODUZIONE ALLA PROGRAMMAZIONE
Course code
CT0441 (AF:520917 AR:292000)
Modality
On campus classes
ECTS credits
6
Degree level
Bachelor's Degree Programme
Educational sector code
ING-INF/05
Period
1st Semester
Course year
1
Where
VENEZIA
Moodle
Go to Moodle page
The course aims at introducing the basic elements of imperative programming to devise algorithmic solutions to simple problems.

The student will learn and understand the foundations of computer science for what concerns imperative languages and basic algorithms. Moreover, learn how to use a programming language
to provide a sound and formal description of a designed problem solution.
At the end of the course students must be able to design, develop, compile and run programs on Unix-like platforms. In particular, they must know how to:
i) know the basic elements of the C programming language; understand, simulate and verify fragments of source code.
ii) formalize problems of limited complexity, also by detecting the rules that characterize the problem; design one or more algorithm solutions to it.
iii) design solution of moderate complexity, analyzing sub-problems, their interactions, common data structures and algorithmic solutions.
iv) be able to sue the terminology of imperative programming languages; to provide code documentation.
v) be able to learn autonomously by exploring the reference documentation of the C programming language.
No prerequisite is required.
- Introduction to the C programming language
- Variable and fundamental data types
- Flow of Control
- Functions
- Array, pointers and strings
- Iterative Computation and Recursive Computation
- Dynamic Memory
- Abstract Data Types
- Problem solving strategies
Paul J. Deitel, Harvey M. Deitel. Il linguaggio C. Fondamenti e tecniche di programmazione. 8/Ed. Pearson. 2016.
The exam consists of bi-weekly assignments, a written test, and a final project. Students must gain a positive grade in all the three evaluation steps.

Description of assignments:
Assignments must be delivered on a bi-weekly basis. Students are allowed to ask for the replacement of the weekly assignments with an additional written evaluation.
Assignments include multiple-choice questions and brief exercises, evaluating respectively the achievement of the learning outcomes i) e ii). Assignments simulate the written exam.

Description of the written exam:
The written exam consists of a part of multiple-choice questions and a part of programming exercises, evaluating respectively the achievement of the learning outcomes i) e ii). Exercise requires students to write small fragments of code.

Description of the final project:
The final project evaluates the achievement of the learning outcomes iii) iv) e v).
The project requires to develop a solution to a problem of moderate complexity, and it requires the implementation of a complete program, the integration of multiple simple functions, and the design of suitable data structures.
Students must deliver the source code and a short report, and they must discuss the project with the professor.

The grade is given by 70% written exam plus 30% final project.
Lectures and hands-on sessions.
The frequent interleaving of exercises allows students to immediately apply abstract knowledge to practical problems and to self-evaluate their skills.
Italian
written and oral
Definitive programme.
Last update of the programme: 21/02/2024