Curriculum & Course Description

Bachelor of Science (B.Sc.) Degree Program in Software Engineering

 

Course Code

Course-Title

Credit Hours (CRHs)

Pre-Requisite
Course Code

Co-Requisite
Course Code

Total-CRHs

Lect.

Lab

Tut.

MAT 101

Calculus I

4

3

0

2

 

 

MAT 112

Calculus II

4

3

0

2

MAT 101

 

MAT 212

Linear Algebra

3

3

0

0

MAT 112

 

MAT 224

Numerical Methods

3

3

0

0

MAT 212, CSC 112 or equivalent

 

STA 212

Probability and Statistics for Engineers

3

3

0

0

MAT 112

 

CHM 102

Introduction to Chemistry

4

3

2

1

 

 

PHU 103

Mechanics and Waves for Engineers

4

3

2

1

 

MAT 101

PHU 124

Electromagnetism and Optics for Engineers

4

3

2

1

PHU 103 & MAT 101

 

ENG 101

Freshman English I

3

3

0

0

 

 

ENG 112

Freshman English II

3

3

0

0

ENG 101

 

ENG 222

Technical Writing

3

3

0

0

ENG 112

 

ARB 101

Arabic Language and Literature I

2

2

0

0

 

 

ARB 112

Arabic Language and Literature II

2

2

0

0

ARB 101

 

PHL 101A

Engineering Ethics

3

3

0

0

 

 

ISL 101

Islamic Studies I

2

2

0

0

 

 

ISL 112

Islamic Studies II

2

2

0

0

ISL 101

 

SE 100

Programming for Engineers

4

3

2

0

 

 

SE  120

Object-Oriented Programming

4

3

2

0

SE 100

 

SE 201

Introduction to Software Engineering

4

3

2

0

SE 120

 

SE 212

Discrete Structures for Software Engineers

3

3

0

0

SE 120

 

SE 214

Algorithms and Data Structures

4

3

2

0

SE 120

 

SE 217

Software and Society

3

3

0

0

 

 

SE 221

Software Requirements and Design

4

3

2

0

SE 201 & SE 214

 

SE 223

Digital Logic Design

4

3

2

0

PHU 124

 

SE 312

Database Management Systems

4

3

2

0

SE 214

 

SE 314

Operating Systems

3

3

0

0

SE 214

 

SE 323

Software Project and Process Management

3

3

0

0

SE 221

 

SE 324

Web Application Development

4

3

2

0

SE 312

 

SE 327

Embedded Systems

3

3

0

0

SE 314

 

SE 329

Human-Computer Interface Design

3

3

0

0

SE 221

 

SE 410

Software Architecture

3

3

0

0

SE 323

 

SE 412

Software  Testing and Quality Assurance

3

3

0

0

SE 221

 

SE 415

Professional Practice and Software Documentation

3

3

0

0

SE 412

 

SE 416

Mobile Application Development

4

3

2

0

SE 221 & SE 312

 

 SE 421

Software Maintenance, Configuration Management and Evolution

3

3

0

0

SE 412

 

SE 490

Software Engineering Capstone Project I

2

1

3

0

104 CRHs passed

 

SE 491

Software Engineering Capstone Project II

2

1

3

0

SE 490

 

EE 305

Computer Networks

4

3

2

0

SE 100

 

EE 307

Computer Architecture

4

3

2

0

SE 100 & (SE 223 or EE 210)

 

SE 390

Software Engineering Summer Internship

1

103 CRHs passed and department approval

 



Curriculum Study Plan: Software Engineering

4-Year Curriculum: 137 Credit Hours Total

Each course below follows the following format: Course code, Course Title, and Course Credit Hours (Lecture contact hours – Lab contact hours – Tutorial contact hours)

1st  Year

Fall

Course Code

Course-Title

CRHs

ENG 101

Freshman English I

3 (3-0-0)

MAT 101

Calculus I

4 (3-0-2)

PHU 103

Mechanics and Waves for Engineers

4 (3-2-1)

SE 100

Programming for Engineers

4 (3-2-0)

CHM 102

Introduction to Chemistry

4 (3-2-1)

Total

19

Spring

Course Code

Course-Title

CRHs

PHL 101A

Engineering Ethics

3 (3-0-0)

ENG 112

Freshman English II

3 (3-0-0)

MAT 112

Calculus II

4 (3-0-2)

PHU 124

Electromagnetism and Optics for Engineers

4 (3-2-1)

SE  120

Object-Oriented Programming

4 (3-2-0)

Total

18


2nd   Year

Fall

Course Code

Course-Title

CRHs

ENG 222

Technical Writing

3 (3-0-0)

MAT 212

Linear Algebra

3 (3-0-0)

SE 201

Introduction to Software Engineering

4 (3-2-0)

SE 212

