UCAS code: G400 BSc/CpS
Choosing computer science here at Teesside University gives you the chance to study a number of subjects from programming, mobile development, artificial intelligence, cloud and web services through to embedded systems and software architecture.
Hear BSc Computer Science student Mohamed Roshan talk about his experience at Teesside and how his course has given him the opportunity to work in many different fields and industries. He also talks about his final year project that enables a computer mouse to be controlled via head movements and eye blinks, and how exhibiting his project at ExpoTees helped him get a job offer before he had even graduated.
This degree gives you the opportunity to choose your speciality through themes, which are based on traditional areas of computer science. You also take part in a business project - an opportunity to undertake industry-relevant development work. There are a number of subject areas to select from including:
This course has been accredited by the British Computer Society.
We introduce you to problem-solving using an informal yet rigorous approach. Recreational problems, like games and puzzles, are used to convey important algorithmic concepts. The module introduces a variety of algorithmic techniques and provides an appreciation of the use and importance of data structures. It introduces the idea of classifying data according to its abstract behaviour, as distinct from its representation. A range of well-established data structures are examined and their properties are described so that it becomes clear which representations are appropriate under which circumstances. An understanding of the basic skills needed in algorithmic design and the interaction between algorithm and data structure in creating efficient code is emphasised. This module enjoys a close relationship with the module Java Programming.
We introduce you to the Java programming language, event driven systems and the principles of object oriented (OO) software development. Your knowledge of fundamental object oriented concepts includes classes, objects, methods, inheritance, polymorphism and encapsulation. You acquire practical problem solving skills required to implement complex graphical user interfaces (GUIs) using the Java programming language. This includes using a professional source code editor and an integrated development environment (IDE).
The module is delivered so that it provides the essential foundations that can be applied to solving problems through programming.
Java Programming 2
You develop your mathematical ability and gain the mathematical skills required in computer games and graphics programming.
You begin with material on vectors and parametric forms for lines. This is followed with a thorough review of differential and integral calculus leading up to the solution of simple differential equations.
The final block is concerned with matrix algebra and its application to solving systems of linear equations, along with topics in discrete mathematics which form the basis of the notation used in the specification of software.
You are assessed by three open book tests during the academic year.
You are introduced to the concepts and techniques of systems analysis and design. Industry standard approaches are studied (UML). The design and implementation of relational databases and the supporting data description and manipulation language (SQL) is also be covered.
You examine the practicalities of building AI systems to solve problems, specify inference mechanisms and drive behaviours. The module builds on earlier study of programming, algorithms and discrete maths to introduce the functional programming and symbolic computation paradigms, bridging the gap between theoretical understanding and implementation.
The module primarily uses Lisp (taking an approach that explores the semantics of the language rather than concentrating on its syntax) but may also make some use of a graphics and simulation environment (NetLogo) and in-house software.
You gain valuable experience working on and managing a substantial, collaborative project. Working in small teams, with industry-specific tools, you prepare a fully documented product that satisfies a realistic brief, then ‘sell’ that product to a panel of academics and/or industry experts.
You analyse the technical problem presented to you and design a detailed solution. You produce a high-quality product and present and defend your wok in a professional manner, based on established industry-practice.
This module uses group, individual and peer assessment.
You cover a range of issues in computer security and information security. These include access control, technologies used to implement security measures, models of security and cryptography.
You also cover how security systems fail along with related areas such as the legal and ethical background and physical security.
You cover a number of advanced topics relevant to software construction including concurrency, design patterns, the development and coordination of software agents and high level object oriented (OO) concepts.
Throughout this module, emphasis is on the agile/extreme approach to software construction.
You are introduced to the fundamentals of data communications, examining the characteristics of modern network transmission media. You explore modern computer network design concepts and associated performance issues; The functionality and services offered by network protocols are examined and applied to the delivery of specific network requirements; Network Simulators are used to analyse and test network design architectures.
You develop your ability to design and implement database applications to meet business needs. A case study is used to follow the system development life cycle. You develop a database application from inception to implementation for a real world scenario, following a methodology.
You investigate the issues and technologies associated with implementing and supporting databases and the services that are needed to maintain and access a repository of data. Investigations are undertaken in a number of areas including data warehouses, integrating legacy data, data management and approaches that support the modelling and visualisation of data for a range of use views.
The Computing Project is a large scale piece of work, undertaken by you under the supervision of a member of the academic staff. The project involves the production of a substantial artefact related to the computing field and culminates in the writing of a report and a viva consisting of the presentation, demonstration and discussion of the artefact.
You are guided to develop an appropriate sense of work-discipline coupled with a professional outlook. You take responsibility for the planning and execution of an extended piece of work including the consideration of associated legal, social, ethical and professional issues. You are able to explore in depth a chosen subject area, and thereby demonstrate your ability to analyse, synthesise, and creatively apply what has already been studied on the programme while demonstrating critical and evaluative skills and professional awareness.
You are introduced to the large and diverse area of embedded system applications. The design and programming of larger-scale embedded systems is considered first, including lab work on real-time programming. Secondly, you study the detail of smaller scale embedded applications and this includes hands-on development using a hardware platform for embedded prototyping.
Artificial Intelligence is concerned with the science and engineering of intelligent machines. It is a cross disciplinary subject considering aspects of cognitive psychology, linguistics and philosophy but with an emphasis on computer science.
More recently the computing focus of AI has become increasingly interested in building intelligent agents – independent entities that perceive their environment and take actions to maximise the chances of achieving their goals.
You examine the tools and techniques used to engineer intelligent systems (agent-based and other) and undergo an in-depth study of key research and application areas of intelligent systems.
We explain the purpose of, and need for, an architectural view of a software system. Software systems are built from interacting components that can be assembled in a variety of ways. You examine component construction and the ways in which components can be assembled to form high quality, robust systems.
There is one lecture a week to describe the theoretical and practical knowledge needed for the subsequent lab session. In the lab session you construct, assemble, investigate and evaluate architectural components. Background research is required for you to make best use of the lecture and lab sessions. Instruction in the practical sessions is from electronic workbooks.
The modern world is increasingly dependent on networks. Networks support global communications, business support, automation, social activities and much more. The skills and knowledge to support them is increasingly diverse, requiring not just technical ability but also an awareness of their role within a business. This module continues to develop your understanding of networking in a business environment.
Network design issues are considered in depth, including measures to provide availability and manageability. The use of redundancy and design is covered, examining the role of topologies, network protocols and devices. Technologies such as routers, IPv4 and IPv6, network attached storage, voice over IP (VOIP) and long fat networks are addressed. Network security policy and issues are covered from the design stage throughout the infrastructrure.
Network performance is covered in the broadest sense, with an emphasis on availability of resources. Factors affecting the performance of a network, from the users to technical and legal issues will be considered.
The recognition of the close relationship between business and an ICT infrastructure has led to the rise of a service led approach to ICT management. This approach improves the service offered to the business by the infrastructure through improved design and management methods. Service delivery is a standard approach used in commercial and industrial environments for delivering network services. It is defined in the IT Infrastructure Library (ITIL).
It approaches the network in terms of the end-to-end service that it delivers to the end user. In other words it is a user/business centred approach to design, implementing and managing networks. Networks are critical to the commercial activities of most organisations and anyone working in network services is almost certain to come into contact with some, if not all, of the subject areas covered here.
We use a variety of different approaches to the scheduled sessions to encourage you to take part and meet key learning outcomes. This includes lectures, self-managed study and reading, online research, and consultation and feedback sessions. We introduce variety to help keep you motivated and help you develop your independent learning abilities and confidence in them.
Practical sessions employ a mix of practical and theoretical work. The work includes the use of case studies and presentation. We use peer review exercises to support research exercises.
Modules offered may vary.
You attend a combination of lectures and practical sessions for each module. Lectures concentrate on teaching the principles while practical sessions allow you to put these principles into practice in purpose built labs. Throughout your practical sessions you receive feedback on your work and progress. You often work on a piece of work for several weeks building a deeper understanding of the subject as you work. The feedback you receive will help you to get the most out of your learning.
In your final year you also undertake a personal project which integrates much of the work you have studied in previous years.
A variety of assessment methods are used. Your assessments are designed to build on the work you undertake in class, because your learning continues through the assessment period. An in-course assessment often consists of a practical exercise and an associated report helping you to develop both technical and business skills.
During your degree we advertise a variety of paid placement opportunities (subject to availability). You can apply for a year-long supervised work placement between your second and final year. A placement gives you a valuable opportunity to improve your employment prospects by developing new skills and deepening your understanding of your subject.
Student selection is carried out by the employers through competitive interviews and often skills tests. Placements are not compulsory but are assessed and contribute to your final degree award.
Our placements team gives you help and support throughout the placement process, including guidance on applications and interviews, to help you get a placement that suits you.
Our students have been placed in organisations such as Dupont, Accenture, General Electric, Nissan, HMRC, Nicander, Red Embedded, Microsoft, IBM, Intel, Thomson Reuters, Glaxo Smith Kline, GCHQ.
Our computing students go into a wide range of careers, both nationally and globally. Graduates have gone on to work in the power industry, avionics and the pharmaceutical industry.
The degree also provides an excellent basis for postgraduate study and research.