Master's in Software Engineering Degree Program

A convenient onsite Software Engineering Master's program for working engineers

Earn an MSE in ECE with a concentration in Software Engineering. UT-Austin's onsite Master's in Software Engineering degree program allows working engineers to earn their Master's conveniently, without interrupting their busy work schedules. Onsite meetings occurring just one consecutive Friday and Saturday per month, our flexible program addresses the demand for influential software engineers who have an expansive understanding of crucial software engineering topics.

Students will learn how to better analyze and design software systems from world-renowned professors, and additionally acquire the tools necessary to better lead and manage software projects. This degree prepares software engineers to move into advanced software project management positions or engineering leadership roles while successfully controlling the direction of their next career move.


Class Format

This 30-hour credit program can be successfully completed in just two years while continuing to work full-time. Onsite classes meet only one weekend (Friday and Saturday) per month, with morning classes taking place from 8:00 AM to noon, and afternoon classes taking place from 1:00 PM to 5:00 PM, allowing working engineers to earn their degree while maintaining scheduling flexibility.

Our program's curriculum will provide the ability to better analyze and design software systems through course offerings such as software requirements, architectural design, verification and validation, and security networks. Students will develop a thorough understanding of the technology utilized to enhance these software engineering systems, as well as how to implement this knowledge into their own career paths and practices.


  • Tailored for busy schedules
  • This two-year program is tailored for busy schedules, providing the opportunity to pursue a master's degree while working full-time.
  • Graduates receive the same Master of Science Engineering Degree awarded by UT-Austin's traditional, full-time graduate program.
  • Courses are taught by the renowned and top-ranked Cockrell School of Engineering faculty.
  • Acquire the knowledge and tools necessary to deliver robust advanced, on-time, and in-budget software systems.
  • Design, construct, analyze, test, deploy, and maintain software systems using state-of-the-art and state-of-the-practice methods and tools.
  • Learn key proficiencies in current and emerging software system technology while advancing abilities to better manage software projects.

Speak with our Admissions Expert

For additional information on our graduate master's degree programs, please contact This email address is being protected from spambots. You need JavaScript enabled to view it. at 512.232.5199.


Tuition and fees for the 2020-2021 academic year are below

Estimated On Year Tuition & Fees $34,000 ($3,400 per course)

A non-refundable $1,000 deposit is required once you accept our offer of admission and is credited toward your first semester program costs.

Students may be eligible for financial aid or student loans through the Office of Financial Aid (OFA). Detailed financial aid application instructions are available on OFA’s website.

Texas Engineering Executive Education welcomes veterans, active duty members and their families. If you have questions about your eligibility as it relates to the University of Texas at Austin, please contact Student Veteran Services for assistance.

*Please note that H-H benefits are not applicable as our program does not receive state funding.


UT Austin requires graduate school applicants to have earned a bachelor's degree from a regionally accredited institution in the U.S., or a comparable degree from a foreign institution. Applicants to graduate programs at Texas Engineering Executive Education should complete the appropriate application for admission. Click here to view all admission requirements.

Due to Covid-19, GRE is NOT required for Spring 2021/Fall 2021/Spring 2022 applicants*


  • A B.S. in Electrical and Computer Engineering, Computer Science, Software Engineering or related technical field is required. Other degrees might be eligible with the required skill set.
  • Applicants must be able to demonstrate proficiency in the following three areas either through education or experience: data structures, algorithms, and Java or C++.
  • An upper-division GPA of 3.0 is recommended.
  • Twelve months of industry-related experience is preferred but not required; graduating seniors are encouraged to apply.


Apply Online

  • Online Application, statement of purpose and application fee:
  • Official transcripts from all senior colleges.
  • GRE - it may take up to 72 hours for the GRE waiver to take effect and be reflected on your mystatus page.
  • TOEFL or IELTS score if applicable.
  • Three professional letters of reference and a current resume.

