SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
e-Lite Research Group
https://elite.polito.it
Easing IoT Development for Novice Programmers
Through Code Recipes
Fulvio Corno, Luigi De Russis, and Juan Pablo Sáenz*
Dipartimento di Automatica e Informatica
The 40th International Conference on Software Engineering
May 27 - 3 June 2018. Gothenburg, Sweden
CONTEXT
Broadly speaking, IoT systems are complex to
develop
▪ Include mobile applications, web applications, cloud
computing services, wearable devices, single-board
computers, and IoT sensing devices
▪ They encompass various kinds of devices, protocols,
architectures, programming languages, and runtime
environments
Easing IoT Development for Novice Programmers Through
Code Recipes
230/05/2018
took from: http://www.bems-energy.com/iot-systems/
CONTEXT
Concerning Novice IoT Programmers
▪ Our previous research suggested that the integration of heterogeneous software
components is one of the most painful issues that they experience
▪ They struggle with lack of documentation understandable by inexperienced developers,
from both conceptual and technical perspectives
▪ They devote a significant effort looking for documentation and code samples willing to
understand them conceptually, or in the worst case, to make them work
Easing IoT Development for Novice Programmers Through
Code Recipes
330/05/2018
OUR RECIPE’S MOTIVATION
How can the lessons learned by IoT novice programmers be captured, so they may become
an asset for other novice developers?
"While examples are valuable resource for programmers, the rich context surrounding them
is often crucial for adaptation and integration" Oney et al. 2012
Easing IoT Development for Novice Programmers Through
Code Recipes
430/05/2018
CODE RECIPES
Summarized and well-defined documentation modules, independent from programming
languages or runtime environments, by which non-expert programmers can smoothly
become familiar with source code, written by other developers that faced similar issues
Easing IoT Development for Novice Programmers Through
Code Recipes
530/05/2018
CODE RECIPES
Structured around code fragments
▪ Might belong to different programming languages and might be deployed across various runtime
environments, as it is common in IoT systems
More than just code
▪ Include comments and documentation sources that account for the learning process that other IoT
developers followed and the decisions they made to reach out a solution
Cross-linked
▪ On the basis of three criteria: alternative versions, other programming language versions, and
related recipes
Easing IoT Development for Novice Programmers Through
Code Recipes
630/05/2018
CODE RECIPE
Ingredients
Technical or data requirements
Dependencies
Requirements associated with the source
code (libraries and packages that must be
installed)
One or more code fragments
Parameters
Documentation URLs
Cross-linked recipes
"ingredients": [{
"name": "Fitbit developer account",
"description": "A Fitbit developer account must be created, and
a new application must be registered. The callback parameter
must be set to http://localhost:8080/login/authorize",
"urls": [ "https://dev.fitbit.com/build/reference/web-
api/oauth2/" ]
}],
"dependencies": [{
"name": "flask-oauthlib",
"description": "OAuthlib implementation for Flask that may be
installed through pip install Flask-OAuthlib",
"urls": [ "https://github.com/lepture/flask-oauthlib" ]
}]
Easing IoT Development for Novice Programmers Through
Code Recipes
730/05/2018
CODE RECIPE
Ingredients
Dependencies
One or more code fragments
Programming language
Description
Documentation URLs
IDE
Parameters (values specific to each
implementation of the recipe)
Documentation URLs
Cross-linked recipes
"code fragments": [{
"prog_lang": "Python",
"description": "This is the flask application (where the
integration with the Fitbit is implemented)",
"documentation_urls": [ "https://github.com/lepture/flask-
oauthlib/blob/master/example/weibo.py" ],
"ide": "Visual Studio Code",
"source_code_url": "https://s3.eu-central-
1.amazonaws.com/code-recipes/fitbit.py",
"parameters": [{
"name": "FITBIT_CONSUMER_KEY",
"description": "...",
"data_type": "String",
"sample_value": "..." }]
}]
Easing IoT Development for Novice Programmers Through
Code Recipes
830/05/2018
CODE RECIPE
Ingredients
Dependencies
One or more code fragments
Parameters
Documentation URLs
Cross-linked recipes
"ingredients": [{...}],
"dependencies": [{...}],
"code fragments": [{...}],
"documentation_urls": [
"https://dev.fitbit.com/build/reference/web-api/explore/" ],
"rating": "4.6",
"alt_versions": [ "1506957773", "1507562564" ],
"other_lang_versions": [ "1506957773" ],
"related_recipes": [ "1507302404" ]
Easing IoT Development for Novice Programmers Through
Code Recipes
930/05/2018
CONCLUSIONS
▪ A Code Recipe was developed to illustrate how the approach might help novices to
overcome complex integration issues (OAuth and third-party APIs)
▪ Recipes aim at easing the learning curve NOT by hiding the code from the developers, but
by enabling the understanding and integration of the code examples written by other
novices
▪ A structured representation of the Code Recipes enables the implementation of various
kinds of tools that might handle them (web application, web browser extension, IDE
plugin)
30/05/2018
Easing IoT Development for Novice Programmers Through
Code Recipes
10
WORK IN PROGRESS
30/05/2018
Easing IoT Development for Novice Programmers Through
Code Recipes
11
We are currently developing a Code
Recipes catalog, and web-based tool
through which novice programmers can
manage them
TAKE AWAY MESSAGE
Our recipe relies on
▪ Enabling knowledge sharing among non-expert programmers
▪ Surrounding the code with descriptions, comments and documentation sources that
account for the learning process
30/05/2018
Easing IoT Development for Novice Programmers Through
Code Recipes
12
THANK YOU!
juan.saenz@polito.it
30/05/2018
Easing IoT Development for Novice Programmers Through
Code Recipes
13

Weitere ähnliche Inhalte

Was ist angesagt?

「IoT時代のマルチデバイス開発環境」
「IoT時代のマルチデバイス開発環境」「IoT時代のマルチデバイス開発環境」
「IoT時代のマルチデバイス開発環境」Embarcadero Technologies
 
WSO2 Integration Summit Johannesburg 2019 - Leveraging Enterprise Integration...
WSO2 Integration Summit Johannesburg 2019 - Leveraging Enterprise Integration...WSO2 Integration Summit Johannesburg 2019 - Leveraging Enterprise Integration...
WSO2 Integration Summit Johannesburg 2019 - Leveraging Enterprise Integration...WSO2
 
2014 austin-api-sdks-are-apis-too
2014 austin-api-sdks-are-apis-too2014 austin-api-sdks-are-apis-too
2014 austin-api-sdks-are-apis-tooJeff Brateman
 
Sogeti Software Maintainability Roadshow
Sogeti Software Maintainability RoadshowSogeti Software Maintainability Roadshow
Sogeti Software Maintainability RoadshowPeter Rombouts
 
Sogeti Java Meetup - How to ensure your code is maintainable
Sogeti Java Meetup - How to ensure your code is maintainableSogeti Java Meetup - How to ensure your code is maintainable
Sogeti Java Meetup - How to ensure your code is maintainablePeter Rombouts
 
Maintainability Sogeti Qx Day 2020
Maintainability Sogeti Qx Day 2020Maintainability Sogeti Qx Day 2020
Maintainability Sogeti Qx Day 2020Peter Rombouts
 
OpenNTF and XPages January 2012
OpenNTF and XPages January 2012OpenNTF and XPages January 2012
OpenNTF and XPages January 2012Niklas Heidloff
 
Thawte Code Signing Certificate Feature and Benefits
Thawte Code Signing Certificate Feature and BenefitsThawte Code Signing Certificate Feature and Benefits
Thawte Code Signing Certificate Feature and BenefitsCodeSigningStore
 
Toyota and Strategic Collaboration with the Community
Toyota and Strategic Collaboration with the CommunityToyota and Strategic Collaboration with the Community
Toyota and Strategic Collaboration with the CommunityShane Coughlan
 
What Makes up a Modern Application Platform?
What Makes up a Modern Application Platform?What Makes up a Modern Application Platform?
What Makes up a Modern Application Platform?All Things Open
 

Was ist angesagt? (15)

Liferay Integration
Liferay IntegrationLiferay Integration
Liferay Integration
 
「IoT時代のマルチデバイス開発環境」
「IoT時代のマルチデバイス開発環境」「IoT時代のマルチデバイス開発環境」
「IoT時代のマルチデバイス開発環境」
 
WSO2 Integration Summit Johannesburg 2019 - Leveraging Enterprise Integration...
WSO2 Integration Summit Johannesburg 2019 - Leveraging Enterprise Integration...WSO2 Integration Summit Johannesburg 2019 - Leveraging Enterprise Integration...
WSO2 Integration Summit Johannesburg 2019 - Leveraging Enterprise Integration...
 
2014 austin-api-sdks-are-apis-too
2014 austin-api-sdks-are-apis-too2014 austin-api-sdks-are-apis-too
2014 austin-api-sdks-are-apis-too
 
Guruprasad
GuruprasadGuruprasad
Guruprasad
 
Php verses .net
Php verses .netPhp verses .net
Php verses .net
 
Sogeti Software Maintainability Roadshow
Sogeti Software Maintainability RoadshowSogeti Software Maintainability Roadshow
Sogeti Software Maintainability Roadshow
 
Sogeti Java Meetup - How to ensure your code is maintainable
Sogeti Java Meetup - How to ensure your code is maintainableSogeti Java Meetup - How to ensure your code is maintainable
Sogeti Java Meetup - How to ensure your code is maintainable
 
Maintainability Sogeti Qx Day 2020
Maintainability Sogeti Qx Day 2020Maintainability Sogeti Qx Day 2020
Maintainability Sogeti Qx Day 2020
 
OpenNTF and XPages January 2012
OpenNTF and XPages January 2012OpenNTF and XPages January 2012
OpenNTF and XPages January 2012
 
Thawte Code Signing Certificate Feature and Benefits
Thawte Code Signing Certificate Feature and BenefitsThawte Code Signing Certificate Feature and Benefits
Thawte Code Signing Certificate Feature and Benefits
 
Toyota and Strategic Collaboration with the Community
Toyota and Strategic Collaboration with the CommunityToyota and Strategic Collaboration with the Community
Toyota and Strategic Collaboration with the Community
 
What Makes up a Modern Application Platform?
What Makes up a Modern Application Platform?What Makes up a Modern Application Platform?
What Makes up a Modern Application Platform?
 
ODFKit
ODFKitODFKit
ODFKit
 
To SDK or not to SDK?
To SDK or not to SDK?To SDK or not to SDK?
To SDK or not to SDK?
 

Ähnlich wie Easing IoT Development for Novice Programmers Through Code Recipes

apidays Australia 2023 - Discovering APIs And More With An Internal Developer...
apidays Australia 2023 - Discovering APIs And More With An Internal Developer...apidays Australia 2023 - Discovering APIs And More With An Internal Developer...
apidays Australia 2023 - Discovering APIs And More With An Internal Developer...apidays
 
GitHub Copilot.pptx
GitHub Copilot.pptxGitHub Copilot.pptx
GitHub Copilot.pptxLuis Beltran
 
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]Atmel Corporation
 
