production
Skip to Content

Undergraduate Computing Science 2014-2015

CS1022: COMPUTER PROGRAMMING AND PRINCIPLES

15 credits

Level 1

First Sub Session

Students will be exposed to the basic principles of computer programming, e.g. fundamental programming concepts, algorithms, and maths (e.g. logic, set theory, graphs).  The course consists of lectures where the principles are systematically developed; as the course does not presuppose knowledge of these principles, we start from basic intuitions.  In addition to the lectures, there will be weekly practicals to work with the concepts.  Understanding the principles behind computer programming gives one the framework to learn new programming concepts, adapt to changing circumstances, and engage in theoretical research in Computing Science.




CS1024: GRAND CHALLENGES OF COMPUTING AND ARTIFICAL INTELLIGENCE

15 credits

Level 1

First Sub Session

This course is aimed at people who want to learn the basics about the major problems that need to be solved to enable computers to be more useful companions in our daily lives, e.g. to get them to be able to understand our normal speech when we talk to them, or to be able to see and recognise the important objects in the world, or to be able to act as a helper in the home, like a robotic maid that could cook and clean.

CS1025: WEB APPLICATION DEVELOPMENT

15 credits

Level 1

First Sub Session

This course will introduce you to programming and software development for the Web using the object-oriented scripting language Ruby. It will teach you how to develop software that underpins database-driven interactive Web and cloud applications, and give you a broad knowledge of the basics needed for professional software development such as testing and version control. The course uses examples based on real world applications. You will also learn a limited range of core theoretical concepts such as structured programming, variable declaration, conditional statements, iterative constructs, object-oriented programming and meta-programming.




CS1026: WEB APPLICATION DEVELOPMENT (DISTANCE LEARNING)

15 credits

Level 1

First Sub Session

This course will introduce you to programming and software development for the Web using the object-oriented scripting language Ruby. It will teach you how to develop software that underpins database-driven interactive Web and cloud applications, and give you a broad knowledge of the basics needed for professional software development such as testing and version control. The course uses examples based on real world applications. You will also learn a limited range of core theoretical concepts such as structured programming, variable declaration, conditional statements, iterative constructs, object-oriented programming and meta-programming.

CS1520: COMPUTER ARCHITECTURE

15 credits

Level 1

Second Sub Session

Beginning with digital logic gates and progressing to the design of combinational and sequential circuits, this course use these fundamental building blocks as the basis for what follows: the design of an actual MIPS microprocessor. In addition, students will get hands on experience on programming Intel 8086 assembly language which is the inner language spoken by the processor. By the end of the course, students will have a top-to-down understanding of how a micropressor works. The course is taught without prerequisites; students are taught with plenty of exercises from lectures, tutorials, practical and tests every week. 




CS1522: WEB TECHNOLOGY

15 credits

Level 1

Second Sub Session

This course will be of interest to anyone who wishes to develop a Web presence. It will touch on several of the fundamental technologies associated with the Web and will give you the opportunity to build an interactive Website with the knowledge gleaned. In addition to developing a broad knowledge of the principles associated with good Web design and Website management and accessibility, you will enhance your understanding of a limited range of core technologies including XHTML, CSS, JavaScript, DOM and PHP.



CS1524: WEB APPLICATION DEVELOPMENT (DISTANCE LEARNING)

15 credits

Level 1

Second Sub Session

This course will introduce you to programming and software development for the Web using the object-oriented scripting language Ruby. It will teach you how to develop software that underpins database-driven interactive Web and cloud applications, and give you a broad knowledge of the basics needed for professional software development such as testing and version control. The course uses examples based on real world applications. You will also learn a limited range of core theoretical concepts such as structured programming, variable declaration, conditional statements, iterative constructs, object-oriented programming and meta-programming.

CS1525: WEB APPLICATION DEVELOPMENT

15 credits

Level 1

Second Sub Session

This course will introduce you to programming and software development for the Web using the object-oriented scripting language Ruby. It will teach you how to develop software that underpins database-driven interactive Web and cloud applications, and give you a broad knowledge of the basics needed for professional software development such as testing and version control. The course uses examples based on real world applications. You will also learn a limited range of core theoretical concepts such as structured programming, variable declaration, conditional statements, iterative constructs, object-oriented programming and meta-programming.




