Department of Computer Science

Comal Building Room 211
T: 512-245-3409 F: 512-245-8750
www.cs.txst.edu

The mission of the Department of Computer Science is to advance the knowledge of computer science and technology through education, research, and service for the betterment of society.

The Department of Computer Science offers two degree options for students - a Bachelor of Arts (B.A.) and a Bachelor of Science (B.S.). The Bachelor of Science in Computer Science degree program is accredited by the Computing Accreditation Commission of ABET, www.abet.org, under the commission’s General Criteria and Program Criteria for Computer Science. All students complete a core sequence of courses designed to provide them with a solid foundation in computer science. The upper-division electives offer students the opportunity to explore cutting-edge topics aligned with the department's research strengths, ensuring that our graduates are well-prepared for the dynamic landscape of the computing industry. Upon completion of their studies, Computer Science graduates enter diverse professional domains, including software development, cybersecurity, User Interface (UI) and User Experience (UX) design, artificial intelligence, machine learning, data science, and game development. Students also enter graduate programs to further their knowledge and pursue research in computer science.

Please note: Students cannot major/minor or double major within the Department of Computer Science.

Courses in Computer Science (CS)

CS 1308. Computer Literacy and the Internet.

This course provides an introduction to fundamental computing concepts for students with little or no prior background in computer science. Topics include introductory concepts in computing systems and hardware, data representation, networking and internet fundamentals, cybersecurity, artificial intelligence and data science. Students develop practical skills using common productivity software, including word processing, spreadsheets, and presentations, and examine basic algorithmic problem solving techniques. The course emphasizes understanding how computing technologies function and how they are used across academic, professional, and everyday contexts. Designed for non majors, the course offers foundational knowledge for informed engagement with digital systems.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter
TCCN: COSC 1301

CS 1309. AI for Everyone.

This course provides an introduction to the principles and techniques used in artificial intelligence (AI). It covers both foundational and advanced principles underlying AI and explains the differences between AI, machine learning, and deep learning. It explores critical topics such as neural networks, natural language processing, reinforcement learning, and robotics. Students will gain experience with generative AI tools and prompt engineering. Ethical questions and potential sources of bias in AI systems are studied as topics of analysis to support informed evaluation. This course will not satisfy CS major or minor requirements.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Grade Mode: Credit/No Credit

CS 1319. Fundamentals of Computer Science.

This course introduces fundamental concepts of computer science through a breadth‑first examination of major computing layers, including information, hardware, programming, operating systems, applications, and communication systems. The course examines historical developments, societal influences, and technical constraints that have shaped modern computing. Emphasis is placed on conceptual understanding supported by practical examples aligned with widely recognized computing curricula. Students complete basic computing exercises to develop familiarity with how computer systems function and interact. This course is designed for non‑majors and does not apply toward computer science major or minor requirements.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter
TCCN: COSC 1336

CS 1342. Programming for Scientists and Engineers.

This course examines computational problem solving and program development in the context of engineering and the physical sciences. Students analyze scientific and engineering problems and construct algorithmic solutions using structured programming techniques in a high-level language. Topics include fundamental concepts of computer organization, data representation, expressions, control structures, functions, arrays and collections, and modular program design. Emphasis is placed on systematic approaches to testing and debugging, effective program organization, and the relationship between algorithm design, data handling, and the correctness and reliability of computational solutions. The course also considers computational tools and practices commonly used in scientific computing and data analysis.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 1428. Foundations of Computer Science I.

This course examines foundational concepts in computer science through problem solving and algorithm development. It focuses on how computational problems are analyzed, designed, and implemented using structured programming techniques in C++. Students analyze problems and construct solutions using primitive and complex data types, expressions, control structures, functions, arrays, and related constructs. Clear program organization, consistent and readable coding style, and systematic approaches to testing and debugging are central themes. Particular attention is given to the relationship between algorithm design, program structure, and the correctness and reliability of software. Prerequisite: [MATH 1315 or MATH 1317 or MATH 1319 or MATH 1329 or MATH 2417 or MATH 2471 with a grade of "C" or better] or [ACT Mathematics score of 24 or better] or [New ACT Mathematics score of 25 or better] or [SAT Mathematics score of 520 or better] or [SAT Math Section score of 550 or better] or [Accuplacer College Mathematics score of 86 or better] or [Compass College Algebra score of 46 or better] or [Next-Generation Advanced Algebra and Functions Test of 263 or better].

