CSI 3520
Concepts des Langages de Programation


Description

Critères de conception et d'évaluation pour langages de programmation. Introduction a leur description syntaxique et sémantique. Principes d'implémentation. Langages de script. Comparaison de choix de conception selon le paradigme de programmation: objets, types, structures de contrôle, sous-programmes. Eléments de concurrence.

Préalables

CSI2501, CSI2520.

Objectifs du Cours

La présentation des problèmes fondamentaux a la création et a l'utilisation des langages de programmation principaux. La présentation de conceptions et de techniques d'implémentations de différents paradigmes. L'introduction au Perl, un langage script important, et au R, un environement important pour le calcul statistique et les graphiques. La preparation a l'etude approfondie des langages de programmation, le developpement d'une appreciation d'un langage en tant qu'outil pour la construction de logiciel, l'apprentissage du "savoir-faire" qui vous permettra d'evaluer et de choisir un langage qui correspond bien au probleme que vous voulez resoudre. Voir la rubrique Sujets, ci-dessous, pour plus de detail.

Professeur

Dr. Nathalie Japkowicz
E-mail: nat@site.uottawa.ca

Bureau: STE 5-029,

Heures de consultation:
Lundi 11h30-13h30

 

Heures de Cours et Locaux:

·         Lundi, 17h30-19h00, LMX 112

·         Mercredi, 13h00-14h30, LMX 106

TA

TBA

Laboratoires et Locaux:

·         Lundi, 19h00-20h30, STE 2052

Manuel de Cours:

Robert W. Sebesta, Concepts of Programming Languages, 10th ed., Addison-Wesley, 2012. Available from the University Bookstore.

Evaluation:

Devoirs et Examens:

Devoirs :

Sujets (Tentatifs)

Distribue-A Rendre

Preliminaires; Histoire; Scheme, Prolog
[7.5
points]

18 Sep. -2 Oct.

Grammaires; Semantique Axiomatique; Analyse Syntactique
[7.5
points]

2 Oct. -23 Oct.

Perl
[
7.5 points]

30 Oct. -13 Nov.

R; Caracteristiques de Conception
[
7.5 points]

13 Nov. -2 Dec.

Le devoir 2 sera par ecrit. Le devoir 3 sera purement un devoir de programmation; Les devoir 1 et 4 seront mixtes. Nous determinerons et annoncerons plus tard le mode de retour du code de vos devoirs. Les devoirs en retard seront acceptes avec une penalite de 10% par jour pendant les semaines et de 5% par jour pendant les fins de semaine et jours feries.

Examens

Il y aura deux examens : un examen de mi-session et un examen final.

L'examen de mi-session couvrira les sujets 1-6 (voir ci-dessous), ainsi que quelques sujets de revue dont le Prolog et le Scheme. Vous devez ecrire l'examen de mi-session. Il n'y aura pas d'examen de remplacement (make-u). Si vous avez une raison medicale valide qui explique votre absence à l'examen (cette raison doit etre confirmee par les services de sante de l'Universite), j'ajouterais le pourcentage representant la valeur de l'examen de mi-session a celui de l'examen final. L'examen final couvrira tous les sujets, avec une emphase legere sur les sujets 7-12.

·         Examen de Mi-Session---------- 22 Octobre(en classe)

·         Examen Final---------------------- TBA

Sujets:

Nous commencerons par un survol du cours et une revue des connaissances prealables (Veuillez lire les chapitres 15 et 16 afin de rafraichir vos connaissances du Prolog et du Scheme).

******* Les notes de cours et les devoirs sont disponibles ICI *******

1.      Criteres, classification, applications
(chapitre 1).

2.      Revue du Scheme et du Prolog(chapitres 15 et 16, principalement, un devoir de lecture.)

3.      Evolution des langages de programmation principaux
(chapitre 2, principalement, un devoir de lecture).

4.      Description de la syntaxe des langages de programmation
(sections 3.1-3.3).

5.      Description de la semantique des langages de programmation
(section 3.5.2).

6.      Analyse Syntaxique ; Parsing
(sections 4.4.2 et 4.5).

7.      Une introduction au Perl
(materiel distribue, et enormement de choses sur le Web, en commencant par le site principal Perl).

8.      Une introduction au R
(examples et materiel distribue sur le Web, en commençant par le site principal R)

9.      Noms, attachements, verification de type, et etendues ; Types de donnees ; Expressions et la commande d'assignation ; Structure de control; Sous-programmes (C'est en fait un mega-sujet J )
(chapitres 5-9.).

10.  L'implementation de sous-programmes
(sections 10.1-10.4).

11.  Parallelisme
(sections 13.1-5, 13.7)


Plan du Cours:

Sujets:

Semaine

Numeros de Sujets

Lecturess

3 Septembre

Bienvenue, Preliminaires

8-10 Septembre

 

15-17 Septembre

 

22-24 Septembre

 

29 Septembre- 1 Octobre

 

6-8 Octobre

 

13-15 Octobre

 

20-22 Octobre

 

22-29 Octobre

 

3-5 Novembre

 

10-12 Novembre

 

17-19 Novembre

 

24-26 Novembre

 

1 Decembre

1, 2

 

2, 3

 

4

 

5

 

6

 

SEMAINE DE RELACHE

 

7, Revue

 

MI-SESSION, 7

 

7, 8

 

8, 9

 

9

 

10, 11

 

Revue Finale

 

Chapitres 1, 15 & 16

 

Chapitres 15, 16 & 2

 

Chapitre 3 (Sections 3.1-3.3)

 

Chapitre 3 (Section 3.5.2)

 

Chapitre 4 (Sections 4.4.2 and 4.5)

 

SEMAINE DE RELACHE

 

Materiel Distribue

 

Materiel Distribue

 

Materiel Distribue

 

Materiel Distribue, Chapitres 5-9

 

Chapitres 5-9

 

Chapitre 10 (Sections 10.1-4)

Chapitre 13 (Sections 13.1-5, 13.7)