After you have submitted your application and application fee, you will be able to upload the following:

  • College transcripts – uploaded official transcripts are considered unofficial but are sufficient for application review.
  • Official transcripts bear the facsimile signature of the registrar and the seal of the issuing institution. Transcripts from U.S. colleges or universities must have been produced within the last calendar year, and transcripts written in a language other than English must be accompanied by a translation.

Please note: upon admission you will be required to submit official transcripts.

  • Official transcripts from each university or senior college attended. If you are a former UT undergraduate, transcripts will be requested for you automatically.

International prospective students:

Due to the structure of this professional Master's degree program, it is not possible for students to register for more than 6 credit hours per semester, which does not meet the minimum 9 credit hour requirement to be eligible for an F-1 VISA. International students must secure a VISA by alternate means if admitted to the program.



  • Final Deadline: In order to be considered for the fall semester, completed applications must be received no later than July 1st.


  • Final Deadline: In order to be considered for the spring semester, completed applications must be received no later than November 1st.

Who Should Apply

Applicants should have an undergraduate degree in electrical or computer engineering or related technical field with at least 12 months of industry experience preferred. This degree is relevant to software engineers looking to:

  • Stay competitive by developing new technical skills
  • Increase their career potential
  • Discover a convenient alternative to a traditional, full-time MSE program
  • Foster innovation by keeping up with emerging software trends and technologies


EE 382C.11 Requirements Engineering
This course will address theoretical and practical methods for acquiring and modeling requirements for various systems stakeholders. Topics will include methods and techniques for managing the acquisition process among distributed team members and distributed stakeholders, eliciting and verifying requirements as a function of the type of stakeholder, the types of requirements, and system development maturity, managing the requirements artifacts, constructing model-based representations of requirements, synthesizing requirements for various stakeholders, and analyzing and evolving model-based requirements.

EE 382C Software Architectures
The course will teach students about software architectures, architectural model specification techniques and analysis techniques offered by the research community as well as those architectures, model specifications and analytical methods commonly used in industry.

EE 382C.16 Distributed Information System Security
Intended to acquaint the student with the analysis and engineering techniques employed in securing today's networked information system environment. Emphasis is placed on examination of practical security threats, exposures in distributed systems and the technology that is being applied and developed as countermeasures.

EE 382C.3 Verification and Validation
This course covers various traditional and state-of-the-art techniques for software validation, a process that includes reasoning about (the correctness of) programs and testing programs. The course content will include both techniques for dynamic analysis, such as glass-box and black-box testing, equivalence partitioning, test strategy and automation, regression testing and debugging, and techniques for static analysis, such as symbolic execution, and also techniques for software model checking including those that employ artificial intelligence based heuristics.

EE 382C Mobile Computing
As mobile computing devices like laptops, PDAs, cellular phones, and even miniature sensors become increasingly pervasive, the demand for applications for this novel environment escalates. This course explores the effects of mobile computing on software design and development. The approach taken uses current research projects in the field of mobile computing to highlight the key aspects that complicate software engineering. We will focus on these concerns in the context of application development.

EE 382V Parallel Algorithms
This is an introductory graduate course in parallel algorithms. It assume undergraduate knowledge of sequential algorithms. The following topics will be covered in the course:

  • Basic Techniques: Reduce, Parallel Prefix Scan, Pointer Jumping, Partitioning, Cascading
  • Breaking Symmetry: Maximal Independent Set Problem
  • Sorting Algorithms: Odd-Even Sort, Bitonic Sort, Parallel Mergesort, Parallel Radix Sort
  • Randomization: Markov's inequality, Chernoff Bound
  • Parallel Graph Algorithms: BFS, Ear Decomposition, Spanning Tree, Shortest Path
  • Parallel Matrix Algorithms: Matrix multiplication, Matrix inversion
  • Miscellaneous: Parallel FFT, String Matching
  • Cuda: Implementing Parallel Algorithms on GPU using CUDA
  • MPI: Implementing Parallel Algorithms using MPI

