se study plan effective fall 2016 · 2020-01-15 · course code, course title, and course credit...

18

Upload: others

Post on 27-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

!"#$%"&'()*+(,-(./01(

!

"#$%&'()!(*!!!!!!!

+(*,-#)&!./01/&&)1/0!!"##$%$&"'&()%*)$$+*)%,&-#'.*/.#&0)*1$+/*23&

!233"45$#"'(6*77(./08!

Software Engineering Program

(

233"45$#"'(6*77(./08-(!"#$%"&'()*+(,-(./01

1

Curriculum Structure and Study Plan

The Bachelor of Software Engineering curriculum is composed of 134 Credit Hours (CRHs) divided as

follows:

I. General Education Requirements (47 CRHs)

1. Mathematics & Statistics (15 CRHs)

2. Basic Sciences (12 CRHs)

3. Humanities (20 CRHs)

II. Core Requirements (87 CRHs)

1. Software Engineering Courses (70 CRHs)

2. College of Engineering Courses (8 CRHs)

3. Technical Electives (9 CRHs)

4. Summer Internship (0 CRHs)

I. General Education Requirements (47 CRHs)

1. Mathematics & Statistics (15 CRHs)

Course

Code Course-Title

Credit Hours (CRHs)

Pre-Requisite

Course Code

Co-

Requisite

Course

Code

Total-

CRHs Lect. Lab Tut

MAT 101 Calculus I 3 3 0 0

MAT 112 Calculus II 3 3 0 0 MAT 101

MAT 212 Linear Algebra 3 3 0 0 MAT 112

MAT 224 Numerical Methods 3 3 0 0 MAT 212

STA 212 Probability and

Statistics for Engineers 3 3 0 0

MAT 112

Software Engineering Program

(

233"45$#"'(6*77(./08-(!"#$%"&'()*+(,-(./01

2

2. Basic Sciences (12 CRHs)

Course

Code Course-Title

Credit Hours (CRHs)

Pre-Requisite

Course Code

Co-

Requisite

Course

Code

Total-

CRHs Lect Lab Tut

CHM 102 Introduction to

Chemistry 3 3 0 1

CHM 102 L Introduction to

Chemistry Lab 1 0 2 0

CHEM 102

PHU 103 Mechanics and Waves

for Engineers 3 3 0 1

MAT 101

PHU 103 L Mechanics and Waves

for Engineers Lab1 0 2 0

PHU 103

PHU 124 Electromagnetism and

Optics for Engineers 3 3 0 1 PHU 103,

MAT 101

PHU 124 L Electromagnetism and

Optics for Engineers

Lab

1 0 2 0 PHU 103,

MAT 101

PHU 124

3. Humanities (20 CRHs)

Course

Code Course-Title

Credit Hours (CRHs)

Pre-Requisite

Course Code

Co-

Requisite

Course

Code

Total-

CRHs Lect Lab Tut

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

PHL 101 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

ARB 101 Arabic Language and

Literature I 2 2 0 0

ARB 112 Arabic Language and

Literature II 2 2 0 0

ARB 101

Software Engineering Program

(

233"45$#"'(6*77(./08-(!"#$%"&'()*+(,-(./01

3

II. Core Requirements (87 CRHs)

1. Software Engineering Courses (70 CRHs)

Course

Code Course-Title

Credit Hours (CRHs) Pre-

Requisite

Course

Code

Co-

Requisite

Course

Code

Total-

CRHs Lec Lab Tut

SE 100 Programming for Engineers 3 3 0 0

SE 100 L Programming for Engineers Lab 1 0 2 0

SE 100

SE 120 Object-Oriented Programming 3 3 0 0 SE 100

SE 120 L Object-Oriented Programming

Lab 1 0 2 0

SE 100 SE 120

SE 201 Introduction to Software

Engineering 3 3 0 0

SE 120

SE 201 L Introduction to Software

Engineering Lab 1 0 2 0

SE 120 SE 201

SE 212 Discrete Structures for Software

Engineers 3 3 0 0

SE 120

SE 214 Algorithms and Data Structures 3 3 0 0 SE 120

SE 214 L Algorithms and Data Structures

Lab 1 0 2 0

SE 120 SE 214

SE 217 Software and Society 3 3 0 0

SE 221 Software Requirements and

Design 3 3 0 0

SE 201,

SE 214

SE 221 L Software Requirements and

Design Lab 1 0 2 0

SE 201,

SE 214

SE 221

SE 223 Digital Logic Design 3 3 0 0 PHU 124

SE 223 L Digital Logic Design Lab 1 0 2 0 PHU 124 SE 223

SE 312 Database Management Systems 3 3 0 0 SE 214

SE 312 L Database Management Systems

Lab 1 0 2 0

SE 214 SE 312

SE 314 Operating Systems 3 3 0 0 SE 214

SE 323 Software Project and Process

Management 3 3 0 0

SE 221

Software Engineering Program

(

233"45$#"'(6*77(./08-(!"#$%"&'()*+(,-(./01

4

SE 324 Web Application Development 3 3 0 0 SE 312

SE 324 L Web Application Development

Lab 1 0 2 0

SE 312 SE 324

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 221

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 3 3 0 0

SE 221,

SE 312

SE 416 L Mobile Application Development

Lab 1 0 2 0

SE 221,

SE 312

SE 416

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

SE312,

SE 324

SE 491 Software Engineering Capstone

Project II 2 1 3 0

SE 490

2. College of Engineering Courses (8 CRHs)

Course

Code Course-Title

Credit Hours (CRHs)

Pre-Requisite

Course Code

Co-

Requisite

Course

Code

Total-

CRHs Lec Lab Tut

EE 305 Computer Networks 3 3 0 0

SE 100, STA 212, &

(SE 223 or EE 210)

EE 305 L Computer Networks Lab 1 0 2 0

SE 100, STA 212, &

(SE 223 or EE 210)

EE 305

EE 307 Computer Architecture 3 3 0 0

SE 100 & (SE 223

or EE 210)

EE 307 L Computer Architecture

Lab 1 0 2 0

SE 100 & (SE 223

or EE 210)

EE 307

Software Engineering Program

(

233"45$#"'(6*77(./08-(!"#$%"&'()*+(,-(./01

5

3. Technical Electives (9 CRHs)

Select from the following courses:

Course

Code Course-Title

Credit Hours (CRHs)

Pre-Requisite

Course Code

Co-

Requisite

Course

Code

Total-

CRHs Lect Lab Tut

SE 435 Undergraduate

Research in Software

Engineering

3

0

6

0

Department

approval*

SE 440 Special Topics in

Software Engineering 3 3 0 0

SE 324

SE 441 Telecommunications

Software Design 3 3 0 0

EE 305

SE 442 Social Networks for

Software Engineers 3 3 0 0

SE 324

SE 443 Cloud Computing for

Software Engineers 3 3 0 0

SE 324, EE 305

SE 444 Artificial Intelligence 3 3 0 0 SE 214, SE 324

SE 445 Information and

Software Security 3 3 0 0

STA 212, SE 324

*Department approval, a GPA of at least 3.0/4.0, and a signed research contract

4. Summer Internship (0 CRHs)

Course

Code Course-Title Credit Hours (CRHs)

Pre-Requisite

Course Code

Co-

Requisite

Course

Code

SE 390 Software Engineering

Summer Internship 0

SE 324

Software Engineering Program

(

233"45$#"'(6*77(./08-(!"#$%"&'()*+(,-(./01

6

Typical Study Plan-Software Engineering Program

4-Year Curriculum: 134 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

Fal

l

Course Code Course-Title CRHs

SE 100 Programming for Engineers 3 (3-0-0)

SE 100 L Programming for Engineers Lab 1 (0-2-0)

CHM 102 Introduction to Chemistry 3 (3-0-1)

CHM 102 L Introduction to Chemistry Lab 1 (0-2-0)

MAT 101 Calculus I 3 (3-0-0)

PHU 103 Mechanics and Waves for Engineers 3 (3-0-1)

PHU 103 L Mechanics and Waves for Engineers Lab 1 (0-2-0)

ENG 101 Freshman English I 3 (3-0-0)

Total 18

Sp

rin

g

Course Code Course-Title CRHs

SE 120 Object-Oriented Programming 3 (3-0-0)

SE 120 L Object-Oriented Programming Lab 1 (0-2-0)

MAT 112 Calculus II 3 (3-0-0)

PHU 124 Electromagnetism and Optics for Engineers 3 (3-0-1)

PHU 124 L Electromagnetism and Optics for Engineers Lab 1 (0-2-0)

ENG 112 Freshman English II 3 (3-0-0)

PHL 101A Engineering Ethics 3 (3-0-0)

Total 17

Software Engineering Program

(

233"45$#"'(6*77(./08-(!"#$%"&'()*+(,-(./01

7

2nd

Year

Fal

l

Course Code Course-Title CRHs

SE 201 Introduction to Software Engineering 3 (3-0-0)

SE 201 L Introduction to Software Engineering Lab 1 (0-2-0)

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

SE 214 Algorithms and Data Structures 3 (3-0-0)

SE 214 L Algorithms and Data Structures Lab 1 (0-2-0)

MAT 212 Linear Algebra 3 (3-0-0)

ENG 222 Technical Writing 3 (3-0-0)

Total 17

Sp

rin

g

Course Code Course-Title CRHs

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

SE 221 Software Requirements and Design 3 (3-0-0)

SE 221 L Software Requirements and Design Lab 1 (0-2-0)

SE 223 Digital Logic Design 3 (3-0-0)

SE 223 L Digital Logic Design Lab 1 (0-2-0)

MAT 224 Numerical Methods 3 (3-0-0)

STA 212 Probability and Statistics for Engineers 3 (3-0-0)

Total 17

Software Engineering Program

(

233"45$#"'(6*77(./08-(!"#$%"&'()*+(,-(./01

8

3rd

Year

Fal

l

Course Code Course-Title CRHs

SE 312 Database Management Systems 3 (3-0-0)

SE 312 L Database Management Systems Lab 1 (0-2-0)

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

EE 305 Computer Networks 3 (3-0-0)

EE 305 L Computer Networks Lab 1 (0-2-0)

EE 307 Computer Architecture 3 (3-0-0)

EE 307 L Computer Architecture Lab 1 (0-2-0)

ISL 101 Islamic Studies I 2 (2-0-0)

Total 17

Sp

rin

g

Course Code Course-Title CRHs

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

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

SE 324 L Web Application Development Lab 1 (0-2-0)

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

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

ARB 101 Arabic Language and Literature I 2 (2-0-0)

Total 15

Su

mm

er Course Code Course-Title CRHs

SE 390 Software Engineering Summer Internship 0

Total 0

Software Engineering Program

(

233"45$#"'(6*77(./08-(!"#$%"&'()*+(,-(./01

9

4th

Year

Fal

l

Course Code Course-Title CRHs

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

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

SE 416 Mobile Application Development 3 (3-0-0)

SE 416 L Mobile Application Development Lab 1 (0-2-0)

SE 4** Technical Elective 3 (3-0-0)

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

ISL 112 Islamic Studies II 2 (2-0-0)

Total 17

Sp

rin

g

Course Code Course-Title CRHs

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

SE 421 Software Maintenance, Configuration Management

and Evolution 3 (3-0-0)

SE 4** Technical Elective 3 (3-0-0)

SE 4** Technical Elective 3 (3-0-0)

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

ARB 112 Arabic Language and Literature II 2 (2-0-0)

Total 16

Software Engineering Program

(

233"45$#"'(6*77(./08-(!"#$%"&'()*+(,-(./01

10

Course Descriptions

In this section we give the course descriptions of Software Engineering courses of the program.

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 3 (3-0-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

Co-requisites: None

SE 100 L: Programming for Engineers Lab 1 (0-2-0)

Laboratory experiments dealing with Object Oriented Programming.

Pre-requisites: None

Co-requisites: SE 100

SE 120: Object-Oriented Programming 3 (3-0-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

Co-requisites: None

SE 120 L: Object-Oriented Programming Lab 1 (0-2-0)

Laboratory experiments dealing with advanced Object Oriented Programming.

Pre-requisites: SE 100

Co-requisites: SE 120

SE 201: Introduction to Software Engineering 3 (3-0-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

Co-requisites: None

SE 201 L: Introduction to Software Engineering Lab 1 (0-2-0)

Laboratory experiments dealing with fundamental concepts in software engineering.

Pre-requisites: SE 120

Co-requisites: SE 201

Software Engineering Program

(

233"45$#"'(6*77(./08-(!"#$%"&'()*+(,-(./01

11

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

Co-requisites: None

SE 214: Algorithms and Data Structures 3 (3-0-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

Co-requisites: None

SE 214 L: Algorithms and Data Structures Lab 1 (0-2-0)

Laboratory experiments dealing with algorithms and data structures.

Pre-requisites: SE 120

Co-requisites: SE 214

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

Co-requisites: None

SE 221: Software Requirements and Design 3 (3-0-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

Co-requisites: None

SE 221 L: Software Requirements and Design Lab 1 (0-2-0)

Laboratory experiments dealing with software requirements and design.

Pre-requisites: SE 201, SE 214

Co-requisites: SE 221

SE 223: Digital Logic Design 3 (3-0-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

Co-requisites: None

Software Engineering Program

(

233"45$#"'(6*77(./08-(!"#$%"&'()*+(,-(./01

12

SE 223 L: Digital Logic Design Lab 1 (0-2-0)

Laboratory experiments dealing with digital logic design.

Pre-requisites: PHU 124

Co-requisites: SE 223

SE 312: Database Management Systems 3 (3-0-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

Co-requisites: None

SE 312 L: Database Management Systems Lab 1 (0-2-0)

Laboratory experiments dealing with database management systems.

Pre-requisites: SE 214

Co-requisites: SE 312

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

Co-requisites: None

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

Co-requisites: None

SE 324 Web Application Development 3 (3-0-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

Co-requisites: None

SE 324 L: Web Application Development Lab 1 (0-2-0)

Laboratory experiments dealing with web application development.

Pre-requisites: SE 312

Co-requisites: SE 324

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

Co-requisites: None

Software Engineering Program

(

233"45$#"'(6*77(./08-(!"#$%"&'()*+(,-(./01

13

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

Co-requisites: None

SE 390: Software Engineering Summer Internship 0 (0-0-0)

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: SE 324

Co-requisites: None

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 221

Co-requisites: None

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

Co-requisites: None

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

Co-requisites: None

SE 416: Mobile Application Development 3 (3-0-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, SE 312

Co-requisites: None

Software Engineering Program

(

233"45$#"'(6*77(./08-(!"#$%"&'()*+(,-(./01

14

SE 416 L: Mobile Application Development Lab 1 (0-2-0)

Laboratory experiments dealing with mobile application development.

Pre-requisites: SE 221, SE 312

Co-requisites: SE 416

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

Co-requisites: None

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: SE, 312, SE 324

Co-requisites: None

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

Co-requisites: None

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: SE 324

Software Engineering Program

(

233"45$#"'(6*77(./08-(!"#$%"&'()*+(,-(./01

15

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: EE 305

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: SE 324

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

This course 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: SE 324, EE 305

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: SE 214, SE 324

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: STA 212, SE 324

!"#$%&"'

($)*+,-'

.,#-+%/.,$% .,#-+%01*"2% .34+!%5%+"%-

167%&

3%"67%8

1-6&+9%-.,#-+%/.,$% .,#-+%01*"2% .34+

!%5%+"%-

167%&

3%"67%8

1-6&+9%-

!:/;<< =-,>-655*&>/9,-/:&>*&%%-+ ? !://;@< ABC%D"0A-*%&"%$/=-,>-655*&> ?

!:/;<</E =-,>-655*&>/9,-/:&>*&%%-+/E6B ; !://;@</E ABC%D"0A-*%&"%$/=-,>-655*&>/E6B ;

.4F/;<@ G&"-,$#D"*,&/",/.H%5*+"-I ? F(1/;;@ .62D#2#+/GG/ ?

.4F/;<@/E G&"-,$#D"*,&/",/.H%5*+"-I/E6B ; =4J/;@K :2%D"-,56>&%"*+5/6&$/AL"*D+/9,-/:&>*&%%-+ ?

F(1/;<; .62D#2#+/G/ ? =4J/;@K/E :2%D"-,56>&%"*+5/6&$/AL"*D+/9,-/:&>*&%%-+/E6B ;

=4J/;<? F%DH6&*D+/6&$/M6)%+/9,-/:&>*&%%-+ ? :NO/;;@ P-%+H56&/:&>2*+H/GG ? /

=4J/;<?/E F%DH6&*D+/6&$/M6)%+/9,-/:&>*&%%-+/E6B ; =4E/;<;( :&>*&%%-*&>/:"H*D+/ ?

:NO/;<; P-%+H56&/:&>2*+H/G ? / / /

1,"62 ;Q 1,"62 ;R

.,#-+%/.,$% .,#-+%01*"2% .34+!%5%+"%-

167%&

3%"67%8

1-6&+9%-.,#-+%/.,$% .,#-+%01*"2% .34+

!%5%+"%-

167%&

3%"67%8

1-6&+9%-

!:/@<; G&"-,$#D"*,&/",/!,9"S6-%/:&>*&%%-*&> ? !:/@;R !,9"S6-%/6&$/!,D*%"I ?

!:/@<;/E G&"-,$#D"*,&/",/!,9"S6-%/:&>*&%%-*&>/E6B ; !:/@@; !,9"S6-%/3%T#*-%5%&"+/6&$/U%+*>& ?

!:/@;@ U*+D-%"%/!"-#D"#-%+/9,-/!,9"S6-%/:&>*&%%-+ ? !:/@@;/E !,9"S6-%/3%T#*-%5%&"+/6&$/U%+*>&/E6B ;

!:/@;K (2>,-*"H5+/6&$/U6"6/!"-#D"#-%+/ ? !:/@@? U*>*"62/E,>*D/U%+*>& ?

!:/@;K/E (2>,-*"H5+/6&$/U6"6/!"-#D"#-%+/E6B ; !:/@@?/E U*>*"62/E,>*D/U%+*>&/E6B ;

F(1/@;@ E*&%6-/(2>%B-6 ? F(1/@@K N#5%-*D62/F%"H,$+/ ?

:NO/@@@ 1%DH&*D62/M-*"*&> ? !1(/@;@ =-,B6B*2*"I/6&$/!"6"*+"*D+/9,-/:&>*&%%-+ ?

1,"62 ;R 1,"62 ;R

.,#-+%/.,$% .,#-+%01*"2% .34+!%5%+"%-

167%&

3%"67%8

1-6&+9%-.,#-+%/.,$% .,#-+%01*"2% .34+

!%5%+"%-

167%&

3%"67%8

1-6&+9%-

!:/?;@ U6"6B6+%/F6&6>%5%&"/!I+"%5+ ? !:/?@? !,9"S6-%/=-,C%D"/6&$/=-,D%++/F6&6>%5%&" ?

!:/?;@/E U6"6B6+%/F6&6>%5%&"/!I+"%5+/E6B ; !:/?@K M%B/(LL2*D6"*,&/U%)%2,L5%&" ?

!:/?;K AL%-6"*&>/!I+"%5+ ? !:/?@K/E M%B/(LL2*D6"*,&/U%)%2,L5%&"/E6B ;

::/?<V .,5L#"%-/N%"S,-7+/ ? !:/?@R :5B%$$%$/!I+"%5+ ?

::/?<V/E .,5L#"%-/N%"S,-7+/E6B ; !:/?@W 4#56&0.,5L#"%-/G&"%-96D%/U%+*>& ?

::/?<R .,5L#"%-/(-DH*"%D"#-% ? (3X/;<; (-6B*D/E6&>#6>%/6&$/E*"%-6"#-%/G/ @

::/?<R/E .,5L#"%-/(-DH*"%D"#-%/E6B ;

G!E/;<; G+265*D/!"#$*%+/G @

1,"62 ;R 1,"62 ;V

.,#-+%/.,$% .,#-+%01*"2% .34+!%5%+"%-

167%&

3%"67%8

1-6&+9%-

!:/?W< !,9"S6-%/:&>*&%%-*&>/!#55%-/G&"%-&+H*L <

1,"62 <

.,#-+%/.,$% .,#-+%01*"2% .34+!%5%+"%-

167%&

3%"67%8

1-6&+9%-.,#-+%/.,$% .,#-+%01*"2% .34+

!%5%+"%-

167%&

3%"67%8

1-6&+9%-

!:/K;< !,9"S6-%/(-DH*"%D"#-% ? !:/K;V =-,9%++*,&62/=-6D"*D%/6&$/!,9"S6-%/U,D#5%&"6"*,& ?

!:/K;@ !,9"S6-%//1%+"*&>/6&$/Y#62*"I/(++#-6&D% ? !:/K@; !,9"S6-%/F6*&"%&6&D%Z/.,&9*>[/F>5&"[/6&$/:),2#"*,& ?

!:/K;\ F,B*2%/(LL2*D6"*,&/U%)%2,L5%&" ? !:/]/]/] 1%DH&*D62/:2%D"*)% ?

!:/K;\/E F,B*2%/(LL2*D6"*,&/U%)%2,L5%&"/E6B ; !:/]/]/] 1%DH&*D62/:2%D"*)% ?

!:/]/]/] 1%DH&*D62/:2%D"*)% ? !:/KW; !,9"S6-%/:&>*&%%-*&>/.6L+",&%/=-,C%D"/GG @

!:/KW< !,9"S6-%/:&>*&%%-*&>/.6L+",&%/=-,C%D"/G @ (3X/;;@ (-6B*D/E6&>#6>%/6&$/E*"%-6"#-%/GG/ @

G!E/;;@ G+265*D/!"#$*%+/GG @

1,"62 ;R 1,"62 ;\

!

^#&*,-/_%6-/0/!#55%-/!%5%+"%-

!%&*,-/_%6-/0/P622/!%5%+"%- !%&*,-/_%6-/0/!L-*&>/!%5%+"%-

P-%+H56&/_%6-/0/P622/!%5%+"%- P-%+H56&/_%6-/0/!L-*&>/!%5%+"%-

!,LH,5,-%/_%6-/0/P622/!%5%+"%- !,LH,5,-%/_%6-/0/!L-*&>/!%5%+"%-

^#&*,-/_%6-/0/P622/!%5%+"%- ^#&*,-/_%6-/0/!L-*&>/!%5%+"%-

(296*+62/J&*)%-+*"I

X6DH%2,-/,9/!,9"S6-%/:&>*&&%%-*&>

!"#$I/=26&/!#556-I

:99%D"*)%'/P622/@<;\

GU`' :56*2'

!"6-"*&>/!%5%+"%-'/ :aL%D"%$/O-6$#6"*,&'

K0_%6-/.#--*D#2#5'/;?K/.-%$*"/4,#-+/1,"62/

!"#$%&%

'()*+)+,$-

./0$%&1

!2*34$5$

6(72,$89:$

;<=:,

>;$%&&

.:9=:(??@<=$

89:$;<=@<22:,

'/!$%&A

-<B:9$B9$

'32?

;CD$%%A

E:2,3?(<$

;<=)@,3$--

!"#$%%A

'()*+)+,$--

./0$%AF

;)2*B:9?(=<2B

@,?4$GHB@*,$89:$

;<=:,

>;$%A&

GIJ2*B$

G:@2<B2K$

.:9=4$

./L$%&%"

;B3@*,

;CD$AAA

#2*3<@*()$

6:@B@<=

!"#$A%A

L@<2(:$")=2I:(

>;$A&%

-<B:9$B9$

>98BM(:2$;<=4

>;$A%A

N@,*:2B2$

,B:+*B,$89:$>;

>;$A%F

")=9:B3?,$(<K$

N(B($>B:+*B,

>#"$A%A

.:9I4$(<K$>B(B,$

89:$;<=:,

!"#$AAF

C+?2:@*()$

!2B39K,

>;$AA1

N@=@B()$L9=@*$

N2,@=<

>;$AA%

>8BM:$OP:?<B,$

5$$N2,@=<

>;$A%Q

>98BM(:2$(<K$

>9*@2BR

;CD$%&%

E:2,3?(<$

;<=)@,3$-

->L$%&%

-,)(?@*$>B+K@2,$-

;;$1&Q$S%T

'9?H+B2:$

":*3@B2*B+:2

;;$1&U

'9?H+B2:$

C2BM9:V,

>;$1%A

N(B(I(,2$

!<=?<B$>R,4

>;$1%F

GH2:(B@<=$

>R,B2?,

"OW$%&%

":(I@*$L(<=4$-

>;$1A1

>8BM:$.:9J2*B4$

.:9*2,,$!=?<B

>;$1AF

62I$"HH4$

N272)9H?2<B

>;$1AX

/+?(<Y'9?H4$

-<B2:8(*2$N,=<

>;$1AQ

;?I2KK2K$

>R,B2?,

")8(@,()$0<@72:,@BR

– W(*32)9:$98$>98BM(:2$;<=@<22:@<=

.:2:2P+@,@B2,$'3(:B$Z;882*B@72$E())$A&%[\

->L$%%A

-,)(?@*$>B+K@2,$--

>;$F%&

>98BM(:2$

":*3@B2*B+:2

>;$F%A

>98BM(:2$

#2,B@<=$5$]"

>;$F^^

SAT

#2*3<@*()$

;)2*B@72$

>;$F^^

SAT

#2*3<@*()$

;)2*B@72

>;$FX&

'(H,B9<2$

.:9J2*B$-

"OW$%%A

":(I@*$L(<=4$--

>;$F%U

.:982,,<)$

.:*B*2$5$>8BM:$

N9*?<BB<

>;$F%[

!9I@)2$"HH4$

N272)9H?2<B

>;$FA%

>8BM:$!<B<<*_$

'9<8@=$!<=?<B$

5$;79)+B@9<$

>;$F^^

SAT

#2*3<@*()$

;)2*B@72$

>;$FX%

'(H,B9<2$

.:9J2*B$--

E())

>H:@<=

E())

>H:@<=

E())

>H:@<=

E())

>H:@<=

>+??2:

SAT`$.:2:2P+@,@B2,$7(:R$H2:$*9+:,2

S%T`$:2P+@:2,$>;%&&$5$

Z>;AA1$9:$;;A%&\

>;$1X&

>+??2:$

-<B2:<,3@H

>;$%&&$L

>;$%A&$L

>;$A&%$L

>;$AA%$L

>;$AA1$L

>;$1%A$L

>;$1AF$L

>;$F%[$L

./0$%&1$L

'/!$%&A$L

./0$%AF$L

>;$A%F$L

;;$1&Q$L

;;$1&U$L