The computer engineering program involves the design and engineering of computer hardware and software. It is a synthesis of computer engineering and computer science courses to train students in the engineering of computers and computer systems and in the use of computers in many engineering applications. Computer engineering is a broad area involving many possible areas of specialization.
The computer engineering curriculum is offered within the Faculty of Engineering. The program is concerned with the application of algorithmic processes as realized in hardware and software, or a combination of both, to the solution of problems arising in technological, economic, and social areas. The students get a balanced education in the four key components of computing discipline: theory, abstraction, design and practice. Theory provides the underlying mathematical or scientific principles of computing. Abstraction provides modeling principles for potential algorithms, data structures, architectures, information systems and so forth. Design and practice enables the development of software systems by using appropriate combination of theory and tools such as programming languages, databases, network protocols, client/server architecture, etc.
The undergraduate program accommodates students who are seeking a broad and deep knowledge of the above disciplines. The courses are designed to develop the problem solving and communication skills of the graduate for a work environment or for a higher degree education. Students who obtain a Bachelor of Science degree will be ready to undertake any technical work in computing and will be able to pursue a career in research and development. Some of the possible job titles are: system analyst and programmer, database administrator, system administrator, network administrator, network programmer, graphics developer etc. With additional on-the-job training possibly combined with additional management training, they will also assume leadership roles in a wide range of fields.
The first two years cover basic sciences in mathematics, physics, statistics and engineering. An introduction to the fundamental areas of computer science: theory of computing, programming, computer organization, digital design, numerical analysis, algorithms and data structures are also given. The third year completes the background in basic computer science and engineering. Area of studies include operating systems, database management systems, computer graphics, computer architectures, microprocessors, principles of programming languages, object oriented methodologies and software engineering. Senior students prepare an engineering project using their creativity, knowledge, motivation and current technology. In the senior year a wide range of advanced topics for specialization are also offered to the students as well as the core courses on data communications, computer networks and artificial intelligence. Depending on the choice of electives from the program a graduate will be able to pursue a career in one of the specialization areas offered by the department.