Computer Programming with Laboratory (2009/2010)

Course code
4S02751
Credits
12
Coordinator
Ugo Solitro
Academic sector
INF/01 - INFORMATICS
Language of instruction
Italian
Web page
http://elearning.univr.it
Web page
http://elearning.univr.it
Teaching is organised as follows:
Activity Credits Period Academic staff Timetable
Teoria 8 1st Semester, 2nd Semester Ugo Solitro
Laboratorio 4 1st Semester, 2nd Semester Ugo Solitro

Lesson timetable

1st Semester
Activity Day Time Type Place Note
Teoria Tuesday 12:30 PM - 1:30 PM lesson Lecture Hall E  
Laboratorio Friday 8:30 AM - 10:30 AM laboratorio Laboratory Delta from Nov 7, 2009  to Nov 19, 2009
Laboratorio Friday 8:30 AM - 10:30 AM practice session Laboratory Delta from Oct 10, 2009  to Nov 5, 2009
Laboratorio Friday 8:30 AM - 10:30 AM laboratorio Laboratory Delta from Nov 21, 2009  to Jan 31, 2010
2nd Semester
Activity Day Time Type Place Note
Teoria Monday 1:30 PM - 3:30 PM lesson Lecture Hall E  
Teoria Wednesday 1:30 PM - 2:30 PM lesson Lecture Hall E  
Teoria Wednesday 2:30 PM - 3:30 PM lesson Lecture Hall E  
Teoria Friday 1:30 PM - 3:30 PM lesson Lecture Hall E  
Laboratorio Monday 11:30 AM - 1:30 PM lesson Laboratory Delta  

Learning outcomes

We study the programming principles and their application to the solution of problems, mathematical ones in particular, by means if a programming language.
In the laboratory we learn how to develop project of small or medium size in a specific programming language.

Syllabus

THEORY

Introduction to Computing Science.

Part I - problems, algorithms and programs.

- Basics: problem, specifics, algorithm; abstact machine, compiler and interpreter; programming languages.
- Introduction to the programming language.
- Elementary programming: basic instructions and develoment of simple programs.
- Data types. The general concept of data type: characterization and data representation. Variables, expressions and assignment. Abstract Data Types.
- Primitive data types: characterization, usage and related problems.
- Program structure. Fundamental instructions.
- Sub-programs: structure, parameters and visibility.
- Structured data types. Arrays, pointers, strings and other data structures.
- Basics of objects.
- Dynamic data structures.

Part II - Analysis of Algorithms

- Correctness: termination, logic properties; methods for the correctness verification.
- Introduction to the complexity. Performance of algorithms. Evaluation of efficiency. Computational costs.
- Asymptotic estimation of the complexity in time and space. The worst and medium case.
- Amortized analysis.
- Static sequences: implementation and algorithms.
- Matrices: implementation, operations and algorithms.
- Dynamic sequences: abstract definition and implementation; basic operations.
- Trees. Abstract definition and implementation. Basic operation. Binay research trees.
- Introduction to graphs.

Basics of Object Oriented Programming


LABORATORY

In the laboratory we familiarize with the programming language developing projects based on the ideas presented in the lessons.
We study the fundamental elements of the language and we deal with the problems that arise in the development of the solution; in particular we acquire skill in editing, compiling, debugging and basic project menagement.

Assessment methods and criteria

The final exam is unique and consists in two parts:
- a written part concerning the subject of the course and the laboratory projects.
- an oral part: the admission to this part is allowed only after passing the first one.

Reference books
Activity Author Title Publisher Year ISBN Note
Teoria Sciuto, Buonanno, Mari Introduzione ai sistemi informatici 4/ed McGraw-Hill 2008 9788838664311 Testo di riferimento per l'introduzione all'informatica
Teoria Bertacca M. e Guidi A. Programmare in Java McGraw-Hill 2007 978-88-386-6400-7 Testo di riferimento per il linguaggio di programmazione
Teoria Crescenzi, P. - Gambosi, G. - Grossi, R. Strutture di Dati e Algoritmi Pearson Education Italia 2006 8871922735 Testo di riferimento per lo studio e l'analisi degli algoritmi e delle strutture dati