PROGRAMMING

Degree course: 
Corso di First cycle degree in MATHEMATICS
Academic year when starting the degree: 
2016/2017
Year: 
1
Academic year in which the course will be held: 
2016/2017
Credits: 
12
Standard lectures hours: 
96
Requirements: 

No requirements

Final Examination: 
Orale
Assessment: 
Voto Finale

• The main aim of the course consists in giving the basis of data structures theory and algorithms.
The intended scope of the course is also to introduce to the main subjects related to the theory of complexity.
Besides an outline of java programming is given.

• Contents and program of the course

Module A

Introduction to java programming:
- Variables, constants and type of elementary data.
- Assignment and composite statement.
- Basics of Input/output.
- Expressions and operators.
- Control Structures: selection and cycles.
- Class and methods.
- Array.
- Introduction to recursion.

Module B

Useful Mathematical materials for a preliminary
approach to complexity theory.

Recurrences and Master Theorem.

Sorting Algorithms:
- Setting the problem. Lower bound in time complexity.
- Insertion sort – worst case and average case.
- Merge sort - worst case and average case.
- Heap sort - worst case and average case.
- Quick sort - worst case and average case.
- Random Quick sort.

Algorithms for sorting in linear time.

Elementary data structures: Stacks, queues and trees.

• Types of teaching activities: Usual classes.

• Text books and useful materials

Module A
-Tutorial: available on the official web-site.
MIT Press.
-C. Thomas Wu: "Java. Fondamenti di Programmazione.". McGraw-Hill.

Module B
- Introduction To Algorithms. Thomas H Cormen, Charles E Leiserson, Ronald L Rivest, Clifford Stein.

• Exams verification:
Final exam is composed of an oral and a practice test. You are admitted to the oral test provide that your score in practice examination is more than 15.

Modules