Computer Science is an academic discipline that is developing at an extraordinary speed. Its scope and influence is now being felt in all areas of life. Graduates of the future will find employment opportunities in traditional areas such as industry, commerce, education and financial services; as well as in new areas such as film, television and the entertainment industry in general, electronic publishing, health care and all aspects of the rapidly expanding communication industry that is based on the Internet.
The aims of all our programmes are that you get a sound understanding of the fundamentals of Computer Science, that you have the opportunity to develop a deeper knowledge of certain topics which are of particular interest to you, and that you gain considerable practical experience of developing computer systems. Additionally, the programmes have been designed so that you can develop your personal and communication skills and develop an awareness of the business environment.
Throughout the three or four years of the degree programmes the core units are distributed between four strands which can be categorised broadly as software, electronics, and theory transferable skills. The extent to which you can study the units in these categories depends to some degree upon which particular degree programme you choose, and then to a lesser extent upon the choices you make within the degree structure.
There are, of course, units which bridge categories. In particular there are units, labelled as projects, either individual or group, which are intended to develop your transferable skills alongside your computing skills. These generic skills include the ability to produce well-written reports, be confident in public speaking and be capable of managing projects.
- Software is about designing and developing large programs. Similar to any large scale engineering, it is essential that you are able to specify what you want to achieve, to design how you are going to achieve it, and to implement the design using appropriate software technology. To this end, we teach you a variety of different programming paradigms and languages in the first year, and teach you methods for designing and verifying large scale systems.
- Electronics is about running programs. At the lowest level all programs are executed on a piece of hardware (the processor). Creating an efficient mapping from the program onto a processor is non trivial, and requires you to understand the semantics of programming languages, compilation techniques, concurrency and networking.
- Theory is about building a toolkit of algorithms, data structures, and other mathematical and computational techniques to support software development, analysis of programs, and transformation of data. It is also about building general knowledge and a deep understanding of the subject of Computer Science.
- Transferable Skills is about developing generic skills which will be invaluable for your career. In particular, you need group working skills and project management skills, you need to be able to produce well-written reports and be confident in public speaking, and you need to be aware of business and professional issues relevant to computing.
As well as core units, there are units which are typically optional and typically in the third or fourth years of the degree programmes which cover a variety of application areas and departmental research interests. These units are organised into themes, and also many of the projects on offer in the project units are closely associated with themes:
- Intelligent Systems
- Security and Cryptography
- High Performance Computing
- Computer Architecture
- Data Mining
- Transferable Skills (3rd year options)
Project work is an important part of our degree programmes, with a small scale group project in the second year, and a large scale individual project in the final year. On our four year programmes there is a greater emphasis on working in groups, the engineering paradigm of design, build and test, and the importance of business planning and enterprise.
It is also possible to study subjects outside the confines of Computer Science. Talk to your tutor or your programme director to find out about these possibilities.
If you are taking the G401 degree then you normally drop the Origins unit and take a 20 credit unit in the language for the country you will be visiting in year three. (This takes your credit total to 130 instead of 120.)
The Procedural Programming unit is the first programming unit, and you may not have programmed before, or you may have a lot of experience, so alternative assignments are provided to suit your background.
The other main Computer Science units build a general awareness of computers and of the subject of Computer Science, introduce you to the basic principles of Software Engineering, and enable you to understand the link between high-level programming languages and the hardware on which programs execute. Emphasis is placed upon the value of good design and its contribution to the software life-cycle. You will learn four programming languages, a procedural, an object oriented, a declarative, and a hardware description language. These are currently C, Java, Haskell and Verilog. These languages cover all major programming paradigms, and learning them will enable you to learn other languages with relatively little effort. Additionally the Engineering Mathematics units provide you with a basic grounding in Discrete Mathematics and Numerical Methods.
From this year, all the units are officially compulsory. This is to avoid students taking outside subjects with little motivation and ending up getting poor results. However, we don't want to prevent you from doing an outside subject, if you are strongly motivated enough and can cope with difficulties that arise from timetabling and the differing conventions of an outside department. You can get permission from your programme director to take an outside subject in place of one or two normal units.
The High-Tech Enterprise unit has been designed as a component of the Bristol Enterprise programme with special emphasis on the high-growth, high risk companies which form a key part of the computer, communications and microelectronics industries. These enterprises operate in different ways from small or large established businesses. This module aims to equip you with the knowledge and skills required to succeed in this fast growing industry.
The Origins of Computer Science unit aims to introduce you to some of the history and fundamental ideas behind computer science. It aims to provide a historical background to some of the technologies and techniques which you meet in other parts of your degree programme.
If you are taking the G401 degree then you normally drop the HCI unit and take a 20 credit language unit to continue your language studies ready to go abroad. (This takes your credit total to 130 instead of 120.)
The Software Product Engineering unit consists mainly of a group project, and introduces more advanced software development, project management, and marketing techniques.
The Symbols, Patterns and Signals unit introduces you to the fundamentals of interpreting real world data, such as video, or GPS data. This includes applied signal processing involving sampling, filtering techniques, classification and pattern recognition.
The Language Engineering unit aims to build on your practical knowledge of programming languages to show how languages can be implemented, including parsing and code generation. This gives a good basis for building interpreters and compilers, and constructing the run time system that programs need.
The Career Management Skills unit seeks to develop your personal skills as well as present an overview of engineers in business, and introduce the environment in which business exists.
The Human Computer Interaction unit introduces you to the impact that human factors have on the design process, and provides you with techniques which enable you to take these factors into consideration during the design phase of a project.
If you are on a four year degree, at the end of the second year, you must get a good overall average. If not, you will automatically be transferred onto the three year degree programme.
Note: Some of these units (the 2nd semester ones) have M level versions indented for MSc students (with shared lectures and different assignments). Please make sure you sign up to the 3rd level ones.
The project (group or individual) is the only compulsory unit. The remaining options are divided into themes, and it is normal to choose four themes. The themes are:
- Intelligent Systems: COMS30121, COMS30127
- Security and Cryptography: COMS30002, COMS30901
- High Performace Computing: COMS31900, COMS35101
- Computer Architecture: COMS31700, COMS35102
- Data Mining: COMS30301, COMS30106
- Content: COMS31000, COMS30115
- Transferable Skills: COMS30900, COMS32500, COMS32300
In exceptional cases, it is possible to take an unusual selections of options, options from the 4th year (whether you are on the four year degree or not), certain MSc options, or options from other departments, if you can sort out any issues to do with numbers or timetabling or prerequisites. Some of these variations are catered for in the option choice system, and for others you would have to seek individual approval from your programme director.
Note that the pass mark for any level M units you take is 50%, which could affect your progress on the degree.
If you are on an MEng degree, it is worth remembering that you need to take 120 credits of M level units by the time you graduate. You may want to take an M level unit or two in the third year, to make room for something else in the 4th year, or to improve the balance between the two semesters in the 4th year.
Also, if you are on a MEng, you must get a good overall average and pass all your units. If not, you will be awarded a BSc three year degree based on your first three years. You may also take the BSc degree by choice.
For G401 and G402, the third year of the degree is spent at a Computer Science Department in an institution abroad. The University, Department and programme of units must be approved and are typically arranged by you and the Course Director during the 2nd year. As far as possible you will study a programme similar to that at Bristol.
Note that the pass mark for level M units is 50%.
You must take 120 credits of units at M level for an MEng degree. If you have taken one or two M level units in your third year, then that leaves room for a small amount of non-M-level work in your final year.
Only the Project, Business Plan and Law units are core. In addition, six 10 credit options should be chosen from the list above. The options are themed, and it is usual to choose three themes. The themes are:
- Intelligent Systems: COMSM0106, COMSM0305, COMSM4111
- Security and Cryptography: COMSM1500, COMSM0007
- High Performace Computing: COMSM2006, COMSM2001
- Computer Architecture: COMSM0109, COMSM0125
- Data Mining: EMATM0004, EMATM1120, EMATM1400
- Content: COMSM1105, COMSM0001
For G401/G402, some allowance may have to be made for the programme studied abroad, which could result in a restriction of your choice of options, or an exception to the normal 120 M-level credit rule.
It is recommended that you aim for a reasonable balance of load between the two teaching blocks, ideally 40 taught credits in each semester. The project unit runs across both semesters, and you are expected to plan your work on it to help balance the load, if your taught units are unbalanced. The semester each unit runs in can be seen on your unit choice web page.