Quelques raccourcis :

420-201-RE – Introduction à la programmation

Ceci est un petit site de support pour le cours 420-201-RE – Introduction à la programmation. Notez toutefois que la référence principale pour ce cours est http://vechelard.clg.qc.ca/ que je vous invite bien sûr à visiter.

Vous trouverez aussi des liens sur divers langages (dont C#, notre outil de prédilection dans ce cours) un peu partout dans http://h-deb.clg.qc.ca/. Portez une attention particulière à ../../../Sujets/Divers--cdiese/index.html.

Les diverses sections de cette page (en fonction desquelles vous trouverez quelques liens dans l'encadré à droite) vous mèneront elles-aussi sur des pistes qui vous permettront d'explorer un peu plus par vous-mêmes, de valider vos acquis et d'enrichir votre apprentissage.

Cliquez sur cette cible pour le plan de cours, sous forme électronique

Pratiques de correction

Je corrige les programmes en appliquant des codes de correction. Vous trouverez ici la liste des codes les plus fréquents.

Ma stratégie de correction en tant que telle (pour le code, à tout le moins) est résumée ici.

Cliquez sur cette cible pour un résumé des principales règles de programmatique en vigueur dans ce cours.

Cliquez sur cette cible pour les normes appliquées dans ce cours, en ce qui a trait au pseudocode

Détail des séances en classe

Date Séance Détails

27 août

L00

Au menu :

  • Présentation du cours et du plan de cours
  • Introduction à la conception logicielle (chapitre 01 des notes de cours)
  • Premiers pas avec les séquences et le pseudocode (et même une touche de code C#, pour le plaisir)
  • Quelques éléments de culture, incluant une très brève mention d'Alan Turing, un personnage important pour nous, et diverses considérations historiques (j'ai glissé un mot sur Kurt Gödel, sur David Hilbert)
  • Mention de noms et de préfixes utilisés pour nommer des quantités, particulièrement en informatique (bit, byte, octet, de même que les préfixes kilo (considéré par certains comme valant 1000, et par la plupart des informaticien(ne)s comme valant 1024), méga, giga et téra)

29 août

T00

Au menu :

  • Suites de l'introduction à la conception logicielle (chapitre 01 des notes de cours)
  • Structures de contrôle (première partie) : la séquence. Voir ../../../Sujets/Developpement/sequence.html pour un rappel
  • Suites de nos premiers contacts avec le pseudocode
  • Introduction plus formelle du type float, pour représenter des nombres à virgule flottante
  • Première mention formelle du type int, pour représenter des nombres entiers
  • Retour sur les règles de nomenclature applicables dans le cours :
    • comment exprimer un nom de variable
    • comment exprimer un nom de constante
    • pourquoi limiter les noms en majuscules aux constantes
    • comment séparer des mots dans un nom de variable?
    • comment séparer des mots dans un nom de constante?
  • Présentation du laboratoire 01 : calcul du coût de déplacement

Exercices en classe :

  • Exercice sur la conversion de °F à °C (pseudocode, C#)
  • Exercice sur la permutation de valeurs, avec plusieurs solutions distinctes, et brève discussion des mérites de chacune (pseudocode, trace, jeux d'essai)

À faire pour L01 :

  • Laboratoire 00 : remettre un document
  • Laboratoire 01 : calcul du coût de déplacement (analyse, pseudocode, jeux d'essai)

3 sept.

L01

Au menu :

  • Retour sur le laboratoire 00
  • Remise du laboratoire 01 : calcul du coût de déplacement (analyse, pseudocode, jeux d'essai)
  • Algorithmes et codification (chapitre 02 des notes de cours)
  • Quelques exercices

5 sept.

T01

Au menu :

  • Discussions sur le laboratoire 01
  • Préciser ce qui constitue ou non un intrant (ou : que signifie la primitive Lire du pseudocode?)
  • Retour sur les règles de nomenclature applicables dans le cours :
    • comment exprimer un nom de variable
    • comment exprimer un nom de constante
    • pourquoi limiter les noms en majuscules aux constantes
    • comment séparer des mots dans un nom de variable?
    • comment séparer des mots dans un nom de constante?
  • Retour sur le fait que deux noms différents dénotent deux objets distincts
  • Nombres à virgule flottante : utiliser le '.' ou la ','?
  • Types string, int, float et double
  • Suites de la section Algorithmes et codification (chapitre 02 des notes de cours)
  • Présentation du laboratoire 02 : Pavage sans extra inc. (analyse, pseudocode, code C#, jeux d'essai)

À faire pour L02 :

  • Laboratoire 02 : Pavage sans extra inc. (analyse, pseudocode, code C#, jeux d'essai)

10 sept.

L02

Au menu :

  • Bref regard sur le transtypage, ou comment forcer le compilateur transformer une valeur d'un type vers un autre type – nous n'avons pas exploré formellement la chose, cela dit; nous l'avons mentionné et utilisé, sans plus, mais nous y reviendrons
  • Expressions arithmétiques, séquences et fonctions (chapitre 03 des notes de cours)
  • Survol des fonctions mathématiques de C#
    • aujourd'hui, nous limiterons notre démarche à l'utilisation de fonctions; évidemment, dans quelques séances, nous rédigerons nos propres fonctions
  • Services des types de C#
    • méthode Parse()
    • méthode ToString()
    • certaines constantes telles que MinValue, MaxValue et (pour les nombres à virgule flottante) Epsilon
  • Survol de la structure interne des nombres entiers
  • Débordements et leur effet (en utilisant un bloc checked... ne faites pas ça à la maison!)
  • Présentation du laboratoire 03 : APOO volet plongeon (analyse, pseudocode, code C#, jeux d'essai)

À remettre :

  • Laboratoire 02 : Pavage sans extra inc. (analyse, pseudocode, code C#, jeux d'essai)

12 sept.

T02

Au menu :

  • Retour sur le laboratoire 02 : Pavage sans extra inc. (analyse, pseudocode, code C#, jeux d'essai)

À faire :

Travail sur le laboratoire 03 : APOO volet plongeon (analyse, pseudocode, code C#, jeux d'essai)

17 sept.

L03

Je serai à CppCon 2019. Vous pourrez me suivre (à travers ../../../Sujets/Orthogonal/cppcon2019.html) si vous le souhaitez.

Je serai remplacé par Maxime Barakatt, que je remercie sincèrement. Vous serez entre bonnes mains.

  • Introduction à l'approche que l'on nomme le développement graduel (approche Top-Down), chapitre 04 des notes de cours
  • Fonctions en pseudocode
    • paramètres passés par valeur
    • variables locales
    • retour
  • Fonctions en C#
    • paramètres passés par valeur
    • variables locales
    • retour
  • Diagramme hiérarchique

À remettre :

  • Laboratoire 03 : APOO volet plongeon (analyse, pseudocode, code C#, jeux d'essai)

19 sept.

T03

Je serai à CppCon 2019. Vous pourrez me suivre (à travers ../../../Sujets/Orthogonal/cppcon2019.html) si vous le souhaitez.

Je serai remplacé par Maxime Barakatt, que je remercie sincèrement. Vous serez entre bonnes mains.

  • Exercices avec les fonctions :
    • écrire une fonction prenant en paramètre les coordonnées de deux points et sur le plan cartésien, et retournant la distance entre ces deux points, de même qu'un petit programme testant cette fonction
    • écrire une fonction calculant la pente d'une droite non-verticale étant donné l'ordonnée à l'origine et un point par lequel passe cette droite, de même qu'un petit programme testant cette fonction
    • écrire une fonction prenant en paramètre un poids exprimé en kilogrammes et retournant la valeur équivalente, mais exprimée en livres, de même qu'un petit programme testant cette fonction
  • Présentation du laboratoire 04 : APOO volet glisse (analyse, pseudocode, code C#, jeux d'essai)

À faire :

  • Travail sur le laboratoire 04 : APOO volet glisse (analyse, pseudocode, code C#, jeux d'essai)

24 sept.

L04

J'ai dû m'absenter... Je m'ennuie de vous!

26 sept.

T04

Vous étiez en grève aujourd'hui...

1 oct.

L05

Au menu :

  • Minitest #1
  • Retour sur le laboratoire 03 : APOO volet plongeon (analyse, pseudocode, code C#, jeux d'essai)
  • Arrondir un nombre à virgule flottante avec C#
  • Premier contact sommaire avec les alternatives, chapitre 05 des notes de cours
  • Structures alternatives (bases)
  • Présentation du laboratoire 05 : APOO volet cartésien (code C#)

Il y a eu un imbroglio aujourd'hui, et le minitest n'était pas approprié à votre situation. Nous l'avons retiré et un nouveau minitest (comparable, mais pour lequel vous serez prêt(e)s!) sera distribué à la séance L06. Désolé pour la turbulence!

Notez aussi que le laboratoire 05 sera à remettre à la séance L06, du fait que vous avez un horaire trop chargé pour une livraison à T05 comme prévu initialement.

À remettre :

  • Laboratoire 04 : APOO volet glisse (analyse, pseudocode, code C#, jeux d'essai)

3 oct.

T05

Au menu :

  • Structures alternatives plus complexes :
  • Fonctions prédicats

À faire :

  • Laboratoire 05 : APOO volet cartésien (code C#)

8 oct.

L06

Au menu :

  • Minitest #1
  • Retour sur le laboratoire 04 : APOO volet glisse (analyse, pseudocode, code C#, jeux d'essai)

À faire :

  • Laboratoire 05 : APOO volet cartésien (code C#)

10 oct.

T06

Au menu :

  • Retour sur le minitest #1
  • Introduction à la logique et aux répétitives, chapitres 06 et 07 des notes de cours
  • Un peu de logique

À remettre :

  • Laboratoire 05 : APOO volet cartésien (code C#)

15 oct.

s/o

Journée pédagogique (cours suspendus)

17 oct.

s/o

Au menu : grève étudiante...

22 oct.

L07

Au menu :

  • Retour sur le laboratoire 05 : APOO volet cartésien (code C#)
    • lecture des consignes
    • pourquoi certaines tricheries innocentes ont été pénalisées
    • solutions élégantes à certains problèmes
    • bien gérer le sinon
    • ne pas confondre la notation en pseudocode et la notation en C#
  • Introduction à la logique (suite)
  • Introduction aux répétitives :
    • bases
    • variante cumulative
    • imbrication d'alternatives
    • survol d'une variante de la répétitive classique
    • quelques exercices
  • Petits bonbons syntaxiques :
    • autoincrémentation (++cpt et cpt++) et autodécrémentation (--cpt et cpt--)
    • variantes modifiantes de certains opérateurs (p. ex. : x += y; au lieu de x = x + y;)
    Présentation du laboratoire 06 : introduction aux répétitives (pseudocode, code C#)

À faire :

  • Travail sur le laboratoire 06 : introduction aux répétitives (pseudocode, code C#)

Note : un exemple de l'affichage attendu pour un appel à FizzBuzz(1,20) serait le suivant :

1
2
3 fizz
4
5 buzz
6 fizz
7
8
9 fizz
10 buzz
11
12 fizz
13
14
15 fizzbuzz
16
17
18 fizz
19
20 buzz

24 oct.

T07

Au menu :

  • Discussion (un peu tardive, je sais) des fonctions void
  • Variantes de la répétitive :
    • forme for
    • forme do ... while
  • Introduction à la modularisation, chapitre 08 des notes de cours :
    • des rectangles?
    • un sapin!

À faire :

  • Laboratoire 06 : introduction aux répétitives (pseudocode, code C#)

29 oct.

L08

Au menu :

  • Présentation du laboratoire 07 : calculer PI (pseudocode, code C#)

À faire :

  • Laboratoire 07 : calculer une approximation de Π (pseudocode, code C#)

À remettre :

  • Laboratoire 06 : introduction aux répétitives (pseudocode, code C#)

31 oct.

T08

Au menu :

  • Introduction aux tableaux unidimensionnels
    • création
    • distinguer position d'un élément et valeur d'un élément
    • taille
    • parcours
    • exercices formatifs
  • Présentation du labo 08 : diviseurs communs (pseudocode, code C#)

À remettre :

  • Laboratoire 07 : calculer une approximation de Π (pseudocode, code C#)

Joyeuse Halloween!

5 nov.

L09

Au menu :

  • Introduction aux tableaux unidimensionnels (suite)
    • comparer deux tableaux
    • ajouter un élément à un tableau
  • Fonctions, intrants et extrants ()
    • paramètres ref
    • paramètres out
  • Représentation des objets en mémoire (aperçu)

À faire :

  • Travail sur le laboratoire 08 : diviseurs communs (pseudocode, code C#)

7 nov.

T09

Au menu :

  • Bonbon : quelle est la différence entre ++i et i++?
  • Présentation du laboratoire 09 : distribution des valeurs lors de lancers de dés (code C#)

À remettre :

12 nov.

L10

Au menu :

  • Minitest #2
  • Survol de l'utilisation des tableaux multidimensionnels (brève introduction)

À faire :

  • Laboratoire 09 : distribution des valeurs lors de lancers de dés (code C#)

14 nov.

T10

Au menu :

  • Survol de l'utilisation des tableaux multidimensionnels (suite)

À faire :

  • Laboratoire 09 : distribution des valeurs lors de lancers de dés (code C#)

19 nov.

L11

Au menu :

  • Retour sur le laboratoire 09
  • Présentation des bases (très naïves) de la POO
  • Exercices formatifs sur les bases (très naïves) de la POO

À remettre :

  • Laboratoire 09 : distribution des valeurs lors de lancers de dés (code C#)

21 nov.

T11

Au menu :

  • Exercices formatifs sur les bases (très naïves) de la POO (suite)
  • Présentation du laboratoire 10 : multiplication de matrices (code C#)

À faire :

  • Travail sur le laboratoire 10 : multiplication de matrices (code C#)

26 nov.

L12

Au menu :

  • Présentation des types énumérés

À faire :

  • Travail sur le laboratoire 10 : multiplication de matrices (code C#)

28 nov.

T12

Au menu :

  • Présentation de la PFI
  • Travail sur la PFI

J'ai mis un fichier Paysagiste.xyz (que vous devrez renommer Paysagiste.exe avant d'utiliser) pour vous permettre de voir ce qui est attendu de vous : Paysagiste.xyz

À remettre :

  • Laboratoire 10 : multiplication de matrices (code C#)

3 déc.

L13

Au menu :

  • Travail sur la PFI

5 déc.

T13

Au menu :

  • Travail sur la PFI

10 déc.

s/o

Journée d'examen de français, formation générale (cours suspendus)

12 déc.

T14

Au menu :

  • Travail sur la PFI

17 déc.

L14

À remettre :

  • La PFI de la session A2019

Chic examen final

Petits coups de pouces

Vous trouverez ici quelques documents, la plupart petits, qui peuvent vous donner un petit coup de pouce occasionnel.

Comment accéder à du code .NET à partir d'un client C++ natif.

Vous trouverez aussi des exemples de code C# dans la section Divers – C# du site, mais notez que je n'ai pas nécessairement harmonisé ces exemples (écrits pour des cours plus avancés, sous forme de survols) aux standards de programmation appliqués dans le présent cours. À lire avec prudence et discrimination, donc.

Où placer vos projets?

Lorsque vous travaillerez avec Visual Studio au laboratoire, vous devrez choisir un emplacement pour chaque projet. J'ai demandé à notre chic équipe technique à quel endroit vous devriez placer vos projets; voici ce que l'on m'a répondu :

« Pour la sauvegarde des projets, c'est préférable de sauvegarder quelques part dans C:\utilisateurs\"nom d'utilisateur".

Ils peuvent mettre un copie sur le réseau mais ils doivent travailler localement.

Il ne faut pas oublier qu'ils n'ont que 400 Mo d'espace réseau, et que ce qu'ils déposent dans Remise compte dans leur quota. »

Prenez note qu'en travaillant sur C:\utilisateurs\"nom d'utilisateur", votre projet se trouvera sur un ordinateur spécifique, ce qui signifie que vous n'y aurez pas accès si vous travaillez ultérieurement sur un autre ordiateur du laboratoire. Pour cette raison, assurez-vous de faire des copies que vous pourrez transporter avec vous (en passant par une puce USB ou en vous envoyant le code source de vos programmes par courriel, à titre d'exemple).

Solutionnaires

Quelques solutionnaires suivent. Référez-vous aux règles programmatiques pour plus de détails sur les normes de programmation appliquées dans ce cours.

Travail

Calculer Π (laboratoire 07)

À venir

À venir

À venir

En espérant que ça vous aide à organiser vos idées!


Valid XHTML 1.0 Transitional

CSS Valide !