4 Credit Hours. 3 Lecture Contact Hours. 2 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering|Lab Required
Grade Mode: Standard Letter
TCCN: COSC 1437

CS 2308. Foundations of Computer Science II.

This course examines intermediate concepts in computer science through the design, implementation, and analysis of larger programs in C++. Topics include abstract data types (ADTs) such as lists, stacks, and queues, and their implementation using arrays and linked lists. Students learn how pointers, dynamic memory allocation, and linked structures support flexible data representation and manipulation. The course emphasizes object-oriented programming, including classes, objects, encapsulation, and the separation of interface and implementation. Students also study fundamental searching and sorting algorithms and analyze their performance using time complexity. Program development, compilation, and testing are performed in a Linux command-line environment. Prerequisite: CS 1428 with a grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter
TCCN: COSC 2336

CS 2315. Computer Ethics.

This course introduces students to ethical, legal, and professional issues that arise in a world shaped by pervasive computing and rapidly evolving AI. Grounded in classical and contemporary ethical frameworks, the course develops students’ ability to analyze real-world cases involving privacy, security, intellectual property, automation, accessibility, globalization, and the social impact of computing on race, class, and gender. Through intensive writing, collaborative presentations, and a substantial term paper, students practice clear communication for diverse audiences, apply professional codes of ethics, and critically evaluate sources. Emphasis is placed on civic and professional responsibility, helping future computing professionals anticipate downstream consequences of technology and justify responsible courses of action. Prerequisites: CS 1428 and [COMM 1310 or COMM 2338] and [ENG 1310 or ENG 1320 or ENG 1321 or ENG 3303] and [PHIL 1305 or PHIL 1320] with grades of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering|Writing Intensive
Grade Mode: Standard Letter

CS 2318. Assembly Language.

This course provides a foundational exploration of digital data representation, computer organization, and assembly language programming. Students will examine how machine-level instructions are structured and executed, how processors manage and manipulate data, and how high-level programming constructs are translated into low-level executable code. Through a combination of written assignments and hands-on programming exercises, students gain practical experience working directly with hardware abstractions. By the end of the course, students will be equipped to explain core architectural components, analyze and describe instruction set formats, and design and implement fundamental algorithms using assembly language. Prerequisite: CS 2308 and MATH 2358 with grades of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter
TCCN: COSC 2325

CS 2325. Computer Organization.

This course provides an introduction to computer systems from a programmer's perspective. Students become familiar with computer organization by learning assembly language and studying computer architecture. Topics include data representation, assembly language fundamentals and programming, the compilation process, processor components, logic circuits, and memory hierarchy design. The fundamental understanding of computer organization provided by this course will enable students to write more efficient programs and prepare them for advanced computer architecture courses. Prerequisite: CS 2308 and MATH 2358 both with grades of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Grade Mode: Standard Letter

CS 3190. Cooperative Education.

This course provides students participating in approved computer science internships the opportunity to integrate academic knowledge with professional practice in an occupational setting. Students apply concepts from prior coursework to technical tasks encountered in the workplace and analyze how academic preparation supports professional responsibilities. The course emphasizes reflection on problem solving processes, technical communication, and skill development through supervised work experience. Students complete structured reports or presentations that examine the relationship between classroom learning and workplace activities. A maximum of three credit hours of cooperative education may be applied toward the computer science major as elective credit. Prerequisite: Minimum 2.25 Overall GPA and instructor approval.

1 Credit Hour. 0 Lecture Contact Hours. 40 Lab Contact Hours.
Course Attribute(s): Exclude from 3-peat Processing|Dif Tui- Science & Engineering
Grade Mode: Credit/No Credit

CS 3290. Advanced Cooperative Education.

This course provides students participating in approved computer science internships the opportunity to integrate academic knowledge with professional practice in an occupational setting. Students apply concepts from prior coursework to technical tasks encountered in the workplace and analyze how academic preparation supports professional responsibilities. The course emphasizes reflection on problem solving processes, technical communication, and skill development through supervised work experience. Students complete structured reports or presentations that examine the relationship between classroom learning and workplace activities. A maximum of three credit hours of cooperative education may be applied toward the computer science major as elective credit. Prerequisite: A minimum 2.25 Overall GPA and instructor approval.

