Computer Science Programme
Senior Sophister (MCS)
Senior sophisters who have elected to follow the MCS programme with the intention of graduating with a Master in Computer Science (MCS) after successfully completing five years of study must take the following modules:
|Michaelmas Term||Hilary Term|
|CS4051 Human Factors||CS7091 Industrial/Research Lab Internship|
|CS4081 Technology Entrepreneurship|
In addition, students must select four options from table below:
SS Module Options
|CS4011 Fuzzy Logic|
|CS4003 Formal Methods|
|CS4012 Topics in Functional Programming|
|CS4031 Mobile Communications|
|CS4032 Distributed Systems|
|CS4052 Computer Graphics|
|CS4053 Computer Vision|
|CS4061 Artificial Intelligence IIa|
|CS4071 Compiler Design II|
This module aims to provide students with an understanding of the main issues underlying the usability of systems, and the main techniques and processes for interface design and evaluation. They will also gain a basic understanding of the theories which account for human performance.
This module introduces the fundamentals of technology entrepreneurship. It will cover the process technology entrepreneurs use to start companies. This involves taking a technology idea and finding a high-potential commercial opportunity, gathering resources such as talent and capital, figuring out how to sell and market the idea and managing rapid growth.
(10 ECTS credits , Hilary Term )
The Group Computer Science Project is undertaken in Hilary Term by students who have elected to follow the BA (Mod) programme. The goal of this project is to promote teamwork and also to allow students to use their individual skills and experiences within the context of developing defined projects from specification to delivery. A key aim is to develop students abilities in framing design problems and working iteratively to achieve a working solution.
The Final Year Project is undertaken in Hilary Term by students who have elected to follow the BA (Mod) programme. The aim of the project is to integrate the theoretical and practical knowledge of the student across all of the years of their study and provide a practical demonstration of their capability in executing a challenging project.
This module will introduce you to the exciting new field of fuzzy systems. Fuzzy systems are in almost daily use: your washing machine has fuzzy controls and many of the refrigerators do too. In both cases, the machines can sense the amount of stuff (clothes or food) and adjust their operations accordingly.
Fuzzy logic has been developed by computer scientists and control engineers over the last 30 odd years. Fuzzy logic is now being used in a range of critical systems ranging from image processing to the processing of financial time series.
This module exposes students to techniques for reasoning about program correctness using formal mathematical techniques, as complementary to traditional testing techniques.
It also discusses some of the fundamental underlying theoretical principles of computation.
The emphasis is on the mathematical principles involved and the modelling of problems and proof of solution correctness by hand. However the need for and use of tool support will also be covered.
This module builds on CS3016 which introduced the fundamental concepts of functional programming. In CS4012 we will take an in-depth look at more advanced topics in functional programming and discuss some current research directions in the field.
Effective wireless communication is the key enabling technology for realising the emerging ubiquitous computing vision. Mobile Communications is a final year option module which imbues the next generation of graduates with a cognisance and awareness of both the capabilities and limitations of modern mobile devices. In this module students being by learning about the underlying principles of wireless transmission and how these underpin the design of wireless communication networks. This material forms a platform for the subsequent analysis, assessment and implementation of a wide variety of modern wireless communication systems.
Critical appraisal of recent publications in IEEE and ACM journals is used to enhance each students ability to communicate effectively through the written medium.
Building distributed applications is a difficult task due to the concurrency, communication latency, and possibility of partial failure that is inherent in distributed systems. As in other areas of computer science, the trend in providing support for building distributed applications has been towards presenting the application developer with ever higher levels of abstraction and, in the particular case of distributed programming, of location transparency. This course takes a critical look at some of the paradigms and architectural issues involved in distributed programming and their likely evolution.
Students will be given opportunities to develop their problem solving, programming and written communication skills by designing solutions to programming problems, implementing those solutions as fully networked distributed systems.
The objective of this module is to equip the students with the fundamental understanding of the major elements of Computer Graphics and explore related areas including geometric modelling, rendering and animation. The main focus of the module is on the mathematics and algorithms used in the synthesis of computer graphics imagery and animation, and their practical application. Students are introduced to the standard architectures of modern graphical applications including details on the underlying hardware and low-level software components common to all such systems. The module is intended to enable students to bridge the gap between these low-level fundamental, components common to all computer applications, and the high-level abstract output in most interactive graphical applications.
Students are also introduced to OpenGL, a modern high-level graphics API which is widely used for 3D Design and Visualisation, along with the industry standard modelling software, 3D Studio Max, and this software is used throughout the course to demonstrate concepts and to allow the students to develop their own 3D models, scenes and applications.
The aim of this module is to give students a firm understanding of the theory underlying the processing and interpretation of visual information and the ability to apply that understanding to ubiquitous computing and entertainment related problems. It provides them with an opportunity to apply their problem-solving skills to an area which, while it is firmly part of computer science/engineering, draws strongly from other disciplines (physics, optics, psychology). The module is based around problems so that the technology is always presented in context and during some tutorials students work in groups to design solutions to real world problems using the techniques that they have been taught. In addition, the course has a significant practical component so that students can appreciate how difficult it can be to apply the technology.
This is an in-depth initiation into some topics in AI, including the use of simple description logics and the application of finite-state methods to natural language processing. The syllabus includes topics such as knowledge representation, description logics, finite-state methods and reasoning about change.
To teach the principles of compiler optimization.
(30 ECTS credits)
The Internship is undertaken by students who have elected to follow the MCS programme. The aim is to enable students to further develop an understanding of how design aspects and theoretical aspects of computer science are applied to practical problems in a real world context
For more information, please visit: http//www.scss.tcd.ie/internships
Submit Internship Technical Report