These courses cover all the fundamental aspects of Computing and are designed to be flexible, allowing in-depth study of specific topics. They give practical experience in designing and developing real computer applications and systems. There is a balance between theory and practice, using material that is interesting, challenging and relevant to a future career. There are opportunities to develop research and communication skills, alongside gaining an understanding of the commercial and business demands of the computing industry. The G403 course is specifically designed to prepare you for working in industry, with emphasis placed on team working, project management, and the importance of business planning and enterprise. The G401 and G402 courses give the opportunity to study abroad for one year. Many students on all our courses also go on to research, through undertaking PhD studies.
There are four core subject areas which run throughout each of the courses:
Software Engineering is concerned with designing algorithms and software programs. This fuses aspects of engineering, science, mathematics and creative problem solving. It covers how to accurately describe what a program is supposed to do, how to design an efficient solution, how to choose the appropriate programming languages and engineering techniques, and how to ensure that the program works correctly.
Computer Architecture is about the building blocks that make up a computer system and how they interact. It covers how to design and evaluate computers and computer networks for running programs and applications, whether it involves small hand-held devices or large supercomputers.
Computer Applications is about the wide range of things that we now use computers for. Examples include computer graphics and animation, machine learning and data mining, artificial intelligence, computer security and computer vision.
Generic Skills are developed throughout the course. This includes team working and project management, enterprise and business planning, communication skills and career development.
Project work is also an important part of our degree courses, with a group project in the second year and a large-scale individual project in the final year. A major part of the third year of the G403 course is a second group project, in which teams work on developing games often using novel interfaces and devices. In the final year, the individual G403 project is worked on full time during the second semester and also requires the production of a business plan. We also believe that it is beneficial to study subjects outside of Computer Science. The courses have therefore been designed to give you the opportunity to take units in other subjects around the University. Examples include mathematics, psychology, physics, and modern languages such as French, German and Japanese.
The first year introduces you to the theoretical underpinnings of Computing, through units on the theory of computation and on principles of algorithmic analysis. At the same time we teach you how to actually program a computer, covering four programming languages in the first year (C, Haskell, Java and Verilog). If you have previous experience of computer programming then an individual project can be undertaken instead. To support your Computing studies you will also study a number of modules in Mathematics, tailored according to your previous Mathematics education. One third of the year is open for you to choose optional units in other subjects.
The second year continues to develop your algorithmic analysis and design skills, your software engineering skills, and extends your knowledge of computer architecture to cover concurrency and data communications. There is also an introductory unit on Symbols, Patterns and Signals, which covers the fundamentals of interpreting real world data, such as images, video and GPS. A key feature of the second year is the group project in the Software Product Engineering unit, in which you design and implement a product suitable for marketing on the Internet.
The third year allows you to specialise your skills in areas of computing that are of particular interest to you. There are optional units in a wide range of computer applications. The core subjects progress with advanced units in Systems Integration and Advanced Software Development. On the BSc course, a major part of the third year is the individual project, whilst on the MEng course, you will undertake a group project to develop a game. If you choose the G401 or G402 courses then your third year is spent abroad.
The final year of the MEng courses focuses primarily on an individual project, consisting of a business plan and an implementation component. It is designed to give you experience of working on a real project similar to that which you are likely to encounter in industry, whilst a number of optional units enable you to further specialise your skills. Many of these projects are carried out in conjunction with industrial collaborators. For the business plan components you will be supported by the Bristol Enterprise Centre.