Skip to main content

Trinity College Dublin, The University of Dublin

Menu Search

Computer Science ProgrammeSenior Sophister

Senior sophisters can elect to follow the MCS programme with the intention of graduating with a Master in Computer Science (MCS) after successfully completing five years of study, or can finish after 4 years of study with the intention of graduating with a BA (Mod) in Computer Science. All Senior Sophister Students follow the same programme in Michaelmas term, and in Hilary term the MCS students take an Internship while the BA (Mod) students take an individual project and a group project.

Senior sophister students select whether they are intending to take the five year Masters programme by submitting an application for the Masters programme and Internship programme (Note: it is one form, and has to be submitted by the deadline which is typically in early October in their Senior Sophister year; The deadline is on the Internship programme page). Students who do not submit an application automatically take the four year Moderatorship programme.

Prospective students should read the brief descriptions of the courses below the tables which follow. Current students should follow the links (to the eLearning environment, "Blackboard", or to the module websites) or refer to for full details, including assessment criteria and learning outcomes.

Michaelmas Term Hilary Term
BA (Mod) programme
Hilary Term
MCS programme
CS4051 Human Factors CS4098 Group Computer Science Project CS7091 Industrial/Research lab Internship (Website)
CS4081 Technology Entrepreneurship (Website) CS4099 Final Year Project (Website)
Four options from the table below

Year 4 Module Options

The form for selecting options is available here.

CS4001 Fuzzy Logic
CS4004 Formal Verification Presentation
CS4012 Topics in Functional Programming Presentation
CS4021 Advanced Computer Architecture (Website)
CS4031 Mobile Communications Presentation
CS4032 Distributed Systems (Website)
CS4052 Computer Graphics Presentation
CS4053 Computer Vision Presentation Extra Info
CS4061 Artifical Intelligence IIa Presentation
CS4071 Compiler Design II Presentation
CS4LL5 Advanced Computational Linguistics (Website) Presentation

CS4051 Human Factors

5 ECTS credits, Michaelmas Term

This module aims to provide students with an understanding of the main issues underlying the usability of systems, and the main techniques and processes for interface design and evaluation. They will also gain a basic understanding of the theories which account for human performance.

Module Description CS4051 Blackboard

CS4081 Technology Entrepreneurship

5 ECTS credits, Michaelmas Term

This module introduces the fundamentals of technology entrepreneurship. It will cover the process technology entrepreneurs use to start companies. This involves taking a technology idea and finding a high-potential commercial opportunity, gathering resources such as talent and capital, figuring out how to sell and market the idea and managing rapid growth.

Module Description CS4081 Blackboard Module Website

CS4098 Group Computer Science Project

10 ECTS credits, Hilary Term

The Group Computer Science Project is undertaken in Hilary Term by students who have elected to follow the BA (Mod) programme.  The goal of this project is to promote teamwork and also to allow students to use their individual skills and experiences within the context of developing defined projects from specification to delivery. A key aim is to develop students abilities in framing design problems and working iteratively to achieve a working solution.

Module Description CS4098 Blackboard

CS4099 Final Year Project

20 ECTS credits, Hilary Term

The Final Year Project is undertaken in Hilary Term by students who have elected to follow the BA (Mod) programme. The aim of the project is to integrate the theoretical and practical knowledge of the student across all of the years of their study and provide a practical demonstration of their capability in executing a challenging project.

Module Description CS4099 Blackboard Module Website

CS7091 Industrial/Research Lab Internship

30 ECTS credits

The Internship is undertaken by students who have elected to follow the MCS programme.  The aim is to enable students to further develop an understanding of how design aspects and theoretical aspects of computer science are applied to practical problems in a real world context. For more information, please visit (and for current students a link to Submit the Internship Technical Report).

Module Description CS7091 Blackboard Module Website

CS4001 Fuzzy Logic

5 ECTS credits

This module will introduce you to the exciting new field of fuzzy systems. Fuzzy systems are in almost daily use: your washing machine has fuzzy controls and many of the refrigerators do too. In both cases, the machines can sense the amount of stuff (clothes or food) and adjust their operations accordingly. Fuzzy logic has been developed by computer scientists and control engineers over the last 30 odd years. Fuzzy logic is now being used in a range of critical systems ranging from image processing to the processing of financial time series.

Module Description CS4001 Blackboard

CS4004 Formal Verfications

5 ECTS credits

Increasingly complex computer systems are becoming ever more important in all aspects of our lives. There are numerous examples where software bugs had extremely serious consequences, financially or to human well-being. This module will explore techniques to verify that computer systems satisfy their specifications; i.e., that they have no bugs and are thus safe to use. The focus of this module will be mainly on software correctness. Students of this course will learn to invent precise program specifications using mathematical logics, and use formal methods to prove beyond doubt the absence of bugs in software. They will also learn how to use verification tools such as Microsoft's Dafny to achieve this aim.

