Professor Stephen Barrett

Assistant Professor

School of Computer Science and Statistics
Room 0.28, Lloyd Institute, Trinity College Dublin 2, Ireland

I'm hiring Software Engineers

Especially experienced λ developers for IRL/hybrid roles in new TCD spinout focussed on SE Analytics. Competitive package. Drop me a line.


I am honoured to have received the Provost's Trinity Excellence in Teaching Award, 2021. Huge thanks to my student nominators.

This year, I am teaching the following modules:

  • CSU33012 - Software Engineering- a third year undergraduate module with students from a range of programs, introducing software engineering as a professional discipline. We typically host 150 students or so, and the focus of the work is individual, preparing the groundwork for follow on to team based software engineering modules in the second semester.
  • CSU22013/CSU33013 - Software Engineering Project 1 - a 2nd year and 3rd year combined module set in which student teams deliver on projects for external clients. I look after the 2nd years in this module and Prof. Arnedillo-Sanchez looks after the 3rd years. This is a highly practical team based module set.
  • CSU33D06 - Software Design and Implementation - a 3rd year engineering group project module where we apply software engineering principes in practice to deliver rapid team development of mobile apps.


Social Software Engineering

In the social computing Social Computing is an area concerned with the intersection of social behaviour and computation, that encompasses fields
such as social networking, collaborative work, and collective intelligence.

See "Social Computing", introduction to Social Computing special edition of the Communications
of the ACM, edited by Douglas Schuler, Volume 37, Issue 1 (January 1994), Pages: 28 – 108.
space, my students and I have developed quantitative methods for the assessment of qualitative questions regarding human behaviour, such as trust, health and related computations in online social networks, human mental workload assessment, recommendation, market trading, and most recently to questions in the domain of social software engineering. Social Software Engineering is a branch of software
engineering that is concerned with the social aspects
of the software development process and the study and
construction of socially-oriented tools to measure
and support collaboration and knowledge sharing in
software engineering. It can also be viewed as a
specialism of computational social science.
The technical basis of the approach is the application of defeasible/non-monotonic argumentation schemes, borrowed from proponents of the strong AI model such as John L. Pollock, For example, see Pollock, J. L. (1987). Defeasible reasoning. Cognitive
science, 11(4), 481-518.
and Pollock, J. L. (1995). Cognitive Carpentry:
A Blueprint for how to Build a Person. MIT Press, Cambridge, MA, USA.
but applied to the assessment of human behaviour rather than the replication of human decision making, and structured as computationally efficient filtering and ranking schemes for the execution over large-scale, complex and heterogeneous behavioural data sets.

Fascinating visualisation of the development of the Linux Kernel from 1991-2015, by Darrick Wong.
We are now applying this approach exclusively to challenges in social software engineering, treating software development as a computational sociological phenomenon, but with particular focus on the contributing role of individuals in the collaborative creation of the software artefact. [more]


I am always intetrested in taking on students who would like to do research in Software Engineering. Contact me if you have some ideas, or even an interest.