2 Credit Hours. 0 Lecture Contact Hours. 40 Lab Contact Hours.
Course Attribute(s): Exclude from 3-peat Processing|Dif Tui- Science & Engineering
Grade Mode: Credit/No Credit

CS 3320. Internet Software Development.

This course presents internet web development using a full-stack methodology covering both static and dynamic web pages with client-side and server-side components, and includes the networking concepts necessary for communication between layers. It begins with client-side static web pages and progresses through styling, consuming web APIs from the client side, implementing web APIs on the server side, and persisting data in an external data store. It culminates with a final capstone project to demonstrate mastery and interworking of all layers. Prerequisite: CS 2308 with a grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 3339. Computer Architecture.

This course equips students with a foundational understanding of how modern computers are designed and built from the ground up. Students will explore how hardware components, from arithmetic logic units to memory systems, work together to execute instructions efficiently. Through hands-on engagement with topics like instruction set architectures, pipelining, multiprocessing, and virtual memory, students develop the analytical skills needed to evaluate performance trade-offs and write lower-level programs. By the end of the course, students will understand not just what a computer does, but precisely how and why it does it. Prerequisite: CS 2308 and [CS 2318 or CS 2325 or EE 3320] with grades of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 3354. Object-Oriented Design and Programming.

This course covers object-oriented design principles and programming for students with prior programming experience. Students will explore inheritance and polymorphism, object-oriented design processes, UML diagrams, design patterns, exception handling, multithreading, testing, performance profiling, and the use of AI in extending and refactoring software systems. Students will design and implement Java programs using design patterns and apply event-driven programming principles by developing graphical user interfaces with a Java graphics library. Thread concurrency is also explored through Java programs that manage shared data via read and write operations. Prerequisite: CS 3358 with a grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 3358. Data Structures and Algorithms.

This course examines classic data structures and algorithms, including abstract data types such as sets, lists, stacks and queues, as well as trees, heaps, hash tables, and graphs, with emphasis on algorithm design and quantitative analysis of time and space complexity. Students explore generic programming, sorting and searching algorithms and recursion, gaining exposure to a wider range of problem-solving strategies. By the end of the course, students are expected to demonstrate proficiency in selecting appropriate data structures, applying algorithms to problem solving, and analyzing algorithmic performance using Big-O complexity analysis and other established complexity measures. Prerequisite: CS 2308 and MATH 2358 with grades of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 3360. Computing Systems Fundamentals.

This course covers fundamental concepts underlying the design and implementation of computing systems. Topics include performance evaluation, queueing systems and scheduling, communication and networks, parallel programming and synchronization. Students will explore key concepts, examine critical issues, and study classic solutions across these topics. After completing the course, students should be able to describe a variety of problems that reoccur in computing systems, analyze the causes and impacts of those problems, and apply appropriate tools and algorithms to solve them. Prerequisite: [CS 2318 or CS 2325 or EE 3320] and CS 3358 with grades of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 3378. Theory of Automata.

This course introduces the fundamental concepts and principles of automata theory, formal languages and computability. Course topics include finite state machines, pushdown automata, Turing machines, regular grammar, regular expression, context free grammar, Church-Turing thesis, Halting problem, and reduction proofs. The course is theoretical and mathematical in nature, however, interactive simulation tools such as JFLAP will be used to help students visualize, design, and simulate abstract machines. Mini programming projects will be assigned to help students connect theory with practice. Prerequisite: CS 3358 with a grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 3398. Software Engineering.

This course introduces the study of software design, architecture, implementation, testing and validation techniques through team projects. Through team projects, students will learn to self-organize, plan deliverables, assign work, report status and present demonstrations that allow all stakeholders to assess the quality, features, architecture and schedule of the projects. Students will complete projects that approximate industry experience using skills such as Agile sprints, stand-ups, end-of-sprint presentations and reviews, use of AI, and version control, as well as architecture design and documentation. Prerequisite: CS 3354 and CS 3358 and [CS 2315 or EE 2300] with grades of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering|Writing Intensive
Grade Mode: Standard Letter

CS 4100. Computer Science Internship.

This course provides CS undergraduate students on-the-job training supervised by computer professionals in industry internship programs. During the internship, students apply what they have learned in the classroom toward the internship work. They are required to submit a mid-term and a final report of their internship work, describing what they have learned as a result of the internship and what curriculum additions or improvements they would suggest as a result of the internship experience. Students need the approval of the department in advance to take this internship course. Prerequisite: Minimum 2.25 Overall GPA and instructor approval.

