TEACHING EMBEDDED IOT TO ALL ENGINEERS

Detalhes bibliográficos
Autor(a) principal: Ferreira, Paulo
Data de Publicação: 2022
Outros Autores: Malheiro, Benedita, Silva, Manuel, Guedes, Pedro, JUSTO, Jorge, Castro Ribeiro, Maria Cristina De, Duarte, Abel J.
Tipo de documento: Artigo
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10400.22/20706
Resumo: In a traditional Engineering curriculum, computers replaced electronic calculators that replaced slides rules, always with the purpose of calculating more, better, and faster. Nowadays, besides being interconnected, computers are embedded in many devices, from smartcards to automobiles, with diverse functionalities and executing a wide range of tasks. Modern engineers use programming languages (with computers) not only for calculations, but also for automating software or equipment. While offering multiple possibilities, embedded processors place also serious restrictions on the programmer, as some tools have serious limitations and deviations from "normal programming", for instance while debugging. The chip shortage due to the COVID-19 pandemic has further complicated the situation, as some development boards are unavailable, have astronomical prices or both. This paper discusses the use of Python and micropython for teaching programming, in the context of a Project Based Learning experience involving a multicultural and diverse team. The use of Python allows the use of an Open Source language with a wide variety of applications like scientific computing, data mining, web engineering, system management and many others. MicroPython allows the reuse of the same language and associated programming knowledge in small embedded platforms. The interactive nature of Python facilitates the debugging of the built systems, while the abstractions provided by the language ease the task of porting the software to a different development board. The use of a board simulator can mitigate the reduced availability of boards, due to chip shortage or any other procurement difficulty. When compared with the traditional embedded choice of the C programming language, the use of MicroPython requires more memory, a greater processing power and is slower. These arguments may not be as sound as they seem, because: the price differential to a better processor may be negligible; the memory required to support MicroPython may be the same required to support the networking libraries needed; the time critical Python functions can be replaced by faster functions in C; MicroPython proves a faster development, so a faster time to market. This approach has already been validated by our students, with good acceptance and notable results in several projects.
id RCAP_fd2ec2f1a19145d4b2e4aa2b62165ce7
oai_identifier_str oai:recipp.ipp.pt:10400.22/20706
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str
spelling TEACHING EMBEDDED IOT TO ALL ENGINEERSProgrammingEmbedded systemsEngineering EducationEuropean Project SemesterIn a traditional Engineering curriculum, computers replaced electronic calculators that replaced slides rules, always with the purpose of calculating more, better, and faster. Nowadays, besides being interconnected, computers are embedded in many devices, from smartcards to automobiles, with diverse functionalities and executing a wide range of tasks. Modern engineers use programming languages (with computers) not only for calculations, but also for automating software or equipment. While offering multiple possibilities, embedded processors place also serious restrictions on the programmer, as some tools have serious limitations and deviations from "normal programming", for instance while debugging. The chip shortage due to the COVID-19 pandemic has further complicated the situation, as some development boards are unavailable, have astronomical prices or both. This paper discusses the use of Python and micropython for teaching programming, in the context of a Project Based Learning experience involving a multicultural and diverse team. The use of Python allows the use of an Open Source language with a wide variety of applications like scientific computing, data mining, web engineering, system management and many others. MicroPython allows the reuse of the same language and associated programming knowledge in small embedded platforms. The interactive nature of Python facilitates the debugging of the built systems, while the abstractions provided by the language ease the task of porting the software to a different development board. The use of a board simulator can mitigate the reduced availability of boards, due to chip shortage or any other procurement difficulty. When compared with the traditional embedded choice of the C programming language, the use of MicroPython requires more memory, a greater processing power and is slower. These arguments may not be as sound as they seem, because: the price differential to a better processor may be negligible; the memory required to support MicroPython may be the same required to support the networking libraries needed; the time critical Python functions can be replaced by faster functions in C; MicroPython proves a faster development, so a faster time to market. This approach has already been validated by our students, with good acceptance and notable results in several projects.IATEDRepositório Científico do Instituto Politécnico do PortoFerreira, PauloMalheiro, BeneditaSilva, ManuelGuedes, PedroJUSTO, JorgeCastro Ribeiro, Maria Cristina DeDuarte, Abel J.20222032-01-01T00:00:00Z2022-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/articleapplication/pdfhttp://hdl.handle.net/10400.22/20706eng978-84-09-42484-910.21125/edulearn.2022.1255metadata only accessinfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-03-13T13:16:14ZPortal AgregadorONG
dc.title.none.fl_str_mv TEACHING EMBEDDED IOT TO ALL ENGINEERS
title TEACHING EMBEDDED IOT TO ALL ENGINEERS
spellingShingle TEACHING EMBEDDED IOT TO ALL ENGINEERS
Ferreira, Paulo
Programming
Embedded systems
Engineering Education
European Project Semester
title_short TEACHING EMBEDDED IOT TO ALL ENGINEERS
title_full TEACHING EMBEDDED IOT TO ALL ENGINEERS
title_fullStr TEACHING EMBEDDED IOT TO ALL ENGINEERS
title_full_unstemmed TEACHING EMBEDDED IOT TO ALL ENGINEERS
title_sort TEACHING EMBEDDED IOT TO ALL ENGINEERS
author Ferreira, Paulo
author_facet Ferreira, Paulo
Malheiro, Benedita
Silva, Manuel
Guedes, Pedro
JUSTO, Jorge
Castro Ribeiro, Maria Cristina De
Duarte, Abel J.
author_role author
author2 Malheiro, Benedita
Silva, Manuel
Guedes, Pedro
JUSTO, Jorge
Castro Ribeiro, Maria Cristina De
Duarte, Abel J.
author2_role author
author
author
author
author
author
dc.contributor.none.fl_str_mv Repositório Científico do Instituto Politécnico do Porto
dc.contributor.author.fl_str_mv Ferreira, Paulo
Malheiro, Benedita
Silva, Manuel
Guedes, Pedro
JUSTO, Jorge
Castro Ribeiro, Maria Cristina De
Duarte, Abel J.
dc.subject.por.fl_str_mv Programming
Embedded systems
Engineering Education
European Project Semester
topic Programming
Embedded systems
Engineering Education
European Project Semester
description In a traditional Engineering curriculum, computers replaced electronic calculators that replaced slides rules, always with the purpose of calculating more, better, and faster. Nowadays, besides being interconnected, computers are embedded in many devices, from smartcards to automobiles, with diverse functionalities and executing a wide range of tasks. Modern engineers use programming languages (with computers) not only for calculations, but also for automating software or equipment. While offering multiple possibilities, embedded processors place also serious restrictions on the programmer, as some tools have serious limitations and deviations from "normal programming", for instance while debugging. The chip shortage due to the COVID-19 pandemic has further complicated the situation, as some development boards are unavailable, have astronomical prices or both. This paper discusses the use of Python and micropython for teaching programming, in the context of a Project Based Learning experience involving a multicultural and diverse team. The use of Python allows the use of an Open Source language with a wide variety of applications like scientific computing, data mining, web engineering, system management and many others. MicroPython allows the reuse of the same language and associated programming knowledge in small embedded platforms. The interactive nature of Python facilitates the debugging of the built systems, while the abstractions provided by the language ease the task of porting the software to a different development board. The use of a board simulator can mitigate the reduced availability of boards, due to chip shortage or any other procurement difficulty. When compared with the traditional embedded choice of the C programming language, the use of MicroPython requires more memory, a greater processing power and is slower. These arguments may not be as sound as they seem, because: the price differential to a better processor may be negligible; the memory required to support MicroPython may be the same required to support the networking libraries needed; the time critical Python functions can be replaced by faster functions in C; MicroPython proves a faster development, so a faster time to market. This approach has already been validated by our students, with good acceptance and notable results in several projects.
publishDate 2022
dc.date.none.fl_str_mv 2022
2022-01-01T00:00:00Z
2032-01-01T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/article
format article
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10400.22/20706
url http://hdl.handle.net/10400.22/20706
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv 978-84-09-42484-9
10.21125/edulearn.2022.1255
dc.rights.driver.fl_str_mv metadata only access
info:eu-repo/semantics/openAccess
rights_invalid_str_mv metadata only access
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv IATED
publisher.none.fl_str_mv IATED
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv
repository.mail.fl_str_mv
_version_ 1777302374887456768