Show item record

dc.contributor.advisorPaull, Liam
dc.contributor.advisorFamelis, Michalis
dc.contributor.authorConsidine, Breandan
dc.date.accessioned2021-01-22T13:39:33Z
dc.date.availableNO_RESTRICTIONfr
dc.date.available2021-01-22T13:39:33Z
dc.date.issued2020-07-22
dc.date.submitted2020-04
dc.identifier.urihttp://hdl.handle.net/1866/24310
dc.subjectKotlinfr
dc.subjectDockerfr
dc.subjectGénie logicielfr
dc.subjectSoftware engineeringfr
dc.subjectApprentissage automatiquefr
dc.subjectMachine learningfr
dc.subjectMathématiques appliquéesfr
dc.subjectApplied mathematicsfr
dc.subjectLangages de programmationfr
dc.subjectProgramming languagesfr
dc.subjectOutils de programmationfr
dc.subjectProgramming toolsfr
dc.subjectSystèmes de typefr
dc.subjectType systemsfr
dc.subjectDifférenciation automatiquefr
dc.subjectAutomatic differentiationfr
dc.subjectTests automatisésfr
dc.subjectAutomated testingfr
dc.subjectSystémes embarquésfr
dc.subjectEmbedded systemsfr
dc.subjectSystèmes intelligentsfr
dc.subjectIntelligent systemsfr
dc.subjectMachines virtuellesfr
dc.subjectVirtual machinesfr
dc.subjectROSfr
dc.subjectMetamorphic testingfr
dc.subjectProgrammation différenciablefr
dc.subjectDifferentiable programmingfr
dc.subjectProgrammation probabilistefr
dc.subjectProbabilistic programmingfr
dc.subjectProgrammation fonctionnellefr
dc.subjectFunctional programmingfr
dc.subjectCompilateursfr
dc.subjectCompilersfr
dc.subjectGenerative modelingfr
dc.subjectModélisation générativefr
dc.subjectRétropropagationfr
dc.subjectBackpropagationfr
dc.subjectFuzzingfr
dc.subjectTest métamorphiquefr
dc.subjectTest de propriétéfr
dc.subjectMetamorphic testingfr
dc.subjectProperty-based testingfr
dc.subjectAnalyse statiquefr
dc.subjectStatic analysisfr
dc.subjectMoteur de productionfr
dc.subjectBuild automationfr
dc.subjectIntégration continuefr
dc.subjectContinuous integrationfr
dc.subject.otherApplied Sciences - Artificial Intelligence / Sciences appliqués et technologie - Intelligence artificielle (UMI : 0800)fr
dc.titleProgramming tools for intelligent systemsfr
dc.typeThèse ou mémoire / Thesis or Dissertation
etd.degree.disciplineInformatiquefr
etd.degree.grantorUniversité de Montréalfr
etd.degree.levelMaîtrise / Master'sfr
etd.degree.nameM. Sc.fr
dcterms.abstractLes outils de programmation sont des programmes informatiques qui aident les humains à programmer des ordinateurs. Les outils sont de toutes formes et tailles, par exemple les éditeurs, les compilateurs, les débogueurs et les profileurs. Chacun de ces outils facilite une tâche principale dans le flux de travail de programmation qui consomme des ressources cognitives lorsqu’il est effectué manuellement. Dans cette thèse, nous explorons plusieurs outils qui facilitent le processus de construction de systèmes intelligents et qui réduisent l’effort cognitif requis pour concevoir, développer, tester et déployer des systèmes logiciels intelligents. Tout d’abord, nous introduisons un environnement de développement intégré (EDI) pour la programmation d’applications Robot Operating System (ROS), appelé Hatchery (Chapter 2). Deuxièmement, nous décrivons Kotlin∇, un système de langage et de type pour la programmation différenciable, un paradigme émergent dans l’apprentissage automatique (Chapter 3). Troisièmement, nous proposons un nouvel algorithme pour tester automatiquement les programmes différenciables, en nous inspirant des techniques de tests contradictoires et métamorphiques (Chapter 4), et démontrons son efficacité empirique dans le cadre de la régression. Quatrièmement, nous explorons une infrastructure de conteneurs basée sur Docker, qui permet un déploiement reproductible des applications ROS sur la plateforme Duckietown (Chapter 5). Enfin, nous réfléchissons à l’état actuel des outils de programmation pour ces applications et spéculons à quoi pourrait ressembler la programmation de systèmes intelligents à l’avenir (Chapter 6).fr
dcterms.abstractProgramming tools are computer programs which help humans program computers. Tools come in all shapes and forms, from editors and compilers to debuggers and profilers. Each of these tools facilitates a core task in the programming workflow which consumes cognitive resources when performed manually. In this thesis, we explore several tools that facilitate the process of building intelligent systems, and which reduce the cognitive effort required to design, develop, test and deploy intelligent software systems. First, we introduce an integrated development environment (IDE) for programming Robot Operating System (ROS) applications, called Hatchery (Chapter 2). Second, we describe Kotlin∇, a language and type system for differentiable programming, an emerging paradigm in machine learning (Chapter 3). Third, we propose a new algorithm for automatically testing differentiable programs, drawing inspiration from techniques in adversarial and metamorphic testing (Chapter 4), and demonstrate its empirical efficiency in the regression setting. Fourth, we explore a container infrastructure based on Docker, which enables reproducible deployment of ROS applications on the Duckietown platform (Chapter 5). Finally, we reflect on the current state of programming tools for these applications and speculate what intelligent systems programming might look like in the future (Chapter 6).fr
dcterms.languageengfr
UdeM.ORCIDAuteurThese0000-0002-0174-4322fr


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show item record

This document disseminated on Papyrus is the exclusive property of the copyright holders and is protected by the Copyright Act (R.S.C. 1985, c. C-42). It may be used for fair dealing and non-commercial purposes, for private study or research, criticism and review as provided by law. For any other use, written authorization from the copyright holders is required.