|
Plan d'étude des Sciences Informatiques au Collège de Genève |
|
|
Champ regroupée 1er semestre |
|
|
Aide-mémoire info 2ème (1er semestre) |
|
|
Champ regroupée 2ème (2ème semestre) |
|
|
Aide-mémoire info 2ème (2ème semestre) |
|
|
| 1a Algorithmes gloutons |
Algorithmes (Cours) |
|
|
Monnaies |
|
|
Corrigé Monnaies |
|
|
Série Algorithmes Gloutons |
|
|
Corrigé Série Algorithmes Gloutons |
|
|
pseudocode monnaie glouton |
|
|
rendu_monnaie_glouton.py |
|
|
sac a dos brutal.py (version 1) |
|
|
Sac à dos brutal.py (version 2) |
|
|
sac a dos glouton.py |
|
|
| 1b Algorithmes de tri |
Cours Algos Tri Modulo |
|
|
corrigé Devoir 2 |
|
|
Correction Quiz sur les algorithmes simples de tri |
|
|
Explication vidéo des algorithmes de tri |
Petite vidéo où je montre les trois algorithmes de tri en live |
|
Correction de l'ex. 5 en vidéo |
Petite vidéo de la correction de l'ex. 5 concernant les trois algorithmes de tri réalisé en live avec des étudiants. 1. Sélection 2. Insertion 3. Bulles |
|
Test Logigramme Tri Selection (fait par un élève) |
|
|
Corrigé Pseudocode tri sélection |
Attention: dans cet algorithme, on considère que le premier élément d'une liste est l'index 0. |
|
Déroulement pseudocode sélection 1/2 |
Attention: dans cet algorithme, on considère que le premier élément d'une liste est l'index 0. |
|
Déroulement pseudocode sélection 2/2 |
Attention: dans cet algorithme, on considère que le premier élément d'une liste est l'index 0. |
|
Pseudocode tri bulles |
Attention: dans cet algorithme, on considère que le premier élément d'une liste est l'index 1. |
|
Deroulement Pseudocode Bulles |
Attention: dans cet algorithme, on considère que le premier élément d'une liste est l'index 1. |
|
Pseudocode tri insertion |
Attention: dans cet algorithme, on considère que le premier élément d'une liste est l'index 1. |
|
Deroulement Pseudocode Insertion |
Attention: dans cet algorithme, on considère que le premier élément d'une liste est l'index 1.
Il se trouve ici. |
|
Pseudocode tri insertion avec TANT_QUE |
Attention: dans cet algorithme, on considère que le premier élément d'une liste est l'index 1. |
|
logigramme tri sélection |
Attention: dans cet algorithme, on considère que le premier élément d'une liste est l'index 0. |
|
Logigramme Bulles |
|
|
Logigramme Insertion |
|
|
Tri fusion |
|
|
Tri pivot |
|
|
course entre tri insertion et tri fusion |
|
|
| 1c Complexité algorithmique |
Algorithmes (Cours) |
|
|
Ressources sur la complexité algorithmique |
texte: Vidéos: - https://www.youtube.com/watch?v=gI4lX1EtGJw
- https://www.youtube.com/watch?v=vzUK6YxkhB0
|
|
| 1d Algorithmes - Diviser pour régner |
Série "Diviser pour Régner" |
|
|
Corrigé série "Diviser pour Régner" |
|
|
| 1e Algorithmes - traduction |
Série Traduction Algorithmes |
|
|
| 2a Python - installation, rappels... |
Installation de Thonny |
|
|
Programmer en Python en ligne (sans installation) |
Vous pouvez utiliser des outils comme basthon ou replit (voir explication vidéo pour ce dernier) |
|
Liens pour réviser Python |
Voici quelques liens pour les élèves qui souhaiteraient réviser la programmation en Python.
N'hésitez pas à me communiquer d'autres liens que vous connaissez. Je commence avec un lien en espérant que la liste va vite grandir...
|
|
Thonny mode emploi |
|
|
Programmation Python: les bases |
|
|
Corrigé "Je sais coder - intro" |
Ici, vous trouvez trois fichiers correspondant aux code1, code2 et code3 du devoir "Je sais coder - intro".
|
|
| 2b Python - débogage et implémentation d'algos |
Traduction Pseudocode - Python (tri par sélection) |
|
|
Débogage: Traduction Pseudocode - Python (tri par sélection) |
|
|
tri insertion |
|
|
tri bulles |
|
|
Série Algorithmes - Traduire un logigramme |
|
|
| 2c - récursivité |
CORRIGE Python fonction factorielle récursive |
|
|
Explication factorielle récursif |
|
|
CORRIGE recursif puissance |
|
|
CORRIGE recursif compte a rebours |
|
|
Document recursion: Recherche Brutale |
Document pour exécuter un algorithme récursif de recherche brutale de valeur dans une liste en débranché. |
|
Recherche dichotomique récursive (binary search) |
def dicho(liste, cible): """ Effectue une recherche dichotomique récursive d'une cible dans un liste triée. Retourne True si la cible est dans la liste, False sinon. """ # cas 1: Condition de sortie False if len(liste) == 0: return False
milieu = len(liste) // 2
# cas 2: Condition de sortie True if liste[milieu] == cible: return True
# cas 3: cible < liste[milieu] # -> On recherche dans la moitié gauche elif liste[milieu] > cible: return dicho(liste[:milieu], cible)
# cas 4: cible > liste[milieu] # -> On recherche dans la moitié droite else: return dicho(liste[milieu+1:], cible)
# --- Exemple d'utilisation ---
liste_triee = [1, 3, 5, 7, 9]
valeur_presente = 7 print(dicho(liste_triee, valeur_presente))
valeur_non_presente = 4 print(dicho(liste_triee, valeur_non_presente)) |
|
Tri Pivot (quick search) |
|
|
Tri par fusion |
def tri_fusion(liste): # Condition de sortie : liste déjà triée if len(liste) <= 1: return liste
# Diviser la liste en deux moitiés milieu = len(liste) // 2 gauche = liste[:milieu] droite = liste[milieu:]
# Appeler récursivement tri_fusion sur chaque moitié gauche_triee = tri_fusion(gauche) droite_triee = tri_fusion(droite)
# fusion les deux moitiés triées return fusion(gauche_triee, droite_triee)
def fusion(gauche, droite): """ fusionne deux listes triées (gauche et droite) en une seule liste triée. """ resultat = [] i = 0 j = 0
# Comparer les éléments des deux listes et ajouter le plus petit au résultat while i < len(gauche) and j < len(droite): if gauche[i] < droite[j]: resultat.append(gauche[i]) i += 1 else: resultat.append(droite[j]) j += 1
# Ajouter les éléments restants de chaque liste (si l'autre est déjà vide) resultat = resultat + gauche[i:] resultat = resultat + droite[j:]
return resultat
# Exemple d'utilisation ma_liste = [34, 7, 12, 6, 89, 21, 1] liste_triee = tri_fusion(ma_liste) print("Liste originale : ", ma_liste) print("Liste triée : ", liste_triee) |
|
| 3. Sécurité - cryptographie |
Cours sécurité (S. Chiou rév JCB) |
|
|
Playlist sur la sécurité par L'informateur |
Vidéos très intéressantes, notamment sur le chiffrement.
|
|
Chiffrement et déchiffrement |
|
|
Activité 1: chiffrement de César |
|
|
CORRIGE_Cesar.py |
|
|
Activité 2: chiffrement de Vigenère |
|
|
Exemple de message chiffré avec Vigenère |
|
|
CORRIGE_Vigenere.py |
|
|
Vidéo Cryptographie à clef publique (sécurité 3) |
|
|
| 4. Bases de données |
documents de référence des collègues |
Documents proposés par d'autres profs d'informatique enseignant au Collège de Candolle pour présenter les bases de données. |
|
Intro Base De Données (Openboard) |
|
|
Modélisation d'une base de données |
|
|
diagramme E-R éditable (profs-cours-élèves) |
Sauvegarder ce fichier puis l'ouvrir depuis l'application drawio. |
|
diagramme E-R recettes éditable |
Sauvegarder ce fichier puis l'ouvrir depuis l'application drawio. |
|
diagrammes E-R recettes PDF |
|
|
série modélisation de BD |
|
|
Fichier.db pour la base de données scolaire |
|
|
SGBD: exemple SQLite et DB Browser |
|
|
Introduction au langage SQL |
|
|
Aide-mémoire SQL |
|
|
Base de données exemple |
|
|
Correction devoir “requêtes SQL” |
|
|
Vidéo introductive: Bases de données |
|
|
Autre vidéo sur les BDD relationnelles (anglais) |
|
|
Activité: découvrir ce qui se cache dans votre ordinateur |
|
|
Créer une base de données avec SqliteBrowser |
|
|
Tutos vidéo pour créer une BD avec DB Browser |
|
|
Introduction au langage SQL (anglais) |
|
|
SQL Online Editor |
|
|
recettes.db |
|
|
recettes.sqbpro |
Cliquer avec le bouton de droite -> enregistrer la cible du lien -> ouvrir le fichier dans DB Browser |
|
| 4b - Projet BD |
Exemples de sujets pour une BD |
|
|
| Evaluations |
Epreuve regroupée 1S décembre 2025 |
|
|
CORRIGE de l'épreuve regroupée 1S décembre 2025 (H Garcia) |
|
|
Regr Info 2ème juin 2023 |
|
|
Regr Info 2ème juin 2023 CORRIGE |
|
|
Regr Info 2ème juin 2024 |
|
|
Regr Info 2ème juin 2024 CORRIGE |
|
|
Regr Info 2ème juin 2025 |
|
|
Regr Info 2ème juin 2025 CORRIGE |
|