Department of Computer Science (DCSC)


Computer Science is about understanding computer systems and networks at a deep level. Computers and the programs they run are among the most complex products ever created; designing and using them effectively presents immense challenges. Facing these challenges is the aim of Computer Science as a practical discipline, and this leads to some fundamental questions:

  • How can we capture in a precise way what we want a computer system to do?
  • Can we mathematically prove that a computer system does what we want it to?
  • How can computers help us to model and investigate complex systems like the Earth’s climate, financial systems or our own bodies?
  • What are the limits to computing? Will future quantum computers extend those limits and allow computer Science to play an even bigger role in our life?

The theories that are now emerging to answer these kinds of questions can be immediately applied to design new computers, programs, networks and systems that are transforming science, business, culture and all other aspects of life in our world. 

The undergraduate Computer Science program at DCSC of Bayan University (BNU) is a four years Bachelor of Science (BSc) program. The fourth year allows the study of advanced topics and an in-depth research project.

The course concentrates on creating links between theory and practice. It covers a wide variety of software and hardware technologies and their applications. We are looking for students with a real flair for mathematics, which you will develop into skills that can be used both for reasoning rigorously about the behaviour of programs and computer systems and for applications such as scientific computing. You will also gain practical problem-solving and program design skills; the majority of subjects within the course are linked with practical work in BNU well-equipped laboratory.

At DSCS we strive to; 

  • teach students how to use computers effectively, creatively, and intelligently;
  • teach computer science as a multifaceted, humanistic discipline of problem-solving; 
  • provide up-to-date curricula in the technical and scientific knowledge needed for the professional and academic goals of our students; 
  • encourage and participate in interdisciplinary undergraduate educational opportunities at BNU; 
  • teach students how to acquire new knowledge, independently, in a world that changes with ever-increasing rapidity;
  • provide students with experiential learning opportunities; and 
  • educate an increasing number of undergraduates in DCSC to meet the growing demands of the regional and national economy.

DCSC Vision:

The vision of the DCSC is to be among the region’s premier small research and teaching Computer Science program for undergraduates. Also, DCSE envisions to build the student's personality from several aspects in an integrated manner to be a distinguished graduate of this department at all levels and has a scientific and professional ability which qualifies them for success in their career as a computer experts to serve their communities.

DCSC Mission:

To create, share, and apply knowledge in Computer Science, including in interdisciplinary areas that extend the scope of Computer Science and benefit humanity; to educate students to be successful, ethical, and effective problem-solvers and life-long learners who will contribute positively to the economic well-being of our region and wider and who are prepared to tackle complex 21st Century challenges facing their communities and the world in general.

Program Learning Outcomes:

The DCSC program is focused on the technical aspects of software creation. Graduates of the program are expected to;

  • attain an ability to apply knowledge of computing and mathematics appropriate to the discipline.
  • attain an ability to analyse a problem, and identify and define the computing requirements appropriate to its solution and also apply the acquired knowledge in a creative and critical manner in their work
  • attain an ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
  • attain an ability to function effectively on teams to accomplish a common goal.
  • attain an understanding of professional, ethical, legal, security and social issues and responsibilities.
  • attain an ability to communicate effectively with a range of audiences.
  • attain an ability to analyse the local and global impact of computing on individuals, organisations, and society.
  • attain recognition of the need for an ability to engage in continuing professional development.
  • attain an ability to use current techniques, skills, and tools necessary for computing practice.
  • attain an ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modelling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
  • attain an ability to apply design and development principles in the construction of software systems of varying complexity.

Beneficial Skills for DCSC Program

Many skills are helpful when beginning an education in computer science program. To begin a degree program, students will complete numerous courses that require aptitude in various topics in logic and mathematics. A large portion of the processes for coding, for instance, require high levels of mathematical ability. Prior experience with computer programming is also beneficial, as computer science majors will be required to complete a number of courses in different programming languages including C++, Java, and assembly.

Additional skills include those that are often categorised as soft skills. Two of the most important of these skills include creativity and critical thinking. Many of the projects and processes in the computer science field involve finding the answer to a complicated problem. Like a puzzle, creative thinking enables a student to find the key to solving the puzzle. Critical thinking helps students to analyze and identify possibilities and strategies to solve the same puzzle. In addition, other skills beneficial to computer science studies include decision making, written and verbal communication, and working well under pressure.

