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, this 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 this 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.
Upon completion of this course you will be able to demonstrate knowledge and understanding of:
- 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. The students 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 students to the essentials of database design and implementation. Students 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. Students 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 students 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 the student being provided at each stage to support the development of sound programming skills. By the end of the module, students should have sufficient mastery of a high-level programming language to allow them 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 students who will be expected apply programming skills in their 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 students have the practical skills companies look for in an IT specialist. The module investigates the components and operation of modern computer systems. It introduces students 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 students 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, students take multiple choice tests in class to test their knowledge of theory, they undertake a series of practical tasks written up in a logbook and they submit a written essay to test their ability to apply their knowledge.
This module will introduce students 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 students with the history and features of Windows/MS-DOS and Linux/Unix. The module will also introduce students to the command line interface (CLI) commands and scripting in both the Windows CLI and a Linux shell and allow them 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 students 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 students with the knowledge required to build a standards compliant web site. The web site will be a blend of XHTML, Cascading Style Sheet and a scripting language. Students will also be expected to submit documentation containing an introduction, descriptions of the purpose and aims of the web site. The student will choose a subject for the web site. The knowledge gained by the student 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 students with the intellectual tools to be able to design, implement and test software systems. Built on Fundamentals of Design and Introduction to Programming, they 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. Students have to demonstrate that they 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 guides students through the fundamentals of database design. This grounding enables them to construct small scale industrial quality databases. Students work in groups emulating real world development teams. As part of this they learn the skills of constructing documentation, making revisions and delivering work to a deadline. Implicitly they 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. Students 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 students 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 students an understanding of the complexities of modern networks and their operation and to permit them to evaluate existing environments and advise on new network scenarios. In the practical sessions for this module students 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. The student 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. Students 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 students will be expected to possess some scripting experience prior to starting the module. Students 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 students 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 their 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. Students will be given instruction in risk and/or hazard assessment and the ethical and legal considerations of the work to be undertaken. Students may also be required to give a short presentation of their project plans to their 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 the student 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 student's career/employability. Therefore, the module will also include aspects of Personal Development Planning (PDP) and CV preparation. Students 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 the student, as they will acquire skills directly applicable to real world projects.
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.
Links with industry and professional recognitionGraduates who complete the relevant networking modules will be able to apply for Cisco Certified Network Associate status.
Associated careersA degree in computer science can enable entry into a range of fields within IT, including network and Internet support software engineering and database administration.
|Alternative qualifications accepted:||
This course is not available for international applicants.
How to apply
(January start: Cambridge only)
Fees & funding
Open Day3 December (Cambridge)
Undergraduate Open Day
FacultyScience & Technology
DepartmentComputing & Technology
Contact usUK and EU applicants:
- Call 01245 493131
- Complete enquiry form
- Call +44 (0)1223 698609
- Complete enquiry form