Salta al contenuto principale della pagina

ADVANCED PROGRAMMING TECHNIQUES

CODE 80311
ACADEMIC YEAR 2021/2022
CREDITS
  • 6 cfu during the 3nd year of 8759 INFORMATICA (L-31) - GENOVA
  • SCIENTIFIC DISCIPLINARY SECTOR INF/01
    LANGUAGE Italian
    TEACHING LOCATION
  • GENOVA
  • SEMESTER 1° Semester
    TEACHING MATERIALS AULAWEB

    OVERVIEW

    The purpose of the course is to improve students' programming skills and to let them familiarize themselves with technologies and methodologies widespread in the industrial world; In particular, with the platform concept, exemplified on the .NET framework, with some productivity tools, such as Visual Studio, and component development.

    To successfully attend this course, students must be able to program in an object-oriented language and have basic knowledge of databases.

    AIMS AND CONTENT

    LEARNING OUTCOMES

    Conceptual design and programming concepts based on components.

    Technologies and productivity tools in use in the professional field.

    Integration of design and programming skills acquired during programming courses, data bases and software engineering.

    AIMS AND LEARNING OUTCOMES

    At the course end, through self-study and programming practice, students

    • will be able to implement small projects in a DotNet environment
    • will have become familiar with the basic functionality of Visual Studio
    • will have experimented with the use of unit testing to improve the quality of the code and acquired the basic concepts of this technique
    • will have studied the model underlying the latest generation versioning systems and used in practice GitHub
    • will have learned to develop code that meets the specifications
    • will have learned to use the Entity Framework to interact with a SQL-Server database

    PREREQUISITES

    • Imperative and object-oriented programming concepts (data structures, loops, inheritance, exceptions, typing systems...)
    • Fundamentals and design of Data Bases (tables, queries, constraints...)
    • Software life-cycle (design, implementation, testing...)

    TEACHING METHODS

    Teaching is composed partly of frontal lessons and partly of guided laboratory activities, where the techniques and principles introduced during frontal lessons are applied.

    During the guided laboratories, the issues to be solved in the final project will be addressed in isolation. Active participation is therefore to be considered as a precondition for a successful project activity with limited effort.

    SYLLABUS/CONTENT

    TAP introduces the mainstream technologies, methodologies and tools for software development. As a "side effect", students will improve their programming skills.

    The course develops two main topics:

    1. In-the-small programming. Students will have to prove their capabilities on

    • reading, understanding and implementing a detailed specification
    • performing unit testing tasks, and using the results to correct any error in their code
    • designing and using a small database

    A reasonable familiarity with these activities is a prerequisite of the course. TAP will address the integration of these aspects.

    2. Component development, modular programming principles and reuse; Students will need to learn:

    • economic and historical reasons for re-use
    • concepts at the base of components and component models
    • framework / platform concepts
    • the impact of the use of reusable components on the development of a system
    • peculiarities of the process of developing a reusable component

    The concepts outlined will be made more concrete through project activities that will take place from the beginning of the lesson period and will also allow students to become familiar with various development and testing tools in the .NET environment.

    This teaching is mandatory for the curriculum TECHNOLOGY-ORIENTED and can be selected as elective for the other curriculum

    RECOMMENDED READING/BIBLIOGRAPHY

    Reference texts and instrumentation / technology documentation will be made known/available on Aulaweb and in the course slides.

    TEACHERS AND EXAM BOARD

    Exam Board

    MAURA CERIOLI (President)

    DAVIDE ANCONA

    GIOVANNI LAGORIO (President Substitute)

    MAURIZIO LEOTTA (Substitute)

    LESSONS

    Class schedule

    All class schedules are posted on the EasyAcademy portal.

    EXAMS

    EXAM DESCRIPTION

    Students will have to complete a small individual project and pass a written test to pass the exam.

    Students who have thus reached sufficiency will be entitled to discuss the project and have an oral test.

    ASSESSMENT METHODS

    The project makes it possible to evaluate programming skills using a productivity tool to implement interfaces given.

    The writing allows assessing

    • the ability to program small code fragments without the aid of sophisticated development environments
    • and, through a small quiz, the knowledge of the concepts introduced during the course.

    The oral exam allows verifying how much the concepts underlying the technologies adopted have been assimilated.

    The discussion of the project allows to verify the authorship and offers the student the possibility to counter any negative evaluations by illustrating the reasons for the implementation choices adopted

    Exam schedule

    Date Time Location Type Notes
    04/02/2022 14:30 GENOVA Scritto
    18/02/2022 14:30 GENOVA Scritto
    09/06/2022 14:30 GENOVA Scritto
    06/07/2022 14:30 GENOVA Scritto
    08/09/2022 14:30 GENOVA Scritto