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

23 août

L00

Au menu :

  • Présentation du cours et du plan de cours
  • Introduction à la conception logicielle
  • 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 Alonzo Church, sur David Hilbert et – dans une des deux classes – sur Jules-Henri Poincaré)

25 août

T00

Au menu :

  • Suites de l'introduction à la conception logicielle
  • Structures de contrôle (première partie) : la séquence
  • 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

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

30 août

L01

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

À remettre :

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

À faire pour L02 :

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

1 septembre

T01

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

À faire pour L02 :

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

6 septembre

L02

Au menu :

  • Opérations arithmétiques (avec exercices)
  • 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()
    • ccertaines 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!)
  • Quelques exercices :
    • lire un nombre et en afficher la valeur absolue (code C#, avec recours à une fonction mathématique du langage)
    • exercices de programmation tirés des notes de cours
  • 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)

8 septembre

T02

Au menu :

  • Retour sur le laboratoire 02 :
    • impression en « paysage » ou en « portrait »
    • l'importance de la cohérence des noms
    • le code qui ne compile pas (soupir!)
    • rigueur dans la disposition

À faire :

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

13 septembre

L03

Au menu :

  • Introduction à l'approche que l'on nomme le développement graduel (approche Top-Down)
  • 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)

15 septembre

T03

Au menu :

  • Retour sur le laboratoire 03
  • 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)

20 septembre

L04

Au menu : je serai remplacé par Pierre Prud'homme pour un groupe et par Philippe Simard dans l'autre groupe. Ce sont deux estimés collègues et deux bons amis. Ils vous proposeront (à déterminer)

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

22 septembre

T04

Au menu : je serai remplacé par Pierre Prud'homme pour un groupe et par Philippe Simard dans l'autre groupe. Ce sont deux estimés collègues et deux bons amis. Ils vous proposeront (à déterminer)

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

27 septembre

L05

Au menu :

  • Minitest #1

29 septembre

T05

Au menu :

  • Retour sur le minitest #1
  • Premier contact sommaire avec les alternatives

À faire :

  • Travail sur le laboratoire 05 : salaire et déductions (analyse, pseudocode, code C#, jeux d'essai)

4 octobre

L06

Au menu :

  • Structures alternatives (bases)
  • Structures alternatives plus complexes :
  • Fonctions prédicats
  • Présentation du laboratoire 06 : fonctions mathématiques

À faire :

  • Travail sur le laboratoire 05 : salaire et déductions (analyse, pseudocode, code C#, jeux d'essai)

6 octobre

T06

Au menu :

  • Travail sur le laboratoire 06 : fonctions mathématiques

À remettre :

  • Laboratoire 05 : salaire et déductions (analyse, pseudocode, code C#, jeux d'essai)

Un corrigé (brut!) du laboratoire 05 est disponible sur Labo-05-A2016.html. Ce « corrigé » ne contient que le code C# et représente une solution possible au problème (pas « la » solution)

11 octobre

s/o

Attention : mardi avec cours selon l'horaire du lundi

13 octobre

T07

Au menu :

  • Structures alternatives plus complexes :
  • Fonctions prédicats
  • Présentation du laboratoire 07 : contraventions

À remettre :

  • Laboratoire 06 : fonctions mathématiques (code C#)

18 octobre

L07

Au menu :

  • Introduction aux répétitives :
    • bases
    • variante cumulative
    • imbrication d'alternatives
    • survol d'une variante de la répétitive classique
  • Présentation du laboratoire 08 : Calcul du sinus (code C#)

À faire :

  • Travail sur le laboratoire 08 : Calcul du sinus (code C#)

20 octobre

T08

Au menu :

  • Travail sur le laboratoire 08 : Calcul du sinus (code C#)

À remettre :

  • Laboratoire 07 : contraventions (analyse, pseudocode, code C#, jeux d'essai)

25 octobre

L08

Au menu :

  • Minitest #2

À remettre :

  • Travail sur le laboratoire 08 : Calcul du sinus (code C#)

La remise du laboratoire 08 a été déplacée à la séance T09 pour cause de prof indisponible suivant une nuit à l'hôpital avec un de ses enfants

27 octobre

T09

Au menu :

  • Retour sur le minitest #2
  • Fonctions, intrants et extrants ()
  • Répétitives sans compteurs
  • Présentation du laboratoire 09 : le Clock Game (code C#)

À remettre :

  • Travail sur le laboratoire 08 : Calcul du sinus (code C#)

1 novembre

L09

Au menu :

  • Algorithmes plus complexes (intégration)
  • Algorithmes plus complexes (intégration), suite
    • sapin de Noël

À faire :

  • Travail sur le laboratoire 09 : le Clock Game (code C#)

3 novembre

s/o

Jour de mise à niveau (cours suspendus)

8 novembre

L10

Au menu : je serai remplacé par (à déterminer) qui vous proposera (à déterminer)

À remettre :

  • Travail sur le laboratoire 09 : le Clock Game (code C#)

Pour ma part, je serai à la rencontre de WG21. Vous pourrez me suivre (à travers ../../../Sujets/Orthogonal/wg21-2016-Issaquah.html) si vous le souhaitez.

10 novembre

T10

Au menu : je serai remplacé par (à déterminer) qui vous proposera (à déterminer)

Pour ma part, je serai à la rencontre de WG21. Vous pourrez me suivre (à travers ../../../Sujets/Orthogonal/wg21-2016-Issaquah.html) si vous le souhaitez.

15 novembre

L11

Au menu :

  • Retour sur les tableaux 1D
  • Tableaux 2D (rectangulaires ou non)
  • Liens avec le laboratoire 10

À faire :

  • Travail sur le laboratoire 10 : loterie (pseudocode, code C#)

17 novembre

T11

Au menu :

À remettre

22 novembre

L12

Au menu :

  • Introduction brève aux énumérations
  • Présentation d'un travail formatif (à faire à votre convenance, mais préparatoire à l'examen final)

24 novembre

T12

Au menu :

  • Présentation d'un solutionnaire au travail formatif
  • Présentation de l'A.S. de la session A2016
  • Travail sur l'A.S. de la session A2016

29 novembre

L13

Au menu :

  • Minitest #3

1 décembre

T13

Au menu :

  • Retour sur le minitest #3
  • Travail sur l'A.S. de la session A2016

6 décembre

L14

Au menu :

  • Travail sur l'A.S. de la session A2016

8 décembre

T14

Au menu :

  • Travail sur l'A.S. de la session A2016

13 décembre

L15

À remettre :

  • L'A.S. de la session A2016

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

Conversion de vitesses

À venir

À venir

À venir

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

Résultats des travaux pratiques

Ce qui suit collige les résultats des divers travaux pratiques réalisés au cours de la session. La moyenne est exprimée en pourcentage, peu importe l'échelle d'origine pour la correction des travaux en question. Les absent(e)s sont considéré(e)s avoir eu zéro. La valeur de exprimée dans le tableau reflète toutefois le nombre de participant(e)s au travail pratique; cette valeur devrait normalement être équivalente au nombre d'étudiant(e)s inscrit(e)s au cours.

Travail Remise Groupe 2 Groupe 3

Conversion de vitesses (analyse + pseudocode)

L01

Pavage sans extra Inc. (analyse + pseudocode)

L02

Pavage sans extra Inc. (C#)

L02

APOO volet plongeon (analyse + pseudocode)

L03

APOO volet plongeon (C#)

L03

APOO volet glisse (analyse + pseudocode)

L04

APOO volet glisse (C#)

L04

Salaire et déductions (analyse + pseudocode)

T06

Salaire et déductions (C#)

T06

Fonctions mathématiques (C#)

T07

Contraventions (analyse + pseudocode)

T08

Contraventions (C#)

T08

Sinus (C#)

T09

Devinette (C#)

T10

Loterie (pseudocode)

T11

Loterie (C#)

T11

Résultats des minitests et des examens

Les résultats des minitests et des examens suivent.

Contrôle Séance Groupe 2 Groupe 3

Minitest #1

L05

Minitest #2

L08

Minitest #3

L13

Examen final

???


Valid XHTML 1.0 Transitional

CSS Valide !