The University of Sheffield
School of Computer Science

COM225 Programming Language Principles

Summary On entering this module you will already have a good understanding of object oriented programming from your first year studies. In this module, you will be introduced to further paradigms and programming languages. You will explore the choices that are taken in language design and the relationship between high level language and machine-level code that can be directly executed. In this module you will also look at the particular issues associated with concurrent or parallel programming, and the techniques used to combat them.
Session Autumn 2026/27
Credits 20
Assessment

Assignments
Formal examination

Lecturer(s) Prof. Emma Norling, Dr Georgios Moulantzikos & Dr Tom Howard
Resources
Aims The aim of this module is to develop an understanding of different approaches to programming language design, and how these different approaches lead to different ways of analysing and solving problems.

Learning Outcomes 

By the end of the module the student will be able to:  

  1. Explain the differences between key programming paradigms.
  2. Explain the common building blocks of programming languages.
  3. Implement solutions to problems using different programming paradigms.
  4. Demonstrate principles of parallel programming. 
  5. Explain the common pitfalls in parallel programming.
Content

This module will cover:

Theory of Programming languages:

  • Names and the environment; scope
  • Memory management
  • Control structure
  • Control abstraction
  • Structuring data
  • Concurrent programming
  • The procedural paradigm
  • The object-oriented paradigm
  • The functional paradigm
  • The logic programming paradigm
  • Examples of programming languages:

  • Python
  • Haskell
  • C
  • (With reference to Java & Ruby from prior studies)
Teaching Method The theoretical aspects will be delivered through weekly lectures, while programming languages will be taught using flipped classroom and lab-based sessions, with some review lectures.
Feedback Formative feedback will be available in weekly lab-based sessions and through informal quizzes and polls. For summative assessments, feedback will be provided with the return of marks, typically three weeks after submission.