Graduate Computer Science (CS)
The minimum prerequisite for 50000-69999 level courses is graduate standing. The minimum prerequisite for courses 70000 and higher is doctoral standing. Additional prerequisites may apply and are listed in this catalog.
51012 Finite Mathematics (3)
(Cross-listed with MATH 51012) A continuation of discrete mathematics emphasizing combinatorial techniques, graph applications in algorithms, finite algebra, number theory and probability. Covers useful mathematics for CS majors. Prerequisite: CS 31011 or MATH 31011.
51045 Metalogic (3)
Consideration of various metatheorems including soundness and completeness of propositional and predicate calculus, undecidability of predicate calculus and incompleteness of the theory of arithmetic.
52201 Introduction to Numerical Computing I (3)
(Cross-listed with MATH 52201) An introduction to numerical methods and software for solving many common scientific computing problems. Linear systems, least-square data fitting, nonlinear equations and systems, and optimization problems. Prerequisite: MATH 12003, 21001 and CS 23021. Special fee: $10 per semester.
52202 Introduction to Numerical Computing II (3)
(Cross-listed with MATH 52202) A continuation of CS 52201. Topics include interpolation, numerical differentiation and integration, and numerical solution of ordinary differential equations. Prerequisite: MATH 32044 and CS 4/52201. Special fee: $10 per semester.
53005 Introduction to Database Systems Design (3)
An introduction to the basic theoretical aspects of database systems, file organization, search methodologies, language design and performance evaluation techniques, initial modeling concepts and their use in hierarchical, network, relational and object-oriented database designs. Prerequisite: CS 46101.
53006 Theory of Object-Oriented Programming (3)
In-depth course on the theory and principles of object-based and object-oriented programming using a language such as C ++. The course covers advanced topics in inheritance and interface planning, generic (type-independent) programming, factors of polymorphism, structure and organization of class libraries, and object-oriented design principles. Prerequisite: CS 33001. Special fee: $20 per semester.
53111 Structure of Compilers (3)
Techniques used to write compilers including lexical analysis, syntax analysis, syntax-directed translation, type checking, run-time environments and intermediate code generation. Prerequisite: CS 35101 and 33101.
53202 Systems Administration (3)
The setting up and day-to-day administration of multiuser multitasking systems, such as the various versions of UNIX, together with the analysis of problems which can arise in these activities. Prerequisite: CS 33211.
53203 Systems Programming (3)
Design, implementation and maintenance of system programs, system utilities; command interpreters, editors, file maintenance programs, text processors. Interrupt handling. Device drivers. Prerequisite: CS 33211. Special fee: $20 per semester.
53401 Secure Programming (3)
Code vulnerabilites, static code analysis, error handling, secure I/O, race conditions and mediation, handling buffer and integer overflow, handling vulnerabilities in web and database programming, privacy and cryptography, random number generators. Prerequisites: C (2.0) or better in CS 33001.
53901 Software Engineering (3)
An introduction to software engineering concepts: life cycle models, modeling languages, requirements analysis, specification, design, testing, validation, project management and maintenance. Prerequisite: CS 33001. Special fee: $6.67 per credit hour (subject to change).
54201 Artificial Intelligence (3)
Examines goals, problems, concepts and methods of artificial intelligence, heuristic versus algorithmic methods, natural language comprehension, theorem proving. Prerequisite: CS 33001. Special fee: $10 per semester.
55111 Principles of VLSI Design (3)
Introduction to the design of VLSI chips, with emphasis on FPLD-based design. Students will design various chips using standard industry logic synthesis tools. Prerequisite: CS 35101. Special fee: $10 per credit hour (subject to change).
55201 Computer Communications Networks (3)
An introduction to netcentric systems, data communication protocols, network architectures, routing protocols, network management, congestion control, network security, compression techniques, mobile and wireless networks, and the World Wide Web as an example of a client-server system. Prerequisite: CS 33211. Special fee: $3.33 per credit hour (subject to change).
55231 Internet Engineering (3)
Design fundamentals and working principles of Internet systems at the IP layer and above. DNS, Interdomain Routing, Internet Client Server programming, Application Level Protocols (HTTP, XML, etc.), Web Server Architecture, Browser, Internet Security and Multimedia Serving. Prerequisite: CS 33001, 53201 and 55201. Special fee: $20 per semester(subject to change).
56101 Design and Analysis of Algorithms (3)
Introduction to algorithmic concepts, practical techniques for the design and analysis of algorithms; searching, sorting, integer and floating point arithmetic; vector and matrix manipulation. Prerequisite: CS 33001 and MATH 12003.
56201 Introduction to the Theory of Automata, Formal Languages and Computation (3)
A study of alphabets, strings, languages; regular languages and expressions, deterministic and nondeterministic finite automata, context free-grammars and languages, pushdown automata, turing machines and complexity theory. Prerequisite: CS 23022 and MATH 12003.
57101 Computer Graphics (3)
Display file generation, interactive graphics techniques, display devices, three-dimensional graphics, graphic system design, graphic languages and applications in man/machine communications. Prerequisite: CS 33001. Special fee: $20 per semester.
57105 Web Design and Programming I (3)
A joint computer science and visual communication design course on Web concepts and high-quality Web design: computer science, visual communication design principles, tools, architecture, presentation, design and creation of Web sites by teams. Web-based instruction is used. IP permissible. Special fee: $20 per semester.
57106 Web Design and Programming II (3)
A joint computer science and visual communication design course on advanced Web techniques and multimedia Web design: Web servers, security, advanced design, Java servlets, applets, database connectivity, site maintenance, creation of actual Web sites by teams. IP permissible. Special fee: $20 per semester.
57107 Web Design and Programming Studio (3-6)
A joint Computer Science (CS) and Visual Communication Design (VCD) project course. Comprehensive experience on aspects of Web site creation, hosting, maintenance and management. Creative combination and integration of art and programming are emphasized. IP permissible. Prerequisite: VCD 56001 or CS 57106. Special fee: $6.67 per credit hour (subject to change).
57201 Human Computer Interaction (3)
Approaches the human-computer interaction as an activity of the human whose productivity is increased by the use of the computer as a tool. Examines physiology and psychology considers the structure and operation of the computer and models the interaction between the two. Prerequisite: CS 33001.
57205 Information Security (3)
An introduction to concepts and methodology useful for information security ,as specified by the NSTISSI NO. 4011standard from the NSA. Prerequisite: CS 33006.
57221 Introduction to Cryptology (3)
Introduction to cryptography, classical cryptology, authenitaction, complexity issues, encryption standards, algebraic foundations, survey of existing cryptology protocols: AES/Rijndael, block chaining, asymmetric techniques. Prerequisite: C (2.0) or better in CS 33001.
59893 Variable Title Workshop in Computer Science (1- 6)
Studies in special topics in computer science. S/U grading. Prerequisite: Special approval.
59995 Special Topics in Computer Science (1-3)
Various special courses will be announced in the Schedule of Classes under this title. Repeat registration permitted. Prerequisite: Special approval.
60093 Variable Title Workshop in Computer Science (1-3)
Studies of special topics in computer science. Not acceptable for credit toward a graduate degree in computer science without approval of the student’s advisor. S/U grading. Prerequisite: special approval.
60094/70094 College Teaching of Computer Science (1)
Techniques and problems of college teaching of computer science. Student presentation of computer science papers will be included. S/U grading.
60220 Bioinformatics (4)
Theory, methods and computational approaches used to interpret large volumes of Bio-Science information; reviews of major data repositories. An interdisciplinary research project is required. Prerequisite: special approval.
61001 Structure of Computer Science (3)
An integrated view of the structure of computer science; algorithms, architecture, operating systems, programming languages and networking. Special emphasis on the framework of computer science and its relation to other fields. No credit for CS majors. IP permissible.
61002 Algorithms and Programming I (4)
An introduction to the algorithms and tools used in computer science; includes programming in a high level language. No credit for CS majors. Prerequisite: CS 61001.
61003 Algorithms and Programming II (4)
Further exploration into the tools used in computer science. No credit for CS majors. Prerequisite: CS 61002.
61092 Practicum in CS for Information Architecture and Knowledge Management (1-5)
This course is an alternative to IAKM 60199 for students interested in pursuing a CS thesis. Credit for IAKM 60199 or any other project course is not allowed. Not repeatable. S/U grading; IP permissible.
61199 Thesis I for Information Architecture and Knowledge Management (2-6)
Thesis students must register for a minimum of 6 hours. No credit for CS students. S/U grading; IP permissible.
61299 Thesis II for Information Architecture and Knowledge Management Students (2)
Thesis students must continue registration each semester until all degree requirements are met. S/U grading; IP permissible.
62201/72201 Numerical Computing I (3)
(Cross-listed with MATH 6/72201) Numerical methods for scientific computing emphasizing modern mathematical software and environments. Computer arithmetic and errors, linear systems of equations, least squares data fitting, eigenvalues and singular values, nonlinear systems optimization. Prerequisite: MATH 21001 and 22005.
62202/72202 Numerical Computing II (3)
(Cross-listed with MATH 6/72202) Continuation of CS 6/72201. Interpolation, numerical integration and differentiation, ordinary differential equations initial and boundary value problems, partial differential equations, fast Fourier transforms and applications.
Prerequisite: MATH 52045 and CS 6/72201.
62251/72251 Numerical Analysis I (4)
(Cross-listed with MATH 6/72251) Floating point computation, rounding error analysis, conditioning. Interpolation (polynomial, trigonometric, spline). Numerical quadrature (Newton-Cotes, Gauss), extrapolation, Romberg integration. Prerequisite: MATH 4/52002.
62252/72252 Numerical Analysis II (3)
(Cross-listed with MATH 6/72252) Numerical solution of linear systems of equations (LU factorization, error analysis). Least squares orthogonalization methods. Algebraic eigenvalue problems, QR algorithm, singular value decomposition. Prerequisite: MATH 4/51021 and CS 6/72251.
62261/72261 Numerical Solution of Ordinary Differential Equations (3)
(Cross-listed with MATH 6/72261) Discretization methods for ordinary differential equations and systems. Initial value and boundary value problems. Numerical implementations, software and analysis. Prerequisite: MATH 32044 and CS 4/52202.
62262/72262 Numerical Solution of Partial Differential Equations (3)
(Cross-listed with MATH 6/72262) Derivation and analysis of discrete methods (finite differences, finite elements) for the numerical solution of elliptic, hyperbolic and parabolic partial differential equations. Prerequisite: MATH 4/52045 and CS 4/52202.
62263/72263 Numerical Solution of Large Sparse Linear Systems (3)
(Cross-listed with MATH 6/72263) Construction and analysis of iterative methods for large systems of linear algebraic equations. Jacobi, Gauss-Seidel, SOR. Polynomial acceleration methods, conjugate gradients. Multigrid methods. Prerequisite: MATH 4/51021 and CS 4/52202.
62264/72264 Numerical Solution of Nonlinear Systems (3)
(Cross-listed with MATH 6/72264) Construction and analysis of numerical methods for systems of nonlinear algebraic equations and optimization problems. Numerical implementation and software. Prerequisite: MATH 4/52041 and CS 4/52202.
63005/73005 Advanced Database Systems Design (3)
Introduction to a variety of advanced database topics and ongoing trends in modern database systems. The course includes advanced issues of object-oriented database, XML, advanced client server architecture and distributed database techniques. Prerequisite: CS 4/53005.
63015/73015 Data Mining Techniques (3)
The course presents the concepts and techniques of data mining. Data mining is a process of discovering information from a large set of databases. This course takes a database perspective on data mining. Prerequisites: CS 53005 and MATH 50011.
63101/73101 Advanced Programming Languages (3)
Topics such as programming language design problems, formal semantics, language definitions, functional programming, specialized or very high-level languages, correctness considerations, parallelism and concurrency. Prerequisite: CS 4/53101.
63111/73111 Advanced Compiler Design (3)
Explores implementation issues such as optimization techniques, code generation, error handling, automatic compiler generation. May include compiler project parallelization. Prerequisite: CS 4/53111 and 4/55101. Special fee: $20.00 per semester.
63201/73201 Advanced Operating Systems (3)
Introduction to distributed systems, interprocess communication, distributed mutual exclusion, synchronization and deadlock, distributed process management and distributed file systems. Prerequisite: CS 4/53201. Special fee: $10 per semester.
63301/73301 Parallel and Distributed Computing (3)
Overview of parallel and distributed computing; structuring parallel and distributed programs; parallel programming using SIMD, SPMD, MIMD and associative computing; parallel and distributed architecture using existing machines as case studies. Special fee: $6.67 per credit hour (subject to change).
63304/73304 Cluster Computing (3)
This course will investigate clusters of computers as a computing platform, hardware and software tradeoffs for cluster and application performance, and programming of clusters. Prerequisite: CS 55201.
63901/73901 Software Engineering Methodologies (3)
Software process models; modeling languages; software process improvement; requirement analysis and elicitation; advanced systems and architectural design; estimation; verification and validation; reuse; and metrics.
63902/73902 Software Evolution (3)
Methods and techniques supporting later life-cycle activities, including software testing and maintenance, reuse and reverse engineering. Prerequisite: CS 6/73901.
63903/73903 Software Visualization (3)
Methods and techniques to support the visualization of software to support maintenance, re-engineering and reverse engineering of large scale systems using information visualization and program understanding techniques. Prerequisite: CS 63901.
64101/74101 Computer Algebra I (3)
Algorithms for integer and polynomial arithmetic modular and padic algorithms, GCD computation, factorization and resultants. Prerequisite: CS 4/56101.
64102/74102 Computer Algebra II (3)
Additional concepts basic to computer algebra including linear algebra algorithms, factoring, parallel algorithms, interface to numerical computing, graphics, algebraic and transcendental extensions, and pattern-matching. Prerequisite: CS 6/74101.
64201/74201 Advanced Artificial Intelligence (3)
Additional topics in AI such as logic programming, advanced problem-solving systems, understanding natural languages, vision, learning, plan-generating systems. Prerequisite: CS 4/54201.
64301/74301 Pattern Recognition Principles (3)
Introduction to mathematical pattern recognition, feature selection, distribution-free classification, statistical classification, nonsupervised learning, sequential learning and application. Prerequisite: CS 4/57101.
64401/74401 Image Processing (3)
This course covers digital processing of digital imagery. Digitization of TV imagery, noise removal, image enhancement, edge and texture detection, object recognition and scene analysis. Prerequisite: CS 4/56101. Special fee: $10 per semester.
65101/75101 Advanced Computer Architecture (3)
System performance measures, processor implementation, pipelining, system interconnection, memory hierarchy interrupts, stack architecture, vector and multiprocessors. Prerequisite: CS 4/55101.
65201/75201 Interconnection Networks (3)
This course provides a comprehensive coverage of interconnection networks in switching principles for high-performance computing and communications. It covers the theory, architecture, implementation and performance analysis of switching systems for multiprocessors, broadband networks and optical communications. Prerequisite: CS 4/55201 or CS 6/75101. Special fee: $10 per semester.
65202/75202 Advanced Communication Networks (3)
This course covers central problems that confront network designers in high-speed networking such as real-time traffic, congestion control, quality of service (QoS), performance analysis, traffic management and Internet routing. Prerequisite: CS 4/55201.
65203/75203 Wireless and Mobile Communication Networks (3)
This course examines how wireless systems work and how mobile systems are supported by the underlying network infrastructure. It covers the architecture and the interactions among different functional units in wireless and mobile systems. Prerequisite: CS 55201.
65207/75207 System Simulation (3)
Course provides the principles behind simulation techniques for solving problems using computers. It covers the evaluation process of the potential performance of a system with alternative architectural design before it becomes operational. It also covers trade-off analysis techniques for various operating strategies in systems such as computers, networks and devices. Prerequisite: CS 33211 or 45201.
65208/75208 Distributed Multimedia and Language Systems (3)
MPEG standards, multimedia formats, 3-D object and movement representation, multimedia storage, QoS maintenance, transmission and buffering, multimedia clocks and synchronization, content based indexing, matching and retrieval of 2-D and 3-D objects, XMLl based distributed multimedia languages, synchronous and reactive languages. Prerequisite: CS 33001.
65231/75231 Internet Systems and Applications (3)
Course initiates the research frontiers of the internet and web technology. It covers selected emergent systems and dominant applications of the internet. The recent offerings included infrastructure, measurements, and security and discussed systems such as caching infrastructure, content distribution network, inter-autonomous system trust management, etc. Prerequisite: CS 55201 and 55231.
65301/75301 System Modeling and Performance Evaluation (3)
Provides a detailed study of queuing, network models and their application to operating systems, computer time sharing, and multi-access systems. Prerequisite: MATH 4/50012 and CS 4/53201.
66101/76101 Advanced Topics in Algorithms (3)
Advanced algorithms, fast Fourier transforms, algorithms on trees and graphs, rational and polynomial arithmetic, gcd, factoring, numerical and symbolic computational algorithms, Risch integration algorithm, pattern matching. Prerequisite: CS 4/56101.
66105/76105 Parallel and Distributed Algorithms (3)
Introduces and evaluates important models of parallel (synchronous and asynchronous) and distributed computation using basic searching, sorting, graph, matrix, numerical computing and computational geometry algorithms. Prerequisite: CS 4/56101 or 63301.
66110/76110 Computational Geometry (3)
Geometric structures are the underlying model of several important applications, including robotics, graphics, CAD/CAM, VLSI layout, wireless networks and information visualization. Computational Geometry studies algorithms for geometric problems. Prerequisite: CS 56101.
66120/76120 Evolutionary Computation (3)
An introduction to evolutionary computation techniques for optimization, learning and design. Example topics include natural and artificial evolution, chromosome representations, search operators, co-evolution, constraint handling techniques, niching and speciation, classifier systems and theoretical foundations. Prerequisite: CS 56101.
66202/76202 Theory of Computation (3)
Representative problems and algorithms for various complexities, recursion theory basics, complexity such as time, space, nondeterminism; relationships between complexities and hard sets. Prerequisite: CS 4/56101 and 4/56201.
67101/77101 Advanced Computer Graphics (3)
The course provides an in-depth study of active research topics in computer graphics. Topics include volume rendering, image-based rendering and modeling, graphics architectures, virtual reality, modeling in computer graphics, nonphotorealistic rendering, computer animation and computer games. Prerequisite: CS 4/ 57101.
67301 Scientific Visualization (3)
Discusses the visualization of scientific, engineering and medical data sets. Introduces mechanisms to acquire sampled or computed data and points out methods to transform these data into the visual system. Prerequisite: CS 23021.
69098 Research (1-5)
Research or individual investigation. Credits are applied toward degree requirements, with approval, if letter grade or “S” is given. Repeat registration permitted.
69191 Master’s Seminar (1-2)
Seminar for master’s degree students to present and discuss computer science-related research and academics. Master’s degree students are required to take at least 2 credit hours for completion of degree and make at least one presentation of project work or research. The course may be take multiple times but only 2 credits count towards the master’s degree. S/U grading. Prerequisite: Admission to the master’s program.
69199 Thesis I (2-6)
Thesis student must register for total of 6 hours, 2 to 6 hours in a single semester, distributed over several semesters if desired. S/U grading; IP permissible.
69299 Thesis II (2)
Thesis students must continue registration each semester until all degree requirements are met. S/U grading; IP permissible. Prerequisite: CS 69199.
69995/79995 Special Topics in Computer Science (1-3)
89098 Research (1-15)
Research or individual investigation for doctoral students who have not yet passed their candidacy examinations. S/U grading. Repeat registration permitted.
89191 Doctoral Seminar (1-2)
Seminar for doctoral students to present and discuss computer science-related research and academics. Doctoral students are required to take at least 3 credit hours for completion of degree and make at least two presentations of project work or research. This course may be taken multiple times but only 3 credits count toward the doctoral degree. S/U grading. Prerequisite: Admission to doctoral program.
89199 Dissertation I (15)
Doctoral dissertation, for which registration in at least two semesters is required, first of which will be semester in which dissertation work is begun and continuing until the completion of 30 hours. S/U grading; IP permissible. Prerequisite: Admission to doctoral program.
89299 Dissertation II (1 or 15)
Continuing registration required for doctoral students who have completed the initial 30 hours of dissertation and continuing until all degree requirements are met. S/U grading; IP permissible. Prerequisite: CS 89199.
89991 Research Seminar in Computer Science (1-3)
Research seminar on current research in computer science. S/U grading. Prerequisite: special approval.