IN110 - COMPUTER SCIENCE 1 (ALGORITHMS AND COMPUTER PROGRAMMING)
(objectives)
ABILITY TO DESIGN ALGORITHMS FOR SOLVING PROBLEMS. ABILITY TO IMPLEMENT ALGORITHMS USING THE C PROGRAMMING LANGUAGE. BASIC KNOWLEDGE ON THEORY OF COMPUTABILITY AND COMPUTATIONAL COMPLEXITY . BASIC KNOWLEDGE ON COMPUTER ARCHITECTURES AND USER SKILLS ON THE UNIX/LINUX OPERATING SYSTEM.
|
Code
|
20401890 |
Language
|
ITA |
Type of certificate
|
Profit certificate
|
Credits
|
10
|
Scientific Disciplinary Sector Code
|
INF/01
|
Contact Hours
|
96
|
Type of Activity
|
Basic compulsory activities
|
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.
|
Dates of beginning and end of teaching activities
|
From to |
Delivery mode
|
Traditional
|
Attendance
|
not mandatory
|
Evaluation methods
|
Written test
Oral exam
|
Teacher
|
GUARINO STEFANO
(syllabus)
INTRODUZIONE AI DIVERSI ASPETTI DELLO STUDIO DELL'INFORMATICA; IL CONCETTO DI ALGORITMO; IL CALCOLATORE; LINGUAGGI DI PROGRAMMAZIONE. MODELLO DI VON NEUMANN, MODELLO DELLA MACCHINA DI TURING. RAPPRESENTAZIONE DELLE INFORMAZIONI SU DI UN CALCOLATORE. CENNI SUI SISTEMI OPERATIVI E SUL SISTEMA OPERATIVO UNIX/LINUX. ALGORITMI E LORO PROPRIETÀ; I LINGUAGGI PER LA FORMALIZZAZIONE DI ALGORITMI: DIAGRAMMI DI FLUSSO E PSEUDO-CODIFICA. INTRODUZIONE ALLA PROGRAMMAZIONE, LINGUAGGI DI PROGRAMMAZIONE DI ALTO LIVELLO. PROGRAMMAZIONE STRUTTURATA. LINGUAGGIO C: TIPI DI DATO, OPERATORI ED ESPRESSIONI, STRUTTURE DI CONTROLLO, ARRAY E PUNTATORI, STRUTTURE, LISTE, ALLOCAZIONE DINAMICA DELLA MEMORIA, FUNZIONI, FUNZIONI RICORSIVE, LE DIRETTIVE DEL PREPROCESSORE, INPUT E OUTPUT. ALGORITMI DI ORDINAMENTO; STRUTTURE DATI COMPLESSE, HEAP, LISTE, ALBERI, GRAFI; ALGORITMI ELEMENTARI SU GRAFI, VISITA DI GRAFI, CAMMINI OTTIMI SU GRAFI. CENNI SULLA COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI; CENNI SULLA CALCOLABILITÀ: PROBLEMI TRATTABILI, INTRATTABILI, LA CLASSE P, NP, NP-C.
(reference books)
T.H. CORMEN, C.E. LEISERSON, R.L. RIVEST, C. 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 |
Attendance
|
not mandatory
|
|
|