Course Catalog 2007-2008

OHJ-2056 PRINCIPLES OF PROGRAMMING LANGUAGES, 5 cr
Principles of Programming Languages

Courses persons responsible
Maarit Harsu

Lecturers
N.N.

Implementations
  Period 1 Period 2 Period 3 Period 4 Period 5 Summer
Lecture - - - 3 h/week 3 h/week -
Exercise - - - 2 h/week 2 h/week -
Exercise work - - - 12 h/per 14 h/per -
Exam  
(Timetable for academic year 2007-2008)

Objectives
Students should learn the general principles and basic concepts of programming languages, at higher level than that of a single programming language. Students should understand the effects of these principles to language implementation and use.

Content
Content Core content Complementary knowledge Specialist knowledge
1. Syntax description (context-free grammars).
Basic parsing mechanism.
Parsing algorithms (LL and LR). 
Chomsky's four classes of languages.
Knowing more parsing algorithms besides LL and LR.
Describing axiomatic semantics. 
Formal description of semantics (denotational, operational). 
2. Implementation choices and implementation principles of the most common programming language features.  Detailed implementation of some features in a certain programming language.    
3. Principles of memory management, e.g. the content and importance of activation records.  Implementation of activation records in a certain computer architecture.    
4. Basic knowledge of different programming paradigms.
Understanding programs written in different paradigms (functional, logic, concurrent). 
Writing small programs in different programming paradigms.  Writing real programs in a certain paradigm other than the most common ones. 

Evaluation criteria for the course

  • The mark of the course is based on the exam and on the project work. The project work gives 6 points at maximum, and thus, it corresponds to one question in the exam (containing 5 questions in total). Thus, maximum points is 36. To pass the course (with the lowest mark), a student must collect half of the maximum points, namely 18.

  • Used assessment scale is numeric (1-5)

  • Study material
    Type Name Auhor ISBN URL Edition, availability... Exam material Language
    Book Concepts of programming languages Sebesta     Fifth or sixth edition Yes  English 
    Book Ohjelmointikielet - periaatteet, käsitteet, valintaperusteet Maarit Harsu 952-14-0981-9     No  Finnish 

    Prerequisites
    Code Course Credits M/R
    MAT-21160 MAT-21160 Mathematics for Algorithms 3 Mandatory
    OHJ-2016 OHJ-2016 Utilization of Data Structures 5 Mandatory

    Prequisite relations (Sign up to TUT Intranet required)

    Remarks

  • Partial passing of course must be in connection with the same round of implementation.

  • Distance learning

  • ITC utilized during the course

  • - In information distribution via homepage, newsgroups or mailing lists, e.g. current issues, timetables

    Scaling
    Methods of instructionHours
    Lectures 54
    Exercises 36
    Assignments 26

    Study materials Hours
    Course book 20
    Total sum 136

    Principles and starting points related to the instruction and learning of the course

  • In lectures, different choices in programming languages are described, this enables students to get familiar also with other choices than just the one existing in the most common languages. Students will also learn how common or rare each choice is in programming languages. Moreover, the consequencies (pros and cons) of the choices are considered. In weekly exercises, the most important and most problematic situations are considered. The aim is also to put right any misunderstandings if they exist. The aim of the project work is to get students familiar with an uncommon programming languages by practical programming.

  • Correspondence of content
    OHJ-2050 Principles of Programming Languages

    Course homepage

    Last modified 29.01.2007
    Modified byMaarit Harsu