COMPUTER PROGRAMMING AND LABORATORY-2

Academic year
2025/2026 Syllabus of previous years
Official course title
COMPUTER PROGRAMMING AND LABORATORY-2
Course code
CT0664 (AF:573124 AR:323187)
Teaching language
English
Modality
On campus classes
ECTS credits
6 out of 12 of COMPUTER PROGRAMMING AND LABORATORY
Degree level
Bachelor's Degree Programme
Academic Discipline
INF/01
Period
2nd 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, the student will understand problem solvability and the ability to select suitable methods for problem analysis and modeling.
Knowledge and understanding
The student acquires:
- foundational principles of Computer Science: algorithms, languages ​​and their classification, type systems, control structures, C++ templates, C++ containers;
- understanding of the feasibility and complexity of Computer Science problems and ability to select appropriate methods for their analysis and modeling;

Ability to apply knowledge and understanding
The student:
- knows how to use the fundamental tools for the development and adoption of simple algorithms and data structures (implemented in C++);
- develops feasibility and complexity analyses of Computer Science problems and knows how to select appropriate methods for their analysis and modeling;
- knows how to develop C++ software, perform debugging and design tests to verify the correctness of the software;
- knows how to program following the principles of imperative programming in C++ and following projects expressed through formalisms defined for their description and design.

Learning ability
- The student must be able to consult technical documentation related to the used libraries.
Basic elements of logic. Elementary notions of programming in C (assignments, iterations, functions). Pointers in C.
Variables and elementary types of the C++ language.
Pointers and References in C++.
new and delete operators for the allocation and deallocation of dynamic memory.
Parameter passing by reference.
Array in C and C++.
Strings in C and C++.
Recursion.
Lists and algorithms on lists.
Abstract data types by using classes
Queues and Stacks
templates
Iterators
Move/copy semantics
D.S. Malik: C++ Programming: From Problem Analysis to Program Design. Eight Ed. Cengage Learning. 2018
The exam consists of a written test, an oral interview, and a project.

Description of the written exam for FULL TIME and PART TIME students:
The written test aims to evaluate the student's problem-solving skills, the knowledge of the C++ language, and the ability to code the algorithm devised as a solution.
The written exam consists of programming exercises to be solved on a computer in class. The oral interview consists of a discussion of the written exam, as well as the verification of problem-solving skills and theoretical knowledge. The oral interview will be scheduled when the written exam is sufficient. If the oral interview is insufficient, then the written exam must be retaken.

The first written exam round can be replaced by 4 facultative intermediate HackerRank tests that will take place during the exercise sessions in class. The tests are passed if at least 60% of the exercises in the tests are passed. These tests replace only (the first round of) the written exam; the oral exam is mandatory for everyone.

Description of the final project:
The final project aims to evaluate the ability to apply the skills acquired to the solution of more structured problems.

Also part-time students must solve the final project.
written and oral
The marking of the exam follows the rules::
- project assessment 30%: The accuracy in the development of the problem according to the specifications will determine the evaluation
- oral interview 40%:the expressive skills, the theoretical knowledge, correctness in the use of technical language and the problem solving skills will determine the evaluation according to their degree of development
- written exam 30%: the correctness of the code in the various exercises will determine the evaluation
The course's material will be presented through frontal lectures and programming exercises.
Module 1 will address the theoretical concepts of programming, while Module 2 will focus also on the Laboratory part (in addition to address new language elements). The material of both modules is part of the written and oral exams.
Definitive programme.
Last update of the programme: 03/03/2026