Skip to main content

Trinity College Dublin, The University of Dublin

Trinity Menu Trinity Search



You are here Undergraduate > Computer Science > Junior Sophister

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 my.tcd.ie for full details, including assessment criteria and learning outcomes.

Michaelmas Term Hilary Term
CSU34011 Symbolic Programming (Website) CSU33081 Computational Mathematics
CSU33012 Software Engineering CSU33013 Software Engineering Group Project
CSU34021 Computer Architecture II (Website) CSU33014 Concurrent Systems I (Website)
CSU33071 Compiler Design I STU33009 Statistical Methods for Computer Science (Website)
CCSU34016 Introduction to Functional Programming CSU34031 Advanced Telecommunications
CSU34041 Information Management II CSU33061 Artificial Intelligence (Website)

CSU34011 Symbolic Programming

5 ECTS credits, Semester 1

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

Module Description CSU34011 Blackboard

CSU33012 Software Engineering

5 ECTS credits, Semester 1

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.

Module Description CSU33012 Blackboard

CSU34021 Computer Architecture II

5 ECTS credits, Semester 1

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 CSU34021 Blackboard Module Website

CSU33071 Compiler Design I

5 ECTS credits, Semester 1

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 CSU33071 Blackboard

CSU34016 Introduction to Functional Programming

5 ECTS credits, Semester 1

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.
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. Practical exercises are based around the use of software development tools (Haskell "stack") that support test automation. We also study the theoretical and formal underpinnings of such languages (lambda calculus), and how much easier it is to do formal reasoning regarding program proprties using logical proofs.

Module Description CSU34016 Blackboard

CSU34041 Information Management II

5 ECTS credits, Semester 1

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 CSU34041 Blackboard

CSU33081 Computational Mathematics

5 ECTS credits, Semester 2

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.

Module Description CSU33081 Blackboard

CSU33013 Software Engineering Group Project

5 ECTS credits, Semester 2

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 CSU33013 Blackboard

CSU33014 Concurrent Systems I

5 ECTS credits, Semester 2

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 CSU33014 Blackboard Module Website

STU33009 Statistical Methods for Computer Science

5 ECTS credits, Semester 2

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. For more details see the module webpage.

Module Description STU33009 Blackboard

CSU34031 Advanced Telecommunications

5 ECTS credits, Semester 2

This module concentrates on building upon the students SF years data communications knowledge and introduces them 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. A number of Application Layer protocols such as HTTP, DNS and AJAX are studied to understand how Web Applications are designed today. The students are also provided with an in-depth knowledge of cryptography which gives them an appreciation of how to secure data communication messages over an open network such as the Internet.

Module Description CSU34031 Blackboard

CSU33061 Artificial Intelligence

5 ECTS credits, Semester 2

An introduction to Artificial Intelligence covering basic topics search and knowledge representation, including an introduction to probabilistic reasoning

Module Description CSU33061 Blackboard