- Docente: Roberto Girau
- Credits: 12
- Language: Italian
- Moduli: Roberto Girau (Modulo 1) Andrea Piroddi (Modulo 2)
- Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
- Campus: Cesena
- Corso: First cycle degree programme (L) in Computer Science and Engineering (cod. 8615)
-
from Sep 23, 2024 to Dec 11, 2024
-
from Oct 15, 2024 to Dec 09, 2024
Learning outcomes
At the end of the course, the student will have basic competence in programming using the C language and in analyzing some fundamental problems and their respective solving algorithms.
Course contents
The Programming course aims to provide basic competence in computer programming. No prior knowledge of computer science is required. Initially, a basic description of the algorithmic approach to problem-solving using computers is provided. Subsequently, using the C language, which is described in detail regardless of any prior knowledge the students may have, some fundamental problems and some of the main and most interesting solving algorithms are analyzed.
The C Language
- Organization of computer memory: addresses, words, pointers.
- Data types: integers, floats, double, char, string.
- Data structures: arrays, matrices, lists.
- The C language: purposes and main characteristics.
- Structure of a C program: including headers, variable declarations, libraries.
- Elementary data types in C: integers, floating point, double, small int, long, char.
- Pointers and pointer arithmetic.
- Arrays and matrices and their memory representation.
- Complex data structures: lists, trees.
- Library functions and user-defined functions.
- Parameter passing by value and by address to functions.
- Recursive functions.
- Input/output functions, file functions, functions for direct memory management, string functions.
Algorithm Design and Analysis
- Data types; algebraic specification and implementation: vectors, lists, stacks, queues.
- Algorithms with data structures: construction, search, and sorting in linear lists; management of queues and stacks.
Readings/Bibliography
Brian W. Kernighan, Dennis M. Ritchie. Linguaggio C. Jackson libri.
Copies of the presentations used in class and notes provided by the instructor.
Teaching methods
Lectures, classroom exercises, computer exercises.
Assessment methods
The Programming course exam consists of three parts: the completion of various assignments (on a weekly basis), a written test, and a subsequent oral exam. All details are available on the Virtuale platform.
Teaching tools
All materials used during lectures and laboratory exercises are also made available in electronic form and can be accessed on the Virtuale platform.
Office hours
See the website of Roberto Girau
See the website of Andrea Piroddi