# data[].attributes.body
Sympa...et assez simple à "algoriser"...

# data[].attributes.attachment_link.readable_text
Un grand classique qui se transcris bien en algorithme :

Activité-algorithmique-Jeu-de-Nim-1

II/ Eléments de réponse pour l'algorithme de Nim

Vous avez constaté que tout semblait très clair lorsqu'il ne reste plus que 4 allumettes et que c'est à l'autre de jouer :

Si l'autre prends 1, 2 ou 3 allumettes (il n'a pas d'autre choix)...il ne reste plus qu'à conclure et gagner

Reste à l'amener vers cette situation...

Nous avons 16 allumettes au départ, l'idée est de faire en sorte que l'autre se trouve toujours face à un nombre multiple de 4...jusqu'à son dernier coup ce qui nous mène à gagner sans qu'il puisse s'y opposer.

C'est facile lorsque l'autre commence : si l'autre prend n allumettes (n entre 1 et 3) alors on prends (4-n) allumettes soit le " complément à quatre ". Ainsi, à chaque coup, on ajuste le nombre d'allumettes restantes à un multiple de 4...et à la fin on gagne.

Voici donc l'algorithme pour gagner à tous les coups...si l'autre commence.

# data[].attributes.attachment_link.description
Un grand classique qui se transcris bien en algorithme : Activité-algorithmique-Jeu-de-Nim-1 II/ Eléments de réponse pour l'algorithme de Nim Vous avez constaté que tout semblait très clair lorsqu'il ne reste plus que 4 allumettes et que c'est à l'autre de jouer : Si l'autre prends 1, 2 ou 3 allumettes (il n'a pas d'autre choix)...il ne reste plus qu'à conclure et gagner Reste à l'amener vers cette situation...

# data[].attributes.body
...c'est pas compliqué

# data[].attributes.attachment_link.readable_text
Définition : " Un algorithme est une suite d'actions (conditionnées ou pas) à appliquer pour obtenir un certain résultat en un nombre fini d'étapes"
Tout est dit ici...reste à bien comprendre cette définition.

Une idée classique est d'illustrer un algorithme comme étant très comparable à une recette de cuisine. Jugez plutôt :

C'est bien une suite d'actions élémentaires (remarquez qu'il y a une action dans chaque rectangle d'action)

Certaines actions sont conditionnées (on a du Rhum ?)

Il existe un début ...et une fin (sinon, votre programme ne s'arrêterait jamais, il serait d'une certaine façon " planté ").

Ceci est donc bien un algorithme.

Une première illustration avec un jeu à jouer à 2, le Jeu de Nim

II/ Algorithmes et jeux :

S'il y a bien un domaine ou l'algorithme est roi c'est bien celui des jeux. Des formes à emboîter pour les plus petits au jeu d'échec. A ce dernier jeu, dorénavant l'ordinateur et ses algorithmes domine l'Homme depuis " Deep Blue ".

Un autre grand classique de l'algorithmique est dorénavant le Rubik's Cube qui se résout de façon automatisée...grâce à un algorithme maintenant bien rodé. Regardez plutôt cette vidéo :

III/ Dessiner un algorithme :

Trois formes suffisent pour commencer : le rectangle qui indiquera une action, le losange un test et les symboles ovales de début et de fin. Un exemple... l'algorithme du bonheur...

Vous êtes heureux ? ...continuez.

Vous êtes malheureux ?

Tout un programme de vie...

IV/ A quoi sert un algorithme en définitive ?

A décrire ou analyser une séquence de fonctionnement (un jeu, une recette, un programme scratch ou informatique...)

A échanger et mieux se comprendre entre concepteurs

V/ Les symboles et règles de dessin :

Un bon algorithme se doit d'être :

Clair,facile à comprendre ...par tous ceux qui le lisent

Le plus général possible...pour répondre au plus grand nombre de cas possibles et ne pas être prisonnier d'un langage

Compact...de manière à limiter le nombre d'opérations à effectuer et la place occupée en mémoire

VI/ Scratch et l'algorithmique :

Peut-être ne l'aviez-vous pas réalisé mais Scratch est ni plus ni moins la mise en programme d'un algorithme. Jugez plutôt :

Vous faites donc de l'algorithmique depuis un moment sans en être conscients. Chaque jour de la même façon vous appliquez des centaines d'algorithmes durant votre journée de l'habillage du matin (qui pourrait être transcris en algorithme) jusqu'à votre coucher (lui aussi transcriptible en algorithme...).

# data[].attributes.attachment_link.description
Définition : " Un algorithme est une suite d'actions (conditionnées ou pas) à appliquer pour obtenir un certain résultat en un nombre fini d'étapes" Tout est dit ici...reste à bien comprendre cette définition. Une idée classique est d'illustrer un algorithme comme étant très comparable à une recette de cuisine.

# data[].attributes.headline
Le "design" ça n'est pas (que) l'esthétique d'un objet...

# data[].attributes.subject
Le "design" ça n'est pas (que) l'esthétique d'un objet...

# data[].attributes.body
Parallèlement au cours sur Pong ! Un nouveau jeu en Scratch en demi-groupes. Le voici...

# data[].attributes.attachment_link.readable_text
Voici l'incontournable " jeu de pong " avec son sujet et sa vidéo :

Dans cette version, on ruse un peu en utilisant la fonction " rebondir si le bord est touché " y compris pour le rebond sur la raquette...cela évite de gérer l'angle de rebond.

