Programmation informatique

vignette|Liste d'instructions sur le Commodore 64 La programmation, appelée aussi codage dans le domaine informatique, désigne l'ensemble des activités qui permettent l'écriture des programmes informatiques. C'est une étape importante du développement de logiciels (voire de matériel). L'écriture d'un programme se fait dans un langage de programmation. Un logiciel est un ensemble de programmes (qui peuvent être écrits dans des langages de programmation différents) destiné à la réalisation de certaines tâches par un (ou plusieurs) utilisateurs du logiciel. La programmation représente donc ici la rédaction du code source d'un logiciel. On utilise plutôt le terme développement pour dénoter l'ensemble des activités liées à la création d'un logiciel et des programmes qui le composent. Cela inclut la spécification du logiciel, sa conception, puis son implémentation proprement dite au sens de l'écriture des programmes dans un langage de programmation bien défini, ainsi que la vérification d
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Publications associées (100)

Étude des engrenages de microtechnique

Quentin Theurillat-Bonjour

The research presented in this thesis addresses the design of gear drives for micro engineering applications, and was performed in collaboration with a watch manufacturer. Gears have long been found in many fields of mechanical engineering. Their use in watches satisfy specific constraints: small dimensions, little or no lubrication and unusual performance specifications. A literature review allows us to establish a catalogue of existing gear profiles, and a synthesis of profile analysis and generation methods. On the basis of this assessment, we define knowledge gaps which we propose to bridge in the present work by reaching the following objectives: 1. Characterize the behavior of existing gear profiles used in the watchmaking industry (nominal profiles, but also profiles affected by shape errors and axes misalignment errors); determine their kinematic and static performances, and their transmission efficiency. Use these results to compare various profiles on an objective and rigorous basis. 2. Formulate the equations necessary to calculate the tooth profiles using conjugate conditions differing from the tradition-al kinematic conditions ( i.e. imposing the transmission ratio) 3. Work out a design methodology for gear profiles relying on the results obtained while working on the first two objectives To reach those objectives, we develop a computer code allowing us to evaluate the performances of the profiles. The diversity of existing profiles led us to formulate a generic geometrical representation applicable to all profiles, while allowing us to use the same analysis code. The developed tool is then validated by simulating profiles, the behavior of which is known analytically. To calculate conjugate tooth profiles respecting a static criterion, we use the classical theory again, adding a new equation to it, which we derive from a balance of power. We present this equation for the three dimensional case, and the planar case. The resolution method for this equation, valid for static conjugated cams (i.e. a unique pair of teeth), must satisfy a supplementary condition that ensures that the imposed torque ratio leads to an average kinematic ratio compatible with the desired number of teeth. A numerical method was developed for the planar gears case that establishes the range of torque ratios satisfying the imposed average transmission ratio. The lower and upper bounds of the range of solutions are defined in terms of geometric and efficiency considerations, respectively. The proposed approach is illustrated and validated by some profiles computations. In parallel to those theoretical developments, we designed and built a test bench to characterize experimentally the performances of gear profiles, (altered or not by various shape or misalignment errors) under operating conditions similar to those prevailing in a watch. The last part of the thesis provides a critical discussion of these developments places them in a broader context and comments how they could be generalized in future research works.

Learning strategies and representations for intuitive robot learning from demonstration

Thibaut Antoine Kulak

Robots are becoming more and more present around us, both in industries and in our homes. One key capability of robots is their adaptability to various situations that might appear in the real world. Robot skill learning is therefore a crucial aspect of robotics aiming to provide robots with programs enabling them to perform one or several tasks successfully. While such programming is usually done by an engineer or a developer, making robot programming available to anyone would dramatically increase the range of applications currently feasible for robots. Learning from Demonstration (LfD) is a robot skill learning paradigm addressing this aim by developing intuitive frameworks for non-expert users to easily (re)program robots. While Learning from Demonstration has emerged as a successful way to program robots, several limitations remain to be addressed. Typical approaches still require some forms of preprocessing, such as the alignment of the demonstrations, or the choice of the movement representation. Also, the algorithms have to run with a relatively low number of demonstrations that human users are typically willing to give, while being performant, adaptable and generalizable to new situations. In this thesis, we propose to address these shortcomings with methods that make Learning from Demonstration more intuitive and user-friendly. We notably propose a novel movement representation requiring no demonstration alignment, and active learning strategies that permit to learn complex skills from fewer demonstrations.

Programming with Undo

Ersoy Bayramoglu

This thesis is about objects that can undo their state changes. Based on an earlier work on data structure persistence, we propose generating undo methods for classes from annotated classes automatically. As opposed to ephemeral data structures, persistent data structures carry their older versions, and undo for a persistent structure is just returning to a previous version. Undoable objects simplify programming in a number of areas such as backtracking in constraint programming, and undo for interactive applications. Using the undo methods of individual objects, larger application level undo functionality can be built in an easier way.
Afficher plus
Concepts associés (160)
C (langage)
C est un langage de programmation impératif, généraliste et de bas niveau. Inventé au début des années 1970 pour réécrire Unix, C est devenu un des langages les plus utilisés, encore de nos jours. De
Programme informatique
Un programme informatique est un ensemble d'instructions et d’opérations destinées à être exécutées par un ordinateur.
  • Un programme source est un code écrit par un informaticien dans un langage de
Langage de programmation
thumb|Fragment de code écrit dans le langage de programmation JavaScript. Un langage de programmation est un langage informatique destiné à formuler des algorithmes et produire des programmes informa
Afficher plus
Cours associés (86)
CS-112(g): Object oriented programming
Ce cours approfondit les connaissances en programmation présentées dans le cours ICC du 1er semestre. L'accent est mis sur l'approche «orientée objet» (en C++), la conception et la spécification de programmes via la réalisation d'une mini-application dans un projet réalisé par binôme.
CS-101: Advanced information, computation, communication I
Discrete mathematics is a discipline with applications to almost all areas of study. It provides a set of indispensable tools to computer science in particular. This course reviews (familiar) topics as diverse as mathematical reasoning, combinatorics, discrete structures & algorithmic thinking.
CS-210: Functional programming
Understanding of the principles and applications of functional programming, the fundamental models of program execution, application of fundamental methods of program composition, meta-programming through the construction of interpreters and advanced programming techniques.
Afficher plus