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

21 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)

23 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?

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

28 août

L01

Au menu :

  • Retour sur le laboratoire 00
  • Algorithmes et codification (chapitre 02 des notes de cours)

À faire pour L02 :

  • Laboratoire 01 : conversion d'unités de mesure (analyse, pseudocode, jeux d'essai)

30 août

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)

À faire pour L02 :

  • Laboratoire 01 : conversion d'unités de mesure (analyse, pseudocode, jeux d'essai)

À faire pour T02 :

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

4 septembre

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 01 : conversion d'unités de mesure (analyse, pseudocode, jeux d'essai)

À faire pour T02 :

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

6 septembre

T02

Au menu : je vais devoir m'absenter pour m'occuper de mon garçon, qui subit une intervention à l'hôpital.

À remettre :

  • Laboratoire 02 : Pavage sans extra inc. (analyse, pseudocode, code C#, jeux d'essai). Assurez-vous de glisser votre copie imprimée (et dûment identifiée!) du laboratoire 02 sous ma porte de bureau aujourd'hui; je les cueillerai demain matin tôt!

À faire pour T03 :

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

11 septembre

L03

Au menu :

  • Retour sur le laboratoire 01 :
    • rappel des règles sur les identifiants (format azAZ_[azAZ09_]+, donc pas de '(', de '/', de ')', d'espaces, etc.)
    • rappel des règles sur les noms de variables (débute par une minuscule, début des autres mots par une majuscule, succinct mais significatif)
    • rappel des règles sur les noms de constantes (en majuscules, mots séparés par un '_')
    • rappel des règles quant au rapport :
      • cohérence (un nom a le même sens partout dans le rapport)
      • jeux d'essai (nom de chaque intrant, nom de chaque extrant, valeurs numériques avec virgules, identifiants respectant les règles habituelles)
      • rôle des sections (intrants, extrants, traitement, autres informations, pseudocode)
    • rappel de programmatique générale :
      • ça ne sert à rien de remplacer 1000/3600 par 2,778 dans le programme. Laissez l'ordinateur faire ce à quoi il excelle
      • ça ne sert à rien d'écrire vMs plutôt que vitesseMètreSeconde
      • une constante comme C est acceptable dans une équation mathématique, mais pas dans un programme
      • une constante comme CONVERSION ne nous informe pas suffisamment sur son rôle dans le programme pour être utile
      • pour un ordinateur, remplacer 1000/3600 par 5/18 n'apporte rien sinon une perte de compréhension. C'est le même calcul
  • Retour sur le laboratoire 02 :
  • 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

À faire pour T03 :

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

13 septembre

T03

Au menu :

  • 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)

À remettre :

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

Nous aurons une visite surprise à la fin de la séance de 8h à 9h45 et au début de la séance de 9h50 à 11h35.

18 septembre

L04

Au menu :

  • Arrondir un nombre à virgule flottante avec C#
  • Retour sur le laboratoire 03
  • Premier contact sommaire avec les alternatives, chapitre 05 des notes de cours
  • Structures alternatives (bases)
  • Structures alternatives plus complexes :
  • Fonctions prédicats

À faire :

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

20 septembre

T04

Au menu :

  • Suite des alternatives, chapitre 05 des notes de cours
  • Examen plus détaillé du problème des structures alternatives complexes :
  • Présentation du laboratoire 05 : APOO volet cartésien (code C#)

À remettre :

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

25 septembre

L05

Pour ma part, je serai à CppCon 2018. Vous pourrez me suivre (à travers ../../../Sujets/Orthogonal/cppcon2018.html) si vous le souhaitez.

Je serai remplacé :

  • Dans le groupe 02, par Nicolas Chourot
  • Dans le groupe 03, par Kyle Ross

Je les remercie sincèrement tous les deux. Vous serez entre bonnes mains.

27 septembre

T05

Pour ma part, je serai à CppCon 2018. Vous pourrez me suivre (à travers ../../../Sujets/Orthogonal/cppcon2018.html) si vous le souhaitez.

Je serai remplacé :

  • Dans le groupe 02, par Nicolas Chourot
  • Dans le groupe 03, par Kyle Ross

Je les remercie sincèrement tous les deux. Vous serez entre bonnes mains.

2 octobre

L06

Au menu :

  • Retour sur le minitest #1
  • Retour sur le laboratoire 04 : APOO volet glisse (analyse, pseudocode, code C#, jeux d'essai)
  • Introduction à la logique et aux répétitives, chapitres 06 et 07 des notes de cours
  • Un peu de logique
  • Introduction aux répétitives :
    • bases
    • variante cumulative
    • imbrication d'alternatives
    • survol d'une variante de la répétitive classique

4 octobre

T06

Au menu :

  • Retour sur le laboratoire 05 : APOO volet cartésien (code C#)
  • Quelques exercices sur les répétitives
  • 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

9 octobre

s/o

Attention : mardi avec cours selon l'horaire du lundi

11 octobre

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!
  • 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 07 : calcul du cosinus (code C#)

À remettre :

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

16 octobre

L07

Au menu : à déterminer

18 octobre

T08

Au menu : à déterminer

23 octobre

L08

Au menu : à déterminer

25 octobre

T09

Au menu : à déterminer

30 octobre

s/o

Jour de mise à niveau (cours suspendus)

1er novembre

s/o

Jour de mise à niveau (cours suspendus)

6 novembre

L09

Au menu : à déterminer

8 novembre

T10

Au menu : à déterminer

13 novembre

L10

Au menu : à déterminer

15 novembre

T11

Au menu : à déterminer

20 novembre

L11

Au menu : à déterminer

22 novembre

T12

Au menu : à déterminer

27 novembre

L12

Au menu : à déterminer

29 novembre

T13

Au menu : à déterminer

4 décembre

L13

Au menu : à déterminer

6 décembre

s/o

Journée d'examen de français, formation générale. Cours suspendus

11 décembre

L14

Au menu : à déterminer

13 décembre

T14

À remettre :

  • L'A.S. de la session A2018

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

À venir

À venir

À venir

À venir

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


Valid XHTML 1.0 Transitional

CSS Valide !