Academic Courses

Educating the next generation of researchers through a unique scientific computing curriculum

TACC inspires and educates the next generation of computational scientists and technologists and increases the public's understanding of the role computing plays in shaping our society. TACC has developed a unique scientific computing curriculum for The University of Texas at Austin designed to educate not only the next generation of researchers and computational professionals, but also social scientists, artists, and historians.

In partnership with UT Austin, TACC offers seven undergraduate and graduate level courses in supercomputing through the Department of Statistics and Data Science in the College of Natural Sciences and the Department of Aerospace Engineering and Engineering Mechanics in the Cockrell School of Engineering. The Natural Sciences curriculum allows students to earn a Certificate of Scientific Computation (undergraduate students) or a Portfolio in Scientific Computation (graduate students), which is equivalent to earning a minor in the area. The Engineering curriculum is designed to help students understand key concepts in scientific software engineering and design in order to build better systems and unlock new scientific discoveries.

TACC researchers, who are experts in high performance computing, teach the courses, and students have the opportunity to apply the theories learned in class on TACC's high performance computing and cloud systems. Students across engineering, science, mathematics, computer science, and liberal arts are welcome.

Courses Offered by TACC

Statistics and Data Science

SDS 322/392 — Introduction to Scientific Programming
Introduction to programming using both the C and Fortran (95, 2003) languages, with applications to basic scientific problems. Covers common data types and structures, control structures, algorithms, performance measurement, and interoperability.

SDS 335/394 — Science and Technical Computing
Comprehensive introduction to computing techniques and methods applicable to many scientific disciplines and technical applications. Covers computer hardware and operating systems, systems software and tools, code development, numerical methods and math libraries, and basi visualization and data analysis tools.

SDS 374C/394C — Parallel Programming for Scientists and Engineers
Parallel computing principles, architectures, and technologies. Parallel application development, performance, and scalability. Prepares students to formulate and develop parallel algorithms to implement effective applications for parallel computing systems.

Special topics in Advanced Computing (offered as needed)

SDS 374D/394D — Distributed and Grid Computing for Scientists and Engineers
Distributed and grid computing principles and technologies. Covers common modes of grid computing for scientific applications, developing grid enabled applications, future trends in grid computing.

SDS 374E/394E — Visualization and Data Analysis for Scientists and Engineers
Scientific visualization principles, practices and technologies, including remote and collaborative visualization. Also introduces statistical analysis, data mining and feature detection.

Computational Engineering

COE 322 — Scientific Computation
Explores the basic tools needed for developing scientific computing software. These include advanced programming languages (e.g. C, C++, python), object oriented programming and data structures. Subjects may include abstract data types; creation, initialization, and destruction of objects; class hierarchies; polymorphism, inheritance and dynamic binding; generic programming using templates, linked lists, queues, stacks, trees and algorithms such as searching, sorting, and hashing.

COE 332 — Software Engineering and Design
Covers methods and tools for planning, designing, implementing, validating and maintaining large software systems. May include project work to build a software system as a team, using appropriate software engineering tools and techniques.