Top 10 python frameworks for web development in 2020
Top 10 python frameworks for web development in 2020Top 10 python frameworks for web development in 2020
Top 10 python frameworks for web development in 2020Alaina Carter
 
Portable Code Compiler
Portable Code CompilerPortable Code Compiler
Portable Code Compilerijtsrd
 
Enhancing Password Manager Chrome Extension through Multi Authentication and ...
Enhancing Password Manager Chrome Extension through Multi Authentication and ...Enhancing Password Manager Chrome Extension through Multi Authentication and ...
Enhancing Password Manager Chrome Extension through Multi Authentication and ...ijtsrd
 
Content Strategy and Developer Engagement for DevPortals
Content Strategy and Developer Engagement for DevPortalsContent Strategy and Developer Engagement for DevPortals
Content Strategy and Developer Engagement for DevPortalsAxway
 
Analyzing Optimal Practises for Web Frameworks
Analyzing Optimal Practises for Web FrameworksAnalyzing Optimal Practises for Web Frameworks
Analyzing Optimal Practises for Web FrameworksIRJET Journal
 
Social Applications made easy with the new Social Business Toolkit SDK
Social Applications made easy with the new Social Business Toolkit SDKSocial Applications made easy with the new Social Business Toolkit SDK
Social Applications made easy with the new Social Business Toolkit SDKIBM Connections Developers
 
