Salta al contenuto principale della pagina

ADVANCED AND ROBOT PROGRAMMING

CODE 86736
ACADEMIC YEAR 2022/2023
CREDITS
  • 5 cfu during the 1st year of 10635 ROBOTICS ENGINEERING (LM-32) - GENOVA
  • SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05
    LANGUAGE English
    TEACHING LOCATION
  • GENOVA
  • SEMESTER 1° Semester
    TEACHING MATERIALS AULAWEB

    OVERVIEW

    Programming in Robotics includes several topics: 1) writing and debugging a soft/hard real time programme, 2) the operating system structure, and its relevant features, 3) concurrent / distributed programming, 4) designing complex, distributed, modular software applications. ARP covers  mostly the mid topics of the list above. ARP, RTOS and SOFAR cooperate in addressing all topics.  However, no cross-prerequisites exist. 

    AIMS AND CONTENT

    LEARNING OUTCOMES

    The goal of the course is to give the students the fundamentals of POSIX programming, concurrent programming, and inter-process communication (i.e., interrupts, signals, pipes, threads, semaphores, shared memory, sockets, publish/subscribe methods).

    AIMS AND LEARNING OUTCOMES

    • Following Bloom's taxonomy, the student will achieve the following results (levels 2 to 4):
    • Describe the behaviour of the different communication / synchronization primitives between tasks and processes (events, shared memory, messages) both in a single and in networked machines.
    • Apply state-of-practice concurrent / distribute programming schemes to solve reference problems in robotics.
    • Compare different communication / synchronization primitives in solving common robotic problems, and
    • Motivate the selection of the most suitable for a specific process.
    • Design and test concurrent / distributed programmes to solve standard, complex, relevant cases in robotics.
    •  

    PREREQUISITES

    1. Programming in C Language (advanced concepts)
    2. Basic structure of an Operating System's kernel
    3. Basic networking concepts

    TEACHING METHODS

     

    IMPORTANT NOTICE! The following scheme describes the course organisation in case of mixed presence/distance modality. If the distance modlity is not in use, don't consider all references to "streaming": teaching and some exercises will be in the performed in the classroom. Some study material will be in any case available in videoclip form.   

    SYLLABUS/CONTENT

    The course is composed by 12 modules, one per week.

    1. Course intro
    2. Op sys architecture 1
    3. Op sys architecture 2
    4. SysCalls1: processes
    5. SysCalls2: threads
    6. SysCalls3: mutual exclusion, synchronization
    7. SysCalls4: pipes
    8. SysCalls5: non determinism
    9. SysCalls6: events
    10. SysCalls7: sockets
    11. Publish/Subscribe: D-BUS
    12. Real cases analysis

    Each module includes an assignment whose solution is discussed in a successive module. The reference framework is the POSIX standard. 

    RECOMMENDED READING/BIBLIOGRAPHY

    The whole study material (reference textbooks, slides, examples) is available in the AulaWeb portal.

    TEACHERS AND EXAM BOARD

    Exam Board

    RENATO UGO RAFFAELE ZACCARIA (President)

    ANTONIO SGORBISSA

    FULVIO MASTROGIOVANNI (President Substitute)

    LESSONS

    Class schedule

    All class schedules are posted on the EasyAcademy portal.

    EXAMS

    EXAM DESCRIPTION

    The final exam is only one othe component of the assessment process. The exam mark will contribute approximatively with 22% - 33% of the full assessment.

    The exam consists in an on line test on the AulaWeb portal, with questions related to the learning outcomes. The test is done in presence in a classroom. Exceptionally the test may be performed remotely, with motivated reasons following the University rules in force.

    ASSESSMENT METHODS

    The course implements a continuous assessment process. All the assignments proposed to students every week may contribute to it.  Intermediate and final, more complex, assignments will be also proposed. Assignments are evaluated if delivered in a regular basis, respecting specific deadlines. 

    The final mark will take into account both the exam and the continuous evaluation of assessments, giving specific values to the different components.

    All the assignment deadlines will be closed before the last exam session of the semester s(approximatively end of February for semester 1 and mid September for semester 2).

    Exam schedule

    Date Time Location Type Notes
    17/01/2023 09:00 GENOVA Scritto NOTICE! The exam will be in room E4.
    14/02/2023 09:00 GENOVA Scritto NOTICE! The exam will be in room E4.
    21/06/2023 09:00 GENOVA Scritto NOTICE! The exam will be in room E4.
    24/07/2023 09:00 GENOVA Scritto NOTICE! The exam will be in room E4.
    13/09/2023 09:00 GENOVA Scritto NOTICE! The exam will be in room E4.

    FURTHER INFORMATION

    Special assessments will be defined for those students who decide to pass the exam in the second semester.