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. The Software Engineering Option of the Bachelor of Science in Computer Engineering degree at the University of Miami is a unique interdisciplinary program developed and administered collaboratively by the Department of Electrical and Computer Engineering and the Department of Computer Science.

This Option prepares students for successful careers in software engineering. Software systems are becoming increasingly complex, and emerging technologies are pushing the boundaries of reusable components and software quality assurance. To prepare students to meet these challenges, this Option 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 both the Department of Electrical and Computer Engineering and the Department of Computer Science. 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.

Students pursuing the Software Engineering Option of the Bachelor of Science in Computer Engineering degree must earn at least 15 credit hours in Computer Science as part of their degree requirements.

Curriculum Requirements 

Common Engineering Requirements
ECE 111Introduction to Engineering I3
ECE 112Introduction to Engineering II2
ECE 118Introduction to Programming3
ECE 201Electrical Circuit Theory3
ECE 202Electronics I3
ECE 203Electrical Circuits Laboratory1
ECE 211Logic Design3
ECE 212Processors: Hardware, Software, and Interfacing3
ECE 218Data Structures3
ECE 315Digital Design Laboratory1
ECE 316Structured Digital Design1
ECE 318Algorithms3
ECE 322Systems Programming3
ECE 414Computer Organization and Design3
ECE 417Embedded Microprocessor System Design3
ECE 481Senior Project I1
ECE 482Senior Project II2
Engineering and Technical Electives
ECE 412Software Engineering and Architecture3
ECE 413Software Design and Verification3
ECE 421Computer Operating Systems3
or CSC 421 Principles of Computer Operating Systems
ECE 467Database Design and Management3
or CSC 423 Database Systems
ECE 470Network Client-Server Programming3
SE Technical Electives9
Other Courses
Computer Science Credit Hours
CSC 317Data Structures and Algorithm Analysis3
CSC 419Programming Languages3
Math & Basic Science Credit Hours32
General Education Credit Hours24
Total Credit Hours127

Suggested Plan of Study 

Plan of Study Grid
Freshman Year
FallCredit Hours
ECE 111 Introduction to Engineering I 3
ECE 118 Introduction to Programming 3
ENG 105 English Composition I 3
MTH 151 Calculus I for Engineers 5
 Credit Hours14
ECE 112 Introduction to Engineering II 2
ECE 218 Data Structures 3
ENG 107 English Composition II: Science and Technology 3
MTH 162 Calculus II 4
PHY 205 University Physics I 3
 Credit Hours15
Sophomore Year
ECE 211 Logic Design 3
ECE 318 Algorithms 3
MTH 210 Introduction to Linear Algebra 3
PHY 206 or 207 University Physics II
or University Physics III
PHY 208 or 209 University Physics II Lab
or University Physics III Lab
PS Cognate (People and Society Elective) 1 3
 Credit Hours16
ECE 201 Electrical Circuit Theory 3
ECE 212 Processors: Hardware, Software, and Interfacing 3
ECE 310 or IEN 310 Introduction to Engineering Probability
or Introduction to Engineering Probability
ECE 315 Digital Design Laboratory 1
MTH 309 Discrete Mathematics I 3
HA Cognate(Humanities and Arts Elective) 1 3
 Credit Hours16
Junior Year
ECE 202 Electronics I 3
ECE 203 Electrical Circuits Laboratory 1
ECE 322 Systems Programming 3
ECE 412 Software Engineering and Architecture 3
Basic Science Elective 1 3
Basic Science Lab Elective 1 1
PS Cognate (People and Society Elective) 1 3
 Credit Hours17
ECE 316 Structured Digital Design 1
ECE 413 Software Design and Verification 3
ECE 421 or CSC 421 Computer Operating Systems
or Principles of Computer Operating Systems
ECE 467 or CSC 423 Database Design and Management 2
or Database Systems
Basic Science Elective 1 3
HA Cognate (Humanities and Arts Elective) 1 3
 Credit Hours16
Senior Year
ECE 414 Computer Organization and Design 3
ECE 417 Embedded Microprocessor System Design 3
ECE 481 Senior Project I 3 1
CSC 317 Data Structures and Algorithm Analysis 3
SE Technical Elective 1 3
PS Cognate (Adv. PS Elective) 1 3
 Credit Hours16
ECE 470 Network Client-Server Programming 3
ECE 482 Senior Project II 2
CSC 419 Programming Languages 3
SE Technical Elective 1 3
SE Technical Elective 1 3
HA Cognate (Adv. HA Elective) 1 3
 Credit Hours17
 Total Credit Hours127