1 Credit Hour. 0 Lecture Contact Hours. 20 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Credit/No Credit

CS 4298. Undergraduate Research I.

This course allows interested undergraduate students to pursue an individual research project under the supervision of a computer science faculty member. The course content depends on the chosen research project but typically includes an in-depth study of the selected topic, a review of related work, as well as the implementation of an idea. It is the first course of a two-semester course sequence and cannot be given degree credit until the satisfactory completion of CS 4299. Prerequisites: Minimum 3.00 Major GPA and instructor approval.

2 Credit Hours. 1 Lecture Contact Hour. 2 Lab Contact Hours.
Course Attribute(s): Exclude from 3-peat Processing|Dif Tui- Science & Engineering
Grade Mode: Credit/No Credit

CS 4299. Undergraduate Research II.

This course allows interested undergraduate students to pursue an individual research project under the supervision of a computer science faculty member. The course content depends on the chosen research project but typically includes the evaluation of the idea implemented in CS 4298 as well as the presentation and a write-up of the project and its results. It is the second course of a two-semester course sequence and can only be taken after the satisfactory completion of CS 4298. Prerequisites: Instructor Approval.

2 Credit Hours. 1 Lecture Contact Hour. 2 Lab Contact Hours.
Course Attribute(s): Exclude from 3-peat Processing|Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4310. Computer Networks.

This course introduces the fundamental concepts underlying the design and operation of computer networks, with emphasis on the Internet’s TCP/IP architecture. Students explore layered network models, packet switching, IP addressing, routing, transport protocols, congestion control, wireless networking, and foundational security concepts. The course emphasizes protocol behavior, performance analysis, and hands‑on investigation using tools such as Wireshark. By the end of the course, students will have a strong foundation for designing, evaluating, and troubleshooting networked systems, preparing them for advanced study in networking and cybersecurity. Prerequisite: CS 3360 with a grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4315. Introduction to Data Mining and Information Retrieval.

This course covers fundamental principles and techniques in two closely related fields of data mining and information retrieval. Data mining topics include classification, cluster analysis, and frequent pattern mining. Information retrieval topics include Boolean retrieval, vector space model, and web search. Through programming assignments and projects, students will enhance their understanding of theoretical concepts and gain hands-on experience on practical techniques. They will also explore popular tool packages such as Weka, Orange, Apache Lucene, and Elasticsearch. Prerequisite: CS 3358 with a grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4318. Compiler Construction.

This course examines the design and implementation of compilers, focusing on the translation of high-level programs into executable code. Topics include lexical analysis, parsing, semantic analysis, intermediate representations, optimization, and code generation, emphasizing correctness and performance across architectures. Students construct components of a compiler and integrate them into a working system, applying formal models, data structures, and algorithms to solve translation problems. By the end of the course, students produce executable code from source programs, analyze design trade-offs in compilation strategies, and evaluate the impact of optimizations on program behavior and performance. Prerequisite: CS 3358 with a grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4328. Operating Systems.

This course examines the principles and design of modern operating systems. Topics include process and thread management, CPU scheduling, synchronization, interprocess communication, deadlocks, memory management, virtual memory, file systems, I/O, virtualization, and cloud computing. Students explore system calls, kernel structure, and security mechanisms, gaining insight into how operating systems manage and allocate hardware resources efficiently. Emphasis is placed on the interaction between hardware and software and on performance trade-offs inherent in real-world system design. Programming assignments provide hands-on experience with system-level concepts using a Unix/Linux environment, reinforcing theoretical knowledge through practical implementation. Prerequisite: [CS 2325 or CS 3339] and CS 3360 with grades of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4332. Introduction to Database Systems.

This course introduces students to the fundamental concepts and practices of database management systems. Topics include data modeling methodologies, relational database design, normalization techniques, and Entity-Relationship (ER) diagramming. Students will develop proficiency in Structured Query Language (SQL) and gain hands-on experience with industry-standard Database Management System (DBMS) platforms. Additional topics include file structures, query optimization, and database performance tuning. By the end of the course, students will be equipped to design, implement, and maintain relational databases for real-world applications. Prerequisite: CS 3358 with a grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4337. Introduction to Computer Vision.