EE 382V Systems Programming
This is a computer systems course with an emphasis in software. The course will start with looking at tools like compliers, linkers, loaders, and debuggers that an operating system provides and how they work. We will explore the POSIX System-Call API that all modern operating systems implement with focus on processes, threads, i/o and inter-process-communication. The second part of the class is on the design and implementation of an operating system with focus on process, memory virtualization, and concurrency.

EE 382V Formal Methods in Distributed Systems
This course gives an introduction to the use of formal methods within the software design process. Specifically, this class will cover the application of models to distributed and concurrent systems. Modern software systems are commonly highly distributed, and this added sophistication further complicates software design. The rigor offered by formal methods aims to make the process more precise.

EE 382V Advanced Programming Tools
Programming is difficult - some of the problem developers face include.

  • How can a project be structured so that developers can work on it concurrently?
  • How can the building of a project be automated?
  • How can a program be written to make it portable?
  • How can a program be prototyped efficiently?
  • How can a program be tested and debugged efficiently?
  • How can the performance of a program be increased?

Using the right tools can solve these problems. Examples include tools for version control, documentation, program building and configuration, automatic testing, program analysis, and integrated development.

Our approach will be to introduce a specific problem, show how a tool can solve the problem, and then develop the technical principles underlying the tool. We will have written homework problems as well as coding exercises for each concept. The class will have a major design project that will begin at the start of the term. Use of the tools will be a required part of the project. We will use open-source tools to illustrate these concepts. The specific tool stack is described in the lectures section of this document. I selected these tools based on my experience at Google; they also power many state-of-the-art commercial projects.

EE 382V Data Engineering
Course Description – Data Engineering is concerned with the role of data in the design, development, management, and utilization of complex computing/information systems. Issues of interest include database design; meta knowledge of the data and its processing; languages to describe data, define access, and manipulate databases; strategies and mechanisms for data access, security, and integrity control.

EE 382V Social Computing
This is an introductory course on social networks, markets and Internet computing. The emphasis of this course is on algorithms where multiple agents interact with each other. The following topics will be covered in the course: Matching Bipartite Matching, online matching, Hungarian algorithm, Auction-based algorithm Stable Matching: Optimal matching, enumerating all matchings, Kidney-Exchange Auctions: First-price, Second-Price Auctions, VCG Mechanisms Games Mixed strategies, Nash Equilibrium, Pareto Optimality, Social Optimality Voting: majority rules, positional voting, Arrow's Theorem Experts Algorithm: Multiplicative Updates Method P2P Computing: Consistent Hashing Streaming Algorithms: Sketches, Bloom Filter, Heavy Hitters Privacy and Authentication: Public Key Cryptography.

EE 382V Software Testing
This course first introduces the basics of software testing theory and practice, and then presents some recently developed techniques for systematically finding bugs in programs and improving their reliability. Learning the techniques and tools presented in this course is likely to significantly increase the students’ productivity as software developers and testers, and improve the quality of the code they develop.

EE 382V Large-scale Machine Learning
Linear classifiers and logistic regression. Feedforward neural networks. Convolutional neural networks. Deep learning training by backpropagation. Interpretability of deep neural networks. Prediction and overfitting. Statistical Learning theory. Unsupervised machine learning. Deep generative unsupervised models. Generative Adversarial networks and Autoencoders. Applied deep learning using Python, Tensorflow and Keras.

EE 380L Data Mining
Basic concepts of data mining, in parallel with a practical track involving hands-on experience with industrial strength software and a term project will be covered.

EE 382N Communication Networks: Tech/Arch/Protocol
This is an introductory course in Computer Networking. It covers all basic components of modern networks, including: link level technologies such as Ethernet, token rings, and wireless Ethernet; switching technologies such as bridges and ATM; internetworking including IP; the transport layer, including TCP and RPC; and congestion control. Time permitting we will also consider security, quality of service, high-performance networks, and/or multimedia. Although IP and TCP are primary examples used in the course, it is NOT a course on TCP/IP!

