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.
(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 1, 5 ECTS) The module introduces the basic concepts underlying the communication between nodes connected to the Internet.
(Semester 2, 5 ECTS) Information modelling and databases.
(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.
(Semester 2, 5 ECTS) An introduction to Artificial Intelligence covering basic topics search and knowledge representation, including an introduction to probabilistic reasoning
(Semester 1, 5 ECTS) Basic introduction to Prolog including recursion, definite clause grammars, cuts and negation.
(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 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.