to develop, in a flexible and progressive structure, students’ knowledge and understanding
of fundamental areas of computer science such as: algorithms, design and analysis, computational theory, computer architecture and software based systems , with the ability to use this knowledge to devise,
specify, design, implement, test, document and critically evaluate computer-based systems
To provide students with a sound understanding and how to apply mathematics,
science to real world problems;as well as to analyze and interpret data
To provide students with the analytic skills necessary to effectively
evaluate the relative merits of software and computer systems, and algorithmic approaches.
To provide students with a sound understanding and how to apply a wide range of principles and tools of software engineering,
such as design methodologies, choice of algorithm, language, software libraries and user interface technique.
To equip students with state-of-the-art knowledge and understanding of algorithms and data structures, computer organization and architecture, programming language concepts, networks, artificial intelligence, graphics, natural language processing, data mining, human computer interfaces,
and databases, and identify and define the computing requirements for its solution.
To give students the opportunity to deepen their technical expertise in Designing,
implementing, and evaluating a computer-based systems, process, component or program.
To develop the students' ability to use knowledge and understanding in the modeling and design of computer based systems in a way that demonstrates comprehension of the tradeoff involved in design choices.
To prepare students for working effectively in teams in designing and implementing software systems and
to equip them with management skills to be able to carry out a work plan with minimal supervision
To develop the students understanding of the key ethical, moral,
legal issues affecting computer science and their responsibilities as computer science professionals.
To develop the students' ability to communicate,
present and document ideas and concepts clearly and in an organized manner.
To equip the students' with independent learning skills and encourage an appreciation
of the importance to computer science professionals of
continuing professional development and lifelong learning