This course provides a comprehensive foundation in image processing and computer vision, spanning both classical analytical techniques and modern data-driven deep learning paradigms. Students explore core topics ranging from edge detection, morphological operations, and dimensionality reduction to convolutional neural networks, object detection, and generative vision. The curriculum employs a rigorous, hands-on programmatic methodology that requires students to build and train algorithms capable of processing complex visual data. Ultimately, students will develop the capacity to design, implement, and critically evaluate computer vision systems for real-world applications while navigating the ethical implications of artificial intelligence. Prerequisite: CS 3358 with a grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4346. Introduction to Artificial Intelligence.

This course introduces the fundamental principles of Artificial Intelligence (AI) and Generative AI, highlighting the relationship between traditional AI techniques and modern generative methods. Students study problem-solving, system design, and ethical considerations in computing while building a foundation in core AI methodologies, including search strategies, knowledge representation, basic machine learning, and generative models. Students also explore applications such as question-answering systems, game playing, and planning, and learn how to design and implement intelligent systems. By the end of the course, students will be able to apply AI and Generative AI techniques to develop intelligent systems for real-world applications. Prerequisite: CS 3358 with a grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4347. Introduction to Machine Learning.

This course introduces students to machine learning concepts and techniques for solving real-world prediction and pattern recognition problems. Topics include supervised learning methods such as regression, classification, decision trees, random forests, support vector machines, and neural networks, as well as unsupervised approaches including clustering and dimensionality reduction. Students will apply these methods using Python and common machine learning libraries to work with realistic datasets, emphasizing data preprocessing, model selection, and performance evaluation. At the end of the course, students will be able to explain core machine learning tasks, apply appropriate algorithms to new problems, and evaluate the effectiveness and limitations of different machine learning models in practical contexts. Prerequisite: CS 3358 and MATH 3305 with grades of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4350. Unix Systems Programming.

This course examines systems programming on Unix/Linux platforms with an emphasis on low-level software development using C and modern system interfaces. Topics include Unix file system and environment, memory management, processes and signals, threads and synchronization, interprocess communication, device interaction, network programming, and secure systems programming, along with contemporary topics including multithreading scalability, containerization, and performance profiling. By the end of the course, students will be able to design and implement efficient and secure system software, analyze system behavior and performance, and apply Unix/Linux programming concepts to real-world computing environments. Prerequisite: CS 3358 with a grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4355. Algorithms and Analysis.

This course examines foundational and advanced algorithms in computer science with an emphasis on algorithm design, analysis, and problem formulation. Topics include techniques such as divide-and-conquer, greedy methods, dynamic programming, and backtracking, along with advanced tree, graph, sorting, searching, and string processing algorithms. Students develop skills in evaluating algorithm correctness, efficiency, and space usage using asymptotic analysis. Through analytical reasoning and implementation-based exercises, students learn to select and apply appropriate algorithmic strategies to solve non-trivial computational problems. Prerequisite: CS 3358 with grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4371. Computer System Security.

This course examines the theoretical and applied principles of computer system security, including policy frameworks, cryptographic mechanisms, and offensive and defensive methodologies. Topics include security models, industry-standard practices, system vulnerabilities, and strategies for their mitigation. Students analyze secure network architectures, evaluate protective protocols, and investigate attack techniques that exploit system weaknesses. Through hands-on application and critical analysis, students develop the skills necessary to assess risk, respond to threats, and maintain the integrity of computing environments. Prerequisite: CS 3358 with a grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4372. Introduction to Digital Multimedia.

This course introduces the fundamental concepts and techniques of digital multimedia, focusing on how text, audio, images, and video are represented, processed, and compressed. Students examine multimedia systems and applications, multimedia transmission, and the role of standards in enabling interoperability and efficient media exchange. Topics include graphics and image representation, image and video processing, visual perception and color models, lossless and lossy compression (including frequency-domain methods), multimedia compression standards, and emerging technologies such as virtual and augmented reality. Prerequisite: CS 3358 with a grade of "C" of better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4373. Introduction to Network Science.

This course explores the fundamental concepts and algorithms of network science, including essential topics such as graph representations, centrality measures, link analysis, and community detection. Through a combination of theoretical study and computational projects, students will apply discrete mathematics and programming skills to model, visualize, and analyze real-world network datasets. By the end of the course, students should possess the analytical toolkit necessary to interpret large-scale network-structured data in the fields of data science and social computing. Prerequisite: CS 3358 with a grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Exclude from 3-peat Processing|Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4379F. Distributed Data Processing.

