IN110 - Algorithms and Data Structure
(objectives)
Provide a good knowledge in the design of algorithms for the solution of problems and in algorithm coding with a programming language (C language). Introduce the student to some of the fundamental concepts of discrete mathematics (with brief overview on graph theory) and in particular to the basic elements of discrete optimization (optimization algorithms on graphs, visit of graph, shortest paths, spanning trees).
|
Code
|
20410336 |
Language
|
ITA |
Type of certificate
|
Profit certificate
|
Credits
|
9
|
Scientific Disciplinary Sector Code
|
INF/01
|
Contact Hours
|
48
|
Exercise Hours
|
42
|
Type of Activity
|
Basic compulsory activities
|
Teacher
|
MAIELI ROBERTO
(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, "Introduzione agli algoritmi e strutture dati", terza edizione, McGraw-Hill, 2010. - A. Bellini, A. Guidi, "Linguaggio C", quarta edizione, McGraw-Hill, 2009. - M. Liverani, "Programmare in C", seconda edizione, Esculapio, 2013.
|
Dates of beginning and end of teaching activities
|
From to |
Delivery mode
|
Traditional
|
Attendance
|
not mandatory
|
Teacher
|
Onofri Elia
(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, "Introduzione agli algoritmi e strutture dati", terza edizione, McGraw-Hill, 2010. - A. Bellini, A. Guidi, "Linguaggio C", quarta edizione, McGraw-Hill, 2009. - M. Liverani, "Programmare in C", seconda edizione, Esculapio, 2013.
|
Dates of beginning and end of teaching activities
|
From to |
Delivery mode
|
Traditional
|
Attendance
|
not mandatory
|
|
|