CS2009: THE ELECTRONIC SOCIETY

15 credits

Level 2

First Sub Session

The course is primarily about the bidirectional interaction between new electronic technologies and changes in our society, addressing questions such as: What impact do E-Technologies have on society? What are the human factors involved in engaging in the electronic society? What is the impact of the electronic society on organisations? An overview of sectors: E-Commerce, E-Health, E-Learning, E-Governance, etc., and issues: Legal & ethical, security, privacy, intellectual property, software failure, digital divide. The course will study how societies and organisations must change to best utilise emerging technologies, and problems that arise.

CS2012: ADVANCED WEB APPLICATION DEVELOPMENT

15 credits

Level 2

First Sub Session

This course builds on the previous course so that you can build more complex database driven web applications using a suitable framework to guide you. This also continues to round out your computing science craftsmanship skills with more emphasis on learning appropriate practices such as version source control, testing and group collaboration, so that you can build good habits, which will help your further during your degree.

CS2013: MATHEMATICS FOR COMPUTING SCIENCE

15 credits

Level 2

First Sub Session

This course provides a basic-level introduction to some areas of Discrete Mathematics that are of particular relevance to Computing. The course starts with a simple introduction to formal languages (starting from Regular Expressions and Finite-State Automata); it continues with an introduction to Predicate Logic (assuming basic familiarity with Propositional Logic); it concludes with an introduction to probability, focussing on Bayesian reasoning.



CS2014: ADVANCED WEB APPLICATION DEVELOPMENT (DISTANCE LEARNING)

15 credits

Level 2

First Sub Session

This course builds on the previous course so that you can build more complex database driven web applications using a suitable framework to guide you. This also continues to round out your computing science craftsmanship skills with more emphasis on learning appropriate practices such as version source control, testing and group collaboration, so that you can build good habits, which will help your further during your degree.

CS2015: DATA MANAGEMENT

15 credits

Level 2

First Sub Session

This course will be of interest to anyone who wishes to learn to design and query databases using MSAccess, MySQL and MongoDB. The course aims to teach the material using case studies from real-world applications both in lectures and lab classes. You will develop a broad knowledge about database connectivity using JDBC, PHP and Ruby. You will also learn core theoretical concepts such as relational algebra, file organisation and indexing. At the end of this course you will be able to design and build Web and cloud-based databases and have a broad awareness and understanding of how database-driven applications operate.



CS2506: HUMAN COMPUTER INTERACTION

15 credits

Level 2

Second Sub Session

This course looks at why a computer system that interacts with human beings needs to be usable. It covers a set of techniques that allow usability to be taken into account when a system is designed and implemented, and also a set of techniques to assess whether usability has been achieved. Weekly practical sessions allow students to practice these techniques. The assessed coursework (which is normally carried out by groups of students) gives an opportunity to go through the design process for a concrete computer system, with a particular focus on ensuring usability.




CS2510: MODERN PROGRAMMING LANGUAGES

15 credits

Level 2

Second Sub Session

The course will touch on a wide variety of languages, both past and present, with an emphasis on imperative, functional, object oriented and logical paradigms.  Rather than dwell on the features of any particular language, we will focus instead on fundamental concepts, the key characteristics of successful language, the main features in programming languages, the different types of programming execution and patterns of problem-solving.

You will gain practical experience with each programming paradigm to choose between alternative ways and figure out how to do things in languages that don't support them explicitly.





CS2512: ADVANCED WEB APPLICATION DEVELOPMENT

15 credits

Level 2

Second Sub Session

This course builds on the previous course so that you can build more complex database driven web applications using a suitable framework to guide you. This also continues to round out your computing science craftsmanship skills with more emphasis on learning appropriate practices such as version source control, testing and group collaboration, so that you can build good habits, which will help your further during your degree.



CS2514: ADVANCED WEB APPLICATION DEVELOPMENT (DISTANCE LEARNING)

15 credits

Level 2

Second Sub Session

This course builds on the previous course so that you can build more complex database driven web applications using a suitable framework to guide you. This also continues to round out your computing science craftsmanship skills with more emphasis on learning appropriate practices such as version source control, testing and group collaboration, so that you can build good habits, which will help your further during your degree.

