PROGRAMMAZIONE II E LABORATORIO M - Z

Academic Year 2020/2021 - 1° Year - Curriculum Elaborazione Dati e Applicazioni and Curriculum Sistemi e Applicazioni
Teaching Staff
  • PROGRAMMAZIONE II: Marco Moltisanti
  • LABORATORIO: Simone FARO
Credit Value: 9
Scientific field: INF/01 - Informatics
Taught classes: 36 hours
Exercise: 24 hours
Laboratories: 12 hours
Term / Semester:

Learning Objectives

  • PROGRAMMAZIONE II

    The goal of this class is to provide a strong background of C++ programming and basic data structures.

    The goals of this course in terms of expected results are

    1. Knowledge and understanding. Students will be able to understand the fundamental ideas and the basic principles of object oriented programming. More specifically students will learn basic data structures and how to write programs in C++.
    2. Applying knowledge and understanding Students will learn how to properly use concepts related to object oriented programming (such as polymorphisms and inheritance). Also, students will be able to use and implement basic data structures such as linked lists, stacks, queues and binary trees
    3. Making judgements. By studying concrete examples students will learn how to, autonomously, use what studied in class.
    4. Communication Skills. Students will learn how to properly communicate using the technical language of C++ programming.
    5. Learning Skills. A goal of this course is to provide a good theoretical and practical background of basic data structures and object oriented programming. It is expected that students will learn how to autonomously address problems that require the usage of basic data structures and object oriented programming.
  • LABORATORIO

    The second course of Programming Language is designed to provide the tools for solving simple problems related to the use of some basic data structures through the object-oriented programming.

    Knowledge and understanding: knowledge on the main programming paradigms and on the functioning and implementation of the main data structures analyzed will be acquired. The basics of the asymptotic complexity of an algorithm will also be acquired.

    Applying knowledge and understanding: the ability to implement and design algorithmic solutions through the use of the main programming paradigms will be acquired. The student will be able to use iteration and recursion to solve intermediate level computational problems.

    Making judgments: The student will be able to judge the effectiveness of their implementation and their project work.

    Learning skills: the student will be able to adapt the solutions analyzed during the lessons to other contexts.


Course Structure

  • PROGRAMMAZIONE II

    Teaching will be carried out through lectures (for a total of 72 hours) during which the contents of the course will be presented, also through practical demonstrations. In addition, the students will have access to a learning platform. The platform will allow students to practice and self- evaluate themselves on the contents of the course. The same platform provides a valid tool for the exam preparation.

  • LABORATORIO

    Teaching will be carried out through lectures (for a total of 72 hours) during which the contents of the course will be presented, also through practical demonstrations. In addition, the students will have access to learning platform. This platform will allow students to practice and self-evaluate themselves about the contents of the course. The same platform provides a valid tool for the exam preparation.

    Should teaching be carried out in mixed mode or remotely, it may be necessary to introduce changes with respect to previous statements, in line with the programme planned and outlined in the syllabus. Learning assessment may also be carried out on line, should the conditions require it.


Detailed Course Content

  • PROGRAMMAZIONE II

    The course will introduce the concepts of abstract data structures and will investigate different data structures such as stacks, queues , lists, trees and graphs. In addition to data structures, the basic concepts of computational complexity will be introduced.
    The course will focus also to the main data structure management algorithms, and specifically, sorting algorithms, including bubble sort, insertion sort, quicksort and mergesort.

    The C ++ language will be used as the main underlying programming language to present the implementations of data structures and algorithms.

  • LABORATORIO

    The course will introduce the concepts of abstract data structures and will investigate different data structures such as stacks, queues , lists, trees and graphs. In addition to data structures, the basic concepts of computational complexity will be introduced.
    The course will focus also to the main data structure management algorithms, and specifically, sorting algorithms, including bubble sort, insertion sort, quicksort and mergesort.

    The C ++ language will be used as the main underlying programming language to present the implementations of data structures and algorithms.


Textbook Information

  • PROGRAMMAZIONE II

    The reference book is "Fondamenti di programmazione in C++", written by Luis Joyanes Aguilar and published by McGraw-Hill. The book introduces the principles of programming and choose the C++ language to teach them. The reason that drives us in this direction is the desire to reduce the training time of programmers, making then apply, since the early algorithms, to a professional language actually used in large software suites.

     

    Fondamenti di Programmazione in C++
    Algoritmi, strutture dati e oggetti
    Autore: Luis Joyanes Aguilar
    Casa Editrice: McGraw-Hill
    sito web del libro

  • LABORATORIO

    The reference book is "Fondamenti di programmazione in C++", written by Luis Joyanes Aguilar and published by McGraw-Hill. The book introduces the principles of programming and choose the C++ language to teach them. The reason that drives us in this direction is the desire to reduce the training time of programmers, making then apply, since the early algorithms, to a professional language actually used in large software suites.