First cycle
degree courses
Second cycle
degree courses
Single cycle
degree courses
School of Engineering
MECHATRONIC ENGINEERING
Course unit
EMBEDDED SYSTEMS PROGRAMMING
IN01122661, A.A. 2018/19

Information concerning the students who enrolled in A.Y. 2018/19

Information on the course unit
Degree course Second cycle degree in
MECHATRONIC ENGINEERING
IN0529, Degree course structure A.Y. 2011/12, A.Y. 2018/19
N0
bring this page
with you
Number of ECTS credits allocated 9.0
Type of assessment Mark
Course unit English denomination EMBEDDED SYSTEMS PROGRAMMING
Website of the academic structure http://www.gest.unipd.it/it/corsi/corsi-di-studio/corsi-di-laurea-magistrale/ingegneria-meccatronica/
Department of reference Department of Management and Engineering
E-Learning website https://elearning.unipd.it/dtg/course/view.php?idnumber=2018-IN0529-000ZZ-2018-IN01122661-N0
Mandatory attendance No
Language of instruction Italian
Branch VICENZA
Single Course unit The Course unit can be attended under the option Single Course unit attendance
Optional Course unit The Course unit can be chosen as Optional Course unit

Lecturers
Teacher in charge MONICA REGGIANI ING-INF/05

ECTS: details
Type Scientific-Disciplinary Sector Credits allocated
Educational activities in elective or integrative disciplines ING-INF/05 Data Processing Systems 8.0
Other -- -- 1.0

Course unit organization
Period First semester
Year 1st Year
Teaching method frontal

Type of hours Credits Teaching
hours
Hours of
Individual study
Shifts
Lecture 9.0 72 153.0 No turn

Calendar
Start of activities 24/09/2018
End of activities 18/01/2019
Show course schedule 2019/20 Reg.2011 course timetable

Examination board
Board From To Members of the board
11 2018 01/10/2018 15/03/2020 REGGIANI MONICA (Presidente)
TRAMARIN FEDERICO (Membro Effettivo)
TAGLIAPIETRA LUCA (Supplente)
10 2017 01/10/2017 15/03/2019 TRAMARIN FEDERICO (Presidente)
REGGIANI MONICA (Membro Effettivo)

Syllabus
Prerequisites: For the successful achievement of the course objectives, basic knowledge of Computer Engineering (data representation, computer architecture, operating systems) and Sequential Programming (data types, conditional and loop statements, arrays) is required.
Target skills and knowledge: The course provides the opportunities for students to learn fundamental knowledge as well as practical developments in the area of embedded systems programming. Topics will introduce techniques for concurrency, real-time, and reactivity.

After succesfully complete the course, students will achieve the following target skills:
- understand the specifics of embedded computer systems
- explain different mechanisms for communication and synchronization between processes
- understand characteristics of real-time systems to deal with them in programs
- program concurrent embedded applications
- design, structure, and analyze programs for embedded systems
- compare, select, and apply programming language constructs designed for concurrency
Examination methods: Grading is based on the combination of three components:
20%: Homework programming assignment
20%: Written exam
60%: Oral examination on course content
Assessment criteria: The homework programming assignment evaluates student's capabilities to design and develop a software application of practical importance.
The written exam focuses on the solution of a critical section problem.
Oral examination assesses student's knowledge about the fundamental issues presented in the course. This examination also assesses the ability to present engineering designs verbally.
Course unit contents: Introduction to embedded systems. Programming close to hardware. Programs that react to events.
Process management: concept, scheduling.
Concurrent programming: Critical Section Problem, Semaphores, Monitors, Distributed Algorithms, Consensus. Deadlock and starvation.
Real-Time Systems: reliability and repeatability, synchronous and asynchronous systems, priority inversion and priority inheritance.
Scheduling in Real-Time Systems: cyclic scheduling, rate-monotonic scheduling, EDF, resource sharing, deadlock analysis, and schedulability analysis.
Practical developments: C programming language, automatic builds, profiling, POSIX Threads, Sockets, Real-Time Linux, Raspberry Pi.
Planned learning activities and teaching methods: Concepts, methods, problems and solutions are proposed in a series of lectures. Lectures are complemented with supervised short computer based exercises. Four more complex activities, with supervision, allow the students to formulate their own implementations.
Additional notes about suggested reading: Lectures are based on the proposed textbooks.
Additional online material and articles handed out in class and available on the moodle platform will also be required.
Textbooks (and optional supplementary readings)
  • Burns, Alan; Wellings, Andy, Real-Time systems and programming languagesAda, Real-Time Java and C/Real-Time POSIXAlan Burns and Andy Wellings. Harlow [etc.]: Addison-Wesley, 2009. Cerca nel catalogo
  • Ben-Ari, Mordechai, Principles of concurrent and distributed programmingM. Ben-Ari. Harlow [etc.]: Addison-Wesley, 2006. Cerca nel catalogo
  • Kerrisk, Michael, <<The >>linux programming interfacerisorsa elettronicaa Linux and UNIX system programming handbookMichael Kerrisk. San Francisco: No Starch Press, 2010. Cerca nel catalogo

Innovative teaching methods: Teaching and learning strategies
  • Lecturing
  • Laboratory
  • Interactive lecturing
  • Working in group
  • Questioning
  • Problem solving
  • Auto correcting quizzes or tests for periodic feedback or exams
  • Active quizzes for Concept Verification Tests and class discussions
  • Loading of files and pages (web pages, Moodle, ...)

Innovative teaching methods: Software or applications used
  • Moodle (files, quizzes, workshops, ...)
  • Latex
  • C language, linux development suite