CS2521: ALGORITHMIC PROBLEM SOLVING

15 credits

Level 2

Second Sub Session

This course provides the knowledge needed to understand, design and compare algorithms.  By the end of the course, a student should be able to create or adapt algorithms to solve problems, determine an algorithm's efficiency, and be able to implement it. The course also introduces the student to a variety of widely used algorithms and algorithm creation techniques, applicable to a range of domains. The course will introduce students to concepts such as pseudo-code and computational complexity, and make use of proof techniques as well as the student’s programming skills.





CS3017: ADAPTIVE INTERACTIVE SYSTEMS

15 credits

Level 3

First Sub Session

"Adaptation" in Computing Science refers to the process by which systems modify their behaviour based on the user and environment. At the core of this course is a collection of influential representations and algorithms for modelling users and the environment to enable adaptation. The course will cover algorithms for Recommender Systems, used to personalise product recommendations, and for Personalised Information Retrieval, used to deliver search results personalised for users and their context. The course will also cover current and future ideas for adaptive systems, such as Ambient Intelligence, where similar techniques are integrated into the real world using sensor networks.



CS3022: BUSINESS AND INDUSTRIAL APPLICATIONS OF IT (SHORT PLACEMENT)

15 credits

Level 3

First Sub Session


Students registered for Honours and Joint Honours degree programmes offered by Computing Science can take up short-term placements / internships with companies (1 month). Students are required to successfully complete an internship, submit a final report and give an oral presentation.

CS3024: SOFTWARE ENGINEERING AND PROFESSIONAL ISSUES

30 credits

Level 3

First Sub Session

The CS3024 module tackles the technical, the organisational, and the wider professional aspects of large software systems analysis, design, and development, as well as other issues relating to software development, including software quality assurance and testing.

The practical component allows students to apply the knowledge gained during the various 'teaching' sessions (lectures, discussions, orienteering, Q&A) as a member of a software project team. While the core emphasis of the module is on the principles of Software Engineering and, even more importantly, on Software Engineering practice, a range of relevant professional topics are explicitly focused on.



CS3025: KNOWLEDGE BASED SYSTEMS

15 credits

Level 3

First Sub Session

Knowledge Representation (KR) is concerned with how knowledge can be represented symbolically and manipulated in an automated way by reasoning programs. In fact, KR has long been considered central to AI because it is a significant factor in determining the success of knowledge-based systems.

This course describes the formalisation of knowledge and its use in knowledge-based systems. It follows the whole "life-cycle" of knowledge, from the initial identification of relevant expertise, through its capture, representation (in ontology and /or rule languages), use (based on reasoning), evaluation, and reuse.





CS3026: OPERATING SYSTEMS

15 credits

Level 3

First Sub Session

This course discusses core concepts and architectures of operating systems, in particular the management of processes, memory and storage structures. Students will learn about the scheduling and operation of processes and threads, problems of concurrency and means to avoid race conditions and deadlock situations. The course will discuss virtual memory management, file systems and issues of security and recovery. In weekly practical session, students will gain a deeper understanding of operating system concepts with verious programming exercises.




CS3027: ROBOTICS - AI MEETS REALITY

15 credits

Level 3

First Sub Session

This course surveys many of the core problems of robotics, and their solutions. By the end of the course, a student should be able to program robots that move in predictable ways, overcoming environmental uncertainties; that can interpret their surroundings; and that can plan their motion in order to achieve goals. Topics covered include robot motion; image processing and computer vision; localisation methods and computer based search and planning. Apart from using programming skills to implement robot algorithms, the students will learn how to mathematically model robots in order to understand why robot algorithms are designed as they are.




CS3518: LANGUAGES AND COMPUTABILITY

15 credits

Level 3

Second Sub Session

This course provides a basic-level introduction to computability via the notion of a Turing Machine. Some familiarity with imperative programming (e.g., in JAVA) and with the basics of set theory (e.g., the notion of a bijection) is assumed. The Functional language Haskell (familiar from earlier courses, including CS2013) is used to explore the concepts of infinity, recognisability and decidability, which are crucial to computability.



