Year in Computer Science
Taking a year in computer science is a great way to increase your computing skills and gain more experience in programming. Students do their first two years of the Natural Sciences programme, spend their third year in Computer Science as an intercalated year, and then return to third year of the Natural Sciences programme following this.
Any Natural Sciences student can apply to transfer to this programme in the second year.
What do you gain
- Increase your information and digital media literacy.
- Gain useful skills in programming, data visualisation and modelling.
- Get experience of data management, software design and information systems.
- Learn new programming languages which you can apply to your other subjects.
- Experience a fourth area of study.
- Develop skills which open new areas of study and help with the rest of your degree.
- Supercharge your career prospects with a new suite of skills you can offer to employers.
Student study 60 credits of compulsory modules.
This module gives you a comprehensive overview of the principles of programming, including such concepts as procedural logic, variables, flow control, input and output and the analysis and design of programs. Instruction will be provided in an object-oriented programming language. A basic introduction to Object Oriented concepts will be provided in a commercially relevant environment.
Systems & Networks
The module gives an introduction to the role of the operating system and how it manages computer resources such as memory, processes and disks. Unix is introduced in terms of the Unix file structure, Input and Output and the Command Line Interface that is used to manipulate these. Computer communication is taught with respect to the Client-Server Architecture and applications that use this. Underlying protocols, such as those in the TCP/IP protocol suite, are introduced, as commonly used in the Internet to provide a universal service. This includes IPv4 and IPv6, the need for IPv6 and how the two differ. Types of computer networks are covered in terms of scale, such as LANs and WANs; and in terms of wired and wireless networks. Mechanisms for connecting networks such as routers, switches and bridges are covered. Other topics include the role of gateways, proxies, Virtual Private Networks and cloud computing. Potential security risks are examinedce them, including the use of firewalls.
Databases, Interfaces & Software Design
Databases are everywhere and we interact with many different databases every day, using the web, using electronic calendars, diaries or timetables, making appointments, searching for contact details, shopping online, looking up directions, and many more things. These databases need to be both easy to use and fast. This module considers both the structure of databases, including how to make them fast, efficient and reliable, and the appropriate user interfaces which will make them easy to interact with for users. Students will start by looking at how to design a database, gaining an understanding of the standard features that management systems provide and how they can best utilise them and then develop an interactive application to access their database. Database/software design principles will be introduced with an emphasis on the importance of understanding user requirements and specifications. Throughout the lectures and computing sessions students will learn how to design and implement systems using a standard database management system, web technologies and GUI interfaces through practical programming/system examples.
Students have 60 credits of optional modules they can choose
Introduction to Human Computer Interaction - 10 credits
This module aims to teach an understanding of people's interactions with technology and how to apply this knowledge in the design of usable interactive computer systems. The module will introduce the concept of usability and will examine different design approaches and evaluation methods. Specifically, this module will cover an understanding of different styles of interaction with technology, an analysis of user needs, design standards, low fidelity prototyping techniques and a comparison of evaluation techniques.
Introduction to Image Processing - 10 credits
This module introduces the field of digital image processing, a fundamental component of digital photography, television, computer graphics and computer vision. You will cover topics including: image representation and compression, image filtering, enhancement and analysis and image processing applications. You will spend around three hours in lectures and computer classes each week for this module.
Fundamentals of Artificial Intelligence - 10 credits
This module gives you a broad overview of the fundamental theories and techniques of Artificial Intelligence (Al). You will explore how computers can produce intelligent behaviour, and will consider topics such as the history of Al, search techniques, machine learning, game playing techniques, philosophical issues, and knowledge representation and reasoning.
Introduction to Software Engineering - 10 credits
This module will enable you to gain a general understanding of Software Engineering; the typical phases of the software lifecycle with particular reference to practical Requirements and Specification, Software Design, and Implementation & Testing techniques. It serves to prepare students for the various software development projects undertaken throughout their studies.
Software Specification - 10 credits
This module aims to provide an understanding of the tools and techniques which may be used to design commercial software, manage software development projects and document software to a professional standard. On completion of this module, students will be able to effectively analyse requirements for a range of systems, using appropriate tools and techniques; use project management tools effectively and understand soft issues of project management; document software using appropriate tools.
Further optional modules are available but these choices must be discussed with the Corse Director for the Year in Computer Science.