The Department of Computer Science and Computer Engineering offers flexible and innovative undergraduate, graduate and PhD programs in Computer Science and Computer Engineering.
Computer Science is the study of computers and computational systems. Unlike electrical and computer engineers, computer scientists deal mostly with software and software systems; this includes their theory, design, development, and application.
Principal areas of study within Computer Science include computer systems and networks, security, cryptography, artificial intelligence, database systems, human computer interaction, vision and graphics, numerical analysis, programming languages, software engineering, bioinformatics and theory of computing.
Although knowing how to program is essential to the study of computer science, it is only one element of the field. Computer scientists design and analyze algorithms to solve programs and study the performance of computer hardware and software.
Like it or not you're living in it – this is the Digital Age. Computer programs have all but infiltrated every aspect of our lives. Computer scientists theorize, design, develop, and apply the software and hardware for the programs we use day in day out – sounds pretty important to us.
According to the statistics, it is noticeable that computer science students stand a pretty good chance of being professionally employed or in further study within 6 months of leaving university.
Computer science departments at typically benefit from having one of the more culturally diverse cohorts at their respective unis. According to HESA data nearly 9,000 computer science students come from overseas.
A diverse cohort means you'll be exposed to different cultures and potentially finish university with an international network of contacts to utilize later in life.
Every industry uses computers so naturally computer scientists can work in any. Problems in science, engineering, health care, and so many other areas can be solved by computers. It's up to the computer scientist to figure out how, and design the software to apply the solution.
Many people incorrectly believe that a computer science career is all about programming. While it is true that most entry-level jobs after a Bachelor's degree involve programming, most practitioners eventually graduate to other responsibilities such as design, coordination, testing, planning and management. Thus, you typically start with a software engineering job after a Bachelor's and move on (after about 5 years of experience) into higher-level positions. With advanced coursework and a Master's degree, you can work in an area of specialization that uses your advanced coursework. For example, working for an animation outfit such as Disney will require at least 2 to 3 courses in computer graphics. Finally, a PhD degree usually finds its recipient in a research environment such as a research lab, research wing of a large corporation or a university.
Most career paths in computer science involve people skills and interacting with people. Beyond an entry-level position as a software engineer, almost any corporate position requires working with people. The creation of software is most often a team effort, and software companies are organizations of people like any other type of company. Thus, if your career path is typical, you will not be alone in your cubicle staring at the screen.
Computer science is about a unique kind of problem-solving: creatively solving problems using computation. If you are creative, if you like puzzles, if you like problem-solving in other domains (engineering, mathematics, sciences), if you are comfortable with abstract thinking, if you like working at the intersection of multiple disciplines - if any of these apply to you, then Computer Science is for you.
Computer Networks. Computer networking is the connecting of two or more computers that allows them to share resources. It can be done between computers in a home, in a business, across a corporation, and even internationally. The Internet is the largest example of computer networking because it involves thousands of networks of computers that share information.
Cryptography & Network Security. Cryptography or cryptology is the practice and study of techniques for secure communication in the presence of third parties called adversaries. More generally, cryptography is about constructing and analyzing protocols that prevent third parties or the public from reading private messages; various aspects in information security such as data confidentiality, data integrity, authentication, and non-repudiation are central to modern cryptography. Network security consists of the policies and practices adopted to prevent and monitor unauthorized access, misuse, modification, or denial of a computer network and network-accessible resources. Network security involves the authorization of access to data in a network, which is controlled by the network administrator.
Artificial Intelligence. Artificial intelligence (AI) is intelligence exhibited by machines. In computer science, an ideal "intelligent" machine is a flexible rational agent that perceives its environment and takes actions that maximize its chance of success at some goal. Colloquially, the term "artificial intelligence" is applied when a machine mimics "cognitive" functions that humans associate with other human minds, such as "learning" and "problem solving". As machines become increasingly capable, facilities once thought to require intelligence are removed from the definition.
Database Systems. A database is an organized collection of data. It is the collection of schemas, tables, queries, reports, views, and other objects. The data are typically organized to model aspects of reality in a way that supports processes requiring information, such as modelling the availability of rooms in hotels in a way that supports finding a hotel with vacancies. A database management system (DBMS) is a computer software application that interacts with the user, other applications, and the database itself to capture and analyze data. A general-purpose DBMS is designed to allow the definition, creation, querying, update, and administration of databases. Well-known DBMSs include MySQL, PostgreSQL, MongoDB, Microsoft SQL Server, Oracle, Sybase, SAP HANA, and IBM DB2.
Human Computer Interaction. Human-computer interaction (commonly referred to as HCI) researches the design and use of computer technology, focused on the interfaces between people (users) and computers. Researchers in the field of HCI both observe the ways in which humans interact with computers and design technologies that let humans interact with computers in novel ways.
Computer Vision And Graphics. Computer vision is an interdisciplinary field that deals with how computers can be made to gain high-level understanding from digital images or videos. From the perspective of engineering, it seeks to automate tasks that the human visual system can do. Graphics is any technique for creating images, diagrams, or animations to communicate a message. Visualization through visual imagery has been an effective way to communicate both abstract and concrete ideas since the dawn of humanity. Examples from history include cave paintings, Egyptian hieroglyphs, Greek geometry, and Leonardo da Vinci's revolutionary methods of technical drawing for engineering and scientific purposes.
Numerical Analysis. Numerical analysis is the study of algorithms that use numerical approximation (as opposed to general symbolic manipulations) for the problems of mathematical analysis (as distinguished from discrete mathematics).
Programming Languages. A programming language is a formal computer language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs to control the behavior of a machine or to express algorithms.
Software Engineering. Software engineering (SWE) is the application of engineering to the design, development, implementation, testing and maintenance of software in a systematic method.
Bioinformatics. Bioinformatics is an interdisciplinary field that develops methods and software tools for understanding biological data. As an interdisciplinary field of science, bioinformatics combines computer science, statistics, mathematics, and engineering to analyze and interpret biological data. Bioinformatics has been used for in silico analyses of biological queries using mathematical and statistical techniques.
Theory Of Computing. In theoretical computer science and mathematics, the theory of computation is the branch that deals with how efficiently problems can be solved on a model of computation, using an algorithm. The field is divided into three major branches: automata theory and language, computability theory, and computational complexity theory, which are linked by the question: "What are the fundamental capabilities and limitations of computers?".