CSI 3120
Programming Language Concepts


Description

Design and evaluation criteria for programming languages. Introduction to syntactic and semantic description of programming languages. Basics of programming language implementation. Scripting languages. A comparison of design choices across programming paradigms: data objects, data types, control structures, sub-programs. Basics of concurrency.

Prerequisites

CSI2101, CSI2120.

Objectives

Present the fundamental issues in the design and use of major programming languages. Recall or introduce a few important programming languages with a difference. Discuss elements of technology around programming language implementation. Prepare you for further study of programming languages, help develop an appreciation of a programming language as a tool for software construction, enable you to evaluate and choose a language to match the problem. See the list of Topics, below, for a bit more detail.

Instructor

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

Office: STE 5-029,

Office Hours:
Thursdays 11:30am-1:30pm

Meeting Times and Locations:

         Thursdays 8:30am-11:30am, CBY D103

TA

TBA
E-mail:
Laboratories' Website:

Labs and Locations:

         Tuesday 1pm - 2:30, STE 2060

Textbook:

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

Evaluation:

Assignments and Exams:

Assignments :

Tentative Topics

Handed

Out-In

Preliminaries; Histoiry; Scheme, Prolog
[7.5
points]

Sep. 24 - Oct. 8

Grammars; Axiomatic Semantic; Syntactic Analysis
[7.5
points]

Oct. 8 - Oct. 22

Perl
[
7.5 points]

Oct. 22 - Nov. 12

R; Design Issues
[
7.5 points]

Nov. 12 - Dec. 3

Assignment 2 will be a strictly written assignment. Assignment 3 will be a strictly programming assignment. Assignments 1 and 4 will be a mixture of the two. The method of handing in your code will be determined, and announced, later. Late work will receive a 10% penalty for weekdays and a 5% penalty for weekends and holidays.

Exams

There will be two exams: a midterm exam and a final exam.

The midterm will cover topics 1-6 (see, below), plus some background knowledge, including Prolog and Scheme. You are expected to write the midterm. There will be no make-up. If you have a valid medical reason to have missed the midterm, confirmed by the official University health services, I will add the weight of the midterm to the final exam's weight. The final exam will cover all material, with a slight emphasis on topics 7-11.

         Midtern Exam---------- October 22 (in class)

         Final Exam-------------- TBA

Topics:

We begin with an overview of the course and a review of the assumed background knowledge (read chapters 15 and 16 to refresh your Scheme and Prolog skills).


******* Class notes and assignments are available
HERE *******

1.      Criteria, classification, applications
(chapter 1)

2.      Review of Scheme and Prolog
(chapters 15-16)

3.      Evolution of the major programming languages
(chapter 2, mostly a reading assignment).

4.      Describing the syntax of programming languages
(sections 3.1-3.3)

5.      Describing the semantics of programming languages
(section 3.5.2)

6.      Syntactic analysis, parsing
(sections 4.4.2 and 4.5)

7.      An introduction to Perl
(handouts, and lots of material on the Web, starting with the principal
Perl site)

8.      An introduction to R
(graduated examples and material on the Web, starting with the principal R site)

9.      Names, bindings, type checking, and scopes; data types; expressions and the assignment statement; statement-level control structures; subprograms (it is actually a megatopic -:)
(chapters 5-9)

10.  Implementing subprograms
(sections 10.1-10.4)


Course Schedule:

Subjects:

Week

Topic Numbers

Readings

September 10

Welcome, Preliminaries

September 17

 

September 24

 

October 1

 

October 8

 

October 15

 

October 22

 

October 29

 

November 5

 

November 12

 

November 19

 

November 26

 

December 3

 

1, 2

 

2, 3

 

4

 

5

 

6, Midterm Review

 

MIDTERM, 6

 

STUDY BREAK

 

7

 

7, 8

 

8, 9

 

9

 

10, Final Review

 

 

 

Chapters 1, 15 & 16

 

Chapter 15, 16 & 2

 

Chapter 3 (Sections 3.1-3.3)

 

Chapter 3 (Section 3.5.2)

 

Chapter 4 (Sections 4.4.2)

 

Chapter 4 (Sections 4.5)

 

STUDY BREAK

 

Handouts

 

Handouts

 

Handouts, Chapters 5-9

 

Chapters 5-9

 

Chapter 10 (Sections 10.1-4)