Computer Science BSc (Hons), Graduated 2010
“The module, Professional Issues totally blew me away. Covering a wide range of prominent issues, from ID cards to outsourcing, it was delivered in a professional and interesting way, with students presenting seminars followed by a lecture. ”
Course overviewComputing is changing our world, the way we work, the way we live. To study computer science is to put yourself at the forefront not just of technological change but of social change.
BSc (Hons) Computer Science examines the principles and technologies underpinning the systems that are driving this change. It provides an opportunity to learn about these directly through a combination of work-based learning and in the classroom.
Within this context, our degree has two main aims. The first is to provide you with a good understanding of the theory, principles and technologies of computer science. The second is to equip you with the skills to apply this knowledge and theory to a range of practical challenges.
The field of computer science offers a wealth of opportunity across a range of specialist fields. The variety of course options on offer means that you can fine-tune your degree to focus on particular areas of interest or to meet the requirements of a favoured career.
The specific aims of our course are:
- For you to exhibit an understanding of the knowledge and concepts of computer science, incorporating the theory, principles and operation of the underlying technologies and methodologies.
- To enable you to apply the methods and principles of computer science in the analysis, design, and implementation of solutions in a select range of application domains in information systems, software and communications.
- To give you the skills necessary to implement and administer organisation wide information technology and communication systems.
- To enable you to work effectively as a team member and to develop as a professional within the discipline and as a technically able practitioner within an organisation.
- To prepare you as an independent learner and reflective practitioner.
- For you to be able to recognise the professional, moral and ethical standards of the computing profession and to be aware of the responsibility in the use and development of applications which impinge on the working and personal lives of users and other professionals.
- Essential facts, concepts principles and theories relating to computer science and computer applications.
- The technical properties of hardware, software, information systems and their use and evaluation in a variety of application domains.
- The role of design and planning in a computing context and to act in a systemic and organised way when applying computing analysis, methodologies and techniques.
- How to identify a problem within the computing domain and to develop specialist knowledge within that area, provide appropriate analysis, develop potential solutions and evaluate their effectiveness.
- The scope, depth and the limitations of your knowledge and to access and interpret information resources.
Level 4 core modules
This module introduces the concepts of a software life cycle, system theory, design methodologies and relational data modelling The module uses a system methodology to work through a software lifecycle looking at analysis, design and implementation. You will be given the opportunity to apply a design methodology to a case study producing diagrammatic representations of the data and functionality of a system. The module will introduce you to the essentials of database design and implementation. You will be expected to participate in group work as well as make individual contributions. The module is 100% coursework, comprising a set of deliverables to demonstrate analysis of the case study example(s) and application of design theory. Exercises will be both formative and summative to encourage discussion of design theory and its application.
This module provides an introduction to high level programming, requiring no prior programming experience. You will use industry standard tools and techniques to design, implement, test and document simple programs using a current programming language such as C#, Java or C++. The module will enable you to understand the principal components of a high-level program, laying the foundation for subsequent modules requiring structured programming ability. It will emphasise the principles of good programming practice and introduce the techniques required to develop software which is robust, usable and efficient. Assessment will consist of two staged assignments, with feedback to you being provided at each stage to support the development of sound programming skills. By the end of the module, you should have sufficient mastery of a high-level programming language to allow you to design, implement and test simple programs. The skills taught within the module are intended to be directly transferable to the workplace and to provide a suitable foundation for you when you will be expected to apply programming skills in your later studies and future career.
With the proliferation of computers in all walks of life it is essential for companies to have IT staff capable of specifying, installing, configuring and maintaining the company's IT resources and networks. This module ensures you will have the practical skills companies look for in an IT specialist. The module investigates the components and operation of modern computer systems. It introduces you to the hardware components which enable a computer to process data and the devices which enable data to be input, output and stored. The also introduces you to the fundamentals of computer networks as modern computer systems rarely operate in a standalone manner. To properly configure a computer system or server it is necessary to have an understanding of networks. Assessment of the module is in three parts, you will take multiple choice tests in class to test your knowledge of theory, you will undertake a series of practical tasks written up in a logbook and you will submit a written essay to test your ability to apply your knowledge.
This module will introduce you to the fundamental features of modern operating systems, their components and their use. It will look at key concepts including the kernel, memory and resource management, security and authentication and command line and graphical user interfaces (GUI). Case studies will be used to familiarise you with the history and features of Windows/MS-DOS and Linux/Unix. The module will also introduce you to the command line interface (CLI) commands and scripting in both the Windows CLI and a Linux shell and allow you to develop simple scripts to automate activities in both operating system environments. It will also explain how each operating system stores configuration information and how (particularly in Linux/Unix) scripts can be used to modify that system configuration. The assessment of the module will be by coursework which will consist of a series of exercises completed during the module. The exercises will be a mix of class based tasks and researching solutions to problems set in the lectures. The skills acquired in the module will enable you to go on to study modules which involve topics such as system administration, network and server configuration and technical support all of which are key skills graduates need when working in the systems and network support industries.
For any student anticipating a career in information systems or programming, the knowledge of website construction, whether that is for the Internet or a company Intranet, is a valuable asset. This module provides you with the knowledge required to build a standards compliant web site. The website will be a blend of XHTML, Cascading Style Sheet and a scripting language. You will also be expected to submit documentation containing an introduction, descriptions of the purpose and aims of the web site. You will choose a subject for the website. The knowledge you will gain in this module will form the foundation for further web-based study in areas such as graphic design, user perceptions of the usability and quality of web pages and multimedia/database web sites.
Level 5 core modules
The number, size, and application domains of computer applications have grown and most people depend on the effectiveness of software development. Therefore software products have to be efficient, of very good quality and to help us to be more efficient and productive. Software Engineering is a form of engineering that applies the principles of computer science and mathematics to achieving cost-effective solutions to software problems. The aim of this module is to give to students a real-world experience in software engineering. This module will provide you with the intellectual tools to be able to design, implement and test software systems. Built on Fundamentals of Design and Introduction to Programming, you will go through all the phases of the life cycle by taking case studies and building real software applications based on them. CASE tools are used to study topics including analysis and design in UML and managing the OO software development process. The assessment is coursework based and involves working in a team on a specific project. You have to demonstrate that you are able to work in groups to create an application from a case study going through the whole software lifecycle.
The global Internet is a collection of networks, termed Autonomous Systems (AS), that are linked together via high-speed communication links provided by telecommunication organisations. Converged traffic, that is traffic comprising both data and voice, is routed through the network based either on policies agreed between ASs or performance metrics by routers within the ASs. Due to the complexity and dynamic nature of networks, routers use dynamic routing protocols to establish the ?best? path for traffic. This module focuses on the key concepts and protocols of network routing. It covers basic routing constructs such as: static and default routing; Interior Gateway Protocols (IGP) such as RIP, EIGRP and OSPF and introduces the Exterior Gateway Protocol BGP that is primarily used by Internet Service Providers. Classes involve a mixture of theory, delivered through a series of lectures, and practical implementation, delivered through a series of guided laboratory exercises. The module will used advanced network simulation tools to teach concepts and industry standard router platforms to teach hands-on skills. Assessment is by a case study based assignment and completion of a laboratory logbook. The case study will be centred on the design and implementation of a routed network, comprising both local and wide area networks. The module is delivered as part of the curriculum offered by The Cisco Networking Academy Program, a well-established partnership between academia and industry to provide up to date knowledge and skills required by industry and commerce. Students studying this module will be able to access on-line material via the university Virtual Learning Environment and access the laboratory remotely
This module will guide you through the fundamentals of database design. This grounding will enable you to construct small scale industrial quality databases. You will work in groups emulating real world development teams. As part of this you will learn the skills of constructing documentation, making revisions and delivering work to a deadline. Implicitly you will learn the skill of managing a group environment. The module begins with the development of an acceptable approach to industrial clients and their problems. Working within the specification given, the group learns how to extract data from interviews and paperwork. You can then progress to designing and building a database, querying the database to provide the reports (including statistics) that a customer needs. During this process the current industrial choice database language (SQL) is learned. The assessment comprises the design, production and querying of a database and the completion of a portfolio of coursework to be submitted at the end of the course.
Network configuration is one of the key skills needed by IT professionals in order to pursue a successful career in computer support. This module aims to teach you the fundamentals of the hardware, software and standards used by modern computer networks. Using a mixture of theoretical discussion and application of new skills in a practical environment this module will seek to instil in you an understanding of the complexities of modern networks and their operation and to permit you to evaluate existing environments and advise on new network scenarios. In the practical sessions for this module you will be able to experiment with the configuration and implementation of common network services, such as NFS, electronic mail, ftp, ssh, SAMBA. Assessment will be in two parts, a portfolio / logbook of work done in laboratory sessions and during private study plus a network services /configuration assignment which may include a presentation.
Developing effective human-computer interfaces is a vital yet poorly understood area. As such it is necessary to have some understanding of a variety of fields including cognitive psychology and usability theory which has recently become a major issue in web design / effective e-commerce implementation. The user experience (beyond traditional usability) is a key design issue. This module seeks to develop understanding of interaction design through the delivery of core theory which is then applied to the analysis, design, implementation and evaluation of a limited functionality horizontal prototype. You will be introduced to the notion of user mental models (following the approach of Donald Norman) and the extent to which they can be utilized in the design of conceptual models underlying the designed interface. You will then examine the range of discovery methods used to harvest user, task and environmental data to support user needs analysis comprising user characterisation (including the notion of user personae), task analysis (hierarchical task analysis / action and object taxonomies ) and environmental analysis. Following a discussion of visual style / aesthetics, the preceding analysis will then progress to documented design rationale supporting by logical storyboards showing information, action and navigation screen components. The design is then prototyped in a high level tool equivalent to Visual Basic and subjected to critical introspective and user evaluation. Note that you will be expected to possess some scripting experience prior to starting the module. You will document all the above to produce the final assignment. The module would be of considerable benefit to those who intend to design interfaces (including web design), become usability / testing consultants or work within user training / user support roles.
The aim of this module is to provide you with experience of topic specific research and the analysis and application of that work in order to carry out a computer science based project in your final year. The module will include help with the selection of a suitable project, often with advice from the potential supervisor, instruction on how to use relevant sources of published information, carrying out a literature survey on the subject of the planned project; the writing of a literature review and project plan; and instruction in appropriate research and analysis methods. You will be given instruction in risk and/or hazard assessment and the ethical and legal considerations of the work to be undertaken. You may also be required to give a short presentation of your project plans to your peers. Assessment for the module will involve writing a report which will typically include a project proposal (possibly talking into consideration ethical and risk assessments) and a literature review on one or more topics.
Level 6 core modules
This module aims to provide an understanding of the issues, opportunities and problems which have arisen as a result of the computerisation of wide areas of human activity. It is designed to enhance advanced computer reflective thinking in both computer science specialists and others, and is a key part of the programme of professional development for computer scientists and others seeking to embody professional values and approaches in the IT and computing fields. The course covers relevant and current topics in Computer Law (e.g. Data Protection; Intellectual Property Law; Computer Misuse) and other social, ethical and legal topics such as considering the causes and effects of systems failures (including but not limited to computer systems failure). Other aspects such as the ethical and professional responsibilities of graduates - particularly those from IT and computing disciplines - will be critically appraised. Topics may also cover the technical development and social effects of computer technology from c1936 to the present day, as the basis for an informed discussion of the issues. Later in the module students will choose topics and lead time-constrained seminars on a selected narrow topic area within the module's remit, which will form the fine graded assessment for the module.
The aim of this module is to raise awareness of efficient programming practice by critically appraising some of the common data structures and algorithms available to the computer scientist. A range of analysis techniques are employed to carefully evaluate the performance of these data structures and algorithms in order that the student may make prudent choices in the assembly of software artefacts with specific performance targets or constraints. The concept of the algorithm is a central pillar of computer science, and is closely related to the concept of the data structure: the storage mechanism that algorithms are used to manipulate. In this module, a variety of crucially important data structures and associated algorithms are explored, with frequent examples from real world applications. The importance of algorithm analysis, that is, the investigation of the efficiency and resource requirements of algorithms is presented, in order to develop an appreciation of implementation issues and choices faced in the design of non-trivial software projects. The concept of the abstract data type (ADT) is presented as an encapsulation of common data structures and algorithms that incorporates a simple interface, promotes a high level of information hiding, and permits changes to underlying implementation without affecting the larger application. In comparison to earlier programming modules, the focus of data structures & algorithms is firmly theoretical, setting a foundation for understanding concepts and techniques that are of vital importance to any computer scientist required to construct elegant and efficient software artefacts in any high-level programming language, including scripting languages. The assessment for this module will include an examination and a practical assignment with associated documentation.
The individual Final Project module allows students to engage in a substantial piece of individual research and / or product development work, focused on a topic relevant to their specific discipline. The topic may be drawn from a variety of sources including: Anglia Ruskin research groups, previous / current work experience, the company in which they are currently employed, an Anglia Ruskin lecturer suggested topic or a professional subject of their specific interest (if suitable supervision is available). The project topic will be assessed for suitability to ensure sufficient academic challenge and satisfactory supervision by an academic member of staff. The chosen topic will require you to identify / formulate problems and issues, conduct literature reviews, evaluate information, investigate and adopt suitable development methodologies, determine solutions, develop hardware, software and/or media artefacts as appropriate, process data, critically appraise and present their finding using a variety of media. Regular meetings with a project supervisor should take place, so that the project is closely monitored and steered in the right direction. The project developed in this module is the most substantial piece of work that the student will produce during their undergraduate studies. Thus, the choice of project topic and the quality of the work is likely to bear a great influence on the your career/employability. Therefore, the module will also include aspects of Personal Development Planning (PDP) and CV preparation. You are strongly advised to allocate appropriate attention, time and effort to this module. The successful completion of the module will be of great benefit to you as you will acquire skills directly applicable to real world projects.
Level 5 optional modules
This module builds on the elementary material covered in "Computer Systems" using more in depth case studies of the CPU families, motherboards and associated peripherals in modern PCs. It also looks at PC hardware and operating system technical support examining aspects such as safety, configuration tools and troubleshooting.On completion of the module successfully you will have knowledge that will allow you to advise others on and implement simple upgrades and make system configuration changes. It will also equip you with skills that, with experience, will permit you to start a career in PC technical support.
This module will introduce you to a Virtual World environment such as Second Life where you will be able to experience and investigate the opportunities afforded by the environment. Aspects covered may include programming in the environment's native language to handle actions and data in world and its transfer to and from off-world servers, 3D modelling and building using in-world tools, animation, audio for use in-world and graphics tools to provide textures for their in-world creations. Tools used off-world will be, in the majority, free and open source, for example The Gimp, Avimator, Inkscape, Audacity, but may also include some proprietary applications.
C++ (and its language precursor, C) is arguably the most common programming language in industry, and graduates who are good C/C++ programmers are often much sought after in the IT sector (systems programming, embedded software, graphics and games programming). The reason for the popularity of C++ is partly historical, partly because the programmer can produce fast, memory-efficient programs, and partly because of its flexibility to support different programming styles. This module provides an introduction to C++ for those already with some programming experience in another language such as Java or C#. Following a procedural introduction you will learn an object-oriented style of programming including some design considerations. Code will be written using an appropriate development environment (such as VisualC++, DevC++, or C++Builder) and mainly confined to ANSI/ISO C++ and use of the standard library so as to promote source code portability to other platforms. You will learn how explicit types of memory allocation can be used to manipulate data and how this can influence computer resources, and thus will gain an understanding of the underlying architecture behind how other high level programming languages manage their data.
'Digital Security' is essentially about giving individuals the freedom to embrace the digital lifestyle, confidently engaging in everyday interactions across all digital devices with a certainty that the accessibility and integrity of the data is ensured. Digital security affects all aspects of the digital lifestyle, which, among others, comprises computers and the internet, telecommunications, financial transactions, transportation, healthcare, and secure access.This module essentially covers these broad topic areas: Computer Security Principles covers security objectives such as authentication, authorization, access control, confidentiality, data integrity, and non-repudiation. The module also introduces fundamental software design principles such as that of least privilege, fail-safe stance, and defense-in-depth.- Introduction to Cryptography covers both symmetric encryption and public-key cryptography, discussing how they are used to achieve security goals and build PKI (Public-Key Infrastructure) systems. Technologies covered are typically DES, 3DES, AES, RC4, RSA, ECC, MD5, SHA-1, X.509, digital signatures, and all cryptographic primitives necessary to understand PKI. Diffie-Hellman key exchange and man-in-the-middle attacks will also be discussed.- Secure Programming Techniques discusses the threats that worms and hackers present to software and the programming techniques that developers can use to defend against software vulnerabilities such as buffer overflows, SQL injection, and off-line dictionary attacks.
Level 6 optional modules
This module exposes you to the theory and implementation of digital image processing algorithms. Image processing is one of the fastest growing areas in computer science; with increased computational power, it is now possible to achieve through digital means many tasks that were previously accomplished with analogue technologies. Topics addressed include image acquisition and representation, human perception and understanding, image statistics and histogram operations, enhancement, transformations, filter design, compression, segmentation, morphological operations, and pattern recognition.A goal of the module is to introduce the image processing techniques that enable you to build computer systems that analyse images automatically, illustrated using applications such as face detection/recognition, medical image processing, natural image statistics, compression/encoding, and computer vision. As a vehicle to demonstrate the techniques explored in this module, you will use purpose-written programming tools and environments such as the Image Processing Toolbox within Matlab (Mathworks Inc), and GNU ImageMagick, in addition to programming from first principles using modern high-level programming languages (such as C/C++) to deepen understanding. The module will treat concisely some fundamental problems in image processing, focusing on a core set of problems where efficient and robust algorithms can be applied. You will be required to implement a range of algorithms using real datasets. In addition to presenting practical programming techniques and algorithms, the module will introduce you to emerging research to provide sufficient understanding to undertake novel undergraduate research projects.
The web server has become one of the corner stones of everyday computing. Over 50% of world wide web servers run the Apache web server software, many thousands more machines also run this software on intranet and extranet servers. The software is robust, fast and reliable, transparent to the user it handles millions of plain-text and secure transactions. This module aims to facilitate the learning of server administration with a particular bias to the Apache web server, (running on windows or Linux). Using a blend of theoretical discussion, laboratory sessions and remote access to class servers, this module will cover the necessary skills to understand, evaluate and apply good practices in web server administration and management.Students have the opportunity to install and configure the Apache server and to investigate and experiment with the configuration of the server and the provision of associated services, for example, virtual hosts, Mod_Rewrite, https, web dav. You will examine methods to automate some of the system configuration.Most of the scheduled class time will be spent in the (Linux) laboratory, where you will have full administrator-level privileges. During and outside of scheduled class times you have remote access to a class server where you will be able to access notes, participate in discussions, store your documents and experiment with some of the class material. You will also have remote access to machines in the laboratory.
This module investigates in detail the technology of "next generation" mobile devices from mobile phones to media centres. The basic communication infrastructure will be covered to establish the context of data transmission to devices including environmental issues of base station location, components and testing. The full range of current and near production devices will be evaluated, in the context of services that can be rendered to users. Extensive use of case study materials will be used to evaluate services: video, conferencing, gaming, internet rich applications and voice over IP among other applications. Practitioners will present these examples of actual and future applications wherever possible and you will be able to practically compare alternative technologies particularly for enterprise deployment. You will be encouraged to develop your own ideas within the technology and prepare content of whatever form to be rendered and tested on mobile devices using the latest software packages. This material may be for entertainment, games, e-learning/training, conferencing, or applications of existing services: e-mail, Instant messaging, news etc.
Distributed Systems Programming involves the development of applications to utilise the distributed functionality of an intranet or the internet. They make up the core information management tools in small, medium and large enterprises, or organisations, and are used to share, or 'farm' out large computing operations to smaller interconnected nodes thus implementing a kind of virtual parallel processing. Distributed applications are vital to the banking sector, commercial organisations and governmental institutions and involve the fundamental technologies underpinning cloud computing and on-line multi-player gaming environments. This module begins by covering the key theories that distributed systems are based on, both in terms of software and hardware. Threads and multi-threading are introduced as a tool to manage the communication of data between computers via socket programming. Practical and theoretical analysis of the client-server model and so-called 'middleware' is treated with respect to database connectivity. Issues associated with concurrency, locking, and the marshalling of data between processes are covered. The relationship with Common Object Request Broker Architecture (CORBA) and other middleware technologies is explained.
Modern IT infrastructures are rapidly evolving to meet the needs of dynamically changing business requirements to meet the driving force of evolving factors such as user mobility and the use of the cloud and as such rely on the key core skills of the network engineer and/or system administrator. The core components of this module follow on from the preparatory skills learnt in Computer Systems and Network Routing.This module focuses on several key areas- Campus LAN Switching and Wireless Operation which includes LAN design methodologies, resilience requirements configuration of Ethernet switches, Virtual LANs and wireless operations.- Enterprise WAN Solutions focuses on WAN technologies and operations such as Network Address Translation (NAT), DHCP, PPP/Frame Relay, Access Control Lists and Security features such as VPN's- IT Operations focuses on next generation features such as Network & System Management, Service Management (ITIL), Virtualisation and Cloud Techniques.The module is delivered as part of the CCNA 3 & 4 curriculum offered by The Cisco Networking Academy Program (CNAP), a well established partnership between academia and industry to provide up to date knowledge and skills required by industry and commerce.
AssessmentAssessment is via a mix of examination, group assessment, presentations, class- and laboratory-based tests, case studies, group project work and the Major Project.
Special featuresStudents completing a FdSc or HND in a computer science or IT related subject may be eligible to enter directly into Year 2 or 3 of this award.
FacilitiesOur extensive computing facilities include:
- laboratories equipped with a range of specialist software and hardware
- Cisco laboratory equipped with hands-one routing and switching equipment
- Netlab, offering remote access to our Cisco equipment available for students to remotely access 24 hours a day, seven days a week.
- Access to Dreamspark, allowing students access to professional developer and designer tools
- Mobile devices for testing and devleloping mobile applications.
Links with industry and professional recognitionOur course has been developed in consultation with the British Computer Society, the Cambridge Network, and a number of local and national employers. Experts from the industry are regularly invited into classes to give guest lectures and our students are encouraged to attend a range of research and industrial seminars hosted by both the Department of Computing and Technology and the British Computer Society.
Graduates who complete the relevant networking modules will be able to apply for industry recognised Cisco Certified Network Associate (CCNA) status.
Associated careersOur course is designed for those who wish to keep their options as to which part of the IT industry they want to specialise in as open as possible. It contains both the core elements of computer science and option modules to specialise in areas including Software Development, Internet and Cloud Applications, Network Administration and Technical Support.
We organise employer-sponsored student projects to allow you to gain direct industry experience whilst you study, and run regular employment fairs, allowing you to engage directly with employers from the region.
Further studyGraduates of this course can progress onto our specialist Computing Masters courses:
MSc Computer Science (Full-time)
MSc Computer Science (Part-time)
MBA Information Systems Management (Full-time)
MBA Information Systems Management (Part-time)
MSc Mobile Telecommunications (Full-time)
MSc Mobile Telecommunications (Part-time)
MSc Network Security (Full-time)
MSc Network Security (Part-time)
MSc User Experience Design (Full-time)
MSc User Experience Design (Part-time)
Our Faculty of Science & Technology also offers a wider range of full-time and part-time postgraduate courses.
|Alternative qualifications accepted:||
We offer an extended degree route to this course that requires 120 UCAS tariff points. This extended route to a degree in Computing & Technology requires the study of an additional foundation year.
After successful completion of this foundation year you may transfer to this degree programme. Please refer to: BSc Computer Gaming Technology (Extended)
We welcome applications from International and EU students. Please select one of the links below for English language and country-specific entry requirement information.
Cambridge Ruskin International College, an associate college of Anglia Ruskin, which is located on our Cambridge campus.
How to apply
UK & EU applicants
Call 01245 687830
Available startsSeptember, January
Fees & funding
Open DaySaturday 27 September
Undergraduate Open Day
Advice & supportEmployability
FacultyScience & Technology
DepartmentComputing & Technology
Contact usUK and EU applicants:
- Call 01245 493131
- Complete enquiry form
- Call +44 (0)1223 698609
- Complete enquiry form