Integrated Computer Science
Year 3 (Junior Sophister)
Junior Sophister students will take two Trinity Elective modules in third year (one in each semester). These electives are intended to broaden your studies and hence are offered by almost all Schools in the University.
Students will also select four SCSS electives (two in each semester). Use the Year 3 Option Form to choose your SCSS elective modules.
Study Abroad in Year 3
Students intending to apply to study abroad in Year 3 can find out more about international (non EU) exchanges and the Erasmus programme on the Study Abroad website. You will need approval from the School of Computer Science and Statistics before applying and instructions for obtaining this approval are o note SCSS Study Abroad website. Note that internal SCSS application deadlines will be earlier than the College deadlines and you should begin making enquiries in the first weeks of Year 2.)
Semester One Core Modules
(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.
(Semester 1, 5 ECTS) The module introduces the basic concepts underlying the communication between nodes connected to the Internet.
(Semester 1, 5 ECTS) Basic introduction to Prolog including recursion, definite clause grammars, cuts and negation.
Semester One Elective Modules
Choose 2 modules (10 credits) from the list below plus one Trinity Elective Module (5 credits)
(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.
(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.
(Semester 1, 5 ECTS) Advanced topics in Computer Architecture including virtual memory, cache organisation, pipelining, multiprocessor architectures and cache coherency.
Semester Two Core Modules
(Semester 2, 5 ECTS) This module follows on directly from CSU33012 (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.
(Semester 2, 5 ECTS) An introduction to Artificial Intelligence covering basic topics search and knowledge representation, including an introduction to probabilistic reasoning
(Semester 2, 5 ECTS) Information modelling and databases.
Semester Two Elective Modules
Choose 2 modules from the list below (10 credits) plus one Trinity Elective Module (5 credits)
(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.
(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.
(Semester 2, 5 ECTS) An introduction to lexical analysis, parsing, code generation and other topics related to compiler design.