Computer Engineering is a branch of engineering that includes the applications of algorithmic processes encountered in the field of hardware and software. It also provides solutions to problems encountered in technological, economic, scientific and social fields. There are four main areas in which students are trained in this discipline: theory, abstraction, design and practice. Theory provides the mathematical and scientific background of computing. Abstraction involves the principles of modeling algorithms, data structures, hardware architecture. Design and practice refers to the use of tools and theory necessary for the development of hardware-software systems. These tools include programming languages, databases, network protocols, client/server architecture, artificial intelligence, etc.
Computer Engineering programs include courses in basic sciences, basic engineering, social sciences and computer science. The foundation of Computer Engineering is provided by courses in theory, programming, computer organization, numerical design, numerical analysis, algorithms and data structures. In advanced classes, operating systems design, database applications, computer graphics, computer architecture, microprocessors, programming languages, object-oriented programming methods and software engineering are covered. Final year students combine their creativity, knowledge and motivation with the latest technology to prepare a final project.