EE 382N.11 Distributed Systems
This course will expose students to the theoretical and practical aspects of designing distributed systems such as: Datagram Sockets, TCP sockets, Java RMI, Map Reduce Abstraction, Models of Distributed Computation, Logical clocks, vector clocks, Resource Allocation, Drinking Philosophers, Global Property Evaluation, Snapshots, Unstable properties, Ordering of Messages, Elections, Spanning Trees, Synchronizers, Consensus, Byzantine Agreement, and Self-stabilizing algorithms.

EE382N.4 Advanced Embedded Microcontroller Systems
Hardware and software design of microcontroller systems; applications, including communication systems; object-oriented and operating systems approaches to interfacing and resource management.

EE 382C.16 Distributed Information System Security
Intended to acquaint the student with the analysis and engineering techniques employed in securing today's networked information system environment. Emphasis is placed on examination of practical security threats, exposures in distributed systems and the technology that is being applied and developed as countermeasures.

EE 382C System Engineering Program Management and Evaluation
Management, engineering, and evaluation approaches applicable to a spectrum of software development programs is taught. General guidelines, metrics, program artifacts, and processes will be discussed in conjunction with case studies.

EE 382C.12 Multicore Computing
This course will expose students to the theoretical and practical aspects of designing multicore software systems such as: programming constructs for concurrent computation, openMP, sequential consistency, linearizability, lock-based synchronization, lock-free synchronization, wait-free synchronization, consensus number, software transactional memory, testing and debugging parallel programs, race detection, concurrent data structures such as stacks, queues, linked lists, hash tables and skiplists, and model checking of concurrent programs.

EE 382 Computer Graphics
This is an introductory course on the major topics in computer graphics including image synthesis, interactive techniques, geometric modeling, and computer-based animation. Covered material includes: OpenGL programming, principles of operation of raster graphics systems, sampling and antialiasing, homogeneous coordinate transformation techniques, parallel and central projection and perspective transformations, hidden surface removal, light and reflectance models for local and global illumination, shading techniques, ray tracing, basic object modeling techniques, visual perception and basic color theory, hierarchical modeling, and basic animation.

EE 382 Middleware
This course is a graduate level course introducing and investigating middleware at all levels, largely from a software engineering perspective. Students are introduced to various types of middleware (from object-oriented middleware to message-oriented middleware and beyond) both through lecture materials and through active "mini-projects" through which the students build complex applications using existing middleware solutions. The course also offers lectures on "trends" in middleware, including how middleware addresses challenges related to mobile computing, sensor networks, real-time computing, "green computing," etc.

EE 382 Algorithmic Foundations for Software Systems
We will begin by reviewing foundations of discrete mathematics. We will then study measuring program performance using the big-O notation. Following this, we will study fundamental data structures and their associated algorithms; specifically, we will cover lists, arrays, queues, stacks, hash tables, sets, binary trees, and graphs. We will then focus on general algorithm design principles, such as greedy approaches and dynamic programming. Our last topic will be matrix algorithms. The principle focus of the lectures will be on theoretical aspects, in the style of the CLRS Algorithms text listed below. There will also be a number of programming assignments that will require implementing and testing algorithms. In addition, there will be a team project that either evaluates some textbook algorithm(s) in real-world settings, or explores how to specialize and enhance some textbook algorithm(s) under specific conditions.

EE 381V Introduction to Optimization
This course will serve as an introduction to modeling, applications and algorithms of discrete and continuous optimization. The students will learn how to model the real world within the paradigms of linear programming, mixed integer linear programming, and more general convex optimization. We will emphasize interesting applications where these classes have had impact in industry, including applications in data mining and machine learning (no prior knowledge of Machine Learning is required).