IOT SOLUTIONS FROM INTEL
IOT SOLUTIONS FROM INTELIOT SOLUTIONS FROM INTEL
IOT SOLUTIONS FROM INTELonebee kumar
 
Top 25+ .Net development tools for intelligent business solutions - AppsDevPro
Top 25+ .Net development tools for intelligent business solutions - AppsDevProTop 25+ .Net development tools for intelligent business solutions - AppsDevPro
Top 25+ .Net development tools for intelligent business solutions - AppsDevProSofiaCarter4
 
MicroEJ, the OS for IoT
MicroEJ, the OS for IoTMicroEJ, the OS for IoT
MicroEJ, the OS for IoTMicroEJ
 
MicroEJ OS for IoT devices
MicroEJ OS for IoT devicesMicroEJ OS for IoT devices
MicroEJ OS for IoT devicescharlotte75009
 
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the KeyIIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the KeyAustraliaChapterIIBA
 
Revealing Development Efficiency: How AI Powers Innovation in Software Creati...
Revealing Development Efficiency: How AI Powers Innovation in Software Creati...Revealing Development Efficiency: How AI Powers Innovation in Software Creati...
Revealing Development Efficiency: How AI Powers Innovation in Software Creati...BOSC Tech Labs
 
IRJET - Survey Paper on Tools Used to Enhance User's Experience with Cons...
IRJET -  	  Survey Paper on Tools Used to Enhance User's Experience with Cons...IRJET -  	  Survey Paper on Tools Used to Enhance User's Experience with Cons...
IRJET - Survey Paper on Tools Used to Enhance User's Experience with Cons...IRJET Journal
 
