Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
!"#$%"&'()*+(,-(./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