The beneficial skills for students are expanded and developed for after graduation as well. Additional skills that are beneficial for computer science students can be found on the IEEE website.

Analytical Skills

Being a student in the computer science program involves identifying a problem and coming up with a technological solution to address it. This requires having strong analytical skills that will enable you to understand the issue you’re dealing with and evaluate different solutions in order to find the one that best fits your needs. The students have or gain;

  • ability to cover a wide range of technologies and the environment. 
  • to understand a code behaviour through the skill of reading codes and reforming codes.
  • ability to write and design methods that describe a specific behaviour on (input/output) and how to suit them with precondition and postcondition of the desired environments. 
  • ability to determine the pre-action and post actions of a code that designed for doing a specific functionality, especially at the high-level structure of coding, 
  • awareness about software development life cycle, using library and frameworks, debugging, and use of integrated development environments. 

Communication Skill

One of the other key skills for students in the computer science program is the ability to solve complex problems in a systematic and logical way. This is because most of the projects you will be working on will require you to take a concept and turn it into a reality. In order to do this, you will need to be able to think about the best way to execute the project and then outline the steps needed to get it done. The communication skills are very important to you, so you are;

  • writing a technical report and presentation. 
  • using your verbal communication skills to make sense.
  • writing and presenting lab works, projects, assignments, researches precisely. 
  • also, attainability to present research in the form of poster presentation. 
  • Progressing to gain the ability to communicate through groups and making video conferences. 

Language of Instruction:

The language of instruction at the DCSC is English for all courses, except the Kurdistan Studies course where the language of study is Kurdish.

Study methods:

The DCSC is following a semester bases system implementing the Bologna Process. The method of study depends on lectures, reports, study groups, presentation and laboratory/practical sessions, in addition to the compulsory internship program with the related industries, e.g. the internship program with relevant companies. The assessment is achieved via class workloads, mid-term exams, final exams, essays and reports.

Duration of the Program:

The duration of the study at the DCSC is 4 Academic years of full-time studies. Normally an academic year starts in the first week in Sept to the end of June of the next year.

Program Course Modules taught at the Department:

The following link provides a full list of Course Modules provided at this department. Each course has a standard course module code which is hyperlinked to its dedicated website for full details information on that particular course. Please note that on each course modules website you will also be directed to Academic Profile of the lecturer providing the course.

Course Modules

Core Courses: System (C)

Programming Abstractions (BNU310xx or BNU310xx)

These courses introduce students to many fundamental programming concepts and software engineering techniques using the C++ language. The course will focus on teaching problem-solving skills, basic abstract data types, and recursion. General topics include basic programming methodology (engineering, modularity, documentation), data abstractions (stacks, queues, linked lists, hash tables, binary trees, generics and templates), recursion (procedural, backtracking), searching and sorting, and basic algorithmic analysis.

Computer Organisation and Systems (BNU310xx)

BNU310xx transitions students to programming on the UNIX machines. The class aims to teach students about computer systems from the hardware up to the source code. Topics include machine architecture (registers, I/O, basic assembly language), memory models (pointers, memory allocation, data representation), the compilation (stack frames, semantic analysis, code generation), and basic concurrency (threading, synchronisation).

Principles of Computer Systems (BNU310xx)

BNU310xx will teach students how to build larger scale systems using the operating system and networking abstractions. Topics include processes (threading, context switching, interprocess communication), storage and file management (file systems, virtual memory), networking (sockets, TCP/IP, routing) and an understanding of distributed systems.

Core Courses: Theory (B)

Mathematical Foundations of Computing (BNU310xx)

BNU310xx will give students the mathematical foundations necessary for computer science. Topics include proof techniques and logic; induction; sets, functions, and relations; an introduction to formal languages; Context-Free Grammars, and Turing Machines.

Introduction to Probability for Computer Scientists (BNU310xx)

BNU310xx is designed to teach students material from probability and statistics that are relevant to computer science. Topics include combinatorics; probability theory; conditional probability, and independence; probability distributions; Bayes' Theorem, Law of Large Numbers, and the Central Limit Theorem; and hypothesis testing. The class will also cover applications of probability including hashing, data analysis, inference, and an introduction to machine learning.

Data Structures and Algorithms (BNU310xx)

