TEACHING EMBEDDED IOT TO ALL ENGINEERS
Autor(a) principal: | |
---|---|
Data de Publicação: | 2022 |
Outros Autores: | , , , , , |
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 |