This course introduces the principles and practice of distributed data processing for large-scale data-intensive applications. It covers core concepts such as distributed database architectures, distributed file systems, parallel processing models (e.g., MapReduce), and data management tools within the Hadoop ecosystem, including Hive, Pig, and HBase, as well as modern frameworks such as Apache Spark. The course emphasizes both foundational concepts and evolving technologies that support scalable data analytics across clusters. Instruction combines lectures with hands-on programming assignments and projects using Hadoop and related tools to reinforce practical skills. By the end of the course, students will be able to design, implement, and evaluate distributed data processing pipelines and reason about performance, scalability, and system trade-offs. Prerequisite: CS3354 and CS 3358 with grades of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Exclude from 3-peat Processing|Topics
Grade Mode: Standard Letter

CS 4379G. Data Analysis and Visualization.

This course introduces fundamental and practical techniques for data analysis and visualization in Python. Students learn data wrangling, cleaning, exploratory data analysis (EDA), unsupervised learning, and the construction of interactive dashboards. The methodology emphasizes hands-on programming, use of modern data science libraries, and open-source dashboard frameworks. Through assignments and a milestone-based project, students develop reproducible data analysis pipelines and communicate results visually. The course focuses on analytical methods, data processing techniques, and visual representation of data. Prerequisite: CS 2308 with grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Exclude from 3-peat Processing|Topics
Grade Mode: Standard Letter

CS 4379H. Cryptography.

This course introduces the fundamental paradigms and principles of modern cryptography, with emphasis on formal definitions, mathematical foundations, and algorithmic constructions. Topics include symmetric and public‑key cryptographic primitives, hash functions, digital signatures, and message authentication codes for secure systems. Students examine commonly defined security properties, the formal models used to specify them, and standard techniques for evaluating whether cryptographic constructions satisfy these properties. The course emphasizes rigorous reasoning using algebraic and number‑theoretic tools and introduces basic cryptanalysis methods for assessing algorithmic strength. By the end of the course, students will be prepared to read and interpret a substantial portion of contemporary cryptography research literature and widely used technical standards. Prerequisite: CS 3358 with grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Exclude from 3-peat Processing|Topics
Grade Mode: Standard Letter

CS 4379K. Introduction to Autonomous Robotics.

This course introduces programming, algorithms, and artificial intelligence techniques used in autonomous robotic systems. Topics include motion control, state estimation using Kalman filters, localization with particle filters, computer vision, object detection, task and motion planning, deep reinforcement learning, and multirobot coordination. The course also examines applications such as autonomous vehicles and analyzes the technical and societal considerations associated with intelligent robotic systems. Emphasis is placed on understanding algorithmic foundations, system integration, and practical implementation in real‑world robotic platforms. Prerequisite: CS 3358 with grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Exclude from 3-peat Processing|Topics
Grade Mode: Standard Letter

CS 4379Q. Introduction to Recommender Systems.

This course introduces students to the concepts and techniques of recommender systems for delivering personalized content, products, and information in modern, AI-driven applications. Major recommendation approaches are covered, including content-based filtering, neighborhood- and model-based collaborative filtering, matrix factorization, sequence-aware and context-aware methods, and hybrid architectures used in contemporary web, mobile, and streaming platforms. Students implement complete recommendation pipelines in Python using real interaction and rating data, with emphasis on data preprocessing, candidate generation, ranking, offline evaluation, and the design of A/B experiments and online evaluation strategies. By the end of the course, students are able to apply state-of-the-art recommendation algorithms, analyze and explain their performance using appropriate metrics, and critically evaluate issues such as privacy, fairness, transparency, and emerging regulatory and platform policies that shape recommender systems in today’s digital ecosystem. Prerequisite: CS 4347 with a grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Exclude from 3-peat Processing|Dif Tui- Science & Engineering|Topics
Grade Mode: Standard Letter

CS 4379Y. Introduction to Green Computing.

