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 |
Sep. 24 - Oct. 8 |
Grammars; Axiomatic Semantic;
Syntactic Analysis |
Oct. 8 - Oct. 22 |
Perl |
Oct. 22 - Nov. 12 |
R; Design Issues |
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)
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) |