Department of Computer Science

Professor Daniel E. Cooke, Chairperson.

Professors Bagert, Gelfond, Marcy, and Oldham; Associate Professors Hernandez, Lakhani, Lopez-Benitez, and Liu; Assistant Professors Mengel, Pyeatt, Sinzinger, and Temkin.

This department offers study in the following graduate degree programs: COMPUTER SCIENCE, Master of Science and Doctor of Philosophy and SOFTWARE ENGINEERING, Master of Science. Admission requirements and details of programs are posted on the departmental Web site at <>.

For the Doctor of Philosophy degree, students are required to demonstrate general knowledge in several areas of computer science and proficiency in a single research area. Certification of research proficiency will be based on a record of accomplished research. The record must be substantiated by published articles, technical reports, and papers presented at meetings, workshops, and conferences. These requirements are additional to regulations established by the Graduate School.

Two general plans are available for the Master of Science degree: A 30 hour plan (which includes 6 hours credit for the master's thesis), and a 36 hour plan which is based solely on course work. The 36 hour plan is intended for graduate students in the college-sponsored International Exchange program and for new students with more than five years industrial experience who are maintaining a full-time career while working towards their graduate degree. Students who wish to use the 36 hour plan must obtain approval from the departmental Graduate Committee within their first semester of study.

The degree plan for students pursuing a Master of Science degree in computer science must include two theory courses (C S 5381, 5383, 5384) and two systems courses (C S 5352, 5375, 5368). Students choosing the 30 hour thesis plan must apply 6 hours C S 6000 and may apply 3 hours of C S 7000 credit toward their degree. Students choosing the 36 hour nonthesis option may not use C S 6000 or 7000 for credit towards their degree. Aside from these requirements and limitations, master's students may use any graduate level computer science course for credit towards their degree.

The degree plan for students pursuing a Master of Science in software engineering must include C S 5358, 5359, 5360, 5362, 5363, and 5366 as well as two software engineering elective courses (C S 5355, 5364, 5369). Students choosing the 30 hour thesis option must apply 6 hours of C S 6000 credit toward their degree and may substitute 3 hours of C S 7000 credit as one of their software engineering elective courses. Students choosing the 36 hour nonthesis option must also take two theory courses (C S 5381, 5383, 5384) and two systems courses (C S 5352, 5375, 53668) and may not use C S 6000 or 7000 for credit towards their degree.

Students who do not have a background in computer science are required to take a short series of undergraduate courses to provide the necessary background knowledge for graduate study in computer science. These courses are required for leveling only; they cannot be counted in satisfying the required hours for graduation. Students in other departments at Texas Tech who wish to transfer to computer science must first complete all leveling courses, or show that they have taken the equivalent courses at another university, before their application will be considered.

Courses in Computer Science. (CS)

5000. Practicum of Computing (V1-3). Industrial training in an approved field of graduate studies. Can be used only as an additional requirement on degree program.

5301, 5302. Foundations of Computer Science I, II (3:3:0 each). Prerequisite: Programming proficiency. An accelerated survey of computer science. Computer organization, high level and assembler languages, job control, software design, data structures, file organization, machines, and formal languages.

5303. Foundations of Computer Engineering (3:3:0). An accelerated introduction to the fundamentals of computer engineering for students without a computer hardware background. Boolean algebra, digital logic, digital devices and functions, digital system design, computer architecture.

5320. Principles of Computer Graphics (3:3:0). Techniques and methods for creating realistic images using graphic programming languages. Topics include visible surface determination rendering, surface modeling, and particle systems.

5331. Special Problems in Computer Science (3). Individual studies in advanced computer science and technology.

5341. Pattern Recognition (3:3:0). Traditional and current approaches to the general problem of recognizing patterns in images, signals, and other domains. Includes Bayes decision theory, supervised learning, and nonparametric techniques.

5352. Advanced Operating Systems Design (3:3:0). Prerequisite: C S 3352 and 3364, equivalent, or consent of instructor. Topics on distributed operating systems, such as synchronization, communication, file systems, and memory sharing are discussed. Several programming projects are implemented.

5353. Compiler Construction (3:3:0). Prerequisite: C S 3364, equivalent, or instructor consent. Implementation aspects of compiler construction, automata for formal grammar, semantics of procedural languages, automatic generation of parser, and assembly code generation. A prototype of a compiler is developed.

5355. Real Time and Time Sharing Systems (3:3:0). Prerequisite: C S 2350, 3352, and 5364. Study of the functional needs in real time and time sharing systems. Basic techniques and display concepts, random-access fields, computer networks, simultaneous operations, multiprogramming, and multiprocessing.

5356. Advanced Database Management Systems (3:3:0). Prerequisite: C S 3364, equivalent, or consent of instructor. Systems aspects of relational databases are emphasized. Topics include relational database design, index and access structures implementation and performance evaluation, query processing and optimization, transaction management, and concurrency control.

5357. Multimedia Systems (3:3:0). Prerequisite: C S 3364, equivalent or consent of instructor. Multimedia digital audio processing; image and video data compression; and processing for multimedia presentations. Time-based media representation and synchronization; multimedia communication systems; and hypertext and programming.

5358. Software Studio I (3:3:0). Prerequisite: C S 5362 and 5363. Capstone design and implementation experience of a major software project applying comprehensive software engineering techniques.

5359. Software Studio II (3:3:0). Prerequisite: C S 5358. A continuation of software engineering projects begun in C S 5358.

5360. Software Construction and Evolution (3:3:0). Prerequisite: C S 5362, 5363, and 5364. Theory and practice of the construction, testing, and maintenance of software. Emphasis placed on techniques to evolve software over time to meet the changing needs of users during the life of the software.

5361. Theory of Computing Languages (3:3:0). Prerequisite: C S 3461 and 3383, equivalent, or consent of instructor. General language theory with emphasis on computing languages, Chomsky typology, syntactical and semantic specifications. Standard and experimental methods for specification of languages. Current research on translation of natural language instructions to machine instructions.

5362. Software Specification and Design (3:3:0). Prerequisite: C S 2365, equivalent, or consent of instructor. Examination of the development of the specifications, architecture, and design of software. Analysis, software architecture, design patterns, architectural design and detailed design.

5363. Software Project Management (3:3:0). Prerequisite: C S 2365, equivalent, or consent of instructor. Methodologies for the management of projects involving software components. The larger context of systems development is studied, along with business management and engineering principles. Technical as well as people issues are explored.

5364. Software Quality Assurance and Testing (3:3:0). Prerequisite: C S 2365, equivalent, or consent of instructor. In-depth study of methods and techniques in software quality assurance and testing. Topics include software total quality management, software metrics, unit testing, and integration testing.

5365. Principles of Multiple-Processor Systems (3:3:0). Prerequisite: C S 3375, equivalent, or consent of instructor. Comprehensive introduction to the field of parallel and distributed computing systems. Algorithms, architectures, networks, systems. Theory and applications.

5366. Software Process Improvement (3:3:0). Corequisite: C S 5363 and 5364. Theory and practice for software process improvement and certification at the organizational, project team, and individual level.

5368. Intelligent Systems (3:3:0). Prerequisite: C S 3364 or consent of instructor. Comprehensive introduction to the field of artificially intelligent computer based systems. Theory and applications in artificial intelligence.

5369. Web-based Software Systems (3:3:0). Prerequisite: C S 2365, equivalent, or consent of instructor. In-depth study of how to engineer Web-based software systems. Topics include process, development, testing, and performance issues.

5372. Digital Computer Design (3:3:0). Prerequisite: E E 2372 and consent of instructor. Computer systems are discussed in terms of functional blocks consisting of both hardware and software. The logical organization of the machines is stressed in terms of usage and capability

5375. Computer Systems Organization and Architecture (3:3:0). Prerequisite: C S 3375 or consent of instructor. Introduction to the architecture, organization, and design of computer systems. Topics include processor, control and memory design, computer arithmetic, I/O, and a brief introduction to multiprocessors.

5376. Communication Networks (3:3:0). Networks in the context of parallel and distributed systems. Information theory applied to networks. Network topology. Problems and approaches in design, development, and management of communications networks.

5377. Distributed Computing (3:3:0). Prerequisite: C S 4352, equivalent, or consent of instructor. Introduction to distributed systems. Topics include communications, distributed operating systems, fault-tolerance, and performance issues. Case studies and term projects supplement this course.

5379. Parallel Processors and Processing (3:3:0). Prerequisite: C S 3364 and 3375, equivalent, or consent of instructor. Theory, architectures, and algorithms for the design and implementation of parallel computing systems. Operating system and programming language requirements for parallel computing; approaches and applications.

5380. Fault-Tolerant Computer Systems (3:3:0). Prerequisite: C S 2365 and I E 3341 or consent of instructor. Introductory course to methodologies for specifying, designing, and modeling fault-tolerant computer systems. Includes fault classification, design techniques for fault detection and recovery, and reliability modeling techniques.

5381. Analysis of Algorithms (3:3:0). Prerequisite: C S 3364 or equivalent. Theoretical analysis of algorithms for sorting, searching, sets, matrices, etc.; designing efficient algorithms for data structures, recursion, divide-and-conquer, dynamic programming; nondeterminism, NP-completeness and approximation algorithms.

5382. Theory of Graphs (3:3:0). Basic concepts in graphs. Fundamental algorithms for path traversal and searching; networks; trees; matchings and planarity testing; NP-completeness in graph theory.

5383. Theory of Automata (3:3:0). Prerequisite: C S 3383, equivalent, or consent of instructor. Structured grammars, relation between grammars and automata, deterministic, and nondeterministic finite automata, push-down store, and linear-bounded automata, and Turing machines.

5384. Logic for Computer Scientists (3:3:0). An introduction to mathematical logic. The course includes proofs of several basic theorems and discusses the application of logic to different areas of computer science.

5388. Neural Networks (3:3:0). Neural network theory, models, and implementation. Applications to real-time systems, robotics, pattern recognition, computer vision, and event driven systems.

5389. Advanced Neural Networks (3:3:0). Prerequisite: C S 5388 or consent of instructor. Recurrent neural networks, information processing, dissipative systems, applications to time series analysis and chaotic systems.

5393. Small Computing Systems (3:3:0). Prerequisite: CS 2350, equivalent, or consent of instructor. Microcomputers and minicomputers are programmed, evaluated, interfaced, and used in practical applications. Applications are determined by research and development interests of faculty members.

6000. Master's Thesis (V1-6).

6396. VLSI Algorithm Design (3:3:0). Prerequisite: C S 3364, equivalent, or consent of instructor. Theory and algorithms related to computer-aided design of very large scale integrated circuits. Covers heuristics such as min-cut and branch and bound.

7000. Research (V1-12).

8000. Doctor's Dissertation (V1-12).

Return to Main Directory
Page Maintained by: Cheryl Hedlund

Page Administrator: Gale Richardson