computer science img

Joint Honours Computer Science

Year 3 (Junior Sophister)

The following is a brief overview of the modules potentially available in the Junior Sophister year. Prospective students can read the brief descriptions of the modules which appear below by clicking on the module titles.

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.

Computer Science Modules – all students

All students take the following 20 credits of Computer Science modules in their Junior Sophister year.

CSU33013 – Software Engineering Project II

(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.

CSU33031 – Computer Networks

(Semester 1, 5 ECTS) The module introduces the basic concepts underlying the communication between nodes connected to the Internet.

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.

Computer Science Modules – electives

Students who have selected the Joint Honours pathway select 10 ECTS of electives from those listed below. Students who have selected to major in computer science and to complete their other subject in their JS year select 10 ECTS of electives from those listed below. Those majoring in CS and continuing their other subject into SS year select 20 ECTS of electives from those listed below.

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

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.

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.

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.

CSU33071 – Compiler Design I

(Semester 2, 5 ECTS) An introduction to lexical analysis, parsing, code generation and other topics related to compiler design.