What is the future of DevOps and its growing trends.pptx
What is the future of DevOps and its growing trends.pptxWhat is the future of DevOps and its growing trends.pptx
What is the future of DevOps and its growing trends.pptxCalidad Infotech
 

Ähnlich wie Easing IoT Development for Novice Programmers Through Code Recipes (20)

apidays Australia 2023 - Discovering APIs And More With An Internal Developer...
apidays Australia 2023 - Discovering APIs And More With An Internal Developer...apidays Australia 2023 - Discovering APIs And More With An Internal Developer...
apidays Australia 2023 - Discovering APIs And More With An Internal Developer...
 
GitHub Copilot.pptx
GitHub Copilot.pptxGitHub Copilot.pptx
GitHub Copilot.pptx
 
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
 
Top 10 python frameworks for web development in 2020
Top 10 python frameworks for web development in 2020Top 10 python frameworks for web development in 2020
Top 10 python frameworks for web development in 2020
 
Portable Code Compiler
Portable Code CompilerPortable Code Compiler
Portable Code Compiler
 
GitHub for partners
GitHub for partnersGitHub for partners
GitHub for partners
 
Enhancing Password Manager Chrome Extension through Multi Authentication and ...
Enhancing Password Manager Chrome Extension through Multi Authentication and ...Enhancing Password Manager Chrome Extension through Multi Authentication and ...
Enhancing Password Manager Chrome Extension through Multi Authentication and ...
 
Content Strategy and Developer Engagement for DevPortals
Content Strategy and Developer Engagement for DevPortalsContent Strategy and Developer Engagement for DevPortals
Content Strategy and Developer Engagement for DevPortals
 
A Complete Guide to Python Web Development
A Complete Guide to Python Web DevelopmentA Complete Guide to Python Web Development
A Complete Guide to Python Web Development
 