BNU310xx gives students the tools to analyze data structures and algorithms. Students will also practice devising algorithms for various problems. Topics include algorithmic complexity analysis (Big Oh, Omega, Theta), recurrence relations, and the master method. In addition, students learn about several different classes of algorithms and data structures, including randomized algorithms, divide and conquer strategies, greedy algorithms, hashing, heaps, graph algorithms, and search algorithms.

Relevance Courses (R)

The Relevance courses allow students to develop depth in a particular specialisation by taking courses in a related area. Students must complete the requirements for anyone track which typically includes specific gateway classes. The current tracks are Artificial Intelligence, Theory, Systems, Human-Computer Interaction, Graphics, Information, Biocomputation, Unspecialized, and Individually Designed. 

Electives Courses (E)

Some people use the electives to explore a broader array of topics in DCSC by taking additional introductory classes in different areas. Others use them to pursue a particular topic in more depth by taking some of the higher level graduate classes. This provides students with additional flexibility to build a broader base of knowledge in Computer Science or related areas, or focus on a more specific topic. For students doing research, professors or advisors will be able to recommend relevant classes that can be used as electives.

The elective requirements can be fulfilled by taking classes from either of the general DCSC electives list or the list of classes that the elective requirements specific to each Relevance course. These specific electives might include classes outside the DCSC  to allow for interdisciplinary work. Check out a program sheet for the full list of available classes.

Research Project / Writing in DCSC

There are several options available for completing the research project requirement. The research project class, BNU310xx, is the most common way for our students to use their skills and provide a piece of writing that reveals the intake of their education at DCSC. In this class, students work in teams to build a significant programming application, learning strategies for software design and engineering. At the end of the class, students demo their projects in front of the other students, course staff, and representatives from many local companies. The know-how of preparing your writing is provided in Bayan University (BNU) 4th Year Students' Final Research Project (Please click to view the document).

Throughout the engagement with your research project, you will have regular meetings with your appointed supervisor. These meetings are designed to guide you with your project and make sure you fulfil the requirement of the work. Your supervisor and you are responsible to keep a record of your meeting and monitor your progress. There is a standard BNU supervision form which you can print and fill in here for every individual meeting. (Click to view)

Course Modules taught at DCSC for the academic year 2019-2020 (Click to view)

Career Opportunities

BNU graduates’ knowledge and skills embody principles which will outlast today’s technology, making them highly sought after by industry and commerce alike. Computing professionals might find themselves in a variety of environments in academia, research, industry, government, private and business organisations — analysing problems for solutions, formulating and testing, using advanced communications or multimedia equipment, or working in teams for product development. Here is a short list of research and vocational areas in computing.

  • Artificial Intelligence — Develop computers that simulate human learning and reasoning ability.
  • Computer Design and Engineering — Design new computer circuits, microchips, and other electronic components.
  • Computer Architecture — Design new computer instruction sets, and combine electronic or optical components to provide powerful but cost-effective computing.
  • Information Technology — Develop and manage information systems that support a business or organisation.
  • Software Engineering — Develop methods for the production of software systems on time, within budget, and with few or no defects.
  • Computer Theory — Investigate the fundamental theories of how computers solve problems and apply the results to other areas of computer science.
  • Operating Systems and Networks — Develop the basic software computers use to supervise themselves or to communicate with other computers.
  • Software Applications — Apply computing and technology to solving problems outside the computer field – in education or medicine, for example.

Lifelong Learning

While the computing field is one of the fastest growing segments of the industry, it is also one of the fastest changing areas technologically. Computing professionals’ education does not stop with a college degree but continues with seminars, conferences, and advanced courses and training. In computer theory and applications, new ideas are developed every day. Success requires an ongoing commitment to learning to maintain knowledge, skills, and career opportunities.

Qualification Requirements:

In order to obtain a professional Bachelor’s degree and qualification from DCSC, the student has to fulfil the following programme requirements:

Academic Staff

  • Mrs. Alaa B.A. Baban is the Head of Department at DCSC,
  • Dr xxx xxx
  • Dr xxx xxx
  • Dr xxx xxx
  • Dr xxx xxx
  • Dr xxx xxx

Contact Information

You can visit or communicate with our department via one of these methods,


  • Department of Computer Science
  • College of Science & Engineering
  • ​Bayan University (BNU)
  • Gullan Street, Erbil EBL 550
  • Kurdistan Region of Iraq
  • Tel/Mobile: +964 (0) xxxxxxxx
  • Email:
  • URL: