CSI 3520
Concepts des Langages de Programation


Description

Criteres de conception et d' evaluation pour langages de programmation. Introduction a leur description syntaxique et semantique. Principes d'implementation. Langages de script. Comparaison de choix de conception selon le paradigme de programmation: objets, types, structures de controle, sous-programmes. Elements de concurrence.

Prealables

CSI2501, CSI2520.

Objectifs du Cours

La presentation des problemes fondamentaux a la creation et a l'utilisation des langages de programmation principaux. La presentation de conceptions et de techniques d'implementations de differents paradigmes. L'introduction d'un langage script important: Perl . 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, KED B004

         Mercredi, 13h00-14h30, STE C0136

TA

Ahmed Jedda
E-mail: ajedd077@uottawa.ca
Site Web pour Laboratoires: Labs

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
[10
points]

18 Sep. - 2 Oct.

Grammaires; Semantique Axiomatique; Analyse Syntactique
[10
points]

2 Oct. - 23 Oct.

Perl
[
10 points]

30 Oct. - 13 Nov.

ML; Caracteristiques de Conception
[
10 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 abscence a 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---------- 28 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 ML
(examples et materiel distribue sur le Web)

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

4 Septembre

Bienvenue, Preliminaires

9-11 Septembre

 

16-18 Septembre

 

23-25 Septembre

 

30 Septembre Octobre

 

7-9 Octobre

 

14-16 Octobre

 

21-23 Octobre

 

28-30 Octobre

 

4-6 Novembre

 

11-13 Novembre

 

18-20 Novembre

 

25-27 Novembre

 

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