EE 379K Engineering Dynamic Program Analysis
Dynamic analysis is commonly used to detect errors in software, including memory errors, concurrency errors (e.g., data races), performance issues, etc. Although valuable, dynamic analysis can be costly because the program execution needs to be (continuously) monitored to collect necessary data for the analysis. Additionally, naively engineered dynamic analysis can interfere with the program being analyzed, which can impact the conclusions of the analysis. The main goal for this course is to provide motivation for various dynamic analysis techniques, introduce popular tools that are frequently used to implement an efficient and effective dynamic analysis, and provide hands-on experience in developing dynamic analysis techniques.

EE382V: Advanced Algorithms
This course introduces students to advanced techniques for the design and analysis of algorithms. It is intended to be a follow-up to the course “Algorithmic Foundations for Software Systems,” students must be comfortable with the topics covered in that course. The topics and applications tentatively planned to cover include: approximation algorithms (set cover, steiner tree and TSP, multiway cut, knapsack, minimum makespan scheduling), lattice-theoretic algorithms, LP-Based algorithms (LP Duality, set cover via dual fitting, LP rounding techniques, facility location), randomized algorithms (min-cut, maximal independent set, leader election, graph coloring) and game theory.

EE379K: Programming Paradigms
There are hundreds of programming languages out there and many of them bring several unique language features that should help developers to write correct software faster. This course will study several programming languages (including C, C++, Java, OCaml, etc.) and some of the unique features that are introduced to increase developers’ productivity. The course will also explore how software engineering practices differ across languages and the set of design patterns for each language. Moreover, unique language features have impact on how developers organize, write, test, and analyze code; we will introduce and discuss several of these aspects.

EE 398R Master’s Report
Completion of report in the last semester enrolled in the program to fulfill the requirement for the master's degree. Offered on the credit/no credit basis only. Prerequisite: Graduate standing in electrical engineering and consent of the graduate adviser.

Program of Work

Fall Semester Enrollment

Fall 1 - 2 courses
Spring 1 - 2 courses
Summer 1 - 1 course

Fall 2 - 2 courses
Spring 2 - 2 courses
Summer 2 - Master's Report OR 1 course

Spring Semester Enrollment

Spring 1 - 2 courses
Summer 1 - 1 course
Fall 1 - 2 courses

Spring 2 - 2 courses
Summer 2 - 1 course
Fall 2 - 2 courses, OR 1 course & Master's Report

Master's Report/Deadlines

Master's Report

Software Engineering graduate students can complete 10 courses to attain their degree, or 9 courses and a Master's Report. For more information, please review the following:

Report Deadlines

This document lists all of the important deadlines students will need to meet in order to graduate (graduation application deadline, project dates): Dates & Deadlines

Quick Reference Sheet

This document has links to the graduation application, formatting templates, formatting guidelines, and other important forms: Quick Reference Sheet(PDF)

Choosing Committee Members

Information on how to select a supervisor and reader for the report/thesis committee: Quick Reference Sheet(PDF)


Director - Vijay Garg, Ph.D. | Distributed Systems
Prof. Garg's current research interests are in the areas of distributed systems, discrete event systems and software engineering. He has published more than 130 refereed research articles in these areas. His research has been supported by NSF, IBM, Texas Advanced Research Program, TRW, and Compaq among others.

Suzanne Barber, Ph.D. | Requirements & Software Arch.
Dr. Suzanne Barber serves our nation's citizens, industrial, governmental and academic institutions by aggressively combatting current and emerging identity management threats and fraud. She delivers the highest quality identity management discoveries, applications and outreach available.

Bill Bard, M.S. | Com. Networks: Tech/Arch/Protocol, Distributed System Security
Bill Bard has been employed continuously by the University of Texas since 1966 in positions including teaching assistant, lead operating system development specialist, digital system design engineer, manager of computer maintenance, and associate director for technical affairs.

