Computer Science
blic void storeNice(File f) throws IOExce PrintWriter pw = new PrintWriter(new F pw.println(“# stored on “ + new Date()) or (int i = 0; i < alphabet; i++){ String w = toString(letterBits[i]); String letter = sm.translate(new Conc pw.println(w + “ --> “ + letter);
or (Rule r : rules){ String uv = toString(r.uv); String u = toString(r.u); String v = toString(r.v); pw.println(uv + “ --> “ + u + “ + “ + v
Computer Science Undergraduate Studies
Royal Holloway is widely recognised on the world stage as one of the UK’s leading teaching and research universities. One of the larger colleges of the University of London, we are strong across the sciences, social sciences, arts and humanities. We were ranked 12th in the UK (102nd in the world) by the Times Higher Education World University Rankings 2014, which described us as ‘truly world class’. As a cosmopolitan community, with students from 130 countries, we focus on the support and development of the individual. Our friendly campus, west of central
2
Department of Computer Science
London, provides a unique environment for university study. We have been voted as one of the 16 most beautiful universities in the world and, according to the Complete University Guide 2014, we are the safest university in the London area. Royal Holloway is located in the ‘M4 corridor’, a major high-technology hub also called ‘England’s Silicon Valley’. Many companies and organisations visit the campus throughout the year to participate in job fairs, offer placements, give presentations to our students, or engage with our staff in cutting-edge collaborative research.
Computer Science We provide research-focused, intellectuallychallenging degree programmes that are informed by current industrial needs and prepare you for a career in which you can make a huge impact on society and the economy. Computer scientists need to be prepared to face constant challenges and changes throughout their careers. These are careers in which you can find an enormous variety of work and interact with people from many other disciplines. The more rewarding jobs require a lot more than having programming skills: problemsolving, engineering and analytical skills are required to operate in the global economy of today. A degree from Royal Holloway will prepare you for those challenges. Our internationally renowned academics bring both their research and experience of industry into the lecture theatre and the lab, helping you gain current and relevant skills and knowledge, stimulating your creativity, and challenging you to go out and transform the world in which we live. This brochure is designed to complement Royal Hollowayâ&#x20AC;&#x2122;s Undergraduate Prospectus and information on the departmentâ&#x20AC;&#x2122;s website at: royalholloway.ac.uk/computerscience It is also available as a PDF at: royalholloway.ac.uk/computerscience
Contents Why study Computer Science?
4
Why choose Computer Science at Royal Holloway?
5
Admissions and entry requirements
6
Degree options
7
Degree programmes
9
Project work
13
Integrated masters
14
Teaching and assessment
15
Award-winning teaching
16
Your future career
19
Other information
20
Women in Computer Science
22
Research interests
23
Contact details Head of Department Professor JosĂŠ Fiadeiro Jose.Fiadeiro@rhul.ac.uk General enquiries Undergraduate Admissions Tutors admissions@cs.rhul.ac.uk Department of Computer Science T: +44 (0)1784 443421 F: +44 (0)1784 439786
Department of Computer Science
3
Why study Computer Science? Computer Science is not just the study of computers; it is the systematic study of processes that handle information. We now take it for granted that music, video, and any other form of information should be represented digitally; the great innovations in the last few decades have come about through this transformation of the way we process information. In every field of life, from music to medicine, from finance to media, this shift to digital is accelerating. Computer scientists are at the heart of this enterprise, creating the key technologies that will underpin these new developments. Computer Science is not just for techies, nor is it all about sitting at a computer coding for hours on end! You will be working closely with other people to innovate and explore the ramifications and benefits of exploiting new technologies.
“My personal advisor was helpful when I needed advice. Most of the lecturers are clearly passionate about their subject and that helps with my enjoyment and understanding of the topic(s). Overall, I have loved my time at Royal Holloway and will miss it immensely.”
A Computer Science degree from Royal Holloway will equip you with the deep understanding of computing as a science and the practical skills that you will need to succeed in this fast moving and exciting area. The syllabus of our programmes covers the principles underlying computational methods and techniques, software development, web technologies, and the ways in which computing is used to facilitate and transform human activity. I warmly invite you to come and visit us and look forward to meeting you at one of our College Open Days held throughout the year. José Fiadeiro, Head of Department
“There is great support when you need it; it is very easy to get in touch with a lecturer and the laboratories are open 24/7 to students.”
Computer Science students, National Student Survey anonymised feedback, 2013
4
Department of Computer Science
Why choose Computer Science at Royal Holloway? We offer a vibrant environment in which you can pursue your studies and plan your future career:
Inspiring teaching
• We are a medium-sized department, with an intake of around 80 students per year, which means that you will receive a great deal of individual support during your studies; we offer small group tutorials in the first year, and one-to-one teaching on final-year projects.
• The use of programming languages and logic to define problems and their solutions through the use of computers.
• You will have access to excellent amenities, including 24/7 access to the departmental computer laboratories. • We are a research-intensive department, with particular strengths in the areas that are now transforming society and the economy: algorithms, cloud computing, information security, and artificial intelligence (including machine learning – the science of systems that can learn from data). • Our research excellence informs our teaching, in particular our new specialist BSc/MSci degrees in Artificial Intelligence (Big Data) and Information Security. You will be taught by the people who are advancing their disciplines. • The excellence of our teaching is widely recognised and consistently scores high satisfaction ratings from students in annual National Student Surveys. We believe that the best way for you to learn is to practice what you are taught in the lectures and there is lab or project work in every year of your studies. • You will have the opportunity to go on a summer placement or a full year out in industry, which will enable you to gain experience and acquire skills that can only be picked up in a real work environment.
The topics that you will be able to explore include the following:
• The harnessing of technology to assist with practical activities, for example handling large volumes of information, visualising information, or communicating reliably and securely. • The problems of constructing extremely complex systems so that they behave in a desired way and are safe as well as reliable. • The Internet and the World Wide Web, including their technology, their effective use, and the special programming techniques needed to improve security or efficiency. • The transformational role that algorithms play in society and the economy. • The practical application in computer systems of techniques developed as part of research into Artificial Intelligence, such as intelligent agents embedded in software systems for air traffic control or the computer learning techniques that are behind the explosion of data analytics. • The security threats to which software systems are vulnerable and the techniques through which they can be designed to prevent or minimize those threats. • The fundamental role that Computer Science plays in disparate areas such as Finance and Molecular Biology.
• Our Careers Service and our departmental Careers Tutors offer you first-class support to develop key employability skills and find a good job. • Finally, you will be able to join a dynamic Computing Society and engage or help organise extra-curricular activities.
Department of Computer Science
5
Admissions and entry requirements The Department admits around 80 new students each year and welcomes applications from candidates looking for an exciting Computer Science degree taught in a well-equipped and friendly environment. A significant number of our students are from overseas, adding an international dimension to life in the Department. We are looking for students with an aptitude for Computer Science. This could be demonstrated by, for example: an A-level with an analytical component, such as Maths, Physics or Computing, an interest in a particular field of Computer Science, significant experience in programming; or through an interview with us. We admit a number of students with non-standard qualifications, such as ACCESS courses, University Foundation programmes and BTECs (subject to certain requirements), as well as many with qualifications from other countries, or awarded by international organisations such as the International Baccalaureate. Normally we require that non-
6
Department of Computer Science
native English speaking students can demonstrate their proficiency in English with an IELTS of 6.5 or an equivalent grade in similar examination systems. We are always on the lookout for good, well-motivated students, even if they do not have exactly the right qualifications. Evidence of a serious interest in an area of Computer Science, especially algorithms and programming, is very welcome. We are committed to recruiting more female undergraduate students and ensuring gender balance in all activities. We especially encourage mature students to apply, and we have a broad commitment to widening participation so that everyone, regardless of their income or background, can access the benefits of higher education. We may interview candidates with unusual backgrounds so that we can assess their potential. For the specific qualifications required for our degree programmes please refer to our web pages: royalholloway.ac.uk/computerscience
Degree 0ptions G400
BSc Computer Science
G402
BSc Computer Science with a Year in Industry
G403
MSci Computer Science
G404
MSci Computer Science with a Year in Industry
G407
BSc Computer Science (Information Security)
G406
BSc Computer Science (Information Security) with a Year in Industry
G500
MSci Computer Science (Information Security)
G502
MSci Computer Science (Information Security) with a Year in Industry
G4G7
BSc Computer Science (Artificial Intelligence)
G7G4
BSc Computer Science (Artificial Intelligence) with a Year in Industry
GG47
MSci Computer Science (Artificial Intelligence)
GG74
MSci Computer Science (Artificial Intelligence) with a Year in Industry
Computer Science as a Major subject G4N2
BSc Computer Science with Management
Joint degrees GN41
BSc Computing and Business
GG41
BSc Computer Science and Mathematics
Our taught courses are organised into four broad themes, which run through each year of our degree programmes.
Application development
A solid theoretical base for your studies will mean that you are equipped to acquire new skills throughout your working life; this is vital in a fast-moving field like Computer Science. This strand provides the fundamental theoretical and mathematical concepts that are needed to have a deep understanding throughout all years of the course. In the first year, we teach the basic mathematical concepts that are essential for Computer Science, which can be different from the Maths that you learned at A-level. In the second year, we look at algorithms and complexity, and in the third year there are options in computational optimisation, machine learning, and other advanced topics.
Programming is a core skill for computer scientists. It is hard to learn, but extremely satisfying (and fun too). This strand trains you to be good programmers. We do not assume that you have any prior knowledge of programming, though some of our students start with impressive abilities in this area. We aim to have students being competent Java programmers by the end of the first year. We teach Java initially as it has good industry acceptance, a simple and consistent object model, and large standard libraries, which mean that you can rapidly start creating interesting applications. Over the following years, you will encounter several other programming languages including C#, C++ , Scala and Matlab. In the second year, you study objectoriented modelling and software engineering, and work in small teams to develop a large program. You will also be able to study system-level programming in more depth.
Application technologies
Distributed applications
Theory underpins applications; from a teaching point of view it is important to motivate theory through providing practical opportunities to experiment. To help this we have a media lab and provide extensive first-year practical work in robotics, graphics and computer games. This allows you to create and explore, applying the more theoretical side of the course in a concrete way. In the second year, you can choose an advanced graphics course or another robotics course to continue this strand, and in the third year there are further options such as embedded systems, games technologies, computational finance and bioinformatics.
The Internet runs on a specific set of technologies and protocols; typically business applications consist of networked access to a database with a user-friendly graphical front end. You will understand the core technologies that underpin the Internet and the web, and applications that run on them. This includes the basic networking, database and distributed application protocols. Concurrency, studied as a third-year option, is becoming increasingly important as chip speeds have largely stopped increasing; performance improvements are now being achieved through multiple processors and cores. These require more complex programming to allow the different processors to communicate efficiently without corrupting shared memory. Security is becoming an increasingly vital factor in the design of internet applications, and the courses on this are taught by the Information Security Group, Europeâ&#x20AC;&#x2122;s leading research group in this area.
Foundations
Department of Computer Science
7
Degree programmes Single Honours BSc Computer Science G400 BSc Computer Science with a Year in Industry G402 MSci Computer Science G403 MSci Computer Science with a Year in Industry G404
Year 1
Year 3
Year 4 (MSci)
Core courses
Core course
Core course
Computing laboratory (games)
Full unit project
Computer Science MSci project
Computing laboratory (robotics)
Optional courses (students choose six courses)
Optional courses (students choose four courses)
Internet services
Advanced algorithms
Advanced algorithms*
Machine fundamentals
Advanced data communications
Advanced data communications*
Mathematical structures
Applications of cryptography
Computational optimisation*
Object-oriented programming
Bioinformatics
Computer learning*
Software design
Compilers and code generation
Cyber security
Compiling for embedded systems
Data analysis
Year 2
Computational finance
Digital forensics
Core courses
Computational optimisation
Fundamentals of digital sound and music*
Algorithms and complexity
Computer game technology
Intelligent agents and multi-agent systems*
Databases
Computer learning
Large-scale data storage and processing
Introduction to information security
Concurrent and parallel programming
Methods of computational finance*
Operating systems
Embedded and real-time systems
On-line machine learning
Software Engineering
Functional programming and applications
Programming for data analysis
Team project
Fundamentals of digital sound and music
Security testing theory and practice
Optional courses (students choose two courses)
Image processing
Smart cards/Token security and applications
Intelligent agents and multi-agent systems
Software verification*
Malicious software
( *) cannot be taken with the equivalent Year-3 course
Computer and network security Computer graphics
Software engineering with meta-models
Robotics Systems programming
Software verification
â&#x20AC;&#x153;I studied History, Biology, Art and Geography at school, took a Game Ranger Course in South Africa, and went on to work for an Oracle business partner, liaising between clients and the Oracle technical staff. Interacting with the Oracle programmers sparked my desire to study for a Computer Science degree. I took a foundation course to give me the necessary mathematical background and I am now really enjoying my first year on the undergraduate Computer Science course at Royal Holloway.â&#x20AC;? Bernice Soutter, 1st-year student
8
Department of Computer Science
Degree programmes BSc Computer Science (Information Security) G407 BSc Computer Science (Information Security) with a Year in Industry G406 MSci Computer Science (Information Security) G500 MSci Computer Science (Information Security) with a Year in Industry G502
Year 1
Year 3
Year 4 (MSci)
Core courses
Core courses
Core courses
Computing laboratory (games)
Full unit project (Information Security)
Information Security MSci project
Computing laboratory (robotics)
Applications of cryptography
Internet services
Malicious software
Students must take two of the following four courses:
Machine fundamentals
Optional courses (students choose four courses)
Mathematical structures
Advanced algorithms
Object-oriented programming
Advanced data communications
Software design
Bioinformatics
Cyber security Digital forensics Security testing theory and practice Smart cards/Token security and applications
Compilers and code generation
Optional courses (students choose two courses)
Year 2
Compiling for embedded systems
Advanced algorithms*
Core courses
Computational finance
Advanced data communications*
Algorithms and complexity
Computational optimisation
Computational optimisation*
Computer and network security
Computer games technology
Computer learning*
Databases
Computer learning
Cyber security
Introduction to information security
Concurrent and parallel programming
Data analysis
Operating systems
Embedded and real-time systems
Digital forensics
Software Engineering
Functional programming and applications
Fundamentals of digital sound and music*
Systems programming
Fundamentals of digital sound and music
Intelligent agents and multi-agent systems*
Team project
Image processing
Large-scale data storage and processing
Intelligent agents and multi-agent systems
Methods of computational finance*
Software engineering with meta-models
On-line machine learning
Software verification
Programming for data analysis Smart cards/Token security and applications Software verification* ( *) cannot be taken with the equivalent Year-3 course
Department of Computer Science
9
Degree programmes BSc Computer Science (Artificial Intelligence) G4G7 BSc Computer Science (Artificial Intelligence) with a Year in Industry G7G4 MSci Computer Science (Artificial Intelligence) GG47 MSci Computer Science (Artificial Intelligence) with a Year in Industry GG74
Year 1
Year 3
Year 4 (MSci)
Core courses
Core course
Core courses
Computing laboratory (games)
Individual project in artificial intelligence
Artificial Intelligence M.Sci. project
Computing laboratory (robotics)
Computer learning
Data analysis
Internet services
Optional courses (students choose five courses)
On-line machine learning
Machine fundamentals
Advanced algorithms
Programming for data analysis
Mathematical structures
Advanced data communications
Optional courses (students choose one course)
Object-oriented programming
Applications of cryptography
Advanced algorithms*
Software design
Bioinformatics
Advanced data communications*
Compilers and code generation
Computational optimisation*
Year 2
Compiling for embedded systems
Computer learning*
Core courses
Computational finance
Cyber security
Algorithms and complexity
Computational optimisation
Digital forensics
Databases
Computer games technology
Fundamentals of digital sound and music*
Introduction to information security
Computer learning
Intelligent agents and multi-agent systems*
Operating systems
Concurrent and parallel programming
Large-scale data storage and processing
Software Engineering
Embedded and real-time systems
Methods of computational finance*
Team project
Functional programming and applications
Security testing theory and practice
Optional courses (students choose two courses)
Fundamentals of digital sound and music
Smart cards/Token security and applications
Computer and network security
Image processing
Software verification*
Computer graphics
Intelligent agents and multi-agent systems
Security testing theory and practice
Robotics
Malicious software
Smart cards/Token security and applications
Systems programming
Software engineering with meta-models
Software verification*
Software verification
( *) cannot be taken with the equivalent Year-3 course
“The small class size means that it is easier to interact with the lecturer. The course is intellectually stimulating and provides a challenge for all levels of experience. ”
“The course is engineered for a life in the industry as well as academia. Lecturers are top researchers in their field.”
Computer Science students, National Student Survey, 2013
10
Department of Computer Science
Degree programmes Major Honours BSc Computer Science with Management G4N2
Year 1
Year 2
Year 3
Core courses
Core courses
Core course
Computing laboratory (games)
Algorithms and complexity
Half unit project OR Full unit project
Internet services
Databases
Optional courses
Mathematical structures
Introduction to Information Security
Object-oriented programming
Software Engineering
Software design
Team project
Students taking this programme also take courses for a total of 30 credits specified by the Department of Management.
Students taking this programme take additional courses for a total of 30 credits specified by the Department of Management and one course from the following list: Computer and network security Computer graphics Operating systems Robotics Systems programming
Students taking this programme take additional courses for a total of 30 credits specified by the Department of Management and four (if they take the full-unit project) or five courses (if they take the half-unit project) from the following list: Advanced algorithms Advanced data communications Applications of cryptography Bioinformatics Compilers and code generation Compiling for embedded systems Computational finance Computational optimisation Computer games technology Computer learning Concurrent and parallel programming Embedded and real-time systems Functional programming and applications Fundamentals of digital sound and music Image processing Intelligent agents and multi-agent systems Malicious software Software engineering with meta-models Software verification
Department of Computer Science
11
Degree programmes Joint Honours BSc Computing and Business GN41
Year 1
Year 3
Year 2
Core courses
Core course
Core courses
Internet services
Half unit project or Full unit project
Algorithms and complexity
Object-oriented programming
Optional courses
Software Engineering
Software design Students taking this programme take additional courses for a total of 60 credits specified by the School of Management.
Year 2 Core courses Databases Software engineering Team project Students take additional courses for a total of 60 credits specified by the School of Management and one course from the following list: Algorithms and complexity Computer and network security Computer graphics Databases Introduction to information security Operating systems Robotics Systems programming
Students taking this programme take additional courses for a total of 30 credits specified by the School of Management and two (if they take the full-unit project) or three (if they take the half-unit project) of the following courses:
Team project Students take additional courses for a total of 60 credits specified by the Department of Mathematics and one course from the following list:
Advanced algorithms
Algorithms and complexity
Advanced data communications
Computer and network security
Applications of cryptography
Computer graphics
Bioinformatics
Databases
Compilers and code generation
Introduction to information security
Compiling for embedded systems
Operating systems
Computational finance
Robotics
Computational optimisation
Systems programming
Computer games technology Computer learning Concurrent and parallel programming Embedded and real-time systems Functional programming and applications Fundamentals of digital sound and music Image processing Intelligent agents and multi-agent systems Malicious software Software engineering with meta-models Software verification
Year 3 Core course Half unit project or Full unit project
Optional courses
Students taking this programme take additional courses for a total of 30 credits specified by the Department of Mathematics and two (if they take the full-unit project) or three (if they take the halfunit project) of the following courses: Advanced algorithms Advanced data communications Applications of cryptography Bioinformatics
BSc Computer Science and Mathematics GG41 Year 1 Core courses Object-oriented programming Internet services and Software Design OR Mathematical Structures and Machine Fundamentals Students take additional courses for a total of 60 credits specified by the Department of Mathematics
Compilers and code generation Compiling for embedded systems Computational finance Computational optimisation Computer games technology Computer learning Concurrent and parallel programming Embedded and real-time systems Functional programming and applications Fundamentals of digital sound and music Image processing Intelligent agents and multi-agent systems Malicious software Software engineering with meta-models Software verification
12
Department of Computer Science
Project work Computer Science is partially an engineering discipline of which project work is an important part. One of the satisfactions of Computer Science is that it equips you to create things that go out to transform the world or change people’s lives. The digital world is very tractable and quickly produces results that you can test, evaluate, and improve on. First-year project In the first year, it is important for you to get some technical facility with using common tools. In order to build up your basic skills, we have equipped labs so that you can develop robotics and games projects. You will have fun and acquire key skills while developing something that will actually work. At the end of the year, each team gives a presentation to the year group, which will make you develop key transferable skills. Second-year team project Complex software requires teams of people and particular skills and technologies to help cooperation. The second-year team project is the most appropriate way of teaching this in a university environment; the small groups share the tasks between them and must design and implement a large program, making sure that the design is properly specified, testing it, and writing documentation, while meeting a strict timetable. Both the technical problems and the managerial problems are often quite challenging, which will prepare you to face the challenges of working in a company. Third-year projects The third-year project takes up a quarter of the final year for most students; you are assigned a supervisor and either pick a standard project or can specify something more original together with your supervisor. Weekly one-to-one meetings take place over the two terms; this is an opportunity to engage with a particular research topic that you find interesting in more depth than is possible in the taught component of your course. Recent projects have included: • SMS text normalisation using Hidden Markov Models; converting text-speak to normal English. • Android Game Development. • Protein visualization. • Adaptive poker: writing a computer program that can play poker by learning your betting patterns and using them to infer your hand. • Implementing fountain codes, and other network simulations. • Using graph theory and computational geometry to automatically generate levels for Counterstrike or other computer games. • Comparing different types of auctions for multiple items. • Implementing pricing models for financial options. Fourth-year projects In the final year of an MSci, you develop a project at postgraduate level, which takes up half of the year. This is an opportunity to develop a more ambitious or consequent piece of software using cutting-edge technologies or develop in more depth a piece of research in a topic that excites you or that you would like to pursue at PhD level. You will also be able to get involved in projects that our academic staff are running at the time.
“Why is programming fun?...the sheer joy of making things, things that are useful to other people.” Fred Brooks
Department of Computer Science
13
Integrated masters Integrated Masters (MSci) are primarily designed for students who wish to pursue more demanding careers at the cutting-edge of technology, or research in either academia or industry. They also provide a sound basis for postgraduate study at PhD level. These programmes add one year to your bachelors degree during which you will take four courses from our MSc programmes – currently Computational Finance, Data Science and Analytics, Information Security, and Machine Learning. You will also do a major individual project that accounts for half of the year, which can include a substantial piece of research or a more consequent
“129,000 new entrants a year are required to fill IT & Telecoms job roles in the UK. “ Technology Insights 2012, e-skills uk
14
Department of Computer Science
application of the more advanced techniques that you will have learned during your degree. Students on a single-honours BSc programme may be able to change to an MSci programme depending on academic performance. If you are not eligible or opt not to progress to the final year of an MSci, you will graduate with the corresponding bachelors degree. All four years of an Integrated Masters are eligible for undergraduate student financial arrangements covering fees, loans and bursaries
“Employment of IT professionals through to 2020 is forecast to grow at 1.62% per annum – nearly twice as fast as the UK average.”
Teaching and assessment Computer Science combines: the study of the foundations that underpin our subject, the principles, methods and techniques through which applications are developed; practical work that involves programming, the study of particular application areas such as robotics, computer graphics, intelligent agents or concurrent systems, and the various ethical and professional issues that are intrinsic to the role that computer scientists play in society and the economy.
Personal tutorials
Each of these areas demands its own teaching and assessment techniques. Teaching of Computer Science at Royal Holloway assumes that the motivation to study exists within you. We consider that our task as teachers is to introduce, explain, challenge and stimulate your creativity. At the end of your studies, you will be able to work independently, as well as able to work with others, in taking the challenges of developing software systems as ambitious as they may be.
You will have project work in all years of your degree. This can be either individual project work or carried out in small groups, always under the supervision of an academic member of staff. Projects will allow you to engage with cutting-edge topics and technologies as well as gain experience with writing large, complex programs
How you learn is as important as what you learn. We believe that the best way of teaching you computer science is to make you practice what you learn by developing projects, some small and some slightly bigger, some on your own and some in groups.
Some modules have a practical component that is best taught in a laboratory session. These include classes that have a heavy programming component, as well as those in robotics and computer games. These normally last for 50 minutes and take place in one of our well-equipped laboratories.
For example, our teaching of programming is very much ‘handson’. We do not assume that, when you join us, you know how to program, so we offer two lab-based courses – one on games and the other on robotics – during which you can develop, at your own level, real applications using all your imagination and creativity. You learn a lot and you also have lots of fun. The way we teach software engineering is also very much handson. You will practice Scrum-based Agile Software Development using state-of-the-art tools in a team project. You will learn to use the Eclipse IDE, Subversion version control, JUnit testing, Google Windowbuilder Pro GUI developer and other modern industrialstrength tools. These transferable skills are essential if you choose future employment in the software industry.
Throughout the first year, some teaching takes place in small groups. Your personal tutor provides help with programming and mathematical materials, and is able to monitor your progress. It is a good opportunity for you to raise any problems that you might be having with the material. Project work
Laboratory classes
Assessment For lecture courses, assessment is usually by coursework and two or three-hour examination at the end of the year in which the module is studied; the relative percentage of each depends on the nature of the module. Some modules are evaluated only through coursework. Project work is generally assessed by the production of written reports and the performance of the program.
A year’s-worth of study is normally broken down into eight modules, each of a nominal 150 hours of study. Teaching and learning is mostly by means of lectures, small-group tutorials, practical and problem classes, supervised computing laboratory work, group work and coursework. You support and build on these sessions through private study, guided independent study, and research in the final-year project. Lectures These usually comprise 50-minute lectures conveying the central academic material essential to the study of the topic. Lectures are usually supplemented by question sheets or exercises that you will work on in your own time. Help sessions These provide an opportunity for you to get practical help with the computer systems from the support staff. We also run scheduled lab sessions in conjunction with some introductory programming classes.
Department of Computer Science
15
Award-winning teaching Professor Dave Cohen was awarded a College Excellence Teaching Prize in 2012/13 for the redesign of the Second-Year Software Engineering strand. He was shortlisted for the Times Higher Education Award for Most Innovative Teacher of the Year Award 2013. “I decided to make this a flagship offering, to improve employability, to make internships, work placements and eventual employment more successful and to drive recruitment in a competitive market. We aim, on this course, to help students become professional Software Engineers who would make excellent colleagues.” “This course involves two half-unit modules in the second year and provides key skills necessary for the final-year independent whole-unit project. The first part of the course (CS2800) is based on individual assignments. At the end of this unit, students are well versed in the discourse of Software Engineering, have key skills associated with the practice of Software Engineering and have a wide experience of state-of-the-art industrial tools supporting Software Engineering. In the second module (CS2810), students work together in groups applying the skills developed in the first term to develop a significant piece of software. In both courses they learn to appreciate the value of Agile methods – Scrum, TDD, etc – which are leading-edge processes in industry for the development of software and the management of software teams’’. The course attracted the attention of Microsoft: “By showcasing the new material at our industrial board I was able to judge how well I had succeeded in being industrially relevant. After this event Microsoft wanted to work with Royal Holloway to make this course available on their world-leading academic Microsoft Faculty Connection.”
“I found the CS2800 course extremely rewarding. The concepts I was taught, including working in agile and the importance of test driven development, have been invaluable in the job hunting process. Employers are looking for Software Developers who have a great understanding of these modern concepts that are widely used in the profession. The Software Engineering course has given me
16
Department of Computer Science
a great advantage because I am not just able to complete employers technical assessments up to standard but also talk about my experiences from the Software Engineering course in competency based questions.” Graham Kroon, 2013 Computer Science graduate working for BSkyB
Your future career The job market By graduating in Computer Science, you will be embracing a career in which individuals can make a huge impact in boosting economic competitiveness in all sectors of activity and the well being of societies. You will have the opportunity to interact with people from many sectors, spanning the arts, media, finance, aerospace, health, and others, who will stimulate your creativity. The IT sector itself offers a wealth of job opportunities. According to e-skills UK Technological Insights 2012 report, IT companies have trouble filling posts and hiring qualified people. There are nearly 144,000 IT & Telecoms workplaces in the UK, the vast majority (87%) of which are IT focused and services orientated (90%).
ICT Engineers
ICT Assistants
ICT Professionals
ICT Management
127,000 102,000
ICT Technicians
101,000 36,000 186,000
108,000 134,000 195,000
201,000 507,000
605,000
442,000
223,000
285,000
337,000
2001
2011
2020
Source: e-skills UK analysis of data from the ONS Labour ForceSurvey, 2011 (four quarter average) together with 2011 forecasts from Experian
The trend is for this dynamic to increase during the next decade. According to the Working Futures 2010-2020 report published in 2011, the ‘IT sector will show the highest level of output and productivity in both the short to medium (2010-2015) and longer term (2015-2020) out of all sectors’.
Our specialist degrees in Artificial Intelligence (‘Big Data’) and Information Security also target the two areas in which people with the right set of skills are in short supply and high demand. Demand for Big Data staff is expected to grow by 92% over 201317, according to e-skills UK. The forecast is that 132,000 gross job opportunities in total will be created in the Big Data field in the UK. Likewise, the National Audit Office estimated in 2013 that it could take 20 years to close the skills gap in cyber-security. Hiring information security professionals is the highest of priority for many enterprise organisations; for example, nearly half the graduates and trainees hired in 2013 by BAE Systems went into its cyber and security services business, Detica. Royal Holloway itself is located at the epicentre of the IT industry in the UK – the ‘M4 corridor’, also known as ‘England’s Silicon Valley’. Indeed, 45% of IT workplaces are in London and the South East. Many companies visit the Department throughout the year or get in touch with us to offer placements or graduate jobs. Our degrees prepare you for a wide range of roles, in particular the two profiles that represent over 60% of the skills shortage in IT: Programmers/Software development professionals (38%) and Web design/development professionals (23%).* Our joint honours with the School Management prepare you for more managerial roles. Many of the Department’s graduates work for well-known companies and organisations such as Amazon, American Express, Apple, Bupa, Capita, CGI-Logica, Microsoft, Symantec, among many others. Employers always look for graduates that have a thorough understanding of their subject area. By studying with us, you will acquire the academic knowledge that is needed to adapt and evolve in what is a fast-moving, rapidly-changing area. The Department is at the forefront of research into the fundamentals of computer science as well as how this feeds into exciting new techniques and applications for business and industry, and we pass this on to you through our teaching. * source: National Skills Academy for IT, Employer survey, 2011.
Department of Computer Science
17
Your future career Careers support Employers are interested in the skills developed through student life as well as the academic knowledge students gain through studies; as an IT professional you will not only solve problems for different areas of business, but you will be closely integrated with the people working within them. Therefore, in addition to the academic programme, we give you the opportunity to develop transferable skills and market yourself effectively for graduate jobs: • The second-year group project will prepare you for team work using Agile Scrum-based Programming • As part of your third-year individual project, we train you to give presentations. • Our Careers Service will give you training on CV writing, completing application forms and preparing for an interview. • You will be able to benefit from one-to-one advice from a careers consultant, with appointments available in each term.
Graduate Profile Alumna:
Robert Couldrey
Subject:
BSc Computer Science
Graduated: 2012 Place of Work: Innovise ESM Position: Business Development Manager What does your job entail? “I am a consultative salesperson for a leading global reach Enterprise Service Management company, Innovise ESM. This role is focused on B2B customer facing sales activities, including consultative solution selling, enterprise road mapping, project design and the development of new commercial initiatives. Customers include retail and investment banks, telecommunications businesses and managed service providers; all with the challenge of managing millions of devices, systems and services worldwide.”
“These days, there is a lot of competition among graduates from the best universities to get jobs at the top companies. It is essential to give the potential employer enough reasons to be chosen from the bulk of other amazing applicants. Professional experience is a very important factor during the selection process and taking the Year-in-Industry
18
Department of Computer Science
Advice and training on careers is provided by the Departmental Careers Tutor and the College Careers Service – part of the Careers Group, University of London, the largest university careers service in Europe. We also organise a number of events through which you can get directly involved with employers: • Through the part-time jobs fair, which runs in the first weeks of term, you will have access to local employers. • A specific fair on IT brings many companies to the campus. • ‘Careers in Finance’ week explores career opportunities in Investment Banking, Public Sector Finance, Accountancy, Professional Services, Risk and Insurance. • The ‘Numbers, Words and Environment’ careers week offers you the opportunity to explore further the diverse range of occupations related to Computer Science. • The Department also maintains a strong link with its alumni, who are often able to provide you with advice, contacts and networking opportunities.
How has your degree at Royal Holloway helped you progress your career? “My technical capability gives me a competitive edge over others in commercially focused roles. My time at Royal Holloway also gave me the skills to design, challenge and articulate complex technical problems; critical to successfully engaging with enterprise customers. Courses such as Software Engineering with Metamodels CS3480, Programming Paradigms CS2820 and Compilers and Code Generation CS3470 taught me to think at a low and at a high level, providing me with both a practical and theoretical understanding of computational systems.” Do you have any advice for current students? “The best piece of advice I can give is to always ensure you are well practised in expressing your ideas. Whether you end up in a customer facing role or not, an ability to express yourself technically as well as professionally will get you far - so make sure you take full advantage of opportunities to write reports, present and work in a team.”
pathway puts you one step ahead of many others. I did my placement at CGI (formerly Logica), very close to Royal Holloway, which not only improved my personal and technical skills, but also increased my level of confidence in my abilities; at the end of the placement, I was offered a full-time Software Engineer position after graduation.
Your future career
Industry links The Department’s Industrial Liaison Board comprises senior representatives from Microsoft, Centrica, Cognex, CSC, Bank of America Merrill Lynch, Kalido, Bathwick Group, Pentatonix, Blackrock, Oracle, Investec and QubeSoft. The Board members provide valuable and detailed advice on the Department’s curricula. This ensures that the courses offered are constantly revised and updated so that Computer Science graduates entering employment are already up to date with the latest developments and ready to build the next generation of computing systems for business and industry. The Year-in-Industry pathway You will be given the opportunity to apply for an industrial
internship after your second year of study. This will be an integrated part of your studies, leading to a Year-in-Industry degree, which is highly valued by employers. Our Careers Tutor visits you twice during your placement and keeps in touch with your host to monitor your progression. Many students take advantage of this opportunity, finding placements both in software developing companies – such as Apple, Microsoft or Symantec – and in companies specialising in other areas, such as finance or consulting. These internships enable you to gain valuable work experience, which helps prepare you to move into the career of your choice upon graduation. Often, at the end of their placements, students are offered permanent jobs in the same company, which they may take up following graduation.
Doing the Year-in-Industry also gave more focus to the final year of my degree; I’m using all the knowledge and experience that I gained at CGI to design and implement my Final-Year Project, which is a substantial piece of software that I’m developing using a state-of-the-art industrial-strength framework.” Piotr Nowak, final-year student
Department of Computer Science
19
Other information Cool Computing competition Since the introduction of Lego robots into our curriculum, we have noticed a blossoming of student creativity and been most impressed by the ingenuity shown by a number of students designing robots and games. Above all, students enjoy themselves whilst learning worthwhile programming skills. The annual Cool Computing competition was established in 2009 to reward and channel this creativity through the development of really cool demonstrations for outreach activities, including open days. The competition is open to all Computer Science undergraduates and submitted demos are judged for coolness by prospective students on a real live open day. Each demo is also judged by the IT Support Team for ease of set up and by a lecturer for academic relevance. Recent winners: Jack Hopkins, winner in 2013, presented Vocem Stellarum – a graphics demonstration that simulates a planet and a moon mathematically, so that complex 3D images can be generated at run time without having to be designed by artists and stored on disc. His program is less than 100 kilobytes in size, i.e. about the size of one picture on Facebook. Chris Fey, winner in 2012, presented the Face Follower robot, which is made out of Lego and has a mobile phone attached. It uses the camera in the phone to search for a face; when it has found one it follows it around the room until asked to stop by clapping hands. Simon Carr, winner in 2011, presented Orvil, an extremely wellengineered off-road vehicle in Lego. The vehicle is controlled (via Bluetooth) by a joystick, also built out of Lego. It is very easy to control and can climb significant obstacles.
From left to right: Christopher Fey, Pierre-Malo Deniélou, Blake Loring, Dave Cohen, Lewis Chun
The Magna Carta project A group of Computer Science students (Lewis Chun, Christopher Fey and Blake Loring) supervised by Professor Dave Cohen and Dr Pierre-Malo Deniélou are creating a website and a phone/tablet app that can guide visitors and inform the public about the Magna Carta signature site as part of the 800th Centenary Celebrations of the sealing of the Magna Carta.
20
Department of Computer Science
The app will allow people to navigate the multidimensional (historical, geographical, biological, philosophical, etc.) layers of information in a friendly and accessible way through topical trails that can be virtually followed from home or be experienced onsite using the phone geolocalisation. This project is funded by the National Trust and Runnymede Borough Council.
Other information The Computing Society The Royal Holloway Computing Society creates an essential space where students organise activities for students, thus increasing their participation in the life of the Department. To illustrate the broad range activities organised (or co-organised) by the Computing Society, here is the programme of events that ran in the Autumn Term of 2013-14: Dates
Events
Oct 01
“Fun & Games with Enterprise Software” by Thomas Banks, Technical Evangelist at IBM
Oct 02
1st Social 2013/2014
Oct 05
1st Saturday GEEK-OUT! 2013/2014 (Theme: Ice Breaker)
Oct 10
“Writing & Testing High Frequency Trading Engine” by Peter Lawrey, Principal Consultant at Higher Frequency Trading Ltd.
Oct 15
“Are you better than a Coin Toss?” by Richard Warburton & John Oliver, Principal Engineers at jClarity
Oct 17
“Web Designing: Lesson 01 – HTML Basics” by Christian Jank & Henry Ching
Oct 19
Saturday GEEK-OUT! (Theme: Game Programming with PyGame)
Oct 21
“Beginners Java Workshop: Lesson 01 – Introduction to Java Programming“ by Emil Tan
Oct 24
“Web Designing: Lesson 02 – Images, Hyperlinks & Tables” by Christian Jank & Henry Ching
Oct 28
“Beginners Java Workshop: Lesson 02 – Introduction to Programming Logic I” by Emil Tan
Oct 31
“Web Designing: Lesson 03 – Introduction to CSS” by Christian Jank & Henry Ching
Nov 02
Saturday GEEK-OUT! (Theme: JDK8 with Lambda Tutorial)
Nov 06
“Come in Your Socs” Social
Nov 11
“Beginners Java Workshop: Lesson 03 – Introduction to Programming Logic II” by Emil Tan
Nov 14
“Chinese Postman, Travelling Salesperson & Related Problems” by Professor Gregory Z. Gutin
Nov 16
Saturday GEEK-OUT! (Theme: Big Data Analytics with Splunk)
Nov 18
“Beginners Java Workshop: Lesson 04 – Introduction to Methods” by Hannah Cooper & Julianna Kadar
Nov 21
“Web Designing: Lesson 04 – Using CSS for Layout” by Christian Jank
Nov 21
Trip to Royal Geographical Society (with IBG) “Big Data, Big Impact” Conference
Nov 23
Trip to London Java Community Open Conference
Nov 28
“Web Designing: Lesson 05 – Introduction to JavaScript” by Christian Jank
Dec 03
Christmas Lecture – “The Age of Free Software” by Dr. Pierre-Malo Deniélou Computing Society and Department of Computer Science Annual Christmas Social
Dec 05
“Web Designing: Lesson 06 – Basic Applications of JavaScript” by Christian Jank
URL: http://computingsociety.co.uk Twitter: RHULCompSoc Email: rhul.computingsociety@gmail.com
“To pursue a degree in Computer Science at Royal Holloway has always been my dream. The degree has not only provided me with a good foundation in Computer Science but also trained me to be a better professional. With great encouragement and support from the Department of Computer Science, I founded the Computing Society in late 2012. The society was created with the aspiration to build a network of enthusiasts, students, academics, and professionals in the field of computing. In just one year, we have successfully established ourselves through participation in professional conferences as well as having industry experts visiting us.” Jingwei Tan, BSc Computer Science Jingwei Tan (BSc Computer Science student) Department of Computer Science
21
Women in Computer Science The Department of Computer Science has received an Athena SWAN Bronze award in recognition of our commitment to increasing the participation of women in Computer Science at all levels, from undergraduate students to the highest academic roles. We are one of only seven Computer Science departments to have received this award. Women were prominent amongst the computing pioneers: Grace Hopper wrote one of the first compilers and her language designs were developed into the COBOL business processing language. Lois Habt was one of the ten-person team that developed FORTRAN, Jean Sammet also worked on early languages and became president of the Association for Computing Machinery. Although today women are in senior positions in academia or industry, the gender gap in Computer Science is still a worldwide concern, especially in the more advanced economies. The Athena SWAN Charter, launched in June 2005, recognises commitment to advancing women’s careers in science, technology, engineering, maths and medicine (STEMM) employment in academia. We have an ambitious plan to recruit more female undergraduate students and ensure gender balance in all activities, from representation in student-staff committees to participation in outreach activities.www.athenaswan.org.uk/
Elizabeth began her research career in Mathematics, holding fellowships at the University of Oxford and at the Australian National University, Canberra. Elizabeth says: “I first came to Royal Holloway to join Professor Ursula Martin’s Theoretical Computer Science Group because Computer Science offered an arena in which I could usefully exploit my mathematical skills. As a Group Theorist I discovered an enjoyment of reasoning about formally specified mathematical structures and developed an extensive background in algebraic
SWAN Awards Ceremony: Professor Elizabeth Scott, Professor Dame Julia Higgins FRS FREng (Athena SWAN Patron), Professor José Fiadeiro (Head of Department)
methods, which have numerous computer science applications. As a Computer Scientist I can use mathematics to create correct and efficient computer algorithms.” After working in the Computer Science Departments at the Universities of St Andrews and Surrey, Elizabeth returned to Royal Holloway where she is now Professor and Chair of the Computer Science Examinations Sub-board. Elizabeth’s research focuses on algorithms for programming language analysis. She is Director of the Centre for Software Language Engineering, which currently has a major joint research project to develop practical formalisms for programming language semantics specification. The centre has also recently been awarded a Leverhulme Grant to study Charles Babbage’s notation, which he used to design and document his 19th-century computing engines. Professor Elizabeth Scott
“I took A-level Maths, Further Maths and Biology. What attracted me to Computer Science was that it seemed interesting and ‘future proof’; there would always be something new and relevant to learn during my career, which I plan to be in Logistics in the retail industry. The course at Royal Holloway combines mathematical underpinnings with more practical aspects such as programming and software engineering. Turning a mathematical algorithm into a program, and then seeing it run correctly, is very satisfying. One great opportunity I had was to attend the ‘It’s Not Just For The Boys’ female IT networking event in London; as a result, I gained an eight-week internship, which provided me with invaluable work experience.” Emily Jackson, 3rd-year student
22
Department of Computer Science
Research interests Industry links Choosing to study at a research-led university like Royal Holloway gives you the opportunity to learn from and interact with the people that are inventing and creating the next generation of computational methods and techniques. Much of the work that we do is interdisciplinary or developed in conjunction with companies, which gives you the opportunity to experience the way computer science branches out to all sectors of society and the economy. The critical mass achieved by the research groups in Computer Science and in Information Security allows us to offer a full spectrum of activity from cloud physical infrastructure and middleware through to machine learning-based data analytics and information security, which is generating many approaches from potential users and collaborators. Algorithms and applications Algorithms are sequences of instructions that can be executed by a compute; researchers in this area use mathematical modeling as the basis for design and analysis of useful algorithms, and to prove mathematically that such algorithms are correct and efficient. Though they are interested in different problem areas and applications, they all aim to develop models that accurately reflect and emphasise the real-world constraints and so guide the development of practically useful analysis. The practical applications include: radio frequency planning for mobile telecommunications, route optimisation, such as optimising routes of geophysical vessels used in oil exploration (an extension of the well-known travelling salesperson problem), and large scale scheduling problems, such as planning manufacturing processes and designing airline timetables. Bioinformatics Biology is entering its golden age in the 21st century. Interpreting the huge amounts of digital data emerging from new methods in biology pose many new problems that are only solvable by computer-based approaches. This presents a serious challenge for computer scientists and biologists but it is believed that we could understand how cells work from DNA up. This will have huge consequences in medicine and indeed the quality of our lives. Current projects in the Department focus on understanding which parts of the genome are active during particular phases of the life of bacteria and plants, analyzing DNA and protein sequences emerging from genome sequencing projects, and modeling biological processes such as cell physiology, development and evolution. Other research looks at the spread of diseases on networks, and more fundamentally at the origins of genetics itself and the study of evolution as a computational process. Distributed and global computing Research in the Department addresses large-scale and dynamic distributed systems exemplified by the modern days clouds, service-oriented architectures, and distributed intelligence, among others. We are targeting the new class of highly dynamic (systems of) systems that are starting to operate in cyber-space where applications coexist with physical artefacts and people in networks where they produce, process and exchange data and compete for resources (e.g., energy). This has led, for example, to the development of an infrastructure for distributed systems
within which logic-based agents can be deployed to provide or otherwise support services in a distributed system, the development of the new distributed monitoring infrastructure that underpins the NSF-funded Ocean Observatories Initiative, and the development of new modelling and analysis techniques for heterogeneous and stochastic component-based systems with applications in real-time systems and systems biology, among others. Information security Royal Holloway is at the forefront of information security research in the UK. The Information Security Group (itself an autonomous department of the University) received recognition as one of 11 Academic Centres of Excellence in Cyber Security Research (ACE-CSR) awarded by EPSRC/GCHQ, and host one of only two Doctoral Training Centres in Cyber Security. Its research has a strong focus on the security of systems and technologies, including the foundations of trust (such as key management infrastructures and trusted computing), the development of secure, large-scale applications and systems (such as workflow management systems, mobile telephone networks, computational grids and national infrastructure), and applications such as payment and identity-management systems. We work closely with the cyber-security industry, collaborating closely with many companies including HP, Vodafone, Orange, McAfee, Thales, KPMG, PwC, Deloitte, Mastercard, Visa, Intel, and Transport for London. Machine learning Machine learning is the study of systems that can learn from data and adapt to changing environments. Often when a computer is needed to make a decision or prediction, the correct rule is too complex to be accurately constructed by a human expert; in these cases, machine learning can be used to automatically infer a process from real data. This approach is now widely used in many different areas of finance, biology and information processing. Several different approaches have been pioneered in the department, including the theory of Support Vector Machines, reinforcement learning and many others. The Computer Learning Research Centre brings together members of the department and internationally renowned leaders in the field of machine learning as visiting professors. The centre provides a focus for fundamental research and commercial industrial applications with an emphasis on computational models and their application to intelligent knowledge-based systems. Software language engineering The Department carries out research into logic and the design of programming languages and compilers, which are the tools that convert human readable source code into runnable programs. Work focuses on the theory and application of grammar-based techniques. Our interests encompass traditional programming language design and implementation, domain-specific language development, reverse compilation, modular syntax and semantics, the interpretation of biological sequence data; and the semi-automatic derivation of customised computer architectures for embedded systems.
Department of Computer Science
23
Royal Holloway, University of London Egham, Surrey, TW20 0EX T: +44 (0)1784 434455 royalholloway.ac.uk