lundi 14 janvier 2008

Savoir Bien Programmer…

Je commence avec ce premier topique dans notre blog carthagora

Depuis que la métier de programmation existait, et l’homme est en lutte continu afin de d’aboutir à une combinaison à la fois harmonique et logique pour créer un programme performent…


Ce pendant plusieurs facteurs interviennent afin d’aboutir à un bon résultat, et j’appuie encore une fois sur le mot « bien » car on peut aboutir par mille et une méthode à un programme qui résout l’affaire sans être performent.

Sur ce coup la, je donne un exemple assez basique mais qui explique très Bien la chose. Parmi les problèmes les plus basique en programmation qu’affronte les jeunes informaticiens est la permutation de deux variables, en d’autre terme comment peut on mettre le contenu d’une variable A dans le contenu d’une Variable B et vice vers ça sans tout de même perdre le contenu de ces deux informations.

La solution la plus classique et même la plus évidente est d’utiliser une autre variable intermédiaire C qu’on utilise comme une case de rangement temporaire au moment de l’échange.

La solution sera dans se cas :

C := A

A :=B

B :=C

A la fin de ces instructions on aura le contenu de A dans celui de B et vise vers ça.

Une deuxième idée pour résoudre le même problème serait de s’appuyer sur une idée mathématique dont le principe est simple : ayant une somme de deux nombres, en connaissant l’un on peut connaître l’autre.

La solution sera dans ce cas :

A :=A+B

B :=A-B

A :=A-B

Et on abouti de même au même résultat.

Alors comment évaluer alors la performance de ces deux programmes ?

Certes, les deux algorithmes ne sont pas assez complexes mais sont de nature différentes et peuvent vous donner une idée pour des programmes de milliers de lignes.

Le premier Programme s’appuie sur une idée original et logique (C’est comme si on utilise un troisième verre pour échanger le contenu de deux verres de départ), l’algorithme fait intervenir alors une variable intermédiaire pour résoudre l’affaire.

Un programme qui s’exécute rapidement du fait que l’ensemble des opérations sont des affectations mémoires qui ne nécessite pas de temps processeur. Le défaut réside dans l’allocation d’une autre case mémoire ou d’une variable supplémentaire qui n’est pas mentionné dans le problème de départ.

Le deuxième Programme lui, s’appuie sur une propriété mathématique (qu’on appelle aussi logique métier, vu Bien sure la nature même de la problématique), et utilise une suite d’opérations arithmétique pour résoudre l’affaire.

Un programme assez long par rapport au premier vu que le traitement en question est à la fois des opérations arithmétiques et des affectations mémoires. Mais l’avantage ici et qu’il n’y a pas d’allocation de ressources supplémentaires.

A travers ces deux solutions on peut bien voir le rapport entre un programme qui consomme de la mémoire tout en étant rapide en temps d’exécution contre un programme qui ne nécessite pas de ressources supplémentaires mais qui à un temps de réponse assez long. Et le pauvre programmeur devra choisir selon ses besoins fonctionnels et l’architecture de sa machine.

vendredi 11 janvier 2008

Découvertes accidentelles

Connaissez-vous le point commun entre le téléphone, les Post-It et le Velcro ? Toutes ces découvertes ont été faites par accident. La plupart du temps, le progrès scientifique est le fruit d’une recherche et d’une analyse rigoureuses, mais ce n’est pas toujours le cas. De nombreuses découvertes sont dues au hasard.

La découverte de la pénicilline par Alexandre Fleming en est un illustre exemple. Cette découverte a eu lieu en 1928, lorsque Fleming laissa une boîte de Petri où il faisait pousser des staphylocoques dans son laboratoire et partit deux semaines en vacances. Lorsqu’il revint travailler, il constata que la culture avait été contaminée par les souches d’un champignon qui ont arrêté la croissance des bactéries. Fleming venait de découvrir un antibiotique !

Il ne s’agit pas là de la première découverte accidentelle. À travers les siècles, ce type de découvertes a donné naissance aux plus grandes percées mondiales dans tous les domaines de la vie. Elles sont particulièrement nombreuses en chimie, il vous suffit de jeter un coup d’œil à la frise chronologique Xperimania pour en trouver de nombreux exemples. Voici quelques autres exemples de découvertes faites par hasard ou par « heureux accident ». Certaines d’entre elles ont été faites alors que les scientifiques cherchaient en fait tout autre chose !

  • Les notes Post-It