Constantine Caramanis, Ph.D. | Data Mining
Dr. Constantine Caramanis is an Associate Professor in the Department of Electrical & Computer Engineering at The University of Texas at Austin. His research interests center on decision-making in large-scale complex systems, with a focus on learning and computation.

Alex Dimakis, Ph.D. | Large-scale Machine Learning
Alex Dimakis is an Associate Professor at the Electrical and Computer Engineering department, University of Texas at Austin. From 2009 until 2012 he was with the Viterbi School of Engineering, University of Southern California. He received his Ph.D. in 2008 and M.S. degree in 2005 in electrical engineering and computer sciences from UC Berkeley and the Diploma degree from the National Technical University of Athens in 2003. During 2009 he was a CMI postdoctoral scholar at Caltech.

Christine Julien, Ph.D. | Advanced Topics I & II summer course
Dr. Julien's research interests lie in the realm of software engineering, specifically for mobile computing. Much of her previous work has focused on software engineering for ad hoc mobile networks and includes the development of algorithms for mobile computing, and middleware for simplifying the software development process.

Sarfraz Khursid, Ph.D. | Validation and Verification
Dr. Sarfraz Khurshid is an Associate Professor of Electrical and Computer Engineering at The University of Texas at Austin. His current research focuses on software testing, specification languages, code conformance, model checking, and applications of heuristics in program analysis.

Bruce McCann, Ph.D. | System Engineering Prog. Mgmt. & Eval.
Dr. McCann holds BS, MS and PhD degrees in Electrical Engineering from The University of Texas at Austin. During twenty five years with Schlumberger he held positions in the US and France: Engineering management positions as Section Manager, Project Manager, Department Manager and VP Engineering.

Daniel Miranker, Ph.D. | Data Engineering
Daniel P. Miranker is a Full Professor, in the Department of Computer Science at the University of Texas at Austin, where he has taught since 1986. Starting with his Ph.D. dissertation, a consistent theme in Miranker's research is a focus on parallel and distributed processing of large-scale databases in concert with applications in knowledge-base systems and machine learning.

Mohit Tiwari, Ph.D. | Distributed Information System Security
Mohit Tiwari researches computer architecture and security at UT Austin (ECE), following a PhD at UC Santa Barbara in 2011 and an NSF post-doc fellowship at UC Berkeley (2011—13). His current work protects data while it is being processed in untrusted applications and cloud infrastructure, and has received best paper awards at ASPLOS'15, PACT'09, HOST'18 (runner-up), and HOST'19 (nominee); IEEE Micro Top Picks in architecture in 2010 and 2014 (Honorable Mention); CSAW best applied cybersecurity paper finalist in 2013 and 2018, the Qualcomm Faculty Award in 2017 and 2018, and the NSF CAREER award in 2015.

Ramesh Yerraballi, Ph.D. | Communication Networks
Dr. Yerraballi's teaching interests and experience span a broad swath of the Computing curriculum from, Theory of Computing, Algorithms and Data Structures, Introductory, Object-Oriented and Systems Programming, Operating Systems, Real-Time Systems, Distributed Systems, Computer Architecture and Performance Analysis of Computer Systems.

Why Choose a Master's Degree from UT–Austin?

At The University of Texas at Austin, we take pride in our world-renowned professors who work to teach students in a collaborative environment, giving them the skills and experience necessaryto tackle real world problems in inventive ways. The Cockrell School of Engineering is ranked among the nation’s top 10 engineering programs and is the number one ranked engineering program in the state of Texas. Located in the heart of Austin, one of the world's leading tech capitals, UT is surrounded by an environment of creativity and ingenuity. Students here have opportunities to attend conferences that make an impact on a global scale, join student organizations and get involved in other events that UT and the City of Austin have to offer. A Master’s Degree from UT will enhance your skills in the marketplace, prepare you for new careers and challenges and spark your desire to discover.