مقرارت قسم هندسة البرمجيات

 

مقررات الفصل الدراسي الأول

No # 

Course ID 

Course name 

Credits 

Pre-requisite 

Requirements

1

ITS101

English I 

None 

University 

2

IT102

Programming I 

None 

School 

3

IT 103 

Fundamental of IT

None 

School 

4

IT104

Math I

3

None 

School 

5

IT 105

General Physics 

None 

School 

6

IT001

Arabic Language 

None 

University 

Total credits 

18

 

توصيف مقررات الفصل الدراسي الأول

  • English I

Course ID 

ITS101

Course title  

English I

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

University 

Course description 

This course emphasizes the fundamental language skills of reading, writing, speaking, listening, thinking, viewing and presenting. An emphasis on vocabulary and composition skills will be an on-going part of the program. The course includes studies of various literary genres: short story, poetry, novel, drama, and non-fiction. The development of critical reading and writing skills is a major emphasis of the course.   

Reference 

  • Programming I

Course ID 

IT102

Course title  

Programming I 

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

School 

Course description 

An introductory course in program engineering and applications. The course introduces students to the fundamentals of computer programming. Students will learn to design, code, and test their own programs while applying mathematical concepts. Teachers introduce basic coding concepts and problem-solving skills.

Reference 

  • Eck, D.J., 2015. Introduction to programming using Java. David J. Eck.
  • Lewis, G., Barber, S. and Siegel, E., 1998. Programming with Java IDL. John Wiley & Sons, Inc..
  • Savitch, W., 2019. Java: An introduction to problem solving & programming. Pearson Education Limited.

  • Fundamental of Information Technology

Course ID 

IT103

Course title  

Fundamental of IT

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

School 

Course description 

The main objective is to introduce IT in a simple language to all undergraduate students, regardless of their specialization. It will help them to pursue specialized programs leading to technical and professional careers and certifications in the IT industry. This course also covers the explanation of technology and computer hardware and software basics, peripheral devices, mobile technology, and compatibility issues associated with computer hardware.

Reference 

  • Wolfgang, R., 2004. Fundamental Principles of Generators for Information Technology. Schneider electric.
  • Turban, E., Rainer, R.K. and Potter, R.E., 2003. Information technology. Islamic Studies, 2(0).

  • Math I

Course ID 

IT104

Course title  

Math I 

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

School 

Course description 

This course involves the study of basic functions: polynomial, rational, exponential, logarithmic, and trigonometric. Topics include a review of the real number system, equations and inequalities, graphing techniques, and applications of functions. A problem-solving lab is an integral part of the course. Permission of instructor is required. This course does not count toward the major or minor in mathematics

Reference 

  • Cooper, L. and Cooper, M.W., 2016. Introduction to Dynamic Programming: International Series in Modern Applied Mathematics and Computer Science, Volume 1 (Vol. 1). Elsevier.
  • Vince, J. and Vince, J.A., 2006. Mathematics for computer graphics (Vol. 251). London, UK: Springer.

  • General Physics 

Course ID 

IT105

Course title  

General Physics

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

University 

Course description 

This course covers the principles of mechanics, heat, fluids, oscillations, waves and sound. Emphasis is on conceptual development and numerical problem solving. The course consists of two hours of lecture, one hour of recitation, one hour of quiz, and two hours of lab per week. A detailed schedule of topics can be found later in this syllabus.

Reference 

  • Halliday, D. and Resnick, R., 1988. Fundamentals of physics.
  • Beiser, A., 1978. Perspectives of modern physics.
  • Cassidy, D.C., Holton, G.J. and Rutherford, F.J., 2002. Understanding physics. New York: Springer.

  • Arabic Language 

Course ID 

IT001

Course title  

Arabic Language 

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

University 

Course description 

Reference 

 

مقررات الفصل الدراسي الثاني

 

No # 

Course ID 

Course name 

Credits 

Pre-requisite 

Requirements

ITS102

Math II 

IT104 

School 

ITS102 

English II 

ITS101

University 

IT202 

Programming II 

IT102

School 

10 

IT203

Digital Logic Design

3

None 

School 

11

IT204

Introduction to 

Probability & Statistics 

None 

School 

12 

IT002

Islamic Studies 

None 

University 

Total credits 

18 

 

توصيف مقررات الفصل الدراسي الثاني

  • Math II 

Course ID 

ITS102

Course title  

Math II 

Program 

Bachelor 

Credits 

3

Pre-requisite 

IT104

Requirement 

School 

Course description 

his course covers elementary discrete mathematics for computer science and engineering. It emphasizes mathematical definitions and proofs as well as applicable methods. Topics include formal logic notation, proof methods; induction, well-ordering; sets, relations; elementary graph theory; integer congruences; asymptotic notation and growth of functions; permutations and combinations, counting principles; discrete probability. Further selected topics may also be covered, such as recursive definition and structural induction; state machines and invariants; recurrences; generating functions

Reference 

  • Cooper, L. and Cooper, M.W., 2016. Introduction to Dynamic Programming: International Series in Modern Applied Mathematics and Computer Science, Volume 1 (Vol. 1). Elsevier.
  • Vince, J. and Vince, J.A., 2006. Mathematics for computer graphics (Vol. 251). London, UK: Springer.

  • English II 

Course ID 

ITS102

Course title  

English II 

Program 

Bachelor 

Credits 

3

Pre-requisite 

ITS101

Requirement 

University 

Course description 

This class will challenge students to develop their intellectual initiative through extensive study of literature, refinement of the writing process, and stimulation of high-level thinking skills.  In order to prepare to English III, challenging homework, frequent writing, and extensive readings outside of class are necessary.

Reference 

Glendining , E, McEwan , J . (2002) Basic English for Computing . New York : Oxford.

Jordan ,R.R.(1997)Academic Writing Course “Study Skills in English ” Cambridge University Press,.3rd Ed. Pp 34-63

  • Programming II

Course ID 

IT102

Course title  

Programming II 

Program 

Bachelor 

Credits 

3

Pre-requisite 

IT102

Requirement 

School 

Course description 

In this continuation of Programming I, students are introduced to the programming tools required to solve a more advanced set of problems. Students further develop their knowledge of the principles of object-oriented design and programming, including the use of interfaces and inheritance, and learn the fundamentals of sorting data and data structures

Reference 

  • Koza, J.R., 1994. Genetic programming II (Vol. 17). Cambridge, MA: MIT press.
  • Powell, W.B., 2010. Approximate dynamic programming-II: algorithms. Wiley Encyclopedia of Operations Research and Management Science.
  • Sierra, K. and Bates, B., 2003. Head first java. ” O’Reilly Media, Inc.”.

  • Digital Logic Design

Course ID 

IT203

Course title  

Digital Logid Design

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

School 

Course description 

This course provides a modern introduction to logic design and the basic building blocks used in digital systems. It starts with a discussion of combinational logic: logic gates, minimization techniques, arithmetic circuits, and modern logic devices such as field programmable logic gates. The second part of the course deals with sequential circuits: flip-flops, synthesis of sequential circuits, and case studies, including counters, registers, and random-access memories. Different representations including truth table, logic gate, timing diagram, switch representation, and state diagram will be discussed.

Reference 

  • Lala, P.K., 1996. Practical digital logic design and testing. Prentice-Hall, Inc..
  • Brown, S., 2010. Fundamentals of digital logic design with VHDL.
  • Langholz, G., Kandel, A. and Mott, J.L., 1998. Foundations of digital logic design. World Scientific.

  • Introduction to Probability and Statistics

Course ID 

IT204

Course title  

Intro. to probability & statistics

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

School

Course description 

Probability & Statistics introduces students to the basic concepts and logic of statistical reasoning and gives the students introductory-level practical ability to choose, generate, and properly interpret appropriate descriptive and inferential methods. In addition, the course helps students gain an appreciation for the diverse applications of statistics and its relevance to their lives and fields of study. The course does not assume any prior knowledge in statistics and its only prerequisite is basic algebra.

Reference 

  • Mendenhall, W., Beaver, R.J. and Beaver, B.M., 2012. Introduction to probability and statistics. Cengage Learning.
  • Giri, N.C., 2019. Introduction to probability and statistics. CRC Press.
  • Devore, J.L., 2011. Probability and Statistics for Engineering and the Sciences. Cengage learning.

  • Islamic Studies

Course ID 

IT002 

Course title  

Islamic Studies 

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

University 

Course description 

Reference 

 

مققرات الفصل الدراسي الثالث

No # 

Course ID 

Course name 

Credits 

Pre-requisite 

Requirements

13

IT301 

Linear Algebra 

IT201 

School 

14 

IT302 

English III 

ITS102

University 

15

IT303

Object Oriented 

Programming (OOP)

IT202

School 

16 

IT304

Introduction to 

Internet Programming

3

IT202 

School 

17 

IT305

Database Systems 

None 

School 

18 

SE306

Introduction to Software

Engineering 

None 

School 

Total credits 

18

 

توصيف مقررات الفصل الدراسي الثالث

  • Linear Algebra 

Course ID 

IT301

Course title  

Linear Algebra

Program 

Bachelor 

Credits 

3

Pre-requisite 

IT201

Requirement 

School 

Course description 

This is an undergraduate course in linear algebra for students of engineering, science, and mathematics. Linear algebra is the study of linear systems of equations, vector spaces, and linear transformations. Solving systems of linear equations is a basic tool of many mathematical procedures used for solving problems in science and engineering. In this class we will concentrate on the mathematical theory and methods of linear algebra. The student will become competent in solving linear equations, performing matrix algebra, calculating determinants, and finding eigenvalues and eigenvectors

Reference 

  • Axler, S., 2014. Linear algebra done right. Springer.
  • Mirsky, L., 2012. An introduction to linear algebra. Courier Corporation.

  • English III

Course ID 

IT302

Course title  

English III

Program 

Bachelor 

Credits 

3

Pre-requisite 

ITS102 

Requirement 

University 

Course description 

English III specifically is a rigorous course in which students will study the development of American thought and the American voice in literature. Students will critically read and evaluate various forms and types of texts including novels, poetry, informational texts and visual texts

Reference 

  • Glendining , E, McEwan , J . (2002) Basic English for Computing . New York : Oxford.
  • Jordan ,R.R.(1997)Academic Writing Course “Study Skills in English ” Cambridge University Press,.3rd Ed. Pp 34-63

  • Object Oriented Programming

