Bachelor's Degree in Computer Science

The study program has been developed with the aim of providing our students with an academic foundation that serves as a basis for their graduate degree studies and for development as researchers, as well as training them as software developers who are capable of meeting technological challenges in the rapidly changing field of computerization. The study material is also designed to provide them with the ability to manage complex environments that include interfacing with hardware and communications, and to equip them with basic mathematical tools for developing algorithms in different areas.


The requirement for a BSc degree is to complete 126 credits. Two core programs are offered: a single-major program and a dual-major program. In the single-major program, the students take courses from the Department of Computer Science alone, with the exception of 6 credits from other areas, to expand their horizons. Graduates of this program are awarded a B.Sc. in computer science. In the dual-major program, about half the credits are earned in the Department of Computer Science, and the rest are earned in one of the following departments: Economics and Management, Education, Psychology, or Multidisciplinary Studies. Graduates of this program are awarded a combined B.A. in computer science and the subject of the other department chosen. The decisive majority of students of the Department of Computer Science are enrolled in the single-major program.

The Single-Major Program

A six-semester schedule starts both on Fall and Spring terms, with the first three semesters dedicated to fundamentals in Mathematics and Computing.


Two tracks are offered to allow our students to develop depth in a certain specialization:

Software Development Track

This track concentrates on the subjects required in the software industry. In addition to the foundation in mathematics and the theoretical aspects of computer science, the emphasis in this track is placed on different industry-related subjects, such as programming languages in advanced development environments, object-oriented programming, computer communication, software engineering, operating systems, programming in the internet environment, databases, information security, and cryptology. In this track, students earn 87 credits from required courses and 39 credits from the electives offered in the department, with a maximum of 6 credits taken in other departments. A student needs a total of 126 credits to graduate with a degree.

Digital Signal Processing Track

This track allows students to specialize in an area that is in very high demand in the industry and in research. In addition to the foundation in mathematics and the required courses of computer science, and after learning the basic principles of digital signal processing, this track focuses on subjects such as image and video processing and compression, audio signal processing, and DSP in real-time. The emphasis of the studies is on digital signal processing algorithms and their implementation. The studies include courses such as signal and image compression, real-time digital signal processing, speech and audio signal processing, pattern recognition and machine learning, video processing, and more. In this track, the students earn 99 credits in required courses, most of which are shared by the two tracks, and 27 credits in electives specific to the track, with a maximum of 6 credits taken in other departments. A student needs a total of 126 credits to graduate with a degree.


Students may elect, in the framework of their 126 credits, to fulfill the requirements of both tracks. Electives are either in the form of standard courses, or workshops and projects: