Computer science faculty

Thomas Tiahrt, Ph.D.

Assistant Professor of Computer Science

Ph.D., University of South Dakota
M.A., University of South Dakota
B.S., University of South Dakota

VPH 109C


Thomas Tiahrt specializes in the storage and retrieval of unstructured and semi-structured information, the role of ethics in the use of information technology, and computational thinking. His research uses a non-comparison, deterministic approach to intersect large, sparsely populated sets in linear time. He earned a doctorate in computational science and statistics from the University of South Dakota, where he also completed a Master of Arts in computer science.

Tiahrt previously was chief scientist for BrightPlanet Corporation, where he oversaw research and development of novel indexing, storage, search and retrieval software. His professional software development experience spans nearly three decades, with work in accounting systems, newspaper production, image databases, medical image archiving and communication systems, bioinformatics, and information retrieval software.


  • Database Management Systems

    Database Management Systems

    This course examines database concepts, theory, design and management. Emphasis will be on the relational model. Topics will also include normalization, query languages, database recovery and security aspects. This course will include experience with a relational database system and programming database access into computer applications via a high-level programming language.Prerequisite: CSC171.(4 credits; alternate years, consult department)
  • Writing and Design for the Web

    Writing and Design for the Web

    Study of writing and design for a Web environment. Students will analyze Internet sites and design sites of their own, using a standard program for Web design.Prerequisites: ENG184 or equivalent and any of the following: COM263, ART220, ART230, or permission of instructor.(3 credits; alternate years, consult department)
  • Business Computing

    Business Computing

    This course serves as an introduction to common business- oriented computer technologies and issues. Computer applications, misuse and the ethical use of computers in business are explored in detail. Current software applications are studied through laboratories, demonstrations and assignments. Students will learn advanced uses of application programs including spreadsheet processing and information processing with databases.(2 credits)
  • Introductory Spreadsheets

    Introductory Spreadsheets

  • Principles of Computer Information Systems

    Principles of Computer Information Systems

    This course outlines the concepts of computer information systems, data as a resource, information technology planning and implementation, and project management. Topics covered include decision theory, information theory, the role of information technology in an organization, evaluation of system performance, the development process, and societal and ethical issues related to information systems design and use.(2 credits; alternate years, consult department)
  • Computer Organization

    Computer Organization

    This course explores architecture and computer design issues in modern computers. Part of the course is spent looking at the basic building blocks used to design and build a computer. The rest of the course deals with how to work with the computer at the level of the central processing unit, main memory and registers. Programming assignments are done in assembly language to see what commands the computer really understands.Corequisite: CSC172.(4 credits; alternate years, consult department)
  • Human Computer Interaction and Interface Programming

    Human Computer Interaction and Interface Programming

    Human-Computer Interaction (HCI) focuses on how a user interacts with and interprets the interface of a program. A good interface can make an average program seem better than it is, and a poor interface can ruin a technically superior piece of software. This course will include theory and case studies in lecture and practical programming exercises in lab. A final project will combine theory with programming by designing, implementing, testing and evaluating a complete interface to an application.Prerequisite: CSC172.(4 credits; alternate years, consult department)
  • Networking


    This course introduces the student to the field of computer networking. Students will develop an understanding of the general principles of computer communication as they are worked out in an appropriate protocol suite. Specific attention will be paid to principles of architecture, layering, multiplexing, addressing and address mapping, routing and naming. Problems considered include the writing of network software, the physical construction of networks, the Internet and its future development, and network security.Prerequisite: CSC172.(4 credits; alternate years, consult department)
  • Operating Systems

    Operating Systems

    Introduction to hardware and software related to system organization. Such topics as process management, device management, and memory management are discussed, as are relevant issues associated with security and protection.Prerequisite: CSC270.(4 credits; alternate years, consult department)
  • Value Issues in Computing

    Value Issues in Computing

    This course focuses on a range of social and ethical issues involved in computer science and computer use. Computer professionals have to face these issues and deal with them in a responsible way. Some issues discussed in the course include ethical decision making, software piracy, software protection, computer crime, privacy, errors and reliability, computers and the workplace, responsibility and reliability, artificial intelligence, and virtual reality.(2 credits)

Professional experience

  • Computational Science Research Assistant, University of South Dakota
  • Chief Scientist, BrightPlanet Corporation
  • Principal Software Engineer, BrightPlanet Corporation
  • Principal Software Engineer, VisualMetrics Corporation
  • Senior Software Engineer, Gateway
  • Senior Software Engineer, Parallel Software, Inc.
  • Senior Design Engineer, Mycro-Tek, Inc.
  • Graduate Teaching Assistant, University of South Dakota
  • Director of Software Development, CMC Information Systems, Inc.
  • Software Engineer, CMC Information Systems, Inc.


  • The Association of Computing Machinery (ACM)
  • ACM Special Interest Group in Information Retrieval (SIGIR) ACM Special Interest Group in Management of Data (SIGMOD)


  • University of South Dakota John W. Carlson Research Grant
  • Upsilon Pi Epsilon, International Honor Society for the Computing and Information Disciplines
  • Omicron Delta Epsilon, the International Honor Society for Economics
  • University of South Dakota Outstanding Computer Science Graduate Student 1990
  • University of South Dakota Outstanding Computer Science Teaching Assistant 1991