Course ID 

IT303

Course title  

Object Oriented Programming

Program 

Bachelor 

Credits 

3

Pre-requisite 

IT202 

Requirement 

School  

Course description 

This course introduces advanced programming skills and focuses on the core concepts of object-oriented programming and design using a high-level language, either Python or Java. Object-oriented programming represents the integration of software components into a large-scale software architecture. Software development in this way represents the next logical step after learning coding fundamentals, allowing for the creation of sprawling programs

Reference 

  • Pecinovsky, R., 2013. OOP-Learn Object Oriented Thinking & Programming. Tomáš Bruckner.
  • Wiener, R. and Pinson, L.J., 2000. Fundamentals of OOP and data structures in Java. Cambridge University Press.

  • Introduction to Internet Programming

Course ID 

IT304

Course title  

Internet programming

Program 

Bachelor 

Credits 

3

Pre-requisite 

IT202 

Requirement 

School 

Course description 

This course is an introduction to Internet programming and Web application development. Subjects covered include basic web page development and an introduction to dynamic web page development using client-side scripting, server-side scripting, and database connectivity. Topics included in this course, hyper-text markup language (HTML), cascading styling sheet (CSS), javascript and asp.net. 

Reference 

  • Sebesta, R.W., 2002. Programming the world wide web. Addison-Wesley Longman Publishing Co., Inc..
  • Mackenzie, A., 2006. Java™: the practical virtuality of internet programming. New Media & Society, 8(3), pp.441-465.

  • Database Systems

Course ID 

IT305

Course title  

Database Systems

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

School

Course description 

The course covers fundamental techniques for developing data management and data analytics applications. The main part of the course deals with traditional relational database processing, including the theory and practice of modelling and querying a database. In the latter part of the course, the focus is on new developments for both traditional database applications and for modern data analytics applications.

Reference 

  • Elmasri, R. and Navathe, S.B., 2011. Database systems (Vol. 9). Boston, MA: Pearson Education.
  • Elmasri, R. and Navathe, S., 2017. Fundamentals of database systems (Vol. 7). Pearson.

  • Introduction to Software Engineering 

Course ID 

SE306

Course title  

Introduction to Software Engineering

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

School  

Course description 

The purpose of this course is to present software engineering as a body of knowledge. The course is designed to present software engineering concepts and principles in parallel with the software development life cycle. The course will begin with an introduction to software engineering, giving you a definition of this body of knowledge, as well as a discussion of the main methodologies of software engineering. You will then learn about the Software Development Life Cycle (SDLC), major methodologies followed by software modeling using Unified Modeling Language (UML), a standardized general-purpose modeling language used to create visual models of object-oriented software

Reference 

  • Jalote, P., 2008. A concise introduction to software engineering. Springer Science & Business Media.
  • Sommerville, I., 2011. Software engineering 9th Edition. ISBN-10, 137035152, p.18.
  • Fairley, R., 1985. Software engineering concepts. McGraw-Hill, Inc..

 

مقررات الفصل الدراسي الرابع

No # 

Course ID 

Course name 

Credits 

Pre-requisite 

Requirements

19 

IT401

Discrete Math 

IT301

School 

20  

IT402

Data Structures 

IT303

School 

21

IT403

Multimedia Technology 

None 

School 

22

IT404

Introduction to 

Information System

3

SE306

School

23

IT405

Introduction to 

Programming .Net

None 

School 

24

IT406

Advanced Database Systems

IT305

School

Total credits 

18 

 

توصيف مقررات الفصل الدراسي الرابع

  • Discrete Math

Course ID 

IT401

Course title  

Discrete Math 

Program 

Bachelor 

Credits 

3

Pre-requisite 

IT301 

Requirement 

School  

Course description 

This is a first course in discrete mathematics. Topics include number theory, sets, functions and sequences, relations, recurrence relations, counting techniques, logic and techniques of proof, graphs, and algorithms. The purpose of this course is to understand and use (abstract) discrete structures that are backbones of computer science. In particular, this class is meant to introduce logic, proofs, sets, relations, functions, counting, and probability, with an emphasis on applications in computer science

Reference 

  • Jenkyns, T. and Stephenson, B., 2012. Fundamentals of Discrete Math for Computer Science. Springer, London.
  • Gries, D. and Schneider, F.B., 2013. A logical approach to discrete math. Springer Science & Business Media.

  • Data Structures 

Course ID 

IT402

Course title  

Data Structures 

Program 

Bachelor 

Credits 

3

Pre-requisite 

IT303 

Requirement 

School  

Course description 

This course introduces the advanced programming topics focused on logical structures of data as well as the design, implementation and analysis of algorithms operating on these structures, graphs and An overview of data structure concepts, arrays, stack, queues, trees, graphs and analysis of efficiency.. Discussion of various implementations of these data objects, programming styles, and run-time representations. Course also examines algorithms for sorting, searching and some graph algorithm

Reference 

  • Samet, H., 1990. The design and analysis of spatial data structures (Vol. 85, p. 87). Reading, MA: Addison-Wesley.
  • Wirth, N., 1985. Algorithms & data structures. Prentice-Hall, Inc..

  • Multimedia Technology

