BSc FT Computer Science and Mathematics
- Duration:
- 3 Years
Description
This programme, taught in collaboration with the School of Mathematical Sciences, emphasises the use of computers to solve mathematical problems, including topics such as programming and algorithms. You can choose option modules from across the range of mathematics and computer science, including computer graphics, artificial intelligence, number theory and cryptography. You will be equipped for roles such as data analyst, analyst consultant or data architect.
Modules
Year 1
- INTRODUCTION TO ALGEBRA
-
INTRODUCTION TO ALGEBRA
Please see the School of Mathematical Science website for information regarding this module.
Read More - CALCULUS I
-
CALCULUS I
Please see the School of Mathematical Science website for information regarding this module.
Read More - Introduction to Probability
-
Introduction to Probability
Please see the School of Mathematical Science website for information regarding this module.
Read More - Procedural Programming
-
Procedural Programming
This is a laboratory-based course supported by lectures. Each student will have a weekly timetabled lab session. These sessions will be backed up by a weekly two-hour lecture.
Topics include the use of:
- basic control structures
- arrays and other datatypes
- methods and recursion
- simple search and sort algorithms
- basic control structures
- arrays and other datatypes
- methods and recursion
- simple search and sort algorithms
- Professional and Research Themes
- Object-Oriented Programming
-
Object-Oriented Programming
There will be two hours of lectures per week, and each student will have a weekly timetabled lab session in the Information Technology Lab (ITL). In addition, students will be expected to spend further time outside scheduled lab periods in the lab (or at home machines if they are available), and to read textbooks and review notes.
Major topics include the concepts of class, object, method, subclass, inheritance and their use in programming. The relevance of the object oriented style with respect to concrete software problems will be stressed both in lectures and labs.
Read More - identify the relevant classes and subclasses for the solution.
- write the methods reflecting the requested behaviour of the system.
- test and debug the program.
- Language and Communication
-
Language and Communication
This course is centered on grammar and language. Grammar is crucial in computing, and in life. Students will gain fluency in building new grammars, and analyzing/understanding existing ones. Hands-on experience will be given using XML.
Read More - CALCULUS II
-
CALCULUS II
Please see the School of Mathematical Science website for information regarding this module.
Read More
INTRODUCTION TO ALGEBRA
Summary:Please see the School of Mathematical Science website for information regarding this module.
CALCULUS I
Summary:Please see the School of Mathematical Science website for information regarding this module.
Introduction to Probability
Summary:Please see the School of Mathematical Science website for information regarding this module.
Procedural Programming
Summary:This is a laboratory-based course supported by lectures. Each student will have a weekly timetabled lab session. These sessions will be backed up by a weekly two-hour lecture.
Topics include the use of:
Credits:
15.0
Pre-requisites:
- None - .
Aims:
The major aim of this course is to teach you how to write simple programs fluently and correctly. In the course of doing this you will also learn to read and understand programs, and some basic use of an operating system. The course is given using Java under Linux, but the skills you will learn are intended to be transferable.
Objectives:
By the end of the module you will be able to: - write code at a procedural level fluently and accurately, - explain the functioning of your code to others and document it suitably, - read similar code written by others, understand it, track down errors, and make modifications. - explain technical programming concepts and discuss issues related to them.
Core Skills:
By the end of the module you will be able to: - solve problems by thinking algorithmically, - recognize when an algorithmic solution can be used to solve a range of problems - recognize the underlying logic within problems and solutions, - explain programming concepts, - compare and contrast related technical concepts - discuss issues: arguing a case based on evidence for both sides of the argument then drawing evidence-based conclusions. Programming develops a range of skills such as logical thinking and problem solving. The course also focuses on technical writing skills. These transferable skills are developed in the context of programming.
Object-Oriented Programming
Summary:There will be two hours of lectures per week, and each student will have a weekly timetabled lab session in the Information Technology Lab (ITL). In addition, students will be expected to spend further time outside scheduled lab periods in the lab (or at home machines if they are available), and to read textbooks and review notes.
Major topics include the concepts of class, object, method, subclass, inheritance and their use in programming. The relevance of the object oriented style with respect to concrete software problems will be stressed both in lectures and labs.
Credits:
15.0
Pre-requisites:
Procedural programming or an equivalent course.
Aims:
The course aims to improve the programming skills of students and to develop fundamental skills in reading, writing, describing, structuring and reasoning about programs. In particular, the course aims to develop these skills at the level of mid-level structure as seen in the object oriented style of programming.
Objectives:
At the end of the course the student should be able to use most of the object oriented concepts when writing programs. Given a description of a problem in English, the student should be able to:
Core Skills:
Ability to write basic programs using classes, inheritance, polymorphism, exceptions. Ability to read, understand and edit java code. Ability to design and implement code starting from a specification.
Books:
K.N.King: Java Programming From the Beginning. W. W. Norton 2000, 788 pages.
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Language and Communication
Summary:This course is centered on grammar and language. Grammar is crucial in computing, and in life. Students will gain fluency in building new grammars, and analyzing/understanding existing ones. Hands-on experience will be given using XML.
Credits:
15.0
Pre-requisites:
DCS100 Procedural Programming or by agreement of module supervisor. Ability to program in Java is required.
Aims:
Students will be introduced to the ideas of grammar and language, and examine how these are incorporated into computer languages. The language XML, now central to many web applications will be introduced.
Objectives:
Students should understand what makes up a grammar and a language, how expressions are parsed, how to build a new grammar, and the the central position of languages in computing. They should gain a perspective on the internet as a medium for communication, the role of grammatical structure in its communications, and the way structure is realized using XML.
Core Skills:
Coding & testing algorithms for very basic parsing, Writing Java programs for these algorithms, Practice good report writing.
Books:
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
CALCULUS II
Summary:Please see the School of Mathematical Science website for information regarding this module.
Year 2
- COMPLEX VARIABLES
-
COMPLEX VARIABLES
Please see the School of Mathematical Science website for information regarding this module.
Read More - CONVERGENCE AND CONTINUITY
-
CONVERGENCE AND CONTINUITY
Please see the School of Mathematical Science website for information regarding this module.
Read More - Differential and Integral Analysis
-
Differential and Integral Analysis
Please see the School of Mathematical Science website for information regarding this module.
Read More - GEOMETRY II: KNOTS AND SURFACES
-
GEOMETRY II: KNOTS AND SURFACES
Please see the School of Mathematical Science website for information regarding this module.
Read More - ALGORITHMIC GRAPH THEORY
- NUMBER THEORY
-
NUMBER THEORY
Please see the School of Mathematical Science website for information regarding this module.
Read More - Database Systems
-
Database Systems
Introduction to databases and their language systems in theory and practice.The main topics covered by the course are:
- The principles and components of database management systems.
- The main modelling techniques used in the construction of database systems.
- Implementation of databases using an object-relational database management system.
- SQL, the main relational database language.
- Object-Oriented database systems.
- Future trends, in particular information retrieval and data warehouses.
There are 2 timetabled lectures a week, and 1 hour tutorial per week (though not every week). There will be timetabled laboratory sessions (2 hours a week) for approximately 10 weeks.
Read More - The principles and components of database management systems.
- The main modelling techniques used in the construction of database systems.
- Implementation of databases using an object-relational database management system.
- SQL, the main relational database language.
- Object-Oriented database systems.
- Future trends, in particular information retrieval and data warehouses.
- To give an understanding of the purpose, features and facilities of database management systems.
- To give an understanding of the various database models, and their interrelationships.
- To give an understanding of, and practical experience of using, the relational database language SQL.
- Describe the facilities and features of database management systems.
- Construct database models from informal descriptions, and translate between such models.
- Implement, manipulate and query relational databases.
- Be aware of advanced database technologies.
- Describe relevant professional issues, including the role of the system administrator in DBMS use and management.
- Team working
- Written and oral communication
- Time management
- Problem solving
- Awareness of professional issues
- Algorithms and Data Structures in an OO Framework
-
Algorithms and Data Structures in an OO Framework
Algorithms are "ways of doing something", data structures are ways of combining collections of data to form a coherent whole. Many algorithms are about processing collections of data, an obvious example being to re-arrange a collection to put it in some sorted order. This module will introduce the basic concepts of algorithms and data structures expressed using the Java programming language.
Java is an object-oriented language, and the object-oriented style is recognised as a good way of both breaking down a program into coherent parts, and generalising these parts so they may be re-used in a variety of contexts. So this module introduces algorithms and data structures in an object-oriented framework. A key theme is the idea of "abstraction": being able to separate out the way a program component works in interaction with other components from what goes on underneath to make it work.
Modern programming is as much about using code already provided as APIs as it is about using the core constructs of programming languages. This module follows that by including material on using the algorithms and data structures provided as the "Java Collections Framework" as well as coding your own algorithms and data structures.
Effective use of an abstract code framework requires a good understanding of the complexities of inheritance and generic typing. These are covered in this module.
The module covers two tricky topics, mastery of which has long been acknowledged as the mark of a skilled programmer: recursion and linked structures. There is also some coverage of algorithm efficiency analysis.
The module is intended for those who have already covered the basics of programming, and wish to move on to use and develop their programming skills for designing and constructing components of programs of a larger scale.
Read More - Using and defining objects
- Recursion and iteration
- Data abstraction
- Constructive and destructive abstractions
- Sorting and searching
- Efficiency
- Linked structures
- Implementing collection types
- Inheritance and generic typing
- Generalised coding using interface types
- Java's Collection Framework
- DIFFERENTIAL EQUATIONS
-
DIFFERENTIAL EQUATIONS
Please see the School of Mathematical Science website for information regarding this module.
Read More - INTRODUCTION TO STATISTICS
-
INTRODUCTION TO STATISTICS
Please see the School of Mathematical Science website for information regarding this module.
Read More - Graphical User Interfaces
-
Graphical User Interfaces
Computers are tools that people interact with and through for work and pleasure. Nowadays computers are ubiquitous and are fundamental to all sorts of devices such as washing machines, cars, mobile phones, airplanes, televisions, and musical instruments. However, it is still very difficult to design user interfaces which are simple, intuitive, and easy to use you only have to look at the number of help books (e.g. the proliferation of books with titles such as 'the idiots guide to ') and courses to realise that designers often simply fail to make interfaces usable.
This course introduces you to basic concepts of psychology and communication which inform the way in which interfaces should be designed.
The course comprises lectures, problem classes, and lab sessions.
Lectures
The lectures teach you the basics of:
- Cognitive psychology principles relevant to the design of GUIs
- A framework of GUI design guidelines which you can use to inform and evaluate GUI design
- An introduction to techniques for analysing artefacts and situations to inform the design of suitable GUIs
- An iterative design process
- Evaluation techniques with users, heuristics, and models
- Interaction beyond the visual modality
The lectures are also used to outline coursework to be completed in the lab sessions, and to provide feedback and discussion opportunities about the coursework as it evolves.
Problem classes
Problem classes provide you with a chance to develop your Java skills in order to develop the complex interactivity required in the coursework.
Lab sessions
The lab sessions are a time for you to complete programming exercises set in the early part of the course, and coursework as the course progresses. Lab sessions are compulsory as they are used to assess your progress and to identify problems that you are having. Interesting ideas, and pertinent problems will be discussed in the following lecture.
Exercises
You will undertake exercises individually to help develop your Java Swing capabilities for the first third of the course.
Coursework
The majority of the lab time is for the coursework which is itself strongly linked to the lecture material. You will work in small teams to complete coursework which is composed of three parts:
- Design iterative design of a GUI to support the key requirement(s) you identified in the requirements capture stage.
- Implementation of interactive prototype.
- Evaluation you will evaluate your own prototype and another groups prototype using methods taught in the lecture.
- Cognitive psychology principles relevant to the design of GUIs
- A framework of GUI design guidelines which you can use to inform and evaluate GUI design
- An introduction to techniques for analysing artefacts and situations to inform the design of suitable GUIs
- An iterative design process
- Evaluation techniques with users, heuristics, and models
- Interaction beyond the visual modality
- Design iterative design of a GUI to support the key requirement(s) you identified in the requirements capture stage.
- Implementation of interactive prototype.
- Evaluation you will evaluate your own prototype and another groups prototype using methods taught in the lecture.
- be able to construct GUIs
- understand basic principles of psychology and communication which inform the design of GUIs
- understand how to analyse activities and situations to inform the design of suitable GUIs
- understand, and have experienced, an iterative design process
- be able to evaluate your own and other peoples GUI designs
- be able to reflect upon different design and techniques and to critique their applicability
- Preece, J., Rogers, Y. and Sharp, H. Interaction Design. John Wiley and Sons (2001)
- Benyon, D., Turner, P., and Turner, S. Designing Interactive Systems. Addison-Wesley (2004) [note that this is also useful for the Interaction Design course]
- Raskin, J. The Humane Interface. Addison-Wesley (2000)
- H. Thimblebly, User Interface Design, ACM Press (1990)
- Software Engineering Theory
-
Software Engineering Theory
Software Engineering is concerned with applying engineering principles to the production of software. This module provides the management principles, theoretical foundations, tools, notation and background necessary to develop and test large-scale software systems. The practical part of the module consists of lab assignments in which students use a range of relevant tools (a Java programming IDE, unit testing tool, configuration management tool, UML design tool, and project planning tool).
Read More - Understand the difference between programming-in-the-small and programming-in-the-large.
- Understand different software life-cycles, including how to deliver systems incrementally
- Understand and apply a range of project management techniques and tools, including planning, configuration management running effective meetings, and risk management
- Be able to use a Java IDE to develop and test programs. Understand the principles of object oriented design and UML and how to use a UML tool to document various aspects of their designs.
- Understand and apply basic software design patterns
- Understand the importance of software quality assurance and metrics, including a range of testing methods
- Be able to produce a range of documentation necessary for software systems.
- A range of interpersonal and communication skills
- A range of report writing skills, ranging from improving their technical report writing through to how to write up minutes of meetings
- Project management, time management and planning
- A range of problem solving skills
- How to arrange and conduct meetings
- A range of software documentation skills
- General office management IT skills (spreadsheets, word processing, presentation packages)
- Object oriented analysis and design
- Internet Protocols
-
Internet Protocols
This course examines the TCP/IP protocol suite from OSI layers 1 through to 4. Particular emphasis is placed on CSMA/CD LAN operation, Internet Protocol including Addressing, Routing and Subnetting and Transmission Control Protocol.
Read More - ALGEBRAIC STRUCTURES I
-
ALGEBRAIC STRUCTURES I
Please see the School of Mathematical Science website for information regarding this module.
Read More - CALCULUS III
-
CALCULUS III
Please see the School of Mathematical Science website for information regarding this module.
Read More
COMPLEX VARIABLES
Summary:Please see the School of Mathematical Science website for information regarding this module.
CONVERGENCE AND CONTINUITY
Summary:Please see the School of Mathematical Science website for information regarding this module.
Differential and Integral Analysis
Summary:Please see the School of Mathematical Science website for information regarding this module.
GEOMETRY II: KNOTS AND SURFACES
Summary:Please see the School of Mathematical Science website for information regarding this module.
NUMBER THEORY
Summary:Please see the School of Mathematical Science website for information regarding this module.
Database Systems
Summary:Introduction to databases and their language systems in theory and practice.The main topics covered by the course are:
There are 2 timetabled lectures a week, and 1 hour tutorial per week (though not every week). There will be timetabled laboratory sessions (2 hours a week) for approximately 10 weeks.
Credits:
15.0
Pre-requisites:
No formal prerequisites, but some experience of programming language(s), and an awareness of some aspects of operating systems and systems design.
Aims:
Objectives:
At the end of this course the student should be able to:
Core Skills:
Books:
Database systems, Elmasri and Navathe, 6th Edition,Addison-Wesley.
Database Systems, 5th or 4th ed, Thomas Connolly and Carolyn Begg, Addison Wesley.
On-line manuals for the relational database management system used for the practicals.
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Algorithms and Data Structures in an OO Framework
Summary:Algorithms are "ways of doing something", data structures are ways of combining collections of data to form a coherent whole. Many algorithms are about processing collections of data, an obvious example being to re-arrange a collection to put it in some sorted order. This module will introduce the basic concepts of algorithms and data structures expressed using the Java programming language.
Java is an object-oriented language, and the object-oriented style is recognised as a good way of both breaking down a program into coherent parts, and generalising these parts so they may be re-used in a variety of contexts. So this module introduces algorithms and data structures in an object-oriented framework. A key theme is the idea of "abstraction": being able to separate out the way a program component works in interaction with other components from what goes on underneath to make it work.
Modern programming is as much about using code already provided as APIs as it is about using the core constructs of programming languages. This module follows that by including material on using the algorithms and data structures provided as the "Java Collections Framework" as well as coding your own algorithms and data structures.
Effective use of an abstract code framework requires a good understanding of the complexities of inheritance and generic typing. These are covered in this module.
The module covers two tricky topics, mastery of which has long been acknowledged as the mark of a skilled programmer: recursion and linked structures. There is also some coverage of algorithm efficiency analysis.
The module is intended for those who have already covered the basics of programming, and wish to move on to use and develop their programming skills for designing and constructing components of programs of a larger scale.
Credits:
15.0
Pre-requisites:
The module assumes students have taken at least an introductory module in programming using Java, such as DCS100 Procedural Programming. It is also recommended to have taken a second module in Java covering the basic object-oriented aspects of the language, such as DCS104 Object Oriented Programming.
Aims:
Although the module centres on programming in Java, it moves towards the appreciation of programming as more than knowing the constructs of a particular programming language. It develops familiarity with common patterns of storing and manipulating data to solve problems, and the ability to choose or design appropriate patterns when faced with a new programming task. Appropriate here will mean both efficient in computer time and memory usage, and well structured for efficient use of programmers' time in maintenance and development.
Objectives:
Topics covered will include:
Core Skills:
A key aspect of the module is being able to describe algorithms clearly in English, and to understand the precise language used to describe algorithms. It also introduces the specialist vocabulary used to describe algorithms and data structures. In this way, it develops communication skills.
Problem-solving skills are at the heart of the module. It covers rigorous techniques for analysing problems and developing well-structured computer programs for solving them. It will enable you to explain and justify the choice of techniques used when building a computer program.
The module requires and develops self-discipline to progress through the examples used, and to complete exercises in time and learn from them. It introduces the idea of researching and making use of the code libraries provided with Java.
The module will further the professional development of students. Those who enjoy it and do well on it will be particularly suited to careers in software development. It also provides useful background knowledge for those working in other areas which use software. Its use of precision and the concept of abstraction will help more generally in developing clear patterns of thought.
Books:
Recommended purchase:
Paul T. Tymann and G. Michael Schneider 'Modern Software Development using Java' (2nd edition) Thomson ISBN-13: 978-14239-0123-5Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
DIFFERENTIAL EQUATIONS
Summary:Please see the School of Mathematical Science website for information regarding this module.
INTRODUCTION TO STATISTICS
Summary:Please see the School of Mathematical Science website for information regarding this module.
Graphical User Interfaces
Summary:Computers are tools that people interact with and through for work and pleasure. Nowadays computers are ubiquitous and are fundamental to all sorts of devices such as washing machines, cars, mobile phones, airplanes, televisions, and musical instruments. However, it is still very difficult to design user interfaces which are simple, intuitive, and easy to use you only have to look at the number of help books (e.g. the proliferation of books with titles such as 'the idiots guide to ') and courses to realise that designers often simply fail to make interfaces usable.
This course introduces you to basic concepts of psychology and communication which inform the way in which interfaces should be designed.
The course comprises lectures, problem classes, and lab sessions.
Lectures
The lectures teach you the basics of:
The lectures are also used to outline coursework to be completed in the lab sessions, and to provide feedback and discussion opportunities about the coursework as it evolves.
Problem classes
Problem classes provide you with a chance to develop your Java skills in order to develop the complex interactivity required in the coursework.
Lab sessions
The lab sessions are a time for you to complete programming exercises set in the early part of the course, and coursework as the course progresses. Lab sessions are compulsory as they are used to assess your progress and to identify problems that you are having. Interesting ideas, and pertinent problems will be discussed in the following lecture.
Exercises
You will undertake exercises individually to help develop your Java Swing capabilities for the first third of the course.
Coursework
The majority of the lab time is for the coursework which is itself strongly linked to the lecture material. You will work in small teams to complete coursework which is composed of three parts:
Credits:
15.0
Pre-requisites:
A good working knowledge of Java.
Good written skills would be useful.
Aims:
The course aims to teach the basics of designing graphic user interfaces and to provide some understanding of what makes interfaces appropriate for their intended use and audience.
Through self-directed learning students will learn techniques for the construction of graphic user interfaces.
Objectives:
At the end of the course you should:
Core Skills:
Communication skills
1 Communicate effectively in writing in a style appropriate to the situation(may include visual/graphic media where appropriate)
Examination, exercises, design studio and coursework test such skills.
2 Close read and synthesise information from extended documents including abstract ideas/ arguments to extract lines of reasoning
The recommended course reading list provides the material to develop these skills.
3 Understand, interpret and use specialist vocabulary
An understanding of the basic principles of psychology and communication which inform the design of GUIs is acquired.
4 Make an oral presentation
Groups evaluate and defend their own and evaluate another group's prototype in studio practice.
Working with others
5 Establish and maintain co-operative working relationships and agree ways to overcome difficulties
Courseworks are done in small teams and facilitates the development of these skills.
6 Plan and agree group objectives , responsibilities and working arrangements
Courseworks enable students to develop and practice the above skills.
7 Interact effectively and create opportunities for others to contribute to discussions; exchange information and ideas and modify responses
Courseworks enable students to develop and practice the above skills. Groups have to evaluate another group's prototype. Lectures provide feedback and discussion opportunities.
8 Review work with others , including factors that influence the outcome.
Courseworks enable students to develop and practice the above skills. Groups have to evaluate their own prototype.
Problem Solving
9 Explore the problem, identifying key areas and compare and choose the appropriate tools/ methods for its resolution (and be able to justify that choice)
Lab sessions are an important means for problem exploration and resolution and are used to monitor progress.
10 Plan and implement methods, review progress and revise as necessary
Individual exercises help develop programming capabilities, group coursework have progress monitored as milestones of development.
11 Apply agreed methods to check the problem has been resolved
Evaluation of own and peer prototypes using evaluation methods taught in lectures consolidates such skills.
Numeracy
12 Select and use numerical information and methods appropriate to the discipline
Courseworks require students to select between programme options design
13 Carry out multi-stage calculations, including those of a large data set
The iterative design process will test such a skill.
14 Explain and justify the choice of methods and the results of calculations
Justification of design choices are part of the assessment process
The use of information technology
15 Search and select appropriate information from a range of sources based on judgements of relevance and quality
Courseworks enable students to develop and practice the such skills in a group setting, with feedback from peers and assessors.
16 Use a software package to manage references
Not applicable
17 Use a range of methods to explore, develop and exchange information
Courseworks enable students to develop and practice such skills in a group setting.
Learning how to learn, (improving own learning and performance.)
18 Develop appropriate research strategies & take responsibility for learning with minimum direction
Identification of user requirements and iterative design of a GUI enhance such skills. Understand how to analyse activities and situations to inform the design of suitable GUIs.
19 Manage learning using available resources
Online and library resources are used to support this courses learning infrastructure.
20 Evaluate strengths and weaknesses, challenge received opinion and develop own criteria and judgement
Evaluation of own and peer prototypes using methods taught in lectures consolidates such skills which are evaluated in presentations.
Personal & professional development
21 Collect, record and analyse data relating to potential occupational areas
Professional context and importance of good GUI is stressed
22 Reflect on and record development of own career ideas
Not applicable
Books:
Good books to read in conjunction with this course are:
Other relevant books are:
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Software Engineering Theory
Summary:Software Engineering is concerned with applying engineering principles to the production of software. This module provides the management principles, theoretical foundations, tools, notation and background necessary to develop and test large-scale software systems. The practical part of the module consists of lab assignments in which students use a range of relevant tools (a Java programming IDE, unit testing tool, configuration management tool, UML design tool, and project planning tool).
Credits:
15.0
Pre-requisites:
First course in Java
Aims:
To ensure students have the necessary understanding of the principles and tools needed to build and test large-scale software systems. In particular, it provides the necessary background for students to undertake a significant group project assignment in subsequent modules or employment.
Objectives:
Core Skills:
Books:
Jia X, 'Object-Oriented Software Development Using Java, 2nd Edition' , Addison-Wesley Pub Co; ISBN: 0-201-73733-7, 2003
Horstmann C "Big Java", 2nd Edition, Wiley 2005, ISBN ISBN 0-471-69703-6
Internet Protocols
Summary:This course examines the TCP/IP protocol suite from OSI layers 1 through to 4. Particular emphasis is placed on CSMA/CD LAN operation, Internet Protocol including Addressing, Routing and Subnetting and Transmission Control Protocol.
Credits:
15.0
Pre-requisites:
ELE103
Aims:
The aim is to provide an in-depth knowledge of contemporary and widely-deployed Internet Protocols, providing the student with an insight into their functionality and inter-relationship. The material is sufficient to enable the student to design basic intranet and internet architectures, including both bridged and routed networks. Consideration is also given to different transport layer protocols to provide features not inherently present in the underlying network.
Objectives:
Explain the protocols that provide the Internet infrastructure, their role, how they operate and a number of implementation details. Design simple network architectures. Perform basic configuration and fault diagnosis in an Interior Gateway Routed environment using IOS-like scripts and utilities such as TCPDump, Ping and TraceRoute.
Books:
Internetworking with TCP/IP Vol 1: Principles, Protocols and Architecture by D. Comer; 5th Edition; Prentice Hall 2006; ISBN 0131876716
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
ALGEBRAIC STRUCTURES I
Summary:Please see the School of Mathematical Science website for information regarding this module.
CALCULUS III
Summary:Please see the School of Mathematical Science website for information regarding this module.
Year 3
- CRYPTOGRAPHY
-
CRYPTOGRAPHY
Please see the School of Mathematical Science website for information regarding this module.
Read More - Project
-
Project
Read More - High Performance Computing
-
High Performance Computing
The 12 week module involves 2 hours of timetabled lectures per week. Laboratory sessions are timetabled at 2 hours per week, normally spanning half the semester only. The course syllabus adopts a hands-on programming stance. In addition it focuses on algorithms and architectures to familiarise students with message-passing systems (MPI) as adopted by industry.
Parallel computing, which implies the simultaneous execution of several processes for solving a single problem, is a mainstream subject with wide ranging implications for computer architecture, algorithms design and programming. The UK has been at the forefront of this technology through its involvement in the development of several innovtive architectures. Queen Mary has been actively involved with Parallel Computing for more than a decade. In this course, students will be introduced to parallel computing and will gain first hand experience in relevant techniques.
Laboratory work will be based on the MPI (Message Passing Interfaces) standard, running on a network of PCs in the teaching laboratory.
The syllabus mirrors the recommended text book very closely. Other text-books are also listed below as sources of additional reading.
The course should be of interest to Computer Scientists and those following joint programmes (e.g. CS/Maths, CS/Stats). It is also suitable for Chemistry and Engineering students and all those who are concerned with the application of high performance parallel computing for their particular field of study e.g. Simulation of chemical Behaviour.
Read More - Introduction to parallel computers,
- Introduction to message-passing systems,
- Introduction to parallel programming strategies,
- Methods for load balancing,
- Issues surrounding shared memory programming,
- An examination of parallel processing for numerical (e.g. parallel sorting) and image processing.
- Interaction Design
-
Interaction Design
Traditionally, interactive systems design has focussed on enhancing people's efficiency or productivity. For example, to increase the speed with which tasks can be completed or to minimise the number of errors people make. Economic and social changes have led to a situation in which the primary use of many technologies is for social interaction and fun; i.e. in which there is no quantifiable output and no clear goal other than enjoyment. Computer games, mobile music players and online communities are all examples where the quality of the experience is the primary aim of the interaction.
This course explores the challenges these new technologies, and the industries they have created, present for the design and evaluation of interactive systems. It moves away from a human-computer interaction model which is too constrained for real world problems and provides students with an opportunity to engage with theories relating to cultural dynamics, social activity, and live performance. It explores the nature of engagement with interactive systems and between people when mediated by interactive systems.
Read More - establish the importance of social context, aesthetics and experience for interaction design
- analyse the impact of technology on human relationships and social organisation
- identify novel uses of technology to aid interaction, creativity, performance and engagement.
- provide analytic perspectives, tools and techniques that support design for user experience.
- provide experience of programming for interactional data
- To explain the contrast between conventional HCI and interaction design.
- To compare Ethnomethodology, Activity Theory and Distributed Cognition as approaches to the analysis of social context
- To provide a basic grounding in the phenomenological analysis of user experience
- To introduce concepts and models for human social interaction
- To introduce performance methods, concepts and techniques as an approach to design
- To build and exhibit an interesting interactive artifact
- Software Risk Assessment
-
Software Risk Assessment
The role of software is increasingly critical in our everyday lives and the accompanying risks of business or safety critical systems failure can be profound. This course will provide students with a framework for articulating and managing the risks inherent in the systems they will develop as practitioners. Likewise, students will learn how to build decision support tools for uncertain problems in a variety of contexts (legal, medical, safety), but with a special emphasis on software development. This course will make a distinctive offering that will enable our students to bring a principled approach to bear to analyse and solve uncertain and risky problems. Course contents: Quantification of risk and assessment: Bayesian Probability & Utility Theory, Bayes Theorem & Bayesian updating; Causal modelling using Bayesian networks with examples; Measurement for risk: Principles of measurement, Software metrics, Introduction to multi-criteria decision aids; Principles of risk management: The risk life-cycle, Fault trees, Hazard analysis; Building causal models in practice: Patterns, identification, model reuse and composition, Eliciting and building probability tables; Real world examples; Decision support environments.
Read More - Ability to quantify and reason about risk
- Ability to use in depth decision support tools
- Ability to analyse and design probabilistic risk models for a wide range of application areas
- Specific focus on software engineering risk
- Ability to reason about and control software engineering risk
- Quantify and reason about risk
- Ability to use in depth decision support tools
- C++ For Image Processing
-
C++ For Image Processing
This course gives students a practical introduction to C++ and uses this programming language to examine applications in low level image processing. Areas covered include image representation examining perception, sampling and display, and image transforms and image enhancement using point and spatial operations. Also considered are image processing methods such as convolution, frequency filtering and image restoration, compression and segmentation.
Read More - Control Systems
-
Control Systems
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Read More - Communication Systems Electronics
-
Communication Systems Electronics
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Read More - Distributed Systems and Security
-
Distributed Systems and Security
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Read More - Advanced Database Systems and Technology
-
Advanced Database Systems and Technology
Active Databases, database performance tuning and query optimisation, database administration and data dictionary, Databases for XML and XML query languages: DTD, model, native database, XPath, XQuery, mapping to object-relational DBMS; Data mining: the exploration of large quantities of data for the discovery of meaningful rules and knowledge; Distributed database architectures: client-server, distributed, federated; temporal-spatial and moving objects databases.
Read More - Artificial Intelligence
-
Artificial Intelligence
The course covers techniques used in Artificial Intelligence including agent modelling, problem formulation, search, logic, probability and machine learning.
Read More - Understanding of agent modelling;
- Understanding and practical experience of problem formulation;
- Understanding and practical experience of search-based problem solving;
- Understanding and practical experience of machine learning.
- Correctly formulate a problem for solution by an appropriate AI agent;
- Select and apply search techniques appropriate to a problem and its formulation;
- Explain how to perform automated classification of data;
- Explain the structure of a perceptron network, how to train it on data, and how to use it to predict data.
- Industrial and Professional Perspectives
-
Industrial and Professional Perspectives
This module is intended to equip students with a better understanding of the industrial and professional context of their subject area, to enable them to see more clearly the relevance of their studies, and to inspire them to become more proactive partners in both their studies and their subsequent career. It includes significant input from external industrialists and structured, themed opportunities for students to meet with them, as well as an integrating thread of academic content.
Read More - ALGEBRAIC STRUCTURES I
-
ALGEBRAIC STRUCTURES I
Please see the School of Mathematical Science website for information regarding this module.
Read More - CALCULUS III
-
CALCULUS III
Please see the School of Mathematical Science website for information regarding this module.
Read More - COMPLEX VARIABLES
-
COMPLEX VARIABLES
Please see the School of Mathematical Science website for information regarding this module.
Read More - LINEAR ALGEBRA I
-
LINEAR ALGEBRA I
Please see the School of Mathematical Science website for information regarding this module.
Read More - ALGEBRAIC STRUCTURES II
-
ALGEBRAIC STRUCTURES II
Please see the School of Mathematical Science website for information regarding this module.
Read More - ALGORITHMIC GRAPH THEORY
- Chaos and Fractals
-
Chaos and Fractals
Please see the School of Mathematical Science website for information regarding this module.
Read More - CODING THEORY
-
CODING THEORY
Please see the School of Mathematical Science website for information regarding this module.
Read More - COMBINATORICS
-
COMBINATORICS
Please see the School of Mathematical Science website for information regarding this module.
Read More - NUMBER THEORY
-
NUMBER THEORY
Please see the School of Mathematical Science website for information regarding this module.
Read More
CRYPTOGRAPHY
Summary:Please see the School of Mathematical Science website for information regarding this module.
Project
Credits:30.0
Extra Costs:
Particiapation of this module may require purchasing electronic components or other devices. A budget is provided, where this is necessary. The budget is sufficient to cover the cost of successfully completing the project. A student may choose to exceed the budget in which case the student would be liable to pay the difference between the budget limit and the cost of any components.
High Performance Computing
Summary:The 12 week module involves 2 hours of timetabled lectures per week. Laboratory sessions are timetabled at 2 hours per week, normally spanning half the semester only. The course syllabus adopts a hands-on programming stance. In addition it focuses on algorithms and architectures to familiarise students with message-passing systems (MPI) as adopted by industry.
Parallel computing, which implies the simultaneous execution of several processes for solving a single problem, is a mainstream subject with wide ranging implications for computer architecture, algorithms design and programming. The UK has been at the forefront of this technology through its involvement in the development of several innovtive architectures. Queen Mary has been actively involved with Parallel Computing for more than a decade. In this course, students will be introduced to parallel computing and will gain first hand experience in relevant techniques.
Laboratory work will be based on the MPI (Message Passing Interfaces) standard, running on a network of PCs in the teaching laboratory.
The syllabus mirrors the recommended text book very closely. Other text-books are also listed below as sources of additional reading.
The course should be of interest to Computer Scientists and those following joint programmes (e.g. CS/Maths, CS/Stats). It is also suitable for Chemistry and Engineering students and all those who are concerned with the application of high performance parallel computing for their particular field of study e.g. Simulation of chemical Behaviour.
Credits:
15.0
Pre-requisites:
DCS/100 Procedural Progrmming, DCS/104 Object Oriented Programming, (DCS/218 Operating Systems or DCS/200 Essential Networks and Operating Systems), or close equivalents to these.
Aims:
To introduce students to the paradigm of Parallel Computing, an awareness of its advantages and current limitations and facilitate the development of practical programming skills in a parallel computing environment
Objectives:
Students will gain an understanding and practical knowledge of:
Core Skills:
Parallel Programming, Modelling systems for High Performance computation, Developing and testing parallel algorithms.
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Interaction Design
Summary:Traditionally, interactive systems design has focussed on enhancing people's efficiency or productivity. For example, to increase the speed with which tasks can be completed or to minimise the number of errors people make. Economic and social changes have led to a situation in which the primary use of many technologies is for social interaction and fun; i.e. in which there is no quantifiable output and no clear goal other than enjoyment. Computer games, mobile music players and online communities are all examples where the quality of the experience is the primary aim of the interaction.
This course explores the challenges these new technologies, and the industries they have created, present for the design and evaluation of interactive systems. It moves away from a human-computer interaction model which is too constrained for real world problems and provides students with an opportunity to engage with theories relating to cultural dynamics, social activity, and live performance. It explores the nature of engagement with interactive systems and between people when mediated by interactive systems.
Credits:
15.0
Pre-requisites:
GUI or Interactive System Design or by arrangement with course leader.
Good java/general programming skills.
Aims:
This course aims to:
Objectives:
Core Skills:
Communication skills
1 Communicate effectively in writing in a style appropriate to the situation (may include visual/graphic media where appropriate)
Examination, exercises, and coursework test such skills.
2 Close read and synthesise information from extended documents including abstract ideas/ arguments to extract lines of reasoning
The recommended course reading list provides the material to develop these skills.
3 Understand, interpret and use specialist vocabulary
An understanding of the basic principles of psychology, sociology, and ethnomethodology is acquired.
4 Make an oral presentation
There is scope for students to present and discuss work orally in lectures.
Working with others
5 Establish and maintain co-operative working relationships and agree ways to overcome difficulties
N/A
6 Plan and agree group objectives , responsibilities and working arrangements
N/A
7 Interact effectively and create opportunities for others to contribute to discussions; exchange information and ideas and modify responses
Courseworks enable students to develop and practice the above skills. Lectures provide feedback and discussion opportunities. In addition there is scope for students to present work and engage in discussion about the topics covered
8 Review work with others, including factors that influence the outcome.
Courseworks enable students to develop and practice the above skills, as does critical reflection in the lectures.
Problem Solving
9 Explore the problem, identifying key areas and compare and choose the appropriate tools/ methods for its resolution (and be able to justify that choice)
N/A
10 Plan and implement methods, review progress and revise as necessary
N/A
11 Apply agreed methods to check the problem has been resolved
N/A
Numeracy
12 Select and use numerical information and methods appropriate to the discipline
Courseworks require students to select between different analytic approaches.
13 Carry out multi-stage calculations, including those of a large data set
N/A
14 Explain and justify the choice of methods and the results of calculations
Justification of approach are part of the assessment process
The use of information technology
15 Search and select appropriate information from a range of sources based on judgements of relevance and quality
Courseworks enable students to develop and practice the such skills in a group setting, with feedback from peers and assessors.
16 Use a software package to manage references
N/A
17 Use a range of methods to explore, develop and exchange information
N/A
Learning how to learn, (improving own learning and performance.)
18 Develop appropriate research strategies & take responsibility for learning with minimum direction
Coursework is self-directed with students selecting from a range of open ended possibilities.
19 Manage learning using available resources
Online and library resources are used to support this course's learning infrastructure.
20 Evaluate strengths and weaknesses, challenge received opinion and develop own criteria and judgement
Coursework involves critical reflection on their own, and other's work using approaches covered in the course.
Personal & professional development
21 Collect, record and analyse data relating to potential occupational areas
N/A
22 Reflect on and record development of own career ideas
N/A
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Software Risk Assessment
Summary:The role of software is increasingly critical in our everyday lives and the accompanying risks of business or safety critical systems failure can be profound. This course will provide students with a framework for articulating and managing the risks inherent in the systems they will develop as practitioners. Likewise, students will learn how to build decision support tools for uncertain problems in a variety of contexts (legal, medical, safety), but with a special emphasis on software development. This course will make a distinctive offering that will enable our students to bring a principled approach to bear to analyse and solve uncertain and risky problems. Course contents: Quantification of risk and assessment: Bayesian Probability & Utility Theory, Bayes Theorem & Bayesian updating; Causal modelling using Bayesian networks with examples; Measurement for risk: Principles of measurement, Software metrics, Introduction to multi-criteria decision aids; Principles of risk management: The risk life-cycle, Fault trees, Hazard analysis; Building causal models in practice: Patterns, identification, model reuse and composition, Eliciting and building probability tables; Real world examples; Decision support environments.
Credits:
15.0
Pre-requisites:
Students need to have passed: DCS/235 Software Engineering, or equivalent, and some exposure to introductory statistics (E.g. A level)
Aims:
The role of software is increasingly critical in our everyday lives and the accompanying risks of business or safety critical systems failure can be profound. This course will provide students with a framework for articulating and managing the risks inherent in the systems they will develop as practitioners. Likewise, students will learn how to build decision support tools for uncertain problems in a variety of contexts (legal, medical, safety), but with a special emphasis on software development. This course will make a distinctive offering that will enable our students to bring a principled approach to bear to analyse and solve uncertain and risky problems.
Objectives:
Core Skills:
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
C++ For Image Processing
Summary:This course gives students a practical introduction to C++ and uses this programming language to examine applications in low level image processing. Areas covered include image representation examining perception, sampling and display, and image transforms and image enhancement using point and spatial operations. Also considered are image processing methods such as convolution, frequency filtering and image restoration, compression and segmentation.
Credits:
15.0
Pre-requisites:
DCS100, DCS104
Aims:
The main purpose of this course is to provide an introduction to basic concepts and methodologies for digital image processing.
Objectives:
Be able to use the C++ programming language Be able to implement low level image processing algorithms. Understand image file formats Implement contrast enhancement by histogram manipulation Know frequency domain transform methods Use filtering algorithms for image smoothing and sharpening
Core Skills:
This course will help students develop a range of skills such as problem solving through exercises and courseworks of increasing difficulty, written and oral communication skills and will improve their skills in working with others fostered through justification of their own approaches and choices in discussions with teaching assistants and other fellow students.
Books:
Text books: Digital Image Processing (2nd Edition), by Rafael C. Gonzalez, and Richard E. Woods, 793 pages, Prentice Hall, 2002, ISBN: 0201180758. C++: The Complete Reference, (4th Edition), by Herbert Schildt, 1056 pages, McGraw-Hill Osborne Media, 2002, ISBN: 0072226803. Reading: Digital Image Processing using MATLAB, by Rafael C. Gonzalez, and Richard E. Woods, 793 pages, Prentice Hall, 2002, ISBN: 0201180758. Simplified Approach to Image Processing, A: Classical and Modern Techniques in C, by Randy Crane, (Hewlett-Packard Professional Books), 336 pages, Prentice Hall, 1996, ISBN: 0-13-226416-1 Fundamentals of Digital Image Processing, by Anil K. Jain, 592 pages, Prentice Hall, 1988, ISBN: 0133361659. Algorithms for Image Processing and Computer Vision, by J. R. Parker, 432 pages(with CD-ROM), John Wiley & Sons, 1996, ISBN: 0471140562.
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
Control Systems
Summary:New module under development for 2012/13. Information pertaining to this module will appear once approved.
Credits:
15.0
Aims:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Objectives:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Core Skills:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Extra Costs:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Communication Systems Electronics
Summary:New module under development for 2012/13. Information pertaining to this module will appear once approved.
Credits:
15.0
Aims:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Objectives:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Core Skills:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Extra Costs:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Distributed Systems and Security
Summary:New module under development for 2012/13. Information pertaining to this module will appear once approved.
Credits:
15.0
Aims:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Objectives:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Core Skills:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Extra Costs:
New module under development for 2012/13. Information pertaining to this module will appear once approved.
Advanced Database Systems and Technology
Summary:Active Databases, database performance tuning and query optimisation, database administration and data dictionary, Databases for XML and XML query languages: DTD, model, native database, XPath, XQuery, mapping to object-relational DBMS; Data mining: the exploration of large quantities of data for the discovery of meaningful rules and knowledge; Distributed database architectures: client-server, distributed, federated; temporal-spatial and moving objects databases.
Credits:
15.0
Pre-requisites:
DCS225 Database Systems (or equivalent module): NB Students who have already taken and passed DCS317 at undergraduate level 3 may not take this masters version.
Aims:
To provide students with a critical understanding of the models, architectures and language approaches underpinning recent advances in database technology.
To enable students to carry out critical comparisons between different development and implementation approaches.
To illustrate the application of extended database technology across a range of interesting and complex applications.
Objectives:
To be able to describe approaches to the storage and access of text and semi-structured data
To describe different architectures for the provision of distributed and mobile database technology
To discuss and apply techniques for tuning the performance of database schemas and queries To compare different approaches to data mining. To discuss concepts in the design of temporal, spatial and moving objects databases.
Critically evaluate the appropriateness of different approaches to database management problems in the areas outlined above.
Core Skills:
Group working, written communication, literature research, analytical problem solving.
Artificial Intelligence
Summary:The course covers techniques used in Artificial Intelligence including agent modelling, problem formulation, search, logic, probability and machine learning.
Credits:
15.0
Aims:
This module aims to supply the following knowledge and skills:
Objectives:
Books:
Russell & Norvig: Artificial Intelligence: A modern Approach (any edition)
Industrial and Professional Perspectives
Summary:This module is intended to equip students with a better understanding of the industrial and professional context of their subject area, to enable them to see more clearly the relevance of their studies, and to inspire them to become more proactive partners in both their studies and their subsequent career. It includes significant input from external industrialists and structured, themed opportunities for students to meet with them, as well as an integrating thread of academic content.
Credits:
15.0
Extra Costs:
There are no additional costs to study this module, unless you exceed your print credit and choose to purchase additional print credit.
ALGEBRAIC STRUCTURES I
Summary:Please see the School of Mathematical Science website for information regarding this module.
CALCULUS III
Summary:Please see the School of Mathematical Science website for information regarding this module.
COMPLEX VARIABLES
Summary:Please see the School of Mathematical Science website for information regarding this module.
LINEAR ALGEBRA I
Summary:Please see the School of Mathematical Science website for information regarding this module.
ALGEBRAIC STRUCTURES II
Summary:Please see the School of Mathematical Science website for information regarding this module.
Chaos and Fractals
Summary:Please see the School of Mathematical Science website for information regarding this module.
CODING THEORY
Summary:Please see the School of Mathematical Science website for information regarding this module.
COMBINATORICS
Summary:Please see the School of Mathematical Science website for information regarding this module.
NUMBER THEORY
Summary:Please see the School of Mathematical Science website for information regarding this module.
Careers
This programme opens excellent opportunities within the financial industry, such as investment banking, insurance and financial auditing. Possible roles for graduates include data analyst, actuarial manager, data modeller, statistical analyst, analyst consultant, data architect, technical project manager and auditor.
Entry Requirements
Specific Condition(s): A-level or equivalent Mathematics.
Student Projects
Robot fencing
This project involved the building of two robots who fenced with each other.
Read moreRobot fencing
Key Contacts
Undergraduate Admissions Administrator
Student Voices
Nuzhah Gooda Sahib
BSc Computer Science"Being an international student from Mauritius, I couldn’t come to visit the university before accepting my offer. I chose Queen Mary mainly because of the degree programme – it had the right combination of computer science and business modules that I wanted together with on-campus accommodation. It is very convenient to live a few minutes from lectures. Queen Mary is diverse – there are people from all over the world. It’s just a very enriching experience."
Read moreNuzhah Gooda Sahib
Being an international student from Mauritius, I couldn’t come to visit the university before accepting my offer. I chose Queen Mary mainly because of the degree programme – it had the right combination of computer science and business modules that I wanted together with on-campus accommodation. It is very convenient to live a few minutes from lectures. Queen Mary is diverse – there are people from all over the world. It’s just a very enriching experience.
The best thing about a joint programme like the BSc Computer Science with Business Management and Accounting is that it gives you the opportunity of being involved in two departments. It’s challenging but very interesting. Another great thing about it is that you get to meet loads of different people. Our lecturers are very involved in their own research groups and it’s very interesting to hear them talk about their pioneering research.
There are plenty of spaces at Queen Mary for socialising and there is no lack of places to relax between lectures. Our campus has several eating outlets and coffee shops. The new health and fitness centre provides another way to spend time. For some place a little quieter, Regent’s Canal runs through the campus and it’s a good place to sit on a nice, warm day.
The library provides a wide range of resources necessary for doing well on your degree programme, including books, journals, computers and printers. The 24/7 opening hours during revision and exam time is a blessing. The ‘Level One’ study area, which is appropriate for group study and teamwork, provides a very relaxed environment.
Like most computer science students, my favourite place on campus is the Informatics Teaching Laboratory (ITL). It is a building exclusively for the School’s students and it has the computers and software needed for our work. Whether an undergraduate or a master’s student, it’s the place where we spend most of our days. In fact, the first thing I do when I get to campus is go to the ITL to see who else is around.
Last academic year I was involved in PASS (Peer Assisted Study Support) in the department. This is a voluntary scheme aimed at helping first year students to settle in university life and also to cope with the challenges involved with studies in computer science. I have really enjoyed this experience and feel that it’s worthwhile to help first year students. Also, as the scheme is run in other departments too the inter-departmental meetings allowed me to meet other people. The training programme provided useful careers advice on CV building, presentations and teamwork.
The most interesting – and most difficult – part of my degree has been the software engineering project in my second year. It involved a group project to build two card games. The project lasted for the year and was aimed at simulating a real work environment with deadlines and deliverables. Looking back now, I can say it was a very enriching experience as it taught me things I that will be really useful in my future career.

