F28PL Programming Languages

Dr Ian Tan

Course co-ordinator(s): Dr Filip Sieczkowski (Edinburgh), Swaraj Dash (Edinburgh), Joolekha Bibi Joolee (Dubai), Mahmoud Mousa (Dubai), Dr Ian Tan (Malaysia).

Aims:

  • To gain understanding of different language paradigms
  • To gain understanding of defining concepts of programming languages
  • To develop skills in programming in languages from key paradigms

Detailed Information

Course Description: Link to Official Course Descriptor.

Pre-requisite course(s): F27SB Software Development 2 & F27CS Introduction to Computer Systems .

Location: ALP, Dubai, Edinburgh, Malaysia.

Semester: 1.

Syllabus:

  • Overviews of language history, definition (lexicon, syntax, semantics), implementation (compiler, interpreter, virtual machine)
  • Overviews of language paradigms: e.g. imperative (high-level, system, low-level), declarative (functional, logic), concurrency/parallelism
  • Overviews of programming language concepts: variable, lvalue & rvalue, assignment (sharing/copying), data abstraction (sequential, structured, recursive, shared/distributed), type mechanisms (weak/strong, static/dynamic, ad-hoc/parametric polymorphism), declaration (scope, extent), control abstraction (sequence, choice, repetition, block, procedure, labels/jumps, exceptions, processes), expression abstraction       (functions), parameter mechanisms (value, reference) , evaluation mechanisms (strict/lazy, ordered/unordered, concurrent)
  • An introduction to programming in languages from key paradigms e.g.
    • scripting: e.g. Python
    • declarative/functional: e.g. SML
    • declarative/logic: e.g. Prolog

SCQF Level: 8.

Credits: 15.