Teacher
|
LIVERANI MARCO
(syllabus)
Introduction to the different aspects of the study of computer science; the concept of algorithm; the calculator; programming languages. Model of Von Neumann, model of the Turing machine. Representation of information on a computer. Notes on operating systems and the Unix / Linux operating system. Algorithms and their properties; languages for algorithm formalization: flow diagrams and pseudo-coding. Introduction to programming, high level programming languages. Structured programming. C language: data types, operators and expressions, control structures, arrays and pointers, structures, lists, dynamic memory allocation, functions, recursive functions, preprocessor directives, input and output. Sorting algorithms; complex data structures, heaps, lists, trees, graphs; elementary algorithms on graphs, visit graphs, excellent paths on graphs. Notes on the computational complexity of algorithms; notes on calculability: treatable, intractable problems, class P, NP, NP-complete.
(reference books)
Cormen, Leiserson, Rivest, Stein, "Introduction to algorithms", third edition, The MIT Press, 2009 A. Bellini, A. Guidi, "Linguaggio C", quarta edizione, McGraw-Hill, 2009. M. Liverani, "Programmare in C", seconda edizione, Esculapio, 2013.
|