Course Information

Course Information & Listings

We offer a wide variety of courses related to Software Engineering and software systems. While the courses offered change from semester to semester, some examples of past graduate and undergraduate courses, as well as their course descriptions, are below. Please feel free to contact us with any questions about course offerings.

  • Software Evolution
  • Verification and Validiation
  • Software Architectures
  • Requirements Engineering
  • Emperical Studies in Software Engineering
  • Collaborative Software Design and Development
  • Mobile Computing
  • Formal Methods in Distributed Systems

Our course listings below will give you up-to-date information on Graduate and Undergraduate Software Engineering courses offered at The University of Texas at Austin.


Current Software Engineering Courses for Spring 2014


E E 360C ALGORITHMS
Advanced problem solving methods; algorithm design principles; complexity analysis; study of the nature, impact, and handling of intractability; study of common algorithmic classes and their applications.  Prerequisite: Computer Science 312 or Electrical Engineering 312 with a grade of at least C-; and Computer Science 313K or Mathematics 325K with a grade of at least C-.
Taught by Dr. Christine Julien


E E 422C SOFTWARE DESIGN & IMPLEMENTATION II
Methods for engineering software with a focus on abstraction; specification, design, implementation, and testing of object-oriented code using a modern development tool-set for complex systems; design and implementation of object-oriented programs in Java; abstract data types; inheritance; polymorphism; parameterized types and generic programming; the operation and application of commonly used data structures; exception handling and fault tolerance; introduction to algorithm analysis; teamwork models.  Prerequisite: Computer Science 312 or Electrical Engineering 312 with a grade of at least C-.
Taught by Dr. Dewayne E. Perry


E E 379K SOFTWARE EVOLUTION
For course description, please contact Dr. Kim.  Prerequisite: Upper-division standing.
Taught by Dr. Miryung Kim


E E 382V SOFTWARE EVOLUTION
For course description, please contact Dr. Kim.  Prerequisite: Graduate standing.  Course number may be repeated for credit when the topics vary.  MEETS WITH E E 379K.
Taught by Dr. Miryung Kim


E E 360P CONCURRENT AND DISTRIBUTED SYSTEMS
An investigation of concurrency, lock-based and lock-free synchronization, resource allocation, multi-threaded programming, distributed systems programming, mutual exclusion, global snapshots, global property evaluation, message ordering,consensus, Byzantine agreement, commit protocols.  Prerequisite: Electrical Engineering 422C (or 322) with a grade of at least C-.
Taught by Dr. Vijay Garg


E E 360T SOFTWARE TESTING (EE 382V)
Basic concepts and techniques used in testing software and finding bugs. Includes process, unit, integration, and system testing; manual and automatic techniques for generation of test inputs and validation of test outputs; and coverage criteria. Focus on functional testing. Electrical Engineering 360T and 379K (Topic: Software Testing) may not both be counted.  Prerequisite: One of the following with a grade of at least C-: Computer Science 314 or 314H, or Electrical Engineering 422C (or 322C).  MEETS WITH E E 382V.
Taught by Dr. Sarfraz Khurshid


E E 361Q REQUIREMENTS ENGINEERING (EE 382C)
Methods and technology for acquiring, representing, documenting, verifying, validating, and maintaining requirements; text-based, graphic-based, and computational requirements model representations; requirements analysis to synthesize and resolve conflicts among disparate stakeholder viewpoints; requirements traceability and evolution, and change management. Electrical Engineering 361Q and 379K (Topic: Requirements Engineering) may not both be counted.  Prerequisite: Computer Science 312, 312H, or Electrical Engineering 312 with a grade of at least C-.  MEETS WITH E E 382C (TOPIC 11).
Taught by Dr. Suzanne Barber


E E 364D INTRO TO ENGINEERING DESIGN
Introduction to the engineering design process; assessing engineering problems and customer needs; acquiring, documenting, and verifying requirements; high-level system design principles; effects of economic, environmental, ethical, safety, and social issues in design; writing design specifications. Electrical Engineering 155 and 364D may not both be counted. Prerequisite: May be counted toward the writing flag requirement.
Taught by Dr. Suzanne Barber


E E 312 SOFTWARE DESIGN AND IMPLEMENTATION I
Basic problem solving, design and implementation techniques for imperative programming; structured programming in the C/C++ language; programming idioms; introduction to software design principles, including modularity, coupling and cohesion; introduction to software engineering tools; elementary data structures; asymptotic analysis.  Prerequisite: The following coursework with a grade of at least C-: Biomedical Engineering 303 or Electrical Engineering 306, and Electrical Engineering 319K. Designed to accommodate 100 or more students.
Taught by Dr. Craig Chase


E E 380L 5-ENGR PROGRAMMING LANGUAGES
Higher-level languages for engineering design and problem solving; object-oriented programming in C++ and Unix systems programming.  Prerequisite: Graduate standing.
Taught by Dr. Craig Chase



Future Software Engineering Courses for Summer 2014

Summer 2014 Course Schedule will be published in April 2014

Previous Semester Course Offerings