Overview

Software Engineering is concerned primarily with the systematic and disciplined approach to developing software systems. It requires the application of both computer engineering and computer science principles and practices to the creation, operation, and maintenance of software systems and applications. Software systems are becoming increasingly complex, and emerging technologies are pushing the boundaries of reusable components and software quality assurance. The growth of software use in all areas and aspects of everyday life has increased over the past decades and has now become an integral part of society. The reliance on software in critical areas including infrastructure, transportation, utilities, national security, and defense has resulted in the need for properly trained and motivated individuals. ACM along with IEEE, has also indicated in their Computing Curricula 2020 (Dec 31st. 2020), that there has also been a shift away from knowledge-based learning to competency-based learning. They define competency as a combination of Knowledge (know-what) + Skills (know-how) + Disposition (know-why). This program brings together these areas using fundamental software courses to provide base knowledge, mid-level and advanced application areas with practical examples to build the competencies and the communication, intellectual, social and moral dispositions needed in this field.

This Program prepares students for successful careers in various software related jobs such as Software Developers, Quality Assurance Analysts, Computer Programmers, Web Developers, Database Administrators, Information Security Analyst and Testers. This program will not satisfy the licensure requirements for professional engineering registration.

To prepare students to meet these challenges, this Program establishes a solid foundation of software system fundamentals, coupled with strong hands-on experience and an understanding of professional practice and conduct. In addition to the core curriculum in software engineering, students are introduced to the paradigms of real-time, adaptive, and collaborative software systems, through a wide range of technical elective courses from  the Department of Electrical and Computer Engineering. Students may also use courses from other departments with academic advisor approval. The technical electives allow students to apply the knowledge they have gained to different application areas. This provides valuable hands-on experience in contemporary application areas, which enhances the students’ potential career development opportunities.

Domain Areas

The program includes optional additional domain area concentrations as a guide for elective selection. These allow students to gain more depth in various domain areas of interest by taking advanced undergraduate courses in these areas. Each concentration provides courses that students should take to further their competency in the selected domain area. The domain area concentrations are Artificial Intelligence and Cybersecurity.

Curriculum Requirements

Required Engineering Courses
EGN 110Innovation and Entrepreneurship in Engineering3
or EGN 114 Global Challenges Addressed by Engineering and Technology
EGN 123Computing and Digital Solutions for the future3
ECE 118Introduction to Programming3
ECE 211Logic Design3
ECE 212Processors: Hardware, Software, and Interfacing3
ECE 218Data Structures3
ECE 315Digital Design Laboratory1
ECE 318Algorithms3
ECE 322Systems Programming3
ECE 368Internet Computing I3
ECE 376Introduction to Cybersecurity (NEW COURSE Introduction to Cybersecurity)3
ECE 412Software Engineering and Architecture3
ECE 413Software Design and Verification3
ECE 421Computer Operating Systems3
ECE 467Database Design and Management3
ECE 470Network Client-Server Programming3
ECE 481Senior Project I1
ECE 482Senior Project II2
Software Engineering Technical Electives and/or Concentrations18
SE Technical Electives
300 Level and above ECE or CSC courses with approval of Academic Advisor. Two electives may also be taken from CIM412, CIM413, CIM422, CIM443, CIM453.
Artificial Intelligence Concentration (9 credit hours)
Principles of Artificial Intelligence
Machine Learning
Neural Networks
Cybersecurity Concentration (9 credit hours)
Communication Networks
Internet and Intranet Security
Mobile Computing
Math + Science
ECE 310Introduction to Engineering Probability3
MTH 151Calculus I for Engineers (fulfills Quantitative Skills Proficiency Requirement))5
MTH 162Calculus II4
MTH 210Introduction to Linear Algebra3
MTH 309Discrete Mathematics I3
Basic Science (/Lab)12
Basic Science (/Lab) Electives are selected in consultation with the Academic Advisor from courses in Biology, Chemistry, Environmental Science, Geological Science, Marine Science, or Physics.
General Education Requirements
Written Communication Skills:
WRS 105First-Year Writing I3
WRS 107First-Year Writing II: STEM3
Quantitative Skills:
Calculus I for Engineers (fulfilled through the major)
Areas of Knowledge:
Arts & Humanities Cognate9
People & Society Cognate9
People & Society Cognate (9 credits) (fulfilled through the major)
Total Credit Hours121

Sample Plan of Study

Plan of Study Grid
Freshman Year
FallCredit Hours
EGN 110 or 114 Innovation and Entrepreneurship in Engineering
or Global Challenges Addressed by Engineering and Technology
3
ECE 118 Introduction to Programming 3
WRS 105 First-Year Writing I 3
MTH 151 Calculus I for Engineers 5
 Credit Hours14
Spring
EGN 123 Computing and Digital Solutions for the future 3
ECE 218 Data Structures 3
WRS 107 First-Year Writing II: STEM 3
MTH 162 Calculus II 4
 Credit Hours13
Sophomore Year
Fall
ECE 211 Logic Design 3
ECE 318 Algorithms 3
MTH 210 Introduction to Linear Algebra 3
Basic Science (/Lab) 4
A&H Cognate Course 3
 Credit Hours16
Spring
ECE 212 Processors: Hardware, Software, and Interfacing 3
ECE 315 Digital Design Laboratory 1
ECE 310 Introduction to Engineering Probability 3
ECE 368 Internet Computing I 3
MTH 309 Discrete Mathematics I 3
P&S Cognate Course 3
 Credit Hours16
Junior Year
Fall
ECE 322 Systems Programming 3
ECE 376 Introduction to Cybersecurity 3
ECE 412 Software Engineering and Architecture 3
Basic Science (/Lab) 4
A&H Cognate Course 3
 Credit Hours16
Spring
ECE 413 Software Design and Verification 3
ECE 421 Computer Operating Systems 3
ECE 467 Database Design and Management 3
Basic Science (/Lab) 4
P&S Cognate Course 3
 Credit Hours16
Senior Year
Fall
ECE 481 Senior Project I 1
SE Elective 3
SE Elective 3
SE Elective 3
SEl Elective 3
A&H Cognate Course 3
 Credit Hours16
Spring
ECE 470 Network Client-Server Programming 3
ECE 482 Senior Project II 2
SE Elective 3
SE Elective 3
P&S Cognate Course 3
 Credit Hours14
 Total Credit Hours121

Program Mission

Program Educational Objectives

We expect that the alumni of the Software Engineering Program will exhibit the following:

  1. Successful careers in dynamic and multidisciplinary fields with the ability to apply software engineering practices within societal, global, and environmental contexts in an ethical manner.
  2. Demonstrating life-long learning through activities such as completion of graduate degrees and/or professional development.

Student Learning Outcomes

  1. An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
  2. An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors.
  3. An ability to communicate effectively with a range of audiences.
  4. An ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts.
  5. An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives.
  6. An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions.
  7. An ability to acquire and apply new knowledge as needed, using appropriate learning strategies.