Le tout fait illusion...et on se simplifie la tâche.

Si vous savez faire tout ça, vous êtes bien partis et prêt à imaginer votre propre jeu. Amusez-vous bien !

# data[].attributes.attachment_link.description
Voici l'incontournable " jeu de pong " avec son sujet et sa vidéo : Dans cette version, on ruse un peu en utilisant la fonction " rebondir si le bord est touché " y compris pour le rebond sur la raquette...cela évite de gérer l'angle de rebond.

# data[].attributes.headline
Besoins, Fonction Principale, Fonction d'Estime, etc...

# data[].attributes.subject
Besoins, Fonction Principale, Fonction d'Estime, etc...

# data[].attributes.attachment_link.readable_text
Une petite présentation en 15 mn pour bien comprendre ce dont nous allons parler :

Le besoin est un état de manque et d'insatisfaction qui pousse un individu à vouloir être en possession d'un produit pour le satisfaire.

Les besoins se situent à la jonction entre le biologique et le culturel, entre le corps et l'esprit, et mettent en jeu l'interaction entre l'individu et l'environnement.

On peut classer les besoins humains en trois grandes catégories :

Les besoins primaires (besoins élémentaires ou physiologiques)

Ce sont les besoins indispensables à l'Homme et à sa survie : se nourrir, respirer, se reproduire, ...

Ce sont des besoins dont la satisfaction n'est pas vitale : se déplacer, se vêtir, se divertir, s'outiller, ...

Ce sont les besoins proprement humains : aimer, partager une opinion, être heureux, ... Le besoin est défini par la " Bête à cornes " qui est un outil d'analyse du besoin.

L' " objet technique " est conçu par l'homme pour répondre à ses besoins (primaires...et autres)

On distingue pour un " objet technique " ( OT) plusieurs fonctionnalités distinctes

Fonction principale (FP)

Une fonction principale est une fonction de service qui assure la prestation du service rendu.

Une fonction principale traduit l'interaction de plusieurs éléments extérieurs appartenant au milieu (E.M.E) avec le produit.
Un exercice/animation pour fixer tout ça ici
Fonction contrainte (FC)

Une fonction contrainte est une fonction de service qui oriente (qui limite) la liberté de choix du concepteur. Une fonction contrainte traduit une adaptation du produit à un E.M.E (voir le " diagramme pieuvre "). Par exemple, une lampe de poche a pour " fonction contrainte " de base de fonctionner sur piles ou batteries...c'est évident ici mais c'est bien une contrainte de conception.

Fonction d'usage (Fu)

Une fonction d'usage est une fonction de service liée à l'utilisation du produit. Elle ne varie pas suivant l'utilisateur. Exemple : essorer le linge est une fonction d'usage classique d'un lave-linge (...dont la fonction principale est de " laver le linge ")

Fonction d'estime (Fe)

Une fonction d'estime est une fonction de service liée aux goûts de l'utilisateur c.a.d. à l'appréhension du produit par les organes des sens (vue, toucher, odorat, ouïe, goût). Elle peut être ressentie différemment suivant l'utilisateur.
Un exercice/animation pour fixer tout ça ici
3/ Design et conception d'un objet - Une confusion à éviter :

On parle dans le langage courant de " design " pour désigner l'esthétique, le " look " d'un objet. Le " design " au sens industriel est bien autre chose et inclut une réflexion approfondie sur...

la Fonctionnalité ...l'objet doit répondre avant tout à un besoin en terme de fonctionnalité

l'Ergonomie...il doit être pratique et adapté à l'usage

les aspect économique...il doit être accessible économiquement

les contraintes de sécurité...il ne doit pas être dangereux

les contraintes environnementales...les matériaux utilisés, son " cycle de vie " doit être considéré

Son esthétique, son " look "...il faut qu'il plaise et cible son public

Je vous propose pour faire un point sur le sujet une petite vidéo illustrative :

Un bel exemple de " design " (au sens de la conception) réussie : l'indémodable et inégalable brique LEGO qui fête ses 70 années d'existence sans jamais avoir changé :

4/ Pour aller plus loin :

Pour aller plus loin sur le sujet, je recommande sur le sujet les vidéos de Michel Bachelet (Ecole Centrale de Lille) (5 vidéos). Celle sur la " pieuvre " :
https://www.youtube.com/watch?v=APShCnltbtM
Un " flash " sur la notion de " besoin " : http://techno-flash.com/activites/6_associer_produits_besoin/associer_produits_besoins.htm

Sur la " fonction d'usage " :
http://techno-flash.com/activites/6_fonction_usage/fonction_usage.htm
Sur la " fonction d'estime " : http://techno-flash.com/activites/6_fonction_estime/fonction_estime.htm

# data[].attributes.attachment_link.title
Analyse du besoin - Fonction Principale, fonction contrainte, fonction d'estime

# data[].attributes.attachment_link.description
Une petite présentation en 15 mn pour bien comprendre ce dont nous allons parler : Le besoin est un état de manque et d'insatisfaction qui pousse un individu à vouloir être en possession d'un produit pour le satisfaire.

# data[].attributes.body
Séquence découverte

# data[].attributes.headline
Analyse des besoins, définition d'un objet technique

# data[].attributes.subject
Analyse des besoins, définition d'un objet technique

# data[].attributes.body
...je n'ai pas mis en ligne ce "cours" :-(