PROGRAMMING 2 & LABORATORY

Academic Year 2019/2020 - 1° Year - Curriculum Information Technology
Teaching Staff
  • PROGRAMMING 2: Teacher not yet allocated
  • LABORATORY: Teacher not yet allocated
Credit Value: 9
Taught classes: 36 hours
Exercise: 24 hours
Laboratories: 12 hours
Term / Semester:

Learning Objectives

  • PROGRAMMING 2

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

    In particular the course starts from the introduction of the concept of abstract data model to then introduce and deepen different data models such as: stacks, queues, lists and trees and graphs. The main algorithms for data structure management will also be studied. In particular the main sorting algorithms, including bubble sort, insertion sort, quicksort and mergesort. The C ++ language will be used as the main tool to present implementations of data structures and algorithms.

    As a result of completing this course, students will be able to:

    Knowledge and understanding: Understand and demonstrate implementation of fundamental algorithms and data structures. Understand time and space complexity of algorithms.

    Applying knowledge and understanding: Use fundamental algorithms for sorting and searching and understand their time complexity. Find algorithmic solutions to problems using problem-solving techniques such as divide and conquer. Use key data structures such as linked lists, stacks, queues, trees and graphs.

    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.

  • LABORATORY

    The Laboratory will be used to give students a strong preparation in C++, the OO programming language used to implement algorithms and data structures. I

    As a result of completing this course, students

    1. Knowledge and understanding: will understand the basic ideas and principles of Obiect Oriented Programming. In particular, students will learn the main features of C++ .
    2. Applying knowledge and understanding: will be able to properly use fundamental concepts of Object Oriented Programming, such as classes, objects, polymorphism, inheritance.
    3. Making judgements: will be able to judge the effectiveness of their implementation and their project work..
    4. Communication skills: will acquire the appropriate communication skills related to Object Oriented Programming and the Programming Language C++.
    5. Learning skills: will be able to adapt the solutions analyzed during the lessons to other contexts

Course Structure

  • PROGRAMMING 2

    Teaching will be carried out through lectures (for a total of 48 hours) during which the contents of the course will be presented, also through practical demonstrations.

  • LABORATORY

    Teaching will be carried out through lectures (for a total of 24 hours) during which the contents of the course will be presented, also through practical demonstrations.


Detailed Course Content

  • PROGRAMMING 2

    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.

  • LABORATORY

    Review of basic feature of C++ such as: Function overloading, Optional Parameters, Reference Variables, Operator overloading, Pointers.

    Fundamental Object Oriented programming concepts such as Classes and Objects, and various other concepts revolving around them, like Inheritance, Polymorphism, Abstraction, and Encapsulation.


Textbook Information

  • PROGRAMMING 2

    Thomas H. Cormen. Charles E. Leiserson. Ronald L. Rivest. Clifford Stein. Introduction to Algorithms. Third Edition. The MIT Press

  • LABORATORY

    No specific textbook is chosen.