This course introduces undergraduate students to the principles, methods, and technologies used to analyze and improve the energy efficiency of computing systems. Topics include energy‑efficient hardware design, software techniques for reducing power consumption, energy and carbon‑aware scheduling, resource management, and power measurement and profiling. Students examine data center efficiency metrics, trade‑offs between performance and energy use, and the computational characteristics of machine learning workloads. Emphasis is placed on quantitative evaluation, system‑level analysis, and evidence‑based comparison of design alternatives. The course treats sustainability‑related considerations as technical and economic constraints within computing systems, enabling students to assess design decisions using established metrics and tools rather than prescriptive policy positions. Prerequisite: [CS 2325 or CS 3339] and CS 3358 with grades of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Exclude from 3-peat Processing|Dif Tui- Science & Engineering|Topics
Grade Mode: Standard Letter

CS 4380. Parallel Programming.

This course explores practical aspects of parallel programming, including multi-core processors and shared-memory programming, GPUs and accelerator programming, and distributed-memory machines and message-passing programming. Topics include MPI, POSIX threads, OpenMP, CUDA, HIP, loop parallelization, parallel algorithms, amorphous data parallelism, atomic operations, prefix sums, performance measurement, parallelism bugs, and case studies of parallel programs. Students gain applied knowledge and skills by developing, testing, and evaluating the performance of parallel software on various shared- and distributed-memory systems. Prerequisite: [CS 2325 or CS 3339] and CS 3360 with grades of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4381. Practical Game Development.

This course explores the design and implementation of computer games through an in-depth study of game engine architecture, physics simulation, software design patterns, and artificial intelligence techniques. Students examine topics such as hierarchical state machines, genetic algorithms, state-space search algorithms, A* pathfinding, goal-based planning, and fuzzy logic, focusing on how these methods create responsive and believable game behavior. The course also emphasizes the integration of graphics engines, physics systems, and AI components to form cohesive game architectures, applying key software design principles such as modularity, scalability, and maintainability. Prerequisite: CS 3398 with a grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4388. Computer Graphics.

This course examines the fundamental concepts and algorithms of computer graphics, including geometric transformations, scene representation, lighting and shading models, texture mapping, and animation. Students analyze mathematical and computational techniques used to construct and manipulate 2D and 3D graphical content. Topics include rendering pipelines, projection methods, and real-time visualization. Emphasis is placed on the implementation and evaluation of interactive graphics systems and the representation of visual data in digital environments. The course provides a foundation for studying modern graphics technologies and their applications in computing. Prerequisite: CS 3358 and [MATH 1317 or MATH 2321 or MATH 2417 or MATH 2471 or MATH 2472] with grades of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

CS 4395. Independent Study in Computer Science.

This course allows interested undergraduate students to pursue an individual independent study under the supervision of a computer science faculty member. The course content depends on the chosen project but typically includes an in-depth study of the selected topic, a literature review, the implementation of an idea, the evaluation of said idea, and the presentation and a write-up of the project and its results. The selected topic must not already be covered in substantial detail in any other course offered by the Department of Computer Science. Prerequisite: Instructor approval.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Exclude from 3-peat Processing|Dif Tui- Science & Engineering
Grade Mode: Credit/No Credit

CS 4398. Software Engineering Project.

This course serves as an undergraduate-level capstone experience in software engineering, with a focus on model-driven development and object-oriented methods. Students work in teams to design, implement, verify, and validate a small but complete software system. The course integrates core topics including UML-based modeling, agile processes such as eXtreme Programming, requirements specification through use cases, dynamic and statechart modeling, and the Model-View-Controller architecture. Emphasis is placed on systematic test case derivation and automated regression testing using JUnit. Students also gain hands-on experience with version control via Git and apply structured, team-based development practices to manage complexity, coordinate activities, and deliver a high-quality software product within realistic project constraints. Prerequisite: CS 3398 with a grade of "C" or better.

3 Credit Hours. 3 Lecture Contact Hours. 0 Lab Contact Hours.
Course Attribute(s): Dif Tui- Science & Engineering
Grade Mode: Standard Letter

Adhanom, Isayas B, Assistant Professor, Computer Science, Ph.D., University of Nevada, Reno

Ahmed, Shibbir, Assistant Professor, Computer Science, Ph.D., Iowa State University

Ali, Moonis, Professor, Computer Science, Ph.D., Aligarh Muslim University

Almstrum, Vicki Lynn, Asst Professor of Instruction, Computer Science, Ph.D., University of Texas at Austin

Au, Tsz Chiu, Associate Professor, Computer Science, Ph.D., Univ of Maryland College Park

