|
NEWS |
( view all)
Jun 7th
2012
|
|
Dean's
scholarship awarded
|
The
Dean's scholarship of the
Faculty of Graduate and
Postdoctoral Studies of the
University of Ottawa has
been awarded.
May 24th
2012 |
|
Conference
paper accepted
|
The paper " An
Online Shadowed Clustering
Algorithm Applied to Risk
Visualization in Territorial
Security" has been
accepted for presentation at
the 2012 IEEE Symposium on
Computational Intelligence for
Security and Defense
Applications ( CISDA
2012).
Mar 22th
2012
|
|
Conference
paper accepted
|
The
paper " Controlled
Straight Mobility and
Energy-Aware Routing in
Robotic Wireless Sensor
Networks" has been
accepted for presentation at
the 2012 IEEE International
Conference on Distributed
Computing in Sensor Systems
( DCOSS
2012), Hangzhou,
China.
Feb
21th
2012
|
|
Conference
paper accepted
|
The
paper " A Response-Aware
Risk Management Framework
for Search-and-Rescue
Operations" has
been accepted for
presentation at the 2012
IEEE Congress on
Evolutionary Computation ( CEC
2012), Brisbane,
Australia.
Feb
13th
2012
|
|
Successful
PhD thesis defense
|
Rafael
has successfully defended
his doctoral thesis entitled
" Towards Fault
Reactiveness in Wireless
Sensor Networks with
Mobile Carrier Robots"
Feb 7th
2012
|
|
NSERC IRDF
Fellowship awarded
|
|
|
|
|
|
|
|
CSI3120 Programming Language Concepts
|
|
Announcements:
- Assignment 1 posted! Due date Sep 30, 6 pm. Late submissions allowed at 10% penalty per day late.
- Welcome to the course! All materials are accessible via Blackboard Learn.
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.
Objectives:
When
you complete
this course,
you will be
able to:
- 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.
Prerequisites:
- CSI 2101 (Discrete Structures)
and
- CSI 2120
(Programming Paradigms)
or
Schedule:
- Lectures : Thursdays 8:30 -
11:30 (CBY B-012)
- Lab 1: Mondays 17:30
- 19:00
(STE 0130)
- Lab 2: Tuesdays 13:00
- 14:30
(STE 0131)
- Tutorials: Mondays 8:30 - 10:00 (MRT 250)
- Office
hours:
- Instructor: Mondays 10:00 -
11:00 (STE 5000J)
- TA Lab 1 (Akhil Kumar): Thursdays 14:00 - 15:30 (STE 5000J)
- TA Lab 2 (Ahmer Bashir): Fridays 4:00 - 5:30 (STE 5000J)
Textbook:
- Official
textbook: Robert Sebesta: "Concepts of Programming Languages", 11th Edition, Pearson, 2015
(available at
the university
bookstore
for ~ $180)
- Alternatively,
you may buy
the 10th
edition of the
same book
(available at
Amazon
for ~ $40).
- Optional:
For learning
Prolog (very
useful for
your
assignments),
you may
consider "Prolog
Programming
for Artificial
Intelligence,
4th Edition"
by Ivan Bratko
(available at
the university
bookstore)
Evaluation:
- Assignments
(30% = 4 x 7.5%
each)
- Midterm
Exam (25%)
- Final
Exam (45%)
Assignments:
- To
be done
individually.
- Posted
about two
weeks before
their due
date.
- Must
be handed in on
their due day.
- Late submissions acceptable at 10% penalty for extra day late
- There
are no make-up
assignments.
Exams:
There
will be two
exams: a
midterm and a
final. These
are the dates:
- Midterm:
Thu October 20, 8:30 - 10:00, CBY B-012
- Final:
TBA
Other
important
aspects:
- It
is compulsory
to write the
midterm exam.
- There
will be NO
make-up
midterm exam.
- If
you have a
valid medical
reason to
justify your
absence from
the midterm
(and confirmed
by the
University
Health
Services),
your 25% value
of the midterm
will be
transferred to
the final exam
(so it will be
now worth 70%).
- Failure
to write the
midterm for
any other
reason without
the consent of
the course
instructor
will imply a
mark of 0.
To
pass the
course, you
must pass all
its
examination
exercises.
That is, you
must achieve
at least 50%
(35 marks
out of 70)
between the
midterm and
the final
exams.
Otherwise,
your mark out
of 70 will be
converted to a
mark out of
100 and your
final grade
will be either
E or F.
Materials:
All
the course
slides, a
description of
plagiarism and
its
consequences,
as well as
your
assignments
and other
relevant
materials are
accessible
through Blackboard Learn.
Syllabus:
- Week
01 (September 5
- 9)
- Course Overview
- Preliminaries of Programming Languages
- Week
02 (September 12 - 16)
- Scheme
- Prolog
- Assignment
1 posted
- Week
03 (September 19 - 23)
- Scheme and Prolog recap
- History of programming languages
- Week
04 (September 26
- 30)
- Syntax of programming languages
- Grammars, parse trees, etc.
- Assignment
2 posted
- Week
05 (October 3 - 7)
- Semantics of programming languages
- Axiomatic semantics
- Week
06 (October 10 - 14)
- Syntactic analysis / parsing
- Midterm review
- Week
07 (October 17 - 21)
- Midterm
Exam (October 20, 08:30 - 10:00, CBY B-012)
- Syntactic analysis / parsing
- Week
08 (October 24 - 28)
- Week
09 (October 31 - November 4)
- Answers to midterm exam
- Perl
- Assignment
3 posted
- Week
10 (November 7 - 11)
- Week
11 (November 14 - 18)
- Names, data types
- Expressions, assignments and control statements
- Assignment 4 posted
- Week
12 (November 21 - 25)
- Subprograms and their implementation
- Concurrency
- Week
13 (November 28 - December 2)
- Exception handling
- Final exam review
|
|
|
|
|
|
|