CS3522: BUSINESS AND INDUSTRIAL APPLICATIONS OF IT (SHORT PLACMENT)

15 credits

Level 3

Second Sub Session


Students registered for Honours and Joint Honours degree programmes offered by Computing Science can take up short-term placements / internships with companies (1 month). Students are required to successfully complete an internship, submit a final report and give an oral presentation.

CS3524: DISTRIBUTED SYSTEMS AND SECURITY

15 credits

Level 3

Second Sub Session

This course discusses core concepts of distributed systems, such as programming with distributed objects, multiple threads of control, multi-tire client-server systems, transactions and concurrency control, distributed transactions and commit protocols, and fault-tolerant systems. The course also discusses aspects of security, such as cryptography, authentication, digital signatures and certificates, SSL etc. Weekly practical sessions cover a set of techniques for the implementation of distributed system concepts such as programming with remote object invocation, thread management and socket communication.






CS3525: ENTERPRISE COMPUTING AND BUSINESS

15 credits

Level 3

Second Sub Session

This course provides insight into the business reasons for large software systems such as loyalty card systems, backend systems integrating firms and their suppliers and larges systems that integrate payroll, finance and operational parts of a business. You also learn the entrepreneurial aspects of business during the practical sessions where you explore and develop your own business application idea using service design and lean startup approaches centred around customer development, which you will find useful in any future work. This course is open to anyone across the university and requires no programming experience.




CS3901: BUSINESS AND INDUSTRIAL APPLICATIONS OF IT (SUMMER PLACEMENT)

30 credits

Level 3

Second Sub Session

Students registered for Honours and Joint Honours degree programmes offered by Computing Science can take up short-term summer placements / internships with companies (3 months). Students are required to successfully complete an internship, submit a final report and give an oral presentation.

CS3922: BUSINESS AND INDUSTRIAL APPLICATIONS OF IT (SHORT PLACEMENT)

15 credits

Level 3

Second Sub Session


Students registered for Honours and Joint Honours degree programmes offered by Computing Science can take up short-term placements / internships with companies (1 month). Students are required to successfully complete an internship, submit a final report and give an oral presentation.

CS4025: NATURAL LANGUAGE PROCESSING

15 credits

Level 4

First Sub Session

Natural Language Processing (NLP) is an influential topic that relates to Artificial Intelligence, Linguistics and Human Computer Interaction. NLP engineers are in high demand at companies such as Google, Facebook, Twitter, Yahoo and Microsoft that require sophisticated analysis of text on the internet. This course covers a range of theoretical and applied topics related to how computers interpret human language, and also how computers can generate human language; for example, to summarise data. Topics include grammar formalisms and algorithms for parsing sentences, natural language semantics, text analytics using sentiment analysis, machine translation, grammar checking and natural language generation from data.

CS4027: PEER-TO-PEER AND AGENT-BASED COMPUTING

15 credits

Level 4

First Sub Session

Students will be exposed to theories, techniques, and technologies related with peer-to-peer and agent-based computing. The course consists of a series of lectures where theories and techniques will be presented; we also have weekly hands-on practicals where students will be exposed to various technologies. Knowledge of peer-to-peer and agent-based computing is most valuable when designing large-scale distributed systems.


CS4038: DATA MINING AND VISUALIZATION

15 credits

Level 4

First Sub Session

This course aims to make students familiar with basic data mining and visualisation techniques and software tools. Students will learn how to analyse complex datasets by applying data pre-processing, exploration, clustering and classification, time series analysis, and many other techniques. This course will also cover text mining and qualitative modelling. Through this course students will be able to analyse real-world datasets in various domains and discover novel patterns from them. This course is particularly suitable for those who are interested in working as data analysts or data scientists in the future.



CS4040: RESEARCH METHODS

15 credits

Level 4

First Sub Session

Does this new algorithm improve query performance? Will this protocol ensure our system is robust to attack? How does response time vary with server load? Understanding behaviour – the performance of a task by a computing system in an environment – is critical in both industrial and scientific practice. In this course, you will conduct an individual research project into the behaviour of a computing system. You will develop knowledge and understanding of rigorous methods to: explore computing system behaviour; identify questions about behaviour; design experiments to answer those questions; analyse experimental results; and report on the outcomes of your research.