Banerjee, Jishnu, Asst Professor of Instruction, Computer Science, Ph.D., Univ of Texas at San Antonio

Bhandari, Keshav, Asst Professor of Instruction, Computer Science, Ph.D., Texas State University

Bora, Aniruddha, Assistant Professor, Computer Science, Ph.D., Louisiana Tech University

Bryant, Barrett R, Dean, College of Science and Engineering and Professor, Computer Science, Ph.D., Northwestern University

Burtscher, Martin, Professor, Computer Science, Ph.D., University of Colorado Boulder

Castro Hernandez, Alberto, Assoc Professor of Instruction, Computer Science, Ph.D., University of North Texas

Chen, Xiao, Associate Professor, Computer Science, Ph.D., Florida Atlantic University

Cheung, David K P, Lecturer, Computer Science, Ph.D., The Ohio State Univ Main Campus

Gao, Ju, Associate Professor, Computer Science, Ph.D., Simon Fraser University

Gholoom, Husain A, Senior Lecturer, Computer Science, M.S., New Mexico State Univ Main Campus

Guirguis, Mina S, Professor, Computer Science, Ph.D., Boston University

Hwang, Caneo Jinshong, Professor, Computer Science, Ph.D., Louisiana State Univ A&M College

Irshad, Muhammad, Lecturer, Computer Science, Ph.D., Univ of Brasilia

Islam, Tanzima Z, Associate Professor, Computer Science, Ph.D., Purdue University Main Campus

Kao, I-Lung, Lecturer, Computer Science, Ph.D., University of Florida

King, Charles R, Lecturer, Computer Science, M.S., Texas State University

Klepetko, Randall S, Asst Professor of Practice, Computer Science, Ph.D., Univ of Texas at San Antonio

Koh, Lee-Song, Senior Lecturer, Computer Science, Ph.D., Univ of Oklahoma Norman Campus

Komogortsev, Oleg, Regents' Professor and University Distinguished Professor, Computer Science, Ph.D., Kent State University

Lee, Chul Ho, Associate Professor, Computer Science, Ph.D., North Carolina State University

Lehr, Theodore Franklin, Associate Professor of Practice, Computer Science, Ph.D., Carnegie Mellon University

Li, Xiaomin, Asst Professor of Instruction, Computer Science, Ph.D., Texas State University

Li, Hantang, Asst Professor of Instruction, Computer Science, M.S., Texas State University

Metsis, Vangelis, Associate Professor, Computer Science, Ph.D., University of Texas at Arlington

Mohandesi, Manouchehr, Asst Professor of Instruction, Computer Science, M.S., Univ of Texas at San Antonio

Ngu, Hee Hiong, Professor, Computer Science, Ph.D., University of Western Australia

Patrick, David Lee, Asst Professor of Instruction, Computer Science, Ph.D., Univ of Texas at San Antonio

Peng, Wuxu, Professor, Computer Science, Ph.D., Penn State University Park

Perez-Rosas, Veronica, Assistant Professor, Computer Science, Ph.D., University of North Texas

Podorozhny, Rodion, Associate Professor, Computer Science, Ph.D., University of Texas at Austin

Poudyal, Sujan, Asst Professor of Instruction, Computer Science, Ph.D., Mississippi State University

Qasem, Apan Muhammad, Professor, Computer Science, Ph.D., Rice University

Queiroz de Farias, Mylene Christine, Associate Professor, Computer Science, Ph.D., Univ of California, Santa Barbara

Ramkumar, Vasant Chandkumar, Lecturer, Computer Science, Ph.D., City University of New York

Rathore, Heena, Assistant Professor, Computer Science, Ph.D., Indian Institute of Technology

Seaman, Jill M, Professor of Instruction, Computer Science, Ph.D., Penn State University Park

Shi, Hongchi, Chair - Professor, Computer Science, Ph.D., University of Florida

Tesic, Jelena, Associate Professor, Computer Science, Ph.D., Univ of California, Santa Barbara

Walker, Jessie, Assoc Professor of Instruction, Computer Science, Ph.D., University of Iowa

Wang, Rui, Asst Professor of Instruction, Computer Science, Ph.D., Rutgers State Univ of NJ Camden

Yang, Kecheng, Associate Professor, Computer Science, Ph.D., Univ North Carolina - Chapel Hill

Zong, Ziliang, Professor, Computer Science, Ph.D., Auburn University