Skip to main content

Trinity College Dublin, The University of Dublin

Menu Search

You are here Undergraduate > Computer Science

Computer Science ProgrammeJunior Sophister

The following is a brief overview of the modules taken in Junior Sophister year. Prospective students should read the brief descriptions of the courses below the table which follows.

Current students should follow the links (to the eLearning environment, "Blackboard", or to the module website) or refer to for full details, including assessment criteria and learning outcomes.

Michaelmas Term Hilary Term
CS3011 Symbolic Programming (Website) CS3081 Computational Mathematics
CS3012 Software Engineering CS3013 Software Engineering Group Project
CS3021 Computer Architecture II (Website) CS3014 Concurrent Systems I (Website)
CS3071 Compiler Design I ST3009 Statistical Methods for Computer Science (Website)
CS3016 Introduction to Functional Programming CS3031 Advanced Telecommunications
CS3041 Information Management II CS3061 Artificial Intelligence (Website)

CS3011 Symbolic Programming

5 ECTS credits, Michaelmas Term

This module introduces Prolog, a symbolic programming language, including recursion, Definite Clause Grammars, cuts and negation.

Module Description CS3011 Blackboard Module Website

CS3012 Software Engineering

5 ECTS credits, Michaelmas Term

This module provides students with a solid grounding in various aspects related to building large, important software systems.
The overall aim of this module is for students to learn the fundamental skills for building large, important software systems. This entails (i) recognising the general software lifecycle 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) recognising architectures for building large-scale distributed software systems.

The module covers various aspects related to building software systems ranging from the use of software lifecycle models, to project management, to large-scale software architectures. Specifically, software lifecycle models, including variations of the waterfall and spiral models as well as extreme programming and agile software development methods, are introduced along with concepts relevant to the specific model stages. These concepts include UML-based O-O, domain analysis, requirements and specification analysis, testing and debugging and version control. Strategies for managing large software projects and their contracts as well as project teams are presented and contrasted.

Module Description CS3012 Blackboard

CS3021 Computer Architecture II

5 ECTS credits, Michaelmas Term

This module focuses on the architecture of modern high performance microprocessor systems. Topics covered are procedure calling conventions, the architecture of RISC CPUs, instruction level pipelining, virtual memory, caches, multiprocessors, cache coherency and spin locks.
This module examines the internal architecture of modern microprocessors, paying particular attention to issues that improve performance and to the close relationship between the hardware and the needs of the software.

Module Description CS3021 Blackboard Module Website

CS3071 Compiler Design I

5 ECTS credits, Michaelmas Term

The aim of the module is to teach the principles of compiler design, including finite-state automata and push-down machines, lexical analysers, top-down parsers, l-attributed translation grammars, and recursive-descent parsers.
Students will learn how to use Coco/R to construct high-level language analysers and parsers.

Module Description CS3071 Blackboard

CS3016 Introduction to Functional Programming

5 ECTS credits, Michaelmas Term

Functional programming languages present a powerful, abstract, and important direction in programming languages. The high level of abstraction and the expressive syntax makes program decomposition and composition unusually easy, while the close connections to the underlying semantics make formal reasoning tractable. Systems such as Google’s “Map/Reduce” framework demonstrate the influence of this approach, and the importance to a computer scientist of understanding it.

In this module students will learn to apply the techniques of functional programming in a practical context. The focus is on software design and programming in the functional style, and students will “learn by doing”, through regular weekly programming assignments and case studies.
The module draws on the programming and mathematics background the students have acquired in the first two years of the degree and extends it by teaching new approaches to program design and implementation.

Module Description CS3016 Blackboard

CS3041 Information Management II

5 ECTS credits, Michaelmas Term

This module is focused on the modelling of information and database system technology. More specifically, it focuses on state-of-the-art database technology, from both the user and system perspectives.
From a system engineering perspective, the module examines the concepts and algorithms for: transaction processing, concurrency control, metadata representation, semantic representation and active databases, recovery, database security policies, integration of databases on the web and emerging database technologies.

From an information designer’s perspective, the module examines the theoretical model underpinning relational databases, functional dependency theory and normalisation (for information modelling), functional dependency modelling, object relational modelling, implementation of databases and database applications.

Thus the module is intended to enable the students to design information models and implement these models in state of the art databases (relational and native web databases), as well as be able to analyse and evaluate approaches to information organisation, storage, transaction support and management.

Module Description CS3041 Blackboard

CS3081 Computational Mathematics

5 ECTS credits, Hilary Term

The aim of the module is to teach, in sufficient detail for practical implementation, the mathematical concepts and methods appropriate to writing computer programs for science and engineering applications in general, and in particular: computer graphics, computer vision, image processing, robotics, physical simulation, and control.

Module Description CS3081 Blackboard

CS3013 Software Engineering Group Project

5 ECTS credits, Hilary Term

This module follows on directly from CS3012 (Software Engineering) and focuses on the practical application of the various concepts and tools related to building software systems studied in third year software engineering. This practical application takes the form of a large “hands-on” group project that covers numerous aspects of building object-oriented software systems including  problem analysis, usage of development environments, project management, team management, design, implementation, testing and documentation. Students will take a leadership role within these groups which are combined with students taking module CS2013.

Module Description CS3013 Blackboard

CS3014 Concurrent Systems I

5 ECTS credits, Hilary Term

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.

Module Description CS3014 Blackboard Module Website

ST3009 Statistical Methods for Computer Science

5 ECTS credits, Hilary Term

The aim of this new module is to introduce computer students to probability and statistical modelling. It provides the foundation needed for machine learning, software performance analysis etc.

Module Description ST3009 Blackboard Module Website

CS3031 Advanced Telecommunications

5 ECTS credits, Hilary Term

This module concentrates on building upon knowledge gained in Telecommunications I & II and introduces students to advanced topics in the areas of data communications and telecommunications networks. In particular the area of high speed local area networks operating at speeds of 100 megabits and higher are examined.
A more detailed study is made of the TCP/IP protocols in terms of addressing, routing and subnetting. Topics in the area of telecommunications protocols such as ATM, MPLS, GSM/UMTS are studied.
The students are also introduced to the areas of Network Security, Mobile Communications and Multimedia Networking.

Module Description CS3031 Blackboard

CS3061 Artificial Intelligence

5 ECTS credits, Hilary Term

This module introduces classic topics in AI, including  search, constraint satisfaction, knowledge representation, abduction and action.

Module Description CS3061 Blackboard