PROGRAMMING MOD. A
none
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.
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
An introduction for a preliminary approach to complexity theory.
Recursive algorithms: a way of implementation and somo considerations about reentrant.
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.
Programmming by objectives (java)
• Inheritance
• Polymorphism theory and applications
• Encapsulation and a brief intorduction to interfaces (brief notes)
Elementary data structures: Stacks, queues and trees.
Implementing operations with large numbers (Pgreco, prime numbers ecc.):
• Use of big decimals and big integer java libraries
• Python prototipation
Text books:
• Introduction To Algorithms. Thomas H Cormen, Charles E Leiserson, Ronald L Rivest, Clifford Stein. MIT Press.
• C. Thomas Wu: "Java. Fondamenti di Programmazione.". McGraw-Hill.
Tutorial: available on the official web-site.