Skip to Content


Last modified: 25 May 2018 11:16

Course Overview


This course will introduce the fundamental features of modern programming languages and to equip students with necessary skills for the critical evaluation of existing and future programming languages. Additionally, students study the formal representation of syntax and semantics of programming languages, as well as mechanisms for the lexical and syntactic analysis of programs. Students will be exposed to programming languages from three specific paradigms, namely, object-oriented, functional and logic programming.

Course Details

Study Type Undergraduate Level 2
Session Second Sub Session Credit Points 15 credits (7.5 ECTS credits)
Campus None. Sustained Study No
  • Professor Wamberto Vasconcelos
  • Professor Pete Edwards

Qualification Prerequisites

  • Either Programme Level 1 or Programme Level 2

What courses & programmes must have been taken before this course?

  • One of CS1014 Foundations of Computing Science 1 (Passed) or CS1016 Foundations of Computing Science 1 (Passed) or CS1022 Computer Programming and Principles (Passed)
  • Any Undergraduate Programme (Studied)

What other courses must be taken with this course?


What courses cannot be taken with this course?


Are there a limited number of places available?


Course Description


Some of the topics covered in the course are

  • History of programming language design

  • Describing syntax and semantics

  • Lexical and syntactic analysis

  • Programming language features (names, binding, data types, expressions and assignments, control structures, subprograms)

  • Hands-on experience with programming languages from three paradigms, namely, object-oriented, functional and logic programming.

Further Information & Notes

Assistive technologies may be required for any student who is unable to use a standard keyboard/mouse/computer monitor. Any students wishing to discuss this further should contact the School Disability Co-ordinator.

Degree Programmes for which this Course is Prescribed

  • BSc Computing Science
  • BSc Computing Science and Philosophy
  • BSc Computing Science and Physics
  • BSc Computing Science-Mathematics
  • Bachelor Of Engineering In Engineering Electronic & Software
  • Computing Science Joint
  • MA Computing
  • MA Computing and Music
  • MSci Computing Science (AI) with Ind Pl'n
  • MSci Computing Science w Ind'l Placement
  • MSci Computing with Industrial Placement
  • Master Of Engineering In Electronic & Software Engineering
  • Master of Engineering in Computing Science

Contact Teaching Time

72 hours

This is the total time spent in lectures, tutorials and other class teaching.

Teaching Breakdown


1st Attempt: 1 two-hour written examination (50%); continuous assessment (50%).

Resit: 1 two-hour written examination (50%); continuous assessment mark carried forwards (50%).

Formative Assessment

During lectures, the Personal Response System and/or other ways of student interaction will be used for formative assessment. Additionally, practical sessions will provide students with practice opportunities and formative assessment.


Formative feedback for in-course assessments will be provided in written form. Additionally, formative feedback on performance will be provided informally during practical sessions.

Compatibility Mode

We have detected that you are have compatibility mode enabled or are using an old version of Internet Explorer. You either need to switch off compatibility mode for this site or upgrade your browser.