En 1970, le chimiste Spencer Silver travaillait au laboratoire de recherche de 3M et cherchait à l’époque une nouvelle colle forte. Au lieu de ça, ses recherches ont abouti à un résultat peu satisfaisant. En séparant deux bouts de papier qui étaient attachés par cette colle, Spencer a découvert que la colle restait soit sur un bout ou sur l’autre. Cela semblait être une invention assez inutile. Quatre ans plus tard, l’un de ses collègues eu une idée brillante. Il faisait partie d’une chorale et avait l’habitude de marquer les pages de son livre de cantiques. Comme ses repères n’arrêtaient pas de tomber, il les a enduits avec la colle de Spencer. Comme par magie, les repères restèrent en place et pouvaient malgré tout s’enlever facilement sans endommager le livre. Les notes Post-It étaient nées. De nos jour, elles constituent la fourniture de bureau la plus utilisée.

  • Le cellophane

L’idée du cellophane, le film d’emballage transparent le plus populaire, est survenue à l’esprit de l’ingénieur textile suisse Jacques Brandenberger alors qu’il était assis dans un restaurant. Après qu’un client avait renversé une bouteille de vin sur la nappe, le Dr Brandenberger est retourné à son laboratoire convaincu qu’il trouverait un moyen d’appliquer un film transparent sur les vêtements, ce qui les rendrait imperméables. Il a fait des recherches sur différents matériaux et a fini par appliquer de la viscose liquide sur du tissu. L’expérience a échoué car le tissu était devenu trop rigide et fragile. Brandenberger a toutefois remarqué que la couche de viscose avait formé un film transparent qui pouvait avoir d’autres applications. En 1908, il développa une machine qui pouvait produire des feuilles de viscose transparentes et les a commercialisées sous le nom de cellophane.

  • Le Velcro

La bande auto-agrippante Velcro a été inventée en 1941 par l’ingénieur suisse George de Mestral. L’idée lui est venue après avoir analysé les résidus de bourre qui étaient restés accrochés à ses vêtements et aux poils de son chien après d’être promenés dans les Alpes. Il a examiné cet étrange duvet au microscope et a décidé de concevoir un bande auto-agrippante qui se baserait sur le système de crochets microscopiques des bourres. Même si de Mestral fut d’abord confronté à la résistance et à la moquerie de ses pairs, il s’accrocha à son idée. À force d’essais et d’erreurs, il réalisa que le nylon cousu sous la lumière infrarouge formait de mini crochets très résistants qui pouvaient facilement restés accrochés à des matières en nylon plus douces et veloutées. Saviez-vous que de Mestral a nommé son invention Velcro d’après les mots « velours » et « crochet » ?

Le hasard ne suffit pas pour faire de telles découvertes. Le scientifique ou l’inventeur doit avoir l’esprit ouvert et être préparé à détecter et à comprendre l’importance de l’incident imprévu pour pouvoir l’utiliser de façon constructive. Comme l’a si bien dit le scientifique français Louis Pasteur : « Dans les champs de l’observation, le hasard ne favorise que les esprits préparés ». Cette citation, issue de son discours d’inauguration de la Faculté des Sciences de l’Université de Lille en 1854, est toujours d’actualité.

La recherche scientifique fait l’objet de nombreuses attentes car il devient crucial de résoudre les problèmes majeurs de la société : famine, santé ou encore énergie, pour ne citer que quelques exemples. Il ne faut pas laisser passer un événement inattendu dû au hasard. Il faut également nourrir les esprits ouverts et préparés du futur. Ce travail de préparation commence dès le plus jeune âge, à l’école. C’est pourquoi l’enseignement des sciences est si crucial au développement d’esprits critiques, informés et ouverts qui seront à la source des innovations de demain. Le défi vous tente ? Ouvrez vos oreilles et votre esprit et peut-être qu’un jour, vous vous exclamerez « Eurêka » !