Fondamenti di Informatica A 2008/2009
pages
InformationQuesta porzione del sito è chiusa! Accedere alla versione dell' a.a. 2009/2010
News
- A breve saranno pubblicati anche i temi d'esame teorici dell'anno accademico 2008-2009
- Testo e soluzione di tutti gli appelli pratici sono publicati al seguente link
- Exercises on OO and C available here: link
- All Slides have been published
- Dates for exams on the first sessions are on-line (see below)
Office Hours
It is reported at Mirko Viroli's homepage
Exams
- Read (in italian) the exam rules at this link
- Text and solutions so far link
- Winter Session (Jan-Feb)
- First call, practice: 13/1/2009, timing 9-18 link
- First call, theory: 16/1/2009, timing 9-13
- Second call, practice: 27/1/2009, timing 9-18
- Second call, theory: 3/2/2009, timing 14-18 (New timing!)
- Third call, practice: 24/2/2009, timing 9-18
- Third call, theory: 27/2/2009, timing 9-13
course contents
- Theoretical Computer Science. The concept of computing machine and algorithmic computation. Formal grammars as tool to describe syntax of data and programs. Main result of classic computer science theory: automata, recursive functions, Church's thesis, Goedel incompleteness. Programming Languages.
- Evaluation of Expressions. Concepts of value, data type, operator, and expression. Primitive types in Java, strings and arrays, their operators. Compilation and interpretation schemata. Abstract Syntax Tree, typing and expression evaluation.
- Functional Programming. The functional abstraction: motivation, syntax, main typing and evaluation aspects. Recursion and algorithms to access sequences. Engineering functions: analysis and design. Designing signature, test function, implementation schemata: recursion and composition.
- Imperative and Structured Programming. Assignment, variables and statements. Constructs for structured programming. Main typing, syntax, and evaluation aspects. Iterative algorithms to elaborate sequences. Activation record. Comparing recursive and iterative algorithms. Tail recursion. Assignments and arrays: side-effects.
- Procedural and Modular Programming. The Java class as a module. Global variables and initialization. Access modifiers. Packages and usage of Java library. Java Development Kit.
- Algorithms and Complexity. Algorithms to sort and access sequences. Elements of complexity theory.
- Programming with Abstract Data Types. Java objects: constructors, methods, fields. Syntax, typing, evaluation. Run-time management. ADTS and their implementation as objects. Implementing data structures in Java.
- Elements of Object-Oriented Programming. Classes, objects, methods and fields. Inheritance. Java Libraries.
- Programming in the C language. Data structures in C. Arrays and pointers. Input/Output. Compiling C programs.
readings / bibliography
- Theoretical Computer Science and Programming
- Ceri, Mandrioli, Sbattella. “Informatica: arte e mestiere”, McGraw Hill
- Aho, Ullman. “Fondamenti di Informatica”, Zanichelli
- Ghezzi, Mandrioli. “Informatica Teorica”, CLUP, Milano, 1989
- Java
- “Java2: i Fondamenti”, McGraw-Hill (Sun Microsystems Press), 1999
- “Java Language Specification”, McGraw-Hill (Sun), scaricabile al sito http://java.sun.com/docs/books/jls/index.html
- Programming:
- “Algoritmi+Strutture Dati=Programmi”, Niklaus Wirth, Tecniche Nuove, 1987
teaching methods
7 hours of lesson per week, typically 4/5 in the teaching room and 2/3 in the lab
assessment methods
- Written test on Java and C programming in lab
- Quiz-based theory test on all the course topics
teaching tools
- Slides projected during the lessons, published on the web site
- Software: Java Development Kit
— a.y.
2008/2009
— credits
9
— cycle
1st cycle
— language
who
— professor
— other professors
— tutors
— university
Alma Mater Studiorum-Università di Bologna
— campus
Bologna
— department / faculty / school
Ingegneria CE (0031)
— 1st cycle
0946 Ingegneria biomedica
URL & ID
— course ID
15305