CS4046: SEMANTIC WEB ENGINEERING

15 credits

Level 4

First Sub Session

The World Wide Web (WWW) has become a major part of many people's lives. The Semantic Web is an evolving development of the World Wide Web in which the meaning (semantics) of information and services on the web is defined, making it possible for the web to understand and satisfy the requests of people and machines to use the web content. The goal of the course is to introduce advanced techniques for Web 1.0 (XML and XML Schema), Web 2.0 (AJAX and mashups) and Web 3.0 (RDF, OWL, microformats and microdata). It also covers some data exploitation techniques.

CS4047: COMPUTATIONAL INTELLIGENCE

15 credits

Level 4

First Sub Session

Computational Intelligence covers a wide range of issues that developed in parallel with, or in competition to, symbolic AI. The major constituents of the field are bio-inspired computing – which deals with an ever expanding number of biologically related techniques – and fuzzy logic – which deals with reasoning under conditions of vagueness. In this course we will explore a number of topics that are core to Computational Intelligence (e.g. neural nets and evolutionary computing) and these will lead into some state-of-the-art approaches (such as fuzzy model-based reasoning and learning).




CS4092: SINGLE HONOURS ERASMUS COMPUTING PROJECT (E2)

90 credits

Level 4

First Sub Session

The student will undertake a project under the supervision of teaching staff in the department. The project will require creativity, analytical and practical skills. A major component of the project is its presentation, both written and oral.

CS4093: SINGLE HONOURS ERASMUS COMPUTING PROJECT (E3)

60 credits

Level 4

First Sub Session

The student will undertake a project under the supervision of teaching staff in the department. The project will require creativity, analytical and practical skills. A major component of the project is its presentation, both written and oral.

CS4525: JOINT HONOURS COMPUTING PROJECT

30 credits

Level 4

Second Sub Session

Consists of a supervised project which provides experience of investigating a real problem in computing science, or a computing application/technology. Presenting the results obtained is an integral part of the investigation.

CS4527: SINGLE HONOURS COMPUTING PROJECT

45 credits

Level 4

Second Sub Session

Consists of a supervised project which provides experience of investigating a real problem in computing science, or a computing application/technology. Presenting the results obtained is an integral part of the investigation.

CS4593: SINGLE HONOURS ERASMUS COMPUTING PROJECT (E4)

60 credits

Level 4

Second Sub Session

The student will undertake a project under the supervision of teaching staff in the department. The project will require creativity, analytical and practical skills. A major component of the project is its presentation, both written and oral.

CS4594: SINGLE HONOURS ERASMUS COMPUTING PROJECT

60 credits

Level 4

Second Sub Session

Consists of a supervised project which provides experience of investigating a real problem in computing science, or a computing application/technology. Presenting the results obtained is an integral part of the investigation.

CS4904: SINGLE HONOURS ERASMUS COMPUTING PROJECT E1

120 credits

Level 4

Second Sub Session

Consists of a supervised project which provides experience of investigating a real problem in computing science, or a computing application/technology. Presenting the results obtained is an integral part of the investigation.

CS4993: SINGLE HONOURS ERASMUS COMPUTING PROJECT (E5)

60 credits

Level 4

Second Sub Session

The student will undertake a project under the supervision of teaching staff in the department. The project will require creativity, analytical and practical skills. A major component of the project is its presentation, both written and oral.

CS4999: SINGLE HONOURS ERASMUS COMPUTING PROJECT E5

60 credits

Level 4

Second Sub Session

Consists of a supervised project which provides experience of investigating a real problem in computing science, or a computing application/technology. Presenting the results obtained is an integral part of the investigation.

CS50IP: BUSINESS AND INDUSTRIAL PLACEMENT OF IT

120 credits

Level 5

First Sub Session

Students can gain work experience in industrial, business or public sector organisations by taking up a 1-year placement / internship. Students are required to submit monthy reports as well as a final thesis summarising their work experience. Students who successfully complete such a placement will earn an advanced undergraduate degree (MSci in Computing Science with Industrial Placement).

Compatibility Mode

We have detected that you are have compatibility mode enabled or are using an old version of Internet Explorer. You either need to switch off compatibility mode for this site or upgrade your browser.