Alberto Castellini
PROGRAMMAZIONE I (Matricole Dispari) (2022/2023) (official webpage)
Bachelor's degree in computer science, Verona University

Syllabus

Introduction. Fundamental concepts: programming, high-level languages, operating systems, program compiling. Compiling and execution of the first program: first program compiling, first program execution, first program description, variable visualization, comments. Variables, data types and arithmetic expressions: operating with variables, data types and constants, operating with arithmetic expressions, combining operations with assignment - assignment operators. Iteration: for instruction, while instruction, do instruction. Taking decisions: if instruction, switch instruction, Boolean variables, conditional statement. Statements with arrays: array definition, array initialization, arrays of chars, multidimensional arrays. Functions: function definition, arguments and local variables, returning results of a function, functions that call functions that calling functions..., top-down programming, functions and arrays, global variables, automatic and static variables, recursive functions. Structures: a structure for data storing, functions and structures, structure initialization, array of structures, structures containing structures, structures containing arrays, variants of structures.

Learning outcomes

This course provides students with the basic ability needed to write programs in an imperative lan- guage of procedural nature (e.g., C), with particular emphasis on the relationship between the pro- gramming language and the underlying hardware machine, on the concept of recursion, and on the implementation of simple data structures, both recursive and non-recursive. At the end of the course, the student will have to demonstrate to own knowledge and comprehension ability on the concepts at the basis of programming through an imperative language of procedural nature; organization ability, implementation and translation on that language, and analysis through de bugging of algorithms and of the corresponding data structures starting from specifications; to be able to develop know-how necessary to continue the study autonomously in the field of programming and Software development.

Reference books

Kochan, Stephen G. Programmare in C. Pearson. 2020.