Ch. 13 Pensée informatique et bases de la programmationConcept
Question
Qu’est-ce que l’abstraction ?
Tapez pour voir la réponse
Réponse
Le fait de se concentrer sur les caractéristiques pertinentes tout en ignorant les détails sans importance pour la tâche.
Une bonne abstraction réduit le bruit sans éliminer les variables qui influent sur la réponse.
JRC DigComp / Base de données sur les compétences numériques d’EPSOHQ
Approfondir
Abstraction : retenir l’essentiel, écarter le reste
Se concentrer sur les caractéristiques pertinentes tout en ignorant les détails sans importance pour la tâche ; le piège consiste à pousser l’abstraction trop loin ou pas assez.
(function(){
var players = document.querySelectorAll('[data-audio-captions][data-captions-url]');
var parseTimestamp = function(value) {
var parts = value.trim().split(':');
var seconds = parts.pop() || '0';
var minutes = parts.pop() || '0';
var hours = parts.pop() || '0';
return (Number(hours) * 3600) + (Number(minutes) * 60) + Number(seconds.replace(',', '.'));
};
var parseCues = function(text) {
return text
.replace(/\r/g, '')
.split(/\n\n+/)
.map(function(block) { return block.split('\n').filter(Boolean); })
.filter(function(lines) { return lines.length >= 2 && lines[0] !== 'WEBVTT'; })
.map(function(lines) {
if (!lines[0].includes('-->')) {
lines.shift();
}
var timing = lines.shift() || '';
var parts = timing.split('-->').map(function(part) { return part.trim(); });
return {
start: parseTimestamp(parts[0] || '0'),
end: parseTimestamp(parts[1] || '0'),
text: lines.join(' '),
};
})
.filter(function(cue) { return Number.isFinite(cue.start) && Number.isFinite(cue.end) && cue.text !== ''; });
};
var findCue = function(cues, time) {
return cues.find(function(cue) { return time >= cue.start && time < cue.end; })
|| cues.find(function(cue) { return time < cue.start; })
|| cues[cues.length - 1]
|| null;
};
players.forEach(function(player) {
var audio = player.querySelector('audio');
var output = player.querySelector('[data-audio-captions-output]');
if (!audio || !output) {
return;
}
fetch(player.dataset.captionsUrl)
.then(function(response) { return response.ok ? response.text() : ''; })
.then(function(text) {
var cues = parseCues(text);
var activeText = '';
var render = function() {
var cue = findCue(cues, audio.currentTime);
if (!cue || cue.text === activeText) {
return;
}
activeText = cue.text;
output.textContent = cue.text;
};
render();
audio.addEventListener('timeupdate', render);
audio.addEventListener('seeked', render);
audio.addEventListener('play', render);
});
});
})();
Nous utilisons des cookies essentiels au fonctionnement du site. Avec votre accord, nous utilisons aussi des outils d’analyse et de publicité personnalisée. Votre consentement publicitaire nous permet de transmettre à Google des empreintes de vos coordonnées et des données de localisation afin d’attribuer les conversions liées aux essais et aux accès à vie. Consultez notre
Politique de confidentialité.