This course builds on software engineering principles.  As the importance of high-quality software is increasingly noticeable, it is important for students to acquire advanced knowledge of the software quality.  The course aims at encouraging students to equip themselves with the necessary knowledge, tools, and techniques needed to develop and/ or evaluate software, with emphases on quality attributes and quality assurance techniques, within the context of the software developed, and relate that to its environment and to other development issues and techniques.

Data Structures
The purpose of this course is to introduce you to the exciting world of data structures, an issue central to the art of computer programming. Storage structures and memory allocations. Primitive data structures. Data abstraction and Abstract Data Types. Array and record structures. Sorting algorithms and quick sort. Linear & binary search. Complexity of algorithms. String processing. Stacks & queues; stack operations, implementation of recursion, polish notation and arithmetic expressions. Queues and implementation methods. Dequeues & priority queues. Linked storage representation and linked-lists. Doubly linked lists and circular lists. Binary trees. Tree traversal algorithms. Tree searching. General trees. Graphs; terminology, operations on graphs and traversing algorithms.

Abdalfatah Najjar

New Trends in Information Systems- Dr.Ghassan Shahin

Write a concise and interesting paragraph here that explains what this course is about