Programme et évaluation

Programme et évaluation « E3C » en NSI

Épreuve commune de contrôle continue de début mai, texte officiel :

épreuve de 2h, consistant en un questionnaire à choix multiples divisé en 7 parties, une pour chaque thématique du programme. Chaque partie comporte 6 questions. Pour chaque question, 4 réponses sont proposées dont une seule est correcte. L’usage de la calculatrice est interdit.
Notation: Pour chacune des 42 questions, le candidat gagne 3 points pour la réponse correcte, perd 1 point pour une réponse fausse, et obtient un résultat nul pour absence de réponse ou une réponse multiple. Sur chacune des sept parties, si le total des points obtenu par le candidat est négatif, son résultat est évalué à 0. Le résultat obtenu est transformé en note sur 20 selon la formule : nombre de points obtenus ×20/ (3×42).

Les sept thématiques du programme ?

  • Représentation des données: types et valeurs de base
  • Représentation des données: types construits
  • Traitement de données en tables
  • Interactions entre l’homme et la machine sur le Web
  • Architectures matérielles et systèmes d’exploitation
  • Langages et programmation
  • Algorithmique

Quelques explications sur ces termes ?

ob_30a205_programme

J’ai lu le programme !
(Heureusement me direz-vous
😉 )

Et vous ?

Je me suis dit deux choses :

  • On en a déjà fait pas mal ! Plus de la moitié des attendus.
  • Vous ne comprendriez pas forcément ce qui est écrit…

… alors décryptons ensemble certains items et profitons-en pour traiter quelques compléments.

Quelques morceaux choisis :

Exemple 1 :

« 0.2 + 0.1 n’est pas égal à 0.3. Il faut éviter de tester l’égalité de deux flottants. Aucune connaissance précise de la norme IEEE-754 n’est exigible. »

La norme IEEE-754 ? Il s’agit de la manière dont sont codés les flottants, comme nous l’avons appris ici.

Illustrons-le avec un petit code python très maladroit :

nombre = 0.1

while nombre != 1 :
    nombre += 0.1
    print(nombre)

Il faut en effet éviter de tester l’égalité de deux flottants :

>>> 
======== RESTART: cm 2020-02-03 NSI exemple1.py ========
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
1.0999999999999999
1.2
1.3
...

Il nous a fallu une interruption (Ctrl-C) pour ce programme qui tournait en boucle infinie !

Exemple 2 :

Diversité et unité des langages de programmation.
Repérer, dans un nouveau langage de programmation, les traits communs et les traits particuliers à ce langage.
Les manières dont un même programme simple s’écrit dans différents langages sont comparées.

On va par exemple sur cette page pour comparer notre programme précédent avec celui-ci écrit en javascript:

let nombre = 0.1;

while (nombre != 1){
  nombre = nombre + 0.1;
  alert(nombre); // plutôt que console.log(nombre);
}

On repère, dans ce nouveau langage de programmation, les traits communs et les traits particuliers à ce langage, on compare avec python.

Exemple 3 :

Tableau indexé, tableau donné en compréhension :
Lire et modifier les éléments d’un tableau grâce à leurs index.
Construire un tableau par compréhension.
Utiliser des tableaux de tableaux pour représenter des matrices : notation a[i][j].
Itérer sur les éléments d’un tableau.

Construire un tableau par compréhension ?

>>>liste = [x ** 2 for x in range(1, 5)]
>>> liste
[1, 4, 9, 16]
>>> cesar = [chr(ord(lettre) - 3) for lettre in "FHVDU"]
>>> cesar
['C', 'E', 'S', 'A', 'R']
>>>

Exercices :

  • la table de 3 en compréhension ?
  • les 5 premiers impairs en compréhension ?
  • Que fait ce code ?
    matrice = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
    
    for i in range(3):
        for j in range(3):
            if (i + j) % 2 == 0:
                matrice[i][j] = 42
            else :
                matrice[i][j] = 52
    
    print(matrice)

Exemple 4 :

Utilisation de bibliothèques
Utiliser la documentation d’une bibliothèque.
Aucune connaissance exhaustive d’une bibliothèque particulière n’est exigible.

C’est bien entendu ce que nous faisons avec la bibliothèque pygame pour notre projetLaby !

Prenons un autre exemple, très utile pour d’autres sciences : la bibliothèque matplotlib, qui permet de générer des graphiques très facilement.

Illustrons-le avec un petit code python :

import matplotlib.pyplot as plt

def f(x) :
    return (x - 1) ** 2

abscisses = list(range(-18, 21, 1))
ordonnees = [f(x) for x in abscisses]
print("abscisses:\n", abscisses)
print("ordonnées:\n", ordonnees)

plt.plot(abscisses, ordonnees, marker='v')
plt.ylabel('images')
plt.xlabel("antécédents")
plt.title("Une jolie parabole ?")
plt.savefig("cm 2020-02-03 NSI test matplotlib.png")
plt.show()
======== RESTART: cm 2020-02-03 NSI exemple3.py ========
abscisses:
 [-18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
ordonnées:
 [361, 324, 289, 256, 225, 196, 169, 144, 121, 100, 81, 64, 49, 36, 25, 16, 9, 4, 1, 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361]
>>>

On a donné un autre exemple utile de liste en compréhension : changer les abscisses change automatiquement les ordonnées !

Et on a un beau graphique :
cm 2020-02-03 NSI test matplotlib

Exemple 5 :

p-uplets. p-uplets nommés.
Écrire une fonction renvoyant un p-uplet de valeurs

C’est ce que nous avons fait mercredi !
Cette fonction renvoie bien un couple (c’est-à-dire un p-uplet de taille 2) :

def vers_le_bas(grille, x, y, hauteur):
    if y + 1 < hauteur and grille[y + 1][x] != 1:
        y += 1
    return x, y

# et on l'appelle par exemple ainsi :
x, y = vers_le_bas(grille, x, y, hauteur)

Exercice :

  • Écrire une fonction stats(table) admettant une liste d’entiers en entrée et qui renvoie son minimum, son maximum et la moyenne de ses valeurs :
    ======== RESTART: cm 2020-02-03 NSI exemple4.py ========
    >>> stats([42, 18, 24])
    (42, 18, 28.0)
    >>>

Des « p-uplets nommés » ?

C’est la nouveauté du jour… En python, on utilisera des …

Dictionnaires – sera repris lundi prochain

Cours :

On se base sur le document national publié sur le site d’accompagnement pour les nouveaux programmes de NSI :

Application :

Ce nouveau « type construit » est idéal pour reprendre et finir notre TP « Carnet d’adresses »

 

N'hésitez-pas à poser une question, ou faire avancer le schmilblick

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.