Advanced programming

Course objectives

General Objectives: The course aims at providing the students with the ability to understand and design programs that require a deep knowledge of their execution model, specifically, of the organization and management of the memory. To this end, the course adopts the Von Neumann architecture as a reference model and the procedural C/C++ language as the programming tool. The use of the programming language will be focused on memory management techniques (stack, heap), realization of data structures (arrays, matrices, linked lists, stacks, queues, trees, graphs), recursive programming techniques, and implementation of algorithms on such data structures. The course has a strong bias towards program design and implementation and thus, includes practicals at the laboratory, developed on a Linux platform. Specific Objectives: Knowledge and understanding: Providing a wide overview of the analysis and design of programs in languages requiring a deep knowledge of the execution model, and in particular of the memory management mechanisms. The tackled problems are formally defined and both the theoretical and practical bases for their solution are provided. Applying knowledge and understanding: Solving specific programming problems, through a proper application of the studied techniques. Lab activity will allow the students to apply the acquired knowledge. Making judgements: Being able to assess the correctness of a program and its adequacy wrt to the requirements. Communication skills: Ability to describe the decisions made when solving problems and explain the execution mechanisms of programs under the adopted model. Learning skills: Self-study of some topics introduced during the course, through the solution at home of exercises proposed during lab activity.

Channel 1
DANIELE NARDI Lecturers' profile
Channel 2
LUCA IOCCHI Lecturers' profile

Program - Frequency - Exams

Course program
Course web site: https://sites.google.com/diag.uniroma1.it/tdp/home C language memory model linked structures recursion computatina cost data structures - array - lists - trees
Prerequisites
Basic knowledge of computer programming.
Books
Kim N. King, "Programmazione in C", Apogeo, 2010 Material from teachers
Teaching mode
Lectures in class and exercises in lab.
Frequency
Highly recommended attendance in classroom
Exam mode
Test on PC + questions
Bibliography
Other references available on the web site
Lesson mode
Lectures in class and exercises in lab.
  • Lesson code10606848
  • Academic year2024/2025
  • CourseComputer and System Engineering
  • CurriculumAutomatica
  • Year1st year
  • Semester2nd semester
  • SSDING-INF/05
  • CFU9
  • Subject areaMatematica, informatica e statistica