Analyzing Optimal Practises for Web Frameworks
Analyzing Optimal Practises for Web FrameworksAnalyzing Optimal Practises for Web Frameworks
Analyzing Optimal Practises for Web Frameworks
 
Social Applications made easy with the new Social Business Toolkit SDK
Social Applications made easy with the new Social Business Toolkit SDKSocial Applications made easy with the new Social Business Toolkit SDK
Social Applications made easy with the new Social Business Toolkit SDK
 
IOT SOLUTIONS FROM INTEL
IOT SOLUTIONS FROM INTELIOT SOLUTIONS FROM INTEL
IOT SOLUTIONS FROM INTEL
 
Top 25+ .Net development tools for intelligent business solutions - AppsDevPro
Top 25+ .Net development tools for intelligent business solutions - AppsDevProTop 25+ .Net development tools for intelligent business solutions - AppsDevPro
Top 25+ .Net development tools for intelligent business solutions - AppsDevPro
 
MicroEJ, the OS for IoT
MicroEJ, the OS for IoTMicroEJ, the OS for IoT
MicroEJ, the OS for IoT
 
MicroEJ OS for IoT devices
MicroEJ OS for IoT devicesMicroEJ OS for IoT devices
MicroEJ OS for IoT devices
 
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the KeyIIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
 
Revealing Development Efficiency: How AI Powers Innovation in Software Creati...
Revealing Development Efficiency: How AI Powers Innovation in Software Creati...Revealing Development Efficiency: How AI Powers Innovation in Software Creati...
Revealing Development Efficiency: How AI Powers Innovation in Software Creati...
 
IRJET - Survey Paper on Tools Used to Enhance User's Experience with Cons...
IRJET -  	  Survey Paper on Tools Used to Enhance User's Experience with Cons...IRJET -  	  Survey Paper on Tools Used to Enhance User's Experience with Cons...
IRJET - Survey Paper on Tools Used to Enhance User's Experience with Cons...
 
2011 NASA Open Source Summit - Forge.mil
2011 NASA Open Source Summit - Forge.mil2011 NASA Open Source Summit - Forge.mil
2011 NASA Open Source Summit - Forge.mil
 
What is the future of DevOps and its growing trends.pptx
What is the future of DevOps and its growing trends.pptxWhat is the future of DevOps and its growing trends.pptx
What is the future of DevOps and its growing trends.pptx
 

Kürzlich hochgeladen

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 