Module Description CS4004 Blackboard

CS4012 Topics in Functional Programming

5 ECTS credits

This course builds on CS3012 which introduced the fundamental concepts of functional programming. In CS4012 we will take an in-depth look at more advanced topics in functional programming and discuss some current research directions in the field.

Module Description CS4012 Blackboard

CS4021 Advanced Computer Architecture

5 ECTS credits

This advanced module provides students with the theoretical background and practical experience of developing lockless algorithms. Lockless algorithms allow shared data structures to be updated concurrently by multiple threads, typically on multicore CPUs. Students study the implementation and limitations of locks, how to use Spin to reason about the correctness of concurrent algorithms, the implementation of CAS based lockless algorithms and hardware transactional memory. Students have access to an x64 based 8 core (16 thread) server supporting hardware transactional memory.

Module Description CS4021 Blackboard Module Website

CS4031 Mobile Communications

5 ECTS credits

Effective wireless communication is the key enabling technology for realising the emerging ubiquitous computing vision. Mobile Communications is a final year option module which imbues the next generation of graduates with a cognisance and awareness of both the capabilities and limitations of modern mobile devices. In this module students being by learning about the underlying principles of wireless transmission and how these underpin the design of wireless communication networks. This material forms a platform for the subsequent analysis, assessment and implementation of a wide variety of modern wireless communication systems. Critical appraisal of recent publications in IEEE and ACM journals is used to enhance each students ability to communicate effectively through the written medium.

Module Description CS4031 Blackboard

CS4032 Distributed Systems

5 ECTS credits

Building distributed applications is a difficult task due to the concurrency, communication latency, and possibility of partial failure that is inherent in distributed systems. As in other areas of computer science, the trend in providing support for building distributed applications has been towards presenting the application developer with ever higher levels of abstraction and, in the particular case of distributed programming, of location transparency. This course takes a critical look at some of the paradigms and architectural issues involved in distributed programming  and their likely evolution. Students will be given opportunities to develop their problem solving, programming and written communication skills by designing solutions to programming problems, implementing those solutions as fully networked distributed systems.

Module Description CS4032 Blackboard Module Website

CS4052 Computer Graphics

5 ECTS credits

The objective of this module is to equip the students with the fundamental understanding of the major elements of Computer Graphics and explore related areas including geometric modelling, rendering and animation. The main focus of the module is on the mathematics and algorithms used in the synthesis of computer graphics imagery and animation, and their practical application. Students are introduced to the standard architectures of modern graphical applications including details on the underlying hardware and low-level software components common to all such systems. The module is intended to enable students to bridge the gap between these low-level fundamental, components common to all computer applications, and the high-level abstract output in most interactive graphical applications.

Students are also introduced to OpenGL, a modern high-level graphics API which is widely used for 3D Design and Visualisation, along with the industry standard modelling software, 3D Studio Max, and this software is used throughout the course to demonstrate concepts and to allow the students to develop their own 3D models, scenes and applications.

Module Description CS4052 Blackboard

CS4053 Computer Vision

5 ECTS credits

The aim of this module is to give students a firm understanding of the theory underlying the processing and interpretation of visual information and the ability to apply that understanding to ubiquitous computing and entertainment related problems. It provides them with an opportunity to apply their problem-solving skills to an area which, while it is firmly part of computer science/engineering, draws strongly from other disciplines (physics, optics, psychology). The module  is based around problems so that the technology is always presented in context and during some tutorials students work in groups to design solutions to real world problems using the techniques that they have been taught. In addition, the course has a significant practical component so that students can appreciate how difficult it can be to apply the technology.

Module Description CS4053 Blackboard

CS4061 Artificial Intelligence IIa

5 ECTS credits

This is an in-depth initiation into some topics in AI, including the use of simple description logics and the application of finite-state methods to natural language processing. The syllabus includes topics such as knowledge representation, description logics, finite-state methods and reasoning about change.

Module Description CS4061 Blackboard

CS4071 Compiler Design II

5 ECTS credits

To teach the principles of compiler optimization.

Module Description CS4071 Blackboard

CS4LL5 Advanced Computational Linguistics

5 ECTS credits

The aim is to give a grounding in so-called unsupervised machine learning techniques which are vital to many language-processing technologies including Machine Translation, Speech Recognition and Topic Modelling. Whilst studied in these contexts, the techniques themselves are used much more widely in data mining and machine vision for example.

Module Description CS4LL5 Blackboard Module Website