Welcome to the School of Computer Science and Statistics
Congratulations on your acceptance to Trinity College Dublin as a Erasmus, Study Abroad or Exchange student and welcome to the School of Computer Science and Statistics (SCSS)!
On arrival at Trinity you will need to select which modules you wish to take. You are allowed to take a maximus of 30 ECTS for each semester and your choices will depend on your learning agreement. If the School of Computer Science and Statistics is your host school, you will need to select at least half of your modules from the modules listed below.
Click on the module links to read more about the learning outcomes and assessment criteria. To view module timetables you can go to my.tcd.ie – Timetables > Module Timetables.
Before selecting your modules please read these additional guidelines on choosing your modules here.
If you have any questions about modules at the School of Computer Science and Statistics please contact:
- For General Queries –Catherine McDonald, Global Officer (SCSS)
- For Module Queries – Prof. James Ng, Visiting Student Academic Coordinator (SCSS)
For more information on module enrolment and to complete your online module enrolment form go to: Visiting Student Module Enrolment Process and Module Directory
Full Year Modules
CSU11026 – Digital Logic Design
(Semester 1 & 2, 10 ECTS) Starting with the theoretical foundations of logic, the students learn about combinatorial logic and synchronous logic, and how it can be used to construct logic functions that are useful in computing systems.
STU11004 – Introduction to Management Science
(Semester 1 & 2, 10 ECTS) This module covers a range of subjects in management science at an
introductory level.
STU22006 – Management Science Methods
(Semester 1 & 2, 10 ECTS) This course is based on developing and solving mathematical models of real life problems. In the first semester, students receive a theoretical introduction to the fundamental elements of a mathematical model. Modelling techniques are taught to solve problems in many domains. In the second semester students are introduced to the concepts, ideas and techniques involved in simulation.
STU44003 – Data Analytics
(Semester 1 & 2, 10 ECTS) The aim of the course is to introduce the students to a set of techniques including classification and regression trees, and ensemble methods.
STU45006 – Strategic Information Systems
(Semester 1 & 2, 10 ECTS) The objective of this course is to introduce students to Strategic Information Systems in the workplace and society.
Semester 1 Modules
CSU11001 – Mathematics I
(Semester 1, 5 ECTS) The module aims to provide students with an introduction to the mathematics, both continuous and discrete, which lies at the foundation of many real-world applications in Computer Science, Engineering and the Social Sciences.
CSU11011 Introduction to Programming I
(Semester 1, 5 ECTS) This module provides an introductory course in computer programming. This course takes a practical approach to teaching the fundamental concepts of computer programming with a strong emphasis on tutorial and laboratory work and is an important vehicle for developing students’ analytical and problem-solving skills. This module aims to give students an understanding of how computers can be employed to solve real-world (albeit small) problems.
CSU11021 – Introduction to Computing I
(Semester 1, 5 ECTS) An introduction to the basic structure and operation of a computer system, focussing on the processor (CPU), memory and the execution of programs.
CSU11031 – Electronics and Information Technology
(Semester 1, 5 ECTS) The first aim of the first part of this module is to give students a grounding in
electronics.
CSU11081 – Computers and Society
(Semester 1, 5 ECTS) IT and its “impact” on society; models for assessing technological “impact”; history of IT; ethics; writing, presenting and argumentation; other topics.
CSU22011 – Algorithms and Data Structures I
(Semester 1, 5 ECTS) The topics of this module are: the theory and practice of algorithmic design; evaluation algorithm performance; and standard algorithms and data structures.
CSU22014 – Systems Programming I
(Semester 1, 5 ECTS) Students taking this module have already successfully completed courses in object oriented Java programming and ARM assembly language programming.
CSU22022 – Computer Architecture I
(Semester 1, 5 ECTS) Design substantial logic circuits using register transfer descriptions.
CSU22041 – Information Management I
(Semester 1, 5 ECTS) This module focuses on the methods and techniques for efficient management
(modelling, manipulation and retrieval) of data and information. It provides a foundation for later modules in database management and advanced information
management.
CSU22061 – Intermediate Programming
(Semester 1, 5 ECTS) Fundamentals of C++ including built-in types and coercion, pointers, arrays, reference parameters, STL containers string and vector structs, classes, inheritance (illustrated by Qt library for GUIs), dynamic memory allocation and recursive data structures.
CSU22E03 – Computer Engineering
(Semester 1, 5 ECTS) The module is intended to build on the learning outcomes of an introductory
course in C programming such as the Year 1 Computer Engineering I module to give students the ability to understand and apply object oriented programming
principles to solve real problems.
CSU33012 – Software Engineering
(Semester 1, 5 ECTS) This module provides students with a solid grounding in various aspects related to building large software systems.
This entails (i) recognising the general software life cycle and its stages from domain analysis to maintenance, (ii) analysing software in the problem domain, (iii) identifying the fundamental approaches to managing software projects and teams, (iv) distinguishing the roles of stakeholders in a software project in general and in software teams in particular, (v) to understand how to measure and reflect team performance.
CSU33031 – Computer Networks
(Semester 1, 5 ECTS) The module introduces the basic concepts underlying the communication between nodes connected to the Internet.
CSU33081 – Computational Mathematics
(Semester 1, 5 ECTS) Floating point number systems; Mathematical Background, Solving Non-Linear Equations; Solving Systems of Linear Equations; Eigenvalues and Eigenvectors; Curve Fitting and Interpolation; Numerical Differentiation; Numerical Integration.
CSU33D01 – Microprocessor Systems
(Semester 1, 5 ECTS) Microprocessor Systems 1 is a one-semester module taken by third year Electronic, Electronic/Computer and Computer Engineering students.
CSU33D05 – Data Structures and Algorithms
(Semester 1, 5 ECTS) To study well-established computing theory, with special consideration for sorting and searching problems.
CSU34011 – Symbolic Programming
(Semester 1, 5 ECTS) Basic introduction to Prolog including recursion, definite clause grammars, cuts and negation.
CSU34016 – Introduction to Functional Programming
(Semester 1, 5 ECTS) Functional programming languages present a powerful, abstract, and important direction in programming languages. This modules uses the functional programming language called “Haskell” to introduce key concepts such as how to compute using functions, and how these languages can easily support powerful features such as pattern-matching, recursion, strong typing, type polymorphism, higher-order functions, laziness, and type classes.
CSU34021 – Computer Architecture II
(Semester 1, 5 ECTS) Advanced topics in Computer Architecture including virtual memory, cache organisation, pipelining, multiprocessor architectures and cache coherency.
CSU44001 – Fuzzy Logic and Control Systems
(Semester 1, 5 ECTS) This course will introduce you to the exciting new field of fuzzy systems and the related topics in machine learning and the so-called deep learning neural nets.
CSU44004 – Formal Verification
(Semester 1, 5 ECTS) Specification languages and logics; axiomatic program semantics. Formal proof
systems to verify software and system properties such as propositional, predicate
and Hoare logic.
CSU44012 – Topics in Functional Programming
(Semester 1, 5 ECTS) Develop sophisticated programs in a high level functional language.
CSU44051 – Human Factors
(Semester 1, 5 ECTS) The module provides an introduction to the field of Human-Computer Interaction, focused both on understanding human interactions with technology and on the design of useful and usable interactive systems.
CSU44052 – Computer Graphics
(Semester 1, 5 ECTS) 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.
CSU44053 – Computer Vision
(Semester 1, 5 ECTS) 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.
CSU44061 – Machine Learning
(Semester 1, 5 ECTS) An introduction to machine learning using techniques including linear regression, logistic regression and neural networks in real-world scenarios.
CSU44062 – 4CSLL5 Advanced Computational Linguistics
(Semester 1, 5 ECTS) Understand in general what a probabilistic model is, the distinction between so-called visible and hidden variables, and the distinctive nature of models where each datum is a sequence of varying length, rather then a fixed-size set of features
CSU44D01 – Information Management for Engineering
(Semester 1, 5 ECTS)
Design and Evaluate information Models (using Entity relationship Modelling Techniques) for representation and storage in a Relational Database
STU11001 – Software Applications I
(Semester 1, 5 ECTS) The purpose of this module is to provide an introduction to the practical uses of computer applications particularly in the area of spreadsheets, web page design and development, and programming language.
STU12501 – Introduction to Probability
(Semester 1, 5 ECTS) Sample Space and Probability: Sets; Probabilistic Models; Conditional Probability; Total Probability.
Theorem and Bayes’ Rule; Independence; Counting.
STU22004 – Applied Probability I
(Semester 1, 5 ECTS) This module covers a range of topics in probability theory at an introductory level, with a view towards applications. Overall the goal of the module is to let the students gain familiarity with both analytical and simulation-based methods to deal with applied problems in probability.
STU23501 – Probability and Theoretical Statistics I
(Semester 1, 5 ECTS) This is a rigorous development of probability theory from an axiomatic foundation, along with some more advanced topics.
STU33002 – Statistical Analysis III
(Semester 1, 5 ECTS) This module aims to provide an opportunity for students to develop their hands on
skills in data analysis.
STU33010 – Forecasting
(Semester 1, 5 ECTS) Introduction to Forecasting; ARIMA models, data transformations, seasonality, exponential smoothing and Holt Winters algorithms, performance measures. Use of transformations and differences.
STU33011 – Multivariate Linear Analysis
(Semester 1, 5 ECTS) Classical multivariate techniques of principal component analysis, clustering, discriminant analysis, k-nearest neighbours, and logistic regression are investigated.
Semester 2 Modules
CSU11012 Introduction to Programming II
Module CodeCSU11012Module NameIntroduction to Programming I IECTS Weighting[1]5 ECTSSemester taughtSemester 2Module Coordinator/s Dr Hitesh Tewari Module Learning Outcomes On successful completion of this module, students will be able to: Module…
CSU11022 – Introduction to Computing II
(Semester 2, 5 ECTS) This module continues directly from CSU11021 and examines the structure and behavior of computer systems in greater depth. In particular, this module introduces students to the implementation of simple data structures (stacks, multi dimensional arrays, composite data types), subroutines (including parameter passing conventions), exceptions, interrupts and basic I/O at the machine level.
CSU11E03 – Computer Engineering I
(Semester 2, 5 ECTS) This module aims to equip students with the skills to design and develop simple
imperative C++ programs.
CSU12002 – Mathematics II
(Semester 2, 5 ECTS) Mathematics is of interest to computer scientists due to the fact that it is both
practical and theoretical in nature.
CSU22012 – Algorithms and Data Structures II
(Semester 2, 5 ECTS) This module continues directly from Algorithms and Data Structures I and addresses topics including recursion, divide-and-conquer, graph traversal and dynamic programming.
CSU22062 – Natural Language Processing
(Semester 2, 5 ECTS) Regular languages, context free languages, feature structures, a brief into to Probailistic Methods in NLP, topic varying year to year,
examples being the use of Hidden Markov models in speech recognition, or
statistical machine translation, a brief into recursive computation of semantic values from grammatical structures.
CSU23016 – Concurrent Systems and Operating Systems
(Semester 2, 5 ECTS) The first part of this module introduces students to concurrency and concurrent
programming. The second part looks at aspects of the function and implementation of operating systems.
CSU23021 – Microprocessor Systems
(Semester 2, 5 ECTS) This module provides a holistic overview of how a typical general purpose computing system functions, followed by a deep-dive into the various key architectural features of such systems.
CSU33014 – Concurrent Systems I
(Semester 2, 5 ECTS) The goal of this module is to provide students with a deep understanding of parallel and multi-core architectures and to provide students with necessary architecture background for careers in professional software development and/or further research on these emerging platforms.
CSU33032 – Advanced Computer Networks
(Semester 2, 5 ECTS) This module introduces students to advanced topics in the areas of data communications and cryptography. A detail study is made of the TCP protocol in terms of multiplexing, flow and congestion control to understand the effects congestion in a large distributed network such as the Internet.
CSU33061 – Artificial Intelligence I
(Semester 2, 5 ECTS) An introduction to Artificial Intelligence covering basic topics search and knowledge representation, including an introduction to probabilistic reasoning
CSU33071 – Compiler Design I
(Semester 2, 5 ECTS) An introduction to lexical analysis, parsing, code generation and other topics related to compiler design.
CSU33D03 – Computer Networks
Semester 2, 5 ECTS) The course targets the fundamental principles of computer and communication networking. A mix of fundamental concepts and principles, allied to recent and future technologies and advances, help ensure understanding of the many concepts, protocols, and technologies involved in modern networking.
CSU33D06 – Software Design Analysis
(Semester 2, 5 ECTS) This module aims to inculcate practical skills in team driven software engineering through small and large group programming projects
CSU34041 – Information Management II
(Semester 2, 5 ECTS) Information modelling and databases.
CSU44032 – Security and Privacy
(Semester 2, 5 ECTS). The objectives of this module are: to develop an in-depth understanding of risk, data
privacy, threats and risks of security breaches, an awareness of computer security
(cryptographic) and protocol techniques, and an ability to make appropriate
decisions about securing data.
CSU44060 – Knowledge Representation and Automata
(Semester 2, 5 ECTS) An in-depth initiation into some topics in Knowledge Representation and Automata
CSU44081 – Entrepreneurship & High-Tech Venture Creation
(Semester 2, 5 ECTS) Explain how high tech venture creation operates, with an emphasis on the processes developed by the Silicon Valley venture community over the past 20 years
CSU44098 – Group Design Project
(Semester 2, 10 ECTS) Instruction will be provided in Agile development methodologies and facilities will be provided in order to promote close collaboration between team members.
CSU44D02 – Knowledge Engineering
(Semester 2, 5 ECTS) It
addresses techniques and technologies for organizing, structuring and storing data,
with a view to applying knowledge engineering approaches
STU11002 – Statistical Analysis I
(Semester 2, 5 credits) An introduction to basic statistical concepts. Students will learn how to explain basic statistical theory, apply the techniques to data and describe and interpret the results of their analyses in a detailed fashion. R studio will be used to analyse data.
STU12502 – Introduction to Statistics II
(Semester 2, 5 ECTS) To introduce students to the elementary ideas of statistical inference and the use of simple statistical methods in practical situations.
STU22005 – Applied Probability II
(Semester 2, 5 credits) This module will develop several important ideas in statistical analysis making use of some of the ideas introduced in STU22004. It acts as a bridge to the sophister years by introducing the fundamental ideas that are used in the more advanced statistics modules that will take place then.
STU2201A – Software Applications II
(Semester 2, 5 ECTS) The purpose of this module is to give students experience in advanced computer applications.
STU33004 – Research Methods
(Semester 2, 5 ECTS) This module introduces the research process. Starting with the formulation of a
research question, it covers completing a literature review, choosing an appropriate
research design, data collection, data analysis and how to communicate research
findings.
STU33005 – Information Systems
(Semester 2, 5 ECTS) The aim of the module is to introduce students to the crucial role that Information Systems play in all aspects of society and the workplace as these domains undergo trans-formative change.