Course ID 

IT403 

Course title  

Multimedia Technology

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

School 

Course description 

Multimedia Technologies is an indispensable part of modern computing environments. This course will explain the technologies underlying digital images, videos and audio contents, including various compression techniques and standards, and the issues to deliver multimedia content over the Internet. The component of multimedia elements are also provided in this course. 

Reference 

  • Jeffcoate, J., 1995. Multimedia in practice: Technology and Applications. Prentice-Hall, Inc..
  • Fluckiger, F., 1995. Understanding networked multimedia: applications and technology. Prentice Hall International (UK) Ltd..
  • Dillon, P.M. and Leonard, D.C., 1995. Multimedia Technology from A to Z. Oryx Press, 4041 North Central at Indian School Road, Phoenix, AZ 85012-3397.

  • Introduction to Information System

Course ID 

IT404 

Course title  

Introduction to Information System

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE306 

Requirement 

School  

Course description 

Introduction to Business Information Technology is based on the fundamental premise that the major role of information technology (IT) is to support organizational personnel, regardless of their functional area or level in the organization. Topics include hardware and software fundamentals, use of software packages, effective use of networks, Internet, and other communication tools, the design of management information systems, as well as the ethical use of computers in business and society. Hands-on experience is provided

Reference 

  • Walls, J.G., Widmeyer, G.R. and El Sawy, O.A., 1992. Building an information system design theory for vigilant EIS. Information systems research, 3(1), pp.36-59.
  • Baskerville, R. and Pries-Heje, J., 2010. Explanatory design theory. Business & Information Systems Engineering, 2(5), pp.271-282.

  • Introduction to Programming .Net

Course ID 

IT405 

Course title  

Introduction to Programming.Net

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

School 

Course description 

This course provides an introduction to software development in visual basic (VB) programming language in the Microsoft .NET environment. Students practice development of programs in VB using the Microsoft Visual Studio Integrated Development Environment (IDE). The course presents elements of the VB language including decisions, loops, arrays, and exception handling. Topics include object-oriented programming, methods, collections, file input and output, and databases. Emphasis is on the creation of object-oriented, hands-on programming projects as an integral part of the course

Reference 

  • Lowy, J., 2005. Programming. NET Components: Design and Build. NET Applications Using Component-Oriented Programming. ” O’Reilly Media, Inc.”.
  • Bronson, G.J. and Rosenthal, D., 2005. Introduction to Programming with Visual Basic. NET. Jones & Bartlett Learning.

  • Advanced Database Systems

Course ID 

IT406 

Course title  

Advanced Database Systems

Program 

Bachelor 

Credits 

3

Pre-requisite 

IT305 

Requirement 

School

Course description 

The course presupposes a basic knowledge of conceptual modelling for data base systems and implementation using relational DBMS and SQL. The covered topics include database architecture, storage manager, data models, indexing, transaction processing (ACID, concurrency control), crash recovery, parallel architectures (multi-core, distributed). These topics will be valuable to students who plan to work in the data science industry but also to students who want to do research in the area of data management. The programming component of this course will writing SQL queries.

Reference 

  • Zaniolo, C., Ceri, S., Faloutsos, C., Snodgrass, R.T., Subrahmanian, V.S. and Zicari, R., 1997. Advanced database systems. Morgan Kaufmann.
  • Elmasri, R. and Navathe, S.B., 2011. Database systems (Vol. 9). Boston, MA: Pearson Education.
  • Piattini, M. and Diaz, O., 2000. Advanced database technology and design. Artech House.

 

مقررات الفصل الدراسي الخامس

No # 

Course ID 

Course name 

Credits 

Pre-requisite 

Requirements

25

SE501 

Introduction to Computer 

Networks 

None 

Department

26

SE502

Computer Architecture 

None 

Department

27

SE503

Numerical Analysis I 

IT301

Department

28 

SE504

Software Requirements 

& Specifications (SRS)

3

SE306

Department

29 

SE505

Software Development Process 

SE306 

Department

30 

SE506

Data Analysis & Algorithms

IT402

Department

Total credits 

18 

 

توصيف مقررات الفصل الدراسي الخامس

  • Introduction to Computer Netowrks

Course ID 

SE501 

Course title  

Introduction to Computer Networks

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

Department  

Course description 

The main emphasis of this course is on the organization and management of local area networks (LANs). The course objectives include learning about computer network organization and implementation, obtaining a theoretical understanding of data communication and computer networks, and gaining practical experience in installation, monitoring, and troubleshooting of current LAN systems. Students are introduced to computer communication network design and its operations, and discuss the following topics: Open Systems Interconnection (OSI) communication model; error detection and recovery; local area networks; bridges, routers and gateways; network naming and addressing; and local and remote procedures. On completion of the course, students should be able, in part to design, implement and maintain a typical computer network (LAN).

Reference 

  • Dordal, P.L., 2020. An introduction to computer networks. Self-publishing.
  • Wu, C.H.J. and Irwin, J.D., 2016. Introduction to computer networks and cybersecurity. CRC Press.
  • Sadiku, M.N. and Musa, S.M., 2013. Performance analysis of computer networks (Vol. 1). Cham, Switzerland: Springer.

  • Computer Architecture 

Course ID 

SE502

Course title  

Computer Architecture 

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

Department 

Course description 

This course provides students with a solid understanding of fundamental architectural techniques used to build today’s high-performance processors and systems. Course topics include pipelining, superscalar, out of order execution, multithreading, caches, virtual memory, and multiprocessors. It covers data representation, basic digital logic circuits, memory types and hierarchies, I/O and Storage devices, CPU architectures such as RISC, CISC, parallel, multi-core and GPGPU systems

Reference 

  • Hennessy, J.L. and Patterson, D.A., 2011. Computer architecture: a quantitative approach. Elsevier.
  • Van De Goor, A.J., 1989. Computer architecture and design. Addison-Wesley Longman Publishing Co., Inc..
  • Zargham, M.R., 1996. Computer architecture: single and parallel systems. Prentice-Hall, Inc..

  • Numerical analysis I

Course ID 

SE503 

Course title  

Numerical Analysis I 

Program 

Bachelor 

Credits 

3

Pre-requisite 

IT301 

Requirement 

Department  

Course description 

This course will emphasize the development of numerical algorithms to provide solutions to common problems formulated in science and engineering. The primary objective of the course is to develop the basic understanding of the construction of numerical algorithms, and perhaps more importantly, the applicability and limits of their appropriate use. The emphasis of the course will be the thorough study of numerical algorithms to understand (i) the guaranteed accuracy that various methods provide, (ii) the efficiency and scalability for large scale systems. and (iii) issues of stability. Topics include the standard algorithms for numerical computation

Reference 

  • Lange, K., Chambers, J. and Eddy, W., 2010. Numerical analysis for statisticians (Vol. 1). New York: springer.
  • Süli, E. and Mayers, D.F., 2003. An introduction to numerical analysis. Cambridge university press.

  • Software Requirements Specification

Course ID 

SE504

Course title  

Software Requirements & Specification

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE306 

Requirement 

Department  

Course description 

Software requirements engineering is the process of determining what is to be produced in a software system. The course will also discuss the concepts for systematically establishing, defining and managing the requirements for a large, complex, changing and software-intensive systems, from technical, organizational and management perspectives. The use of standardized documents, IEEE, ISO, Volere, to document the requirements is included in this course. 

Reference 

  • Wohlin, C. ed., 2005. Engineering and managing software requirements (Vol. 1). Heidelberg: Springer.
  • Young, R.R., 2001. Effective requirements practices. Addison-Wesley Longman Publishing Co., Inc..
  • Leffingwell, D., 2010. Agile software requirements: lean requirements practices for teams, programs, and the enterprise. Addison-Wesley Professional.

  • Software Development Process

Course ID 

SE505 

Course title  

Software Development Process

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE306

Requirement 

Department  

Course description 

The development of software system is a complex and intensive task due to its complexity and constant demanding on evolution to better more efficient versions. This process cannot be managed with ad-hoc approaches and models. The modern development of software system requires more robust and flexible pre-defined process models to guarantee that quality of the produced product. Following protocol in software development boost the development in more formal and productive direction. Thus, this course offers a variety of software process models to produce quality software products. These models are different in the way to manage development from raw idea to final product. Students enrolled in this course should employ one of the models in the graduation plan.

Reference 

  • Sommerville, I. and Sawyer, P., 1997. Requirement’s engineering: a good practice guide. John Wiley & Sons, Inc.
  • Jacobson, I. and Bylund, S., 2000. The road to the unified software development process (Vol.18). Cambridge University Press.
  • Roebuck, K., 2012. Software Development Life Cycle (SDLC): High-impact Strategies-What You Need to Know: Definitions, Adoptions, Impact, Benefits, Maturity, Vendors. Emereo Publishing.

  • Data Analysis & Algorithms

Course ID 

SE506 

Course title  

Data Analysis & Algorithms

Program 

Bachelor 

Credits 

3

Pre-requisite 

IT402 

Requirement 

Department  

Course description 

This course introduces basic methods for the design and analysis of efficient algorithms emphasizing methods useful in practice. Different algorithms for a given computational task are presented and their relative merits evaluated based on performance measures. The following important computational problems will be discussed: sorting, searching, elements of dynamic programming and greedy algorithms, advanced data structures, graph algorithms (shortest path, spanning trees, tree traversals), string matching, elements of computational geometry, NP completeness.

Reference 

  • Wirth, N., 1985. Algorithms & data structures. Prentice-Hall, Inc..
  • Greene, D.H. and Knuth, D.E., 1990. Mathematics for the Analysis of Algorithms (Vol. 504). Boston: Birkhäuser.

 

مقررات الفصل الدراسي السادس

No # 

Course ID 

Course name 

Credits 

Pre-requisite 

Requirements

31

SE601 

Operating Systems 

SE502

Department

32

SE602

Advanced Internet 

Programming 

IT405

Department

33

SE603

Software Design 

& Architecture 

SE504

SE506

Department

34 

SE604

Human Computer Interaction 

3

SE306

Department

35 

SE605

Re-use & Component 

Based Development

SE505

Department

36 

SE606

Ethics of the Profession 

None 

Department

Total credits 

18 

 

توصيف مقررات الفصل الدراسي السادس

  • Operating Systems

Course ID 

SE601 

Course title  

Operating Systems

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE502

Requirement 

Department

Course description 

Introduction to Operating Systems is a graduate-level introductory course in operating systems. This course teaches basic operating system abstractions, mechanisms, and their implementations. The core of the course focuses on OS support for concurrency (threads) and synchronization, resource management (CPU, memory, I/O), and distributed services. The practical component of the course teaches multithread programming, inter-process communication, and distributed interactions

Reference 

  • Milenkovic, M., 1992. Operating systems: concepts and design. McGraw-Hill, Inc..
  • Bic, L. and Shaw, A.C., 1988. The logical design of operating systems. Prentice-Hall, Inc..
  • Madnick, S.E. and Donovan, J.J., 1974. Operating systems (Vol. 197, No. 4). New York: McGraw-Hill.

  • Advanced Internet Programming 

Course ID 

SE602 

Course title  

Advanced Internet Programming 

Program 

Bachelor 

Credits 

3

Pre-requisite 

IT405 

Requirement 

Department 

Course description 

In this subject, student create sophisticated web applications for deployment to production. The subject provides knowledge and skills in advanced internet technologies particularly related to server-side internet programming and business-to-business systems. It covers topics relevant to advanced internet programming including web development stacks, n-tier architectures, standards, transactions, security, dependency injection, layering, web-service integration, and deployment.

Reference 

  • Sebesta, R.W., 2002. Programming the world wide web. Addison-Wesley Longman Publishing Co., Inc..
  • Felton, M., 1997. CGI Internet Programming with C++ and C. Prentice-Hall, Inc..
  • Watters, A., Ahlstrom, J.C. and Rossum, G.V., 1996. Internet programming with Python. Henry Holt and Co., Inc..

  • Software Design & Architecture 

Course ID 

SE603 

Course title  

Software Design & Architecture 

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE504 – SE506

Requirement 

Department  

Course description 

Object-oriented technology has become the dominant programming style in late decades. Due to this popularity, software engineering has adopted new analysis and design models to support object-oriented methodology. Therefore, this course aims at develop a solid understanding of software design concepts, i.e., modularity, data abstraction, information hiding and functional independence. Design patterns are also included in this course as a solution to the most common design problems faced by designers. The Unified Modeling Language UML is used to model and visualize the processes and represent software architecture and structure.

Reference 

  • Gomaa, H., 1993. Software design methods for concurrent and real-time systems. Addison-Wesley Longman Publishing Co., Inc..
  • Booch, G., Rumbaugh, J. and Jackobson, I., 1997. UML: Unified Modeling Language. Versão.
  • Freeman, Eric & Robson, Elisabeth, Head First Design Patterns, First Edition, O’Reilly, 2004

  • Human Computer Architecture 

Course ID 

SE604 

Course title  

Human Computer Interaction 

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE306 

Requirement 

Department  

Course description

This course provides an introduction to and overview of the field of human-computer interaction (HCI). HCI is an interdisciplinary field that integrates theories and methodologies from computer science, cognitive psychology, design, and many other areas. The central focus of the course is a semester-long team project, in which students will design, implement and evaluate a user interface

Reference 

  • Sears, A. and Jacko, J.A. eds., 2009. Human-computer interaction fundamentals. CRC press.
  • Nardi, B.A., 1996. Activity theory and human-computer interaction. Context and consciousness: Activity theory and human-computer interaction, 436, pp.7-16.
  • Weyers, B., Bowen, J., Dix, A. and Palanque, P. eds., 2017. The handbook of formal methods in human-computer interaction. Springer.

  • Reuse & Component-based Development

Course ID 

SE605 

Course title  

Re-use & Component-Based Development

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE505 

Requirement 

Department 

Course description 

Detailed study of interlocking business, organizational, and technical issues in large-scale software reuse and component-based software engineering. Topics include architecture, design for reuse, domain engineering, model-driven development, domain-specific kits, components, frameworks, software agents, generators, problem-oriented languages, library design, reuse tools, patterns, and aspects. Assumes prior exposure to software engineering topics. 

Reference 

  • Cechich, A., Piattini, M. and Vallecillo, A. eds., 2003. Component-based software quality: methods and techniques (Vol. 2693). Springer.
  • Collins-Cope, M. and Matthews, H., 2001. A reference architecture for component-based development. In OOIS 2000 (pp. 225-237). Springer, London.
  • Heineman, G.T. and Councill, W.T., 2001. Component-based software engineering. Putting the pieces together, addison-westley, 5.

  • Ethics of the Profession

Course ID 

SE606 

Course title  

Ethics of the Profession 

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

Department  

Course description 

A study of ethical principles and of ethical problems in the professional world. The course is intended to provide students with the ability to analyze ethical situations within a specific profession such as health care, business, and public administration. This course is also designed to familiarize students with professional practice in computer science, and to enable them to: identify ethical conflicts, identify their responsibilities and options, and think through the implications of possible solutions to ethical conflicts

Reference 

  • Ermann, M.D., William, M.B. and Gutierrez, C. eds., 1990. Computers, Ethics, & Society. Oxford University Press, Inc..
  • Forester, T. and Morrison, P., 1994. Computer ethics: Cautionary tales and ethical dilemmas in computing. Mit Press.

 

مقررات الفصل الدراسي السابع

No # 

Course ID 

Course name 

Credits 

Pre-requisite 

Requirements

37

SE701 

Software Metrics and Testing

SE306

Department

38

SE702

Formal Specifications & 

Design Methods

SE505

Department

39

SE703

Distributed Systems

SE601

Department

40 

SE704

Artificial Intelligence

3

SE506

Department

41 

SE705

Technical Writing Projects

None

Department

42 

SE706

Graduation Project I

None 

Department

Total credits 

18 

 

توصيف مقررات الفصل الدراسي السابع

  • Software Metrics and Testig

Course ID 

SE701

Course title  

Software Metrics and Testing

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE306

Requirement 

Department

Course description 

The objective of this course is to provide students with a working knowledge of the state of research and practice on software product and process evaluation and improvement. Students completing this course should be able to evaluate both software artifacts and software processes. Software product evaluation includes the evaluation of external characteristics such as usability and functionality, as well as internal characteristics such as design structure, testability and maintainability. Software process evaluation addresses the problem of understanding the software development process, assessing the quality of the process, and developing plans for process improvement

Reference 

  • Perlis, A.J., Sayward, F. and Shaw, M., 1981. Software metrics: an analysis and evaluation (Vol. 5). Mit Press.
  • Craig, R.D. and Jaskiel, S.P., 2002. Systematic software testing. Artech house.
  • Hutcheson, M.L., 2003. Software testing fundamentals: Methods and metrics. John Wiley & Sons.

  • Formal Specifications and Design Methods

Course ID 

SE702

Course title  

Formal Specifications & Design Methods

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE505

Requirement 

Department

Course description 

Complex large software systems often have intricate system states and process control structures involving concurrency and real-time interactions. A major problem in developing such large software systems is to be able to initially characterize precisely what is to be built. Recently developed methods for tackling this problem are based on mathematics and logic (so-called formal specification, a critical part of formal methods).

Reference 

  • Spivey, J.M., 1989. An introduction to Z and formal specifications. Software Engineering Journal, 4(1), pp.40-50.
  • Kemmerer, R.A., 1985. Testing formal specifications to detect design errors. IEEE transactions on software engineering, (1), pp.32-43.
  • Gaudel, M.C. and Bernot, G., 1999. The role of formal specifications. In Algebraic Foundations of Systems Specification (pp. 1-12). Springer, Berlin, Heidelberg.

  • Distributed Systems

Course ID 

SE703

Course title  

Distributed Systems

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE601

Requirement 

Department

Course description 

Distributed systems help programmers aggregate the resources of many networked computers to construct highly available and scalable services. This class teaches the abstractions, design and implementation techniques that enable the building of fast, scalable, fault-tolerant distributed systems. A selection of topics from the following: the challenges faced in constructing client/server software: partial system failures, multiple address spaces, absence of a single clock, latency of communication, heterogeneity, absence of a trusted operating system, system management, binding and naming.

Reference 

  • Bal, H.E., 1990. Programming distributed systems. Silicon Press.
  • Dye, C., 1999. Oracle distributed systems. O’Reilly & Associates, Inc..
  • Garg, V.K., 2012. Principles of distributed systems (Vol. 3144). Springer Science & Business Media.

  • Artificial Intelligence

Course ID 

SE704 

Course title  

Artificial Intelligence

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE506 

Requirement 

Department

Course description 

This course gives a basic introduction to machine learning and artificial intelligence. Through an algorithmic approach, the students are given a practical understanding of the methods being taught, in particular through making their own implementations of several of the methods. The course covers supervised classification based on e.g., artificial neural networks (deep learning), as well as unsupervised learning (clustering), regression, optimization (evolutionary algorithms and other search methods) and reinforcement learning, in addition to design of experiments and evaluation. 

Reference 

  • Rahwan, I. and Simari, G.R. eds., 2009. Argumentation in artificial intelligence (Vol. 47). Heidelberg: Springer.
  • Dean, T., Allen, J. and Aloimonos, Y., 1995. Artificial intelligence: theory and practice. Benjamin-Cummings Publishing Co., Inc..
  • Al-Turjman, F. ed., 2019. Artificial intelligence in IoT. Springer.

  • Technical Writing Projects

Course ID 

SE705 

Course title  

Technical Writing Projects

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

Department

Course description 

Reference 

  • Graduation Project I

Course ID 

SE706 

Course title  

Graduation Project I

Program 

Bachelor 

Credits 

3

Pre-requisite 

None 

Requirement 

Department

Course description 

Preparatory studies of the literature and data collection for the graduation project in a particular area of concentration and under the supervision of one of the faculty members. The course covers directed readings in the literature of civil engineering, introduction to research methods, seminar discussions dealing with special engineering topics of current interest. Planning, design, construction and management of an engineering project. Writing a technical report.

Reference 

 

مقررات الفصل الدراسي الثامن

No # 

Course ID 

Course name 

Credits 

Pre-requisite 

Requirements

43

SE801 

Software Maintenance and Evolution

SE701

Department

44

SE802

Software Quality

SE603

Department

45

SE803

Software Project Management

SE306

Department

46 

SE804