Kürzlich hochgeladen (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 

Easing IoT Development for Novice Programmers Through Code Recipes

  • 1. e-Lite Research Group https://elite.polito.it Easing IoT Development for Novice Programmers Through Code Recipes Fulvio Corno, Luigi De Russis, and Juan Pablo Sáenz* Dipartimento di Automatica e Informatica The 40th International Conference on Software Engineering May 27 - 3 June 2018. Gothenburg, Sweden
  • 2. CONTEXT Broadly speaking, IoT systems are complex to develop ▪ Include mobile applications, web applications, cloud computing services, wearable devices, single-board computers, and IoT sensing devices ▪ They encompass various kinds of devices, protocols, architectures, programming languages, and runtime environments Easing IoT Development for Novice Programmers Through Code Recipes 230/05/2018 took from: http://www.bems-energy.com/iot-systems/
  • 3. CONTEXT Concerning Novice IoT Programmers ▪ Our previous research suggested that the integration of heterogeneous software components is one of the most painful issues that they experience ▪ They struggle with lack of documentation understandable by inexperienced developers, from both conceptual and technical perspectives ▪ They devote a significant effort looking for documentation and code samples willing to understand them conceptually, or in the worst case, to make them work Easing IoT Development for Novice Programmers Through Code Recipes 330/05/2018
  • 4. OUR RECIPE’S MOTIVATION How can the lessons learned by IoT novice programmers be captured, so they may become an asset for other novice developers? "While examples are valuable resource for programmers, the rich context surrounding them is often crucial for adaptation and integration" Oney et al. 2012 Easing IoT Development for Novice Programmers Through Code Recipes 430/05/2018
  • 5. CODE RECIPES Summarized and well-defined documentation modules, independent from programming languages or runtime environments, by which non-expert programmers can smoothly become familiar with source code, written by other developers that faced similar issues Easing IoT Development for Novice Programmers Through Code Recipes 530/05/2018
  • 6. CODE RECIPES Structured around code fragments ▪ Might belong to different programming languages and might be deployed across various runtime environments, as it is common in IoT systems More than just code ▪ Include comments and documentation sources that account for the learning process that other IoT developers followed and the decisions they made to reach out a solution Cross-linked ▪ On the basis of three criteria: alternative versions, other programming language versions, and related recipes Easing IoT Development for Novice Programmers Through Code Recipes 630/05/2018
  • 7. CODE RECIPE Ingredients Technical or data requirements Dependencies Requirements associated with the source code (libraries and packages that must be installed) One or more code fragments Parameters Documentation URLs Cross-linked recipes "ingredients": [{ "name": "Fitbit developer account", "description": "A Fitbit developer account must be created, and a new application must be registered. The callback parameter must be set to http://localhost:8080/login/authorize", "urls": [ "https://dev.fitbit.com/build/reference/web- api/oauth2/" ] }], "dependencies": [{ "name": "flask-oauthlib", "description": "OAuthlib implementation for Flask that may be installed through pip install Flask-OAuthlib", "urls": [ "https://github.com/lepture/flask-oauthlib" ] }] Easing IoT Development for Novice Programmers Through Code Recipes 730/05/2018
  • 8. CODE RECIPE Ingredients Dependencies One or more code fragments Programming language Description Documentation URLs IDE Parameters (values specific to each implementation of the recipe) Documentation URLs Cross-linked recipes "code fragments": [{ "prog_lang": "Python", "description": "This is the flask application (where the integration with the Fitbit is implemented)", "documentation_urls": [ "https://github.com/lepture/flask- oauthlib/blob/master/example/weibo.py" ], "ide": "Visual Studio Code", "source_code_url": "https://s3.eu-central- 1.amazonaws.com/code-recipes/fitbit.py", "parameters": [{ "name": "FITBIT_CONSUMER_KEY", "description": "...", "data_type": "String", "sample_value": "..." }] }] Easing IoT Development for Novice Programmers Through Code Recipes 830/05/2018
  • 9. CODE RECIPE Ingredients Dependencies One or more code fragments Parameters Documentation URLs Cross-linked recipes "ingredients": [{...}], "dependencies": [{...}], "code fragments": [{...}], "documentation_urls": [ "https://dev.fitbit.com/build/reference/web-api/explore/" ], "rating": "4.6", "alt_versions": [ "1506957773", "1507562564" ], "other_lang_versions": [ "1506957773" ], "related_recipes": [ "1507302404" ] Easing IoT Development for Novice Programmers Through Code Recipes 930/05/2018
  • 10. CONCLUSIONS ▪ A Code Recipe was developed to illustrate how the approach might help novices to overcome complex integration issues (OAuth and third-party APIs) ▪ Recipes aim at easing the learning curve NOT by hiding the code from the developers, but by enabling the understanding and integration of the code examples written by other novices ▪ A structured representation of the Code Recipes enables the implementation of various kinds of tools that might handle them (web application, web browser extension, IDE plugin) 30/05/2018 Easing IoT Development for Novice Programmers Through Code Recipes 10
  • 11. WORK IN PROGRESS 30/05/2018 Easing IoT Development for Novice Programmers Through Code Recipes 11 We are currently developing a Code Recipes catalog, and web-based tool through which novice programmers can manage them
  • 12. TAKE AWAY MESSAGE Our recipe relies on ▪ Enabling knowledge sharing among non-expert programmers ▪ Surrounding the code with descriptions, comments and documentation sources that account for the learning process 30/05/2018 Easing IoT Development for Novice Programmers Through Code Recipes 12
  • 13. THANK YOU! juan.saenz@polito.it 30/05/2018 Easing IoT Development for Novice Programmers Through Code Recipes 13