Home
  Research interests
  Teaching experience
  Publication record
  Academic activities
  Awards
 
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
Industrial Research & Development Fellowship (IRDF) awarded by the Natural Sciences & Engineering Research Council (NSERC) with Larus Technologies Corporation as the industrial partner.




 
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
  • Professor's permission

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)
    • Study break
  • Week 09 (October 31 - November 4)
    • Answers to midterm exam
    • Perl
    • Assignment 3 posted
  • Week 10 (November 7 - 11)
    • R
  • 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
    • Final Exam: TBD
      • Location TBA


     
    Copyright Rafael Falcon | All Rights
    Reserved.