Agents Systems

3

SE603

Department

47 

SE805

Software Design Patterns

SE701

Department

48 

SE806

Graduation Project II

SE706

Department

Total credits 

18 

 

توصيف مقررات الفصل الدراسي الثامن

  •  Software Maintenance and Evolution

Course ID 

SE801 

Course title  

Software Maintenance and Evolution

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE701 

Requirement 

Department

Course description 

Evolving a software system, to ensure its continued integration and usefulness, is complex, human-intensive, costly, and an error-prone process. Therefore, practitioners are continually designing creative techniques and tools to improve maintenance and evolution. These techniques rely using data mining and intelligent and machine learning algorithms to tackle maintainability problems and software refactoring. This course explores the foundations of software maintenance by introducing several challenges linked to software evolution along with support tools to approach them. Also, the course covers various concepts related of software analysis and testing, along with practical tools.

Reference 

  • Jarzabek, S., 2007. Effective software maintenance and evolution: A reuse-based approach. Auerbach Publications.
  • Arthur, L.J., 1988. Software evolution: the software maintenance challenge. Wiley-Interscience.
  • Grubb, P. and Takang, A.A., 2003. Software maintenance: concepts and practice. World Scientific.

  • Software Quality

Course ID 

SE802

Course title  

Software Quality 

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE603

Requirement 

Department

Course description 

This course introduces concepts, metrics, and models in software quality assurance. The course covers components of software quality assurance systems before, during, and after software development. It presents a framework for software quality assurance and discuss individual components in the framework such as planning, reviews, testing, configuration management. It also discusses metrics and models for software quality as a product, in process, and in maintenance. The course will include case studies and hands on experiences. Students will develop an understanding of software quality and approaches to assure software quality.

Reference 

  • Evans, M.W. and Marciniak, J.J., 1987. Software quality assurance & management. Wiley-Interscience.
  • DuKan, S.H., 2003. Metrics and models in software quality engineering. 
  • Addison-Wesley Professional.nn, R.H., 1990. Software quality: Concepts and plans. Prentice-Hall, Inc..

  • Software Project Management

Course ID 

SE803 

Course title  

Software Project Management

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE306

Requirement 

Department

Course description 

This course is aimed at introducing the primary important concepts of project management related to managing software development projects. They will also get familiar with the different activities involved in Software Project Management. Further, they will also come to know how to successfully plan and implement a software project management activity, and to complete a specific project in time with the available budget

Reference 

  • Stellman, A. and Greene, J., 2005. Applied software project management. ” O’Reilly Media, Inc.”.
  • Cotterell, M. and Hughes, B., 1995. Software project management. International Thomson Computer Press.
  • Futrell, R.T., Shafer, D.F. and Shafer, L., 2002. Quality software project management. Prentice Hall Professional.

  • Agent Systems

Course ID 

SE804 

Course title  

Agent Systems

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE603

Requirement 

Department

Course description 

The course gives an overview of the main aspects of multi-agent systems, for example coordination of the behavior of various agents sharing the same environment. Both cooperative and selfish agents and interactions between them will be discussed. Central to the course is interaction protocols such as auctions, negotiations, etc. Game theory will be a significant part of the course

Reference 

  • d’Inverno, M., Luck, M. and Luck, M.M., 2004. Understanding agent systems. Springer Science & Business Media.
  • Ferber, J. and Weiss, G., 1999. Multi-agent systems: an introduction to distributed artificial intelligence (Vol. 1). Reading: Addison-Wesley.
  • Padgham, L. and Winikoff, M., 2005. Developing intelligent agent systems: A practical guide (Vol. 13). John Wiley & Sons.
  • Software Design Patterns

Course ID 

SE805 

Course title  

Software Design Patterns

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE701

Requirement 

Department

Course description 

This course approaches object-oriented software design from three perspectives: the software engineering principles that enable development of quality software, the modeling of software components using the Unified Modeling Language (UML), and the application of design patterns as a means of reusing design models that are accepted best practices.

Reference 

  • Pree, W., 1995. Design patterns for object-oriented software development. ACM Press/Addison-Wesley Publishing Co..
  • Mowbray, T.J. and Malveau, R.C., 1997. CORBA design patterns. John Wiley & Sons, Inc..
  • Freeman, E., Robson, E., Bates, B. and Sierra, K., 2008. Head first design patterns. ” O’Reilly Media, Inc.”.

  • Graduation Project II

Course ID 

SE806 

Course title  

Graduation Project II 

Program 

Bachelor 

Credits 

3

Pre-requisite 

SE706

Requirement 

Department

Course description 

The graduation project challenges students to go beyond the learning that occurs as the result of their prescribed educational program by developing projects that demonstrate their intellectual, technical and creative abilities. Students shall complete their projects in areas of concentrated study under the direction and supervision of faculty members. The projects will demonstrate the students’ ability to apply, analyze, synthesize, evaluate information, and communicate significant knowledge and comprehension. Personal growth and satisfaction are associated with the graduation projects. Students will derive sense of accomplishment through the completion and “ownership” of bodies of works that are reflections of their interests and abilities. Opportunities to expand their personal knowledge and explore careers and apply learning to real life situations will serve to benefit the students’ growth and promote lifelong learning

Reference