Discrete Structures for Software Engineers

3 (3-0-0)

SE 214

Algorithms and Data Structures

4 (3-2-0)

Total

17

Spring

Course Code

Course-Title

CRHs

MAT 214

Numerical Methods

3 (3-0-0)

STA 212

Probability and Statistics for Engineers

3 (3-0-0)

SE 217

Software and Society

3 (3-0-0)

SE 221

Software Requirements and Design

4 (3-2-0)

SE 223

Digital Logic Design

4 (3-2-0)

Total

17


3rd   Year

Fall

Course Code

Course-Title

CRHs

ISL 101

Islamic Studies I

2 (2-0-0)

EE 305

Computer Networks

4 (3-2-0)

EE 307

Computer Architecture

4 (3-2-0)

SE 312

Database Management Systems

4 (3-2-0)

SE 314

Operating Systems

3 (3-0-0)

Total

17

Spring

Course Code

Course-Title

CRHs

ARB 101

Arabic Language and Literature I

2 (2-0-0)

SE 323

Software Project and Process Management

3 (3-0-0)

SE 324

Web Application Development

4 (3-2-0)

SE 327

Embedded Systems

3 (3-0-0)

SE 329

Human-Computer Interface Design

3 (3-0-0)

Total

15

Summer

Course Code

Course-Title

CRHs

SE 390

Software Engineering Summer Internship

1

Total

1


4th   Year

Fall

Course Code

Course-Title

CRHs

ISL 112

Islamic Studies II

2 (2-0-0)

SE 410

Software Architecture

3 (3-0-0)

SE 412

Software  Testing and Quality Assurance

3 (3-0-0)

SE 44*

Technical Elective

3 (3-0-0)

SE 44*

Technical Elective

3 (3-0-0)

SE 490

Software Engineering Capstone Project I

2 (1-3-0)

Total

16

Spring

Course Code

Course-Title

CRHs

ARB 112

Arabic Language and Literature II

2 (2-0-0)

SE 415

Professional Practice and Software Documentation

3 (3-0-0)

SE 416

Mobile Application Development

4 (3-2-0)

 SE 421

Software Maintenance, Configuration Management and Evolution

3 (3-0-0)

SE 44*

Technical Elective

3 (3-0-0)

SE 491

Software Engineering Capstone Project II

2 (1-3-0)

Total

17


Technical Electives

Course Code

Course Name

CRHs

Pre-Requisite Course Code

SE 435

Undergraduate Research in Software Engineering

3(0-6-0)

Department chair approval. A GPA of at least  3.0/4.0, and a signed research contract

SE 440

Special Topics in Software Engineering

3 (3-0-0)

104 CRHs Passed

SE 441

Telecommunications Software Design

3 (3-0-0)

104 CRHs Passed

SE 442

Social Networks for Software Engineers

3 (3-0-0)

104 CRHs Passed

SE 443

Cloud Computing for Software Engineers

3 (3-0-0)

104 CRHs Passed

SE 444

Artificial Intelligence

3 (3-0-0)

104 CRHs Passed

SE 445

Information and Software Security

3 (3-0-0)

104 CRHs Passed



Course Descriptions

Each course below follows the following format:
Course code: Course Title     Course credit hours (Lecture contact hours – Lab contact hours – Tutorial contact hours)
Course Description
Pre-requisites
Co-requisites


Core Courses

SE 100: Programming for Engineers 4 (3-2-0)

Fundamentals of computers and computing. Introduction to a typical object-oriented programming language. Basic data types and operators. Console input/output. Logical expressions and control structures. Methods and arrays. Introduction to Classes.
Pre-requisites: None.

SE 120: Object-Oriented Programming 4 (3-2-0)

Advanced object-oriented programming; inheritance; polymorphism; abstract classes and interfaces, container and collection classes, packages, object-oriented design, software modeling, event-driven programming. Design and implement simple GUI applications. Write simple multithreaded applications. Use API in writing applications.
Pre-requisites: SE 100.

SE 201: Introduction to Software Engineering 4 (3-2-0)

Introduction to Software Engineering through programming with particular focus on the fundamentals of computing & programming, using an exploratory problem-based approach. Building abstractions with procedures, data & objects; data modeling; designing, coding & debugging programs of increasing complexity. Introduction to life cycle models from requirements specification, design, construction, testing and deployment. Software engineering standards. Code of ethics for software engineers.
Pre-requisites: SE 120.

SE 212: Discrete Structures for Software Engineers 3 (3-0-0)

Logic, sets and functions, algorithms, mathematical reasoning, counting, relations, graphs, trees, Boolean Algebra, computation, modeling.
Pre-requisites: SE 120

SE 214: Algorithms and Data Structures 4 (3-2-0)

Survey of important computer algorithms and related data structures used in object-oriented software engineering. Design, performance analysis and implementation of such algorithms, stressing their practical use and performance certification of large software applications. Understand how to "seal" designs to guarantee performance goals and insure that all error conditions are caught.
Pre-requisites: SE 120

SE 217: Software and Society 3 (3-0-0)

The significant role played by technology in our time and the resulting tensions between software technology and society are often viewed as defining aspects of modernity. This course will be to explore the extent to which interactions between software technology and society have always been central and to consider the extent to which many of today's debates concerning that relationship have been prefigured in earlier cultures.
Pre-requisites: None.

SE 221: Software Requirements and Design 4 (3-2-0)

Requirements includes a feasibility study of the desired systems, elicitations and analysis of user's needs, the creation of a precise description of what the system should and should not do along with any constraints on its operation and implementation, and the validation of this specification by the users. Non-functional requirements. Requirements engineering and management. Requirements validation.
Pre-requisites: SE 201 & SE 214

SE 223: Digital Logic Design 4 (3-2-0)

Introduction to numbering systems and Boolean algebra. Manipulation and minimization of completely and incompletely specified Boolean functions. Physical properties of gates: fan-in, fan-out, propagation delay, timing diagrams and tri-state drivers. Combinational circuits design using multiplexers, decoders, comparators and adders. Basic sequential circuits. Latches and flip-flops. Analysis and design of simple sequential circuits. Registers and counters. Implementation of digital circuits.
Pre-requisites: PHU 124

SE 312: Database Management Systems 4 (3-2-0)

The focus is to teach database fundamentals required in the development and evolution of most software applications by providing a basic introduction to the principles of relational database management systems such as Entity-Relationship approach to data modeling, relational model of database management systems and the use of query languages.
Pre-requisites: SE 214

SE 314 Operating Systems 3 (3-0-0)

Theory and construction of operating systems, including real-time and embedded systems aspect from an engineering point of view, stressing performance measurement and metrics. Quality of Service issues leading to certification that an operating system will satisfy hard real-time constraints.
Pre-requisites: SE 214

SE 323: Software Project and Process Management 3 (3-0-0)

Project Management and Software Process life cycles. Includes detailed analysis of components of each process. Metrics, tools and related standards associated with those components. Integration into a complete software plan. Capability maturity model. Software estimation techniques.
Pre-requisites: SE 221.

SE 324 Web Application Development 4 (3-2-0)

The course focuses on learning fundamentals of Web-based programming techniques, Web application development and client-server database integration. It provides in-depth coverage of introductory programming principles, various markup languages (e.g., XHTML, Dynamic HTML and XML), several scripting languages (e.g., JavaScript, PHP, Ruby/Ruby on Rails and Perl), Ajax, Web services, Web servers (e.g., IIS and Apache) and relational databases (e.g., MySQL/Apache Derby/Java DB)
Pre-requisites: SE 312

SE 327: Embedded Systems 3 (3-0-0)

The course explains the concept of real-time system and why such systems are usually implemented as concurrent processes. The course describes the process for real-time systems, and overviews the role of a real-time OS. It introduces the generic process architectures for monitoring and control and data acquisition systems.
Pre-requisites: SE 314.

SE 329: Human-Computer Interface Design 3 (3-0-0)

Introduction to human-computer interaction. User interface design and architectures. Evaluation of user interfaces. Design of user interface components including windows, menus, and commands. Usability engineering. Task analysis, user-centered design, and prototyping. Conceptual models and metaphors. Software design rationale. Voice and natural language I/O. Response time and feedback. Color, icons, and sound.
Pre-requisites: SE 221

SE 390: Software Engineering Summer Internship (1 CRHs)

An internship it is an important aspect of Software Engineering curriculum that provides the student with hands-on experience and a good sense of what an actual job in an organization will be like. Students are required to join an IT department in a government or private organization for a summer period of at least 8 weeks in the last summer prior to student graduation. Students should be able to relate the internship experience to the knowledge that he or she has gained through the Software Engineering program courses.
Pre-requisites: 103 credit hours passed and department approval

SE 410: Software Architecture 3 (3-0-0)

The course gives students an understanding of the concept of software architecture and how this phase in the development between requirement specification and detailed design plays a central role for the success of a software system. The students will get knowledge of some well-known architecture patterns, and be able to design, construct and evaluate architectures for software systems. In addition, the students should get some understanding of how the developers' experiences and the technical and organizational environment will influence on the choice of architecture.
Pre-requisites: SE 323

SE 412: Software Testing and Quality Assurance 3 (3-0-0)

The course focuses on software verification and validation throughout the software life cycle, including reviews (inspections and walkthroughs), testing techniques (functional and structural – black box and white box), levels of testing (unit, integration, system, and acceptance), and testing tools (static and dynamic). Testing and quality assurance standards.
Pre-requisites: SE 221

SE 415: Professional Practice and Software Documentation 3 (3-0-0)

This course consists of two parts. The first part provides students with an awareness of the professional practice they will encounter in private and public organizations. The course introduces topics of communication, professional ethics, professional judgment, and social intelligence. The second part covers an overview of the methods and practices that software engineering professionals use to create software documentation. This part is concerned with questions about the suitability of documentation, its content, format, and interaction style.
Pre-requisites: SE 412

SE 416: Mobile Application Development 4 (3-2-0)

This project-oriented course examines the principles of mobile application design and development. Students will learn application development on the Android platform. Topics will include memory management; user interface design; user interface building; input methods; data handling; network techniques and URL loading; and, finally, specifics such as GPS and motion sensing. Students are expected to work on a project that produces a professional-quality mobile application. Projects will be deployed in real-world applications.
Pre-requisites: SE 221 and SE 312

SE 421: Software Maintenance, Configuration Management and Evolution 3 (3-0-0)

Software quality issues, defect detection and prevention, reliability engineering, examination of maintenance issues, configuration management. Software evolution issues, planning for evolution.
Pre-requisites: SE 412

SE 490: Software Engineering Capstone Project I 2 (1-3-0)

This course is the first part of a two-semester senior-year capstone project. It is intended to complement the theory and to provide an in-depth, hands-on experience in all aspects of software engineering. The students will work in teams on projects of interest to IT sector and will be involved in analysis of requirements, architecture and design, implementation, testing and validation, project management, software process, software maintenance, and software re-engineering. In this part students give project plan, provide software requirement specification document and develop software high-level design.
Pre-requisites: 105 credit hours passed

SE 491: Software Engineering Capstone Project II 2 (1-3-0)

This is the second part of the capstone project started in SE 490 course. In this part, students provide software low-level design produced in SE 490, implement the design, test their code, and manage and evaluate their final product. Student teams must deliver the code, a final report and a do a presentation and demonstration for their implemented software.
Pre-requisites: SE 490

Elective Courses

SE 435: Undergraduate Research in Software Engineering 3 (0-6-0)

Students participate in supervised research with a faculty member. Supervised research can be: 1) independent research undertaken by the student (thesis, independent study), or 2) assistance on a faculty member's research project. Students must find a faculty member who is willing to supervise him/her as an assistant on an existing project or as the author of an individual project. The student and the faculty supervisor will complete and sign a research contract which will be turned in to the chair of the Electrical and Software Engineering Department. Drafting the contract will allow the student to develop ideas about what should be accomplished and what the faculty supervisor's expectations are. All academic requirements are at the discretion of the supervising faculty member. Students should agree on a plan for the semester with the faculty mentor before the research begins. The plan should include academic requirements, the basis for grading the experience, and a plan for student/professor meetings for the semester. It is the student's responsibility to report progress and seek guidance when needed. Students are expected to be active and reliable participants in the research experience.
Pre-requisites: GPA of at least 3.0/4.0, signed research contract, and consent of the departmental chair.

SE 440: Special Topics in Software Engineering 3 (3-0-0)

This course provides instruction and experience in timely topics related to the design and development of quality-engineered software.
Pre-requisites: 104 credit hours passed

SE 441: Telecommunications Software Design 3 (3-0-0)

Formal models for telecommunications software design and analysis. Protocol specification, design and validation. Protocol verification and testing. Conformance testing. Protocol synthesis. Protocol conversion.
Pre-requisites: 104 credit hours passed

SE 442: Social Networks for Software Engineers 3 (3-0-0)

Student will learn the fundamental interface, systems, and algorithms concepts in designing social software. The case-based syllabus will cover insights from both research and industry. As a student, the student will contribute to this burgeoning field through a quarter-long, team-based project. Students are required to enter the class with an initial project idea.
Pre-requisites: 104 credit hours passed

SE 443: Cloud Computing for Software Engineers 3 (3-0-0)

This course will leverages the World Wide Web to fulfill computing needs. It packages applications, computing power, and storage as a metered service similar to a utility. This model is designed to supplant the traditional mechanism of desktop computing in many cases. This course will cover the origin, theory, enabling technology, and hands-on labs for key concepts in cloud computing.
Pre-requisites: 104 credit hours passed

SE 444: Artificial Intelligence 3 (3-0-0)

This course aims in developing computer applications, which encompasses perception, reasoning and learning and to provide an in-depth understanding of major techniques used to simulate intelligence.
Pre-requisites: 104 credit hours passed

SE 445: Information and Software Security 3 (3-0-0)

This course provides an introduction to the topic of security in the context of computer networks. The goals are to provide students with a foundation allowing them to identify, analyze, and solve network-related security problems in information systems with the emphasis on the engineering aspects of information security and software security issues.
Pre-requisites: 104 credit hours passed




Stay Connected