Computer Science (CS)

Computer Science (CS) Courses

CS 5103. Software Engineering. (3-0) 3 Credit Hours.

Prerequisite: CS 4773 or software development experience. Introduction to methods and tools for the requirements analysis and design stages of software life cycles. Discussion of software requirements including elicitation, modeling notations, analysis, and documentation. Brief overview of process models and project management. Examination of major architectural styles in existing software systems, design methods, design patterns, and reverse engineering. Course will include design experience using CASE tools.

CS 5113. Computer Graphics. (3-0) 3 Credit Hours.

Prerequisites: CS 3343 and MAT 2233. The course covers interactive 3-D computer graphics, polygonal representations of 3-D objects, boolean operations, interactive lighting models, interactive texture mapping, shadow generation as well as image-based techniques such as stencils, hidden-line removal, silhouette edges, rendering and global illumination.

CS 5123. Software Testing and Quality Assurance. (3-0) 3 Credit Hours.

Prerequisite: CS 4773 or software development experience. Introduction of testing techniques for software systems: unit testing, integration testing, system testing, acceptance testing, and regression testing; test plan and test case design; quality assurance; verification and validation.

CS 5153. User Interfaces and Usability. (3-0) 3 Credit Hours.

Prerequisite: CS 4773 or software development experience. This course focuses on the development of high-quality user interfaces. The course reviews the basics of user interface development, tools, and use-case driven design techniques; examines the elements of good design and usability, metrics for usability, and procedures for user testing.

CS 5163. Introduction to Data Science. (3-0) 3 Credit Hours.

Prerequisite: CS 3343 or consent of instructor. This course covers the fundamentals of data science. Topics include data management, data pre-processing, data visualization, data dissemination, and the mathematical and statistical foundations for data modeling.

CS 5233. Artificial Intelligence. (3-0) 3 Credit Hours.

Prerequisite: CS 3343. This course covers the construction of programs that use knowledge representation and reasoning to solve problems. Major topics include informed search, logical and probabilistic inference, machine learning, planning, and natural language processing.

CS 5253. Expert Systems. (3-0) 3 Credit Hours.

Prerequisite: CS 5233. This course presents an in-depth study of the area of artificial intelligence known as expert systems. Example expert systems are examined as a means of identifying the generally accepted methodologies for developing such systems as well as the basic research issues involved.

CS 5263. Bioinformatics. (3-0) 3 Credit Hours.

Prerequisite: Graduate standing in Computer Science or consent of instructor. Introduction to bioinformatics. Problem areas such as sequence analysis and gene component analysis, structure prediction, gene ontology, phylogenetic inference, gene regulation, and pathway construction and analysis will be approached from a computational viewpoint. (Same as BME 6323. Credit cannot be earned for both BME 6323 and CS 5263).

CS 5323. Principles of Computer and Information Security. (3-0) 3 Credit Hours.

Prerequisites: CS 3733 and CS 3873. An introduction to the protection of computer systems and networks. Topics include authentication, access controls, malicious logic, formal security methods, assurance and trust in computer systems and networks, firewalls, auditing and intrusion detection, cryptography and information hiding, risk management, computer forensics, and ethics.

CS 5343. Developing Secure Systems and Software. (3-0) 3 Credit Hours.

Prerequisite: CS 3733. An examination of methods for designing secure computer systems, networks, and software. Topics include the security development process, security policies and models, threat modeling, security code reviews and testing, the formal verification process, validation, and assessments.

CS 5353. Formal Languages, Automata, and Theory of Computation. (3-0) 3 Credit Hours.

Prerequisites: CS 2233 and CS 3343. Formal models of computation and syntax such as Turing machines, finite automata, non-determinism, formal languages, regular and context free grammars, complexity classes and NP-completeness.

CS 5363. Programming Languages and Compilers. (3-0) 3 Credit Hours.

Prerequisites: CS 2233 and CS 3343. A study of programming languages with an emphasis on their implementation. Topics include lexical analysis, language syntax, control structures, the binding of names, procedures, and their implementation in compilers.

CS 5443. Database Management Systems. (3-0) 3 Credit Hours.

Prerequisite: CS 3743. Design and implementation of database management systems. Topics include storage management, query optimization, concurrency control, crash recovery, integrity, and security in relational databases, object-oriented databases, object-relational databases, parallel databases, and distributed databases.

CS 5463. Topics in Computer Science. (3-0) 3 Credit Hours.

Prerequisite: Graduate standing in Computer Science or consent of instructor. Topics in an area of computer science. May be repeated for credit when topics vary.

CS 5473. Data Mining. (3-0) 3 Credit Hours.

Prerequisites: CS 3343 or consent of instructor. Concepts, principles, algorithms, performance, and applications of data mining and knowledge discovery. Topics may include data preprocessing, classification and prediction, clustering analysis, association and pattern analysis, outlier detection, and data mining software.

CS 5483. Topics in Data Science. (3-0) 3 Credit Hours.

Prerequisite: CS 5163. Specialized topics in an area of data science. May be repeated for credit when topics vary. (Credit cannot be earned for both CS 5483 and CS 4973 on the same topic.).

CS 5493. Large-Scale Data Management. (3-0) 3 Credit Hours.

Prerequisite: Graduate student standing in Computer Science or permission of instructor. Modern big data systems managing 3 Vs of big data (variety, volume, and velocity). Topics include, but not limited to overview of classic data management, web search, information retrieval, MapReduce, data integration, natural language processing at scale.

CS 5513. Computer Architecture. (3-0) 3 Credit Hours.

Prerequisites: CS 3733 and CS 3853. Study of modern computer architecture, including parallel computers, multiprocessors, pipelines, and fault tolerance.

CS 5523. Operating Systems. (3-0) 3 Credit Hours.

Prerequisites: CS 3733 and CS 3853. Operating systems concepts with an emphasis on distributed systems. Topics include process management and threads, inter-process communication, distributed objects and remote invocation, distributed naming and directory services, distributed file systems, middleware such as CORBA, access control and security.

CS 5573. Cloud Computing. (3-0) 3 Credit Hours.

Prerequisites: CS 3733 and CS 3853. Introduction to Cloud Computing. A study of the system architecture, enabling technologies, software environment, and innovative applications of the Cloud Computing paradigm. Topics include data center virtualization, cloud platforms, cloud resource management, cloud programming and software environments, big data processing in the cloud, cloud performance and energy efficiency analysis.

CS 5583. Kernel Concepts and Programming. (3-0) 3 Credit Hours.

Prerequisites: CS 3731 and CS 3733. Topics include system booting, memory management, process and scheduling, interrupt handling, system calls, file systems, networking, device drivers and module programming, runtime systems.

CS 5623. Simulation Techniques. (3-0) 3 Credit Hours.

Prerequisites: CS 2123 and any statistics course. This course introduces discrete-event simulation techniques, statistical models in simulation, random number generation, input modeling, output analysis and comparisons, and verification and validation of simulation models.

CS 5633. Analysis of Algorithms. (3-0) 3 Credit Hours.

Prerequisite: CS 3343. Models of computation and algorithm design and analysis techniques such as divide-and-conquer, greedy algorithms, dynamic programming, graph algorithms, amortized analysis.

CS 5933. Internship in Computer Science. (0-0) 3 Credit Hours.

Prerequisites: An overall 3.0 grade point average, and permission in writing from the instructor, the Department Chair, and the Dean of the College of Sciences. The opportunity for a semester-long work experience in a private business or public agency in a computer science-related position. Not more than 3 semester credit hours of CS 5933, and not more than a total of 6 semester credit hours of CS 5933 and CS 6953 may count toward the Master of Science degree or Ph.D. degree in Computer Science. The grade report for this course is either "CR" (satisfactory participation in the internship) or "NC" (unsatisfactory participation in the internship).

CS 5971. Directed Research. (0-0) 1 Credit Hour.

Prerequisites: Graduate standing in Computer Science and permission in writing (form available) of the instructor and the Graduate Advisor of Record. The directed research course may involve either a laboratory or a theoretical problem. May be repeated for credit, but not more than 6 hours of CS 5971, CS 5973, and CS 6953, regardless of discipline, will apply to a degree. This course will not apply to the Ph.D. degree.

CS 5973. Directed Research. (0-0) 3 Credit Hours.

Prerequisites: Graduate standing in Computer Science and permission in writing (form available) of the instructor and the Graduate Advisor of Record. The directed research course may involve either a laboratory or a theoretical problem. May be repeated for credit, but not more than 6 hours of CS 5971, CS 5973, and CS 6953, regardless of discipline, will apply to a degree. This course will not apply to the Ph.D. degree.

CS 6133. Software Specification and Verification. (3-0) 3 Credit Hours.

Prerequisite: CS 5103. This course introduces the theory and practice of formal methods for the specification and verification of computer-based systems. It emphasizes various techniques for modeling behavior of sequential and concurrent systems and reasoning about properties of models using automated analysis tools.

CS 6243. Machine Learning. (3-0) 3 Credit Hours.

Prerequisite: CS 5233 or CS 5633. This course studies machine learning techniques in the area of artificial intelligence. Topics include inductive learning, unsupervised learning, speedup learning, and computational learning theory.

CS 6293. Advanced Topics in Bioinformatics. (3-0) 3 Credit Hours.

Prerequisite: CS 5263. Advanced topics in bioinformatics. Topics may include but are not limited to efficient combinatorial algorithms for manipulating sequences, data mining techniques for biological data, biological imaging, and structural bioinformatics. May be repeated for credit when topics vary.

CS 6353. Unix and Network Security. (3-0) 3 Credit Hours.

Prerequisite: CS 5323. A technical survey of the fundamentals of computer and information security as it relates to networks and the UNIX operating system. Issues include authentication, common and advanced attack techniques for both the OS and networks, defensive strategies, intrusion detection, scan techniques and detection, forensics, denial of service techniques and defenses, libpcap, libdnet and libnet programming.

CS 6363. Advanced Compiler Construction. (3-0) 3 Credit Hours.

Prerequisite: CS 4713 or CS 5363. Areas of study include code generation techniques for vector machines and multiprocessors, implementation of higher-level imperative and functional languages, and run-time system support for distributed programming languages.

CS 6373. Applied Cryptography. (3-0) 3 Credit Hours.

Prerequisite: CS 5323. A course in applied cryptography with an emphasis on applying cryptographic techniques to solve real-world problems. Topics include a review of cryptographic primitives such as symmetric and asymmetric (public-key) cryptosystems, digital signatures, pseudo-random sequences, and hash functions. An emphasis will be placed on utilizing advanced protocols to solve problems such as key management in various environments and applications.

CS 6393. Advanced Topics in Computer Security. (3-0) 3 Credit Hours.

Prerequisite: CS 5323. Analysis of computer security. The topics may include but are not limited to database and distributed systems security, formal models for computer security, privacy and ethics, intrusion detection, critical infrastructure protection, network vulnerability assessments, wireless security, trusted computing, and highly dependable systems. May be repeated for credit when topics vary.

CS 6463. Advanced Topics in Computer Science. (3-0) 3 Credit Hours.

Prerequisites: Graduate standing in Computer Science and consent of instructor. Advanced topics in an area of computer science. May be repeated for credit when topics vary.

CS 6513. Advanced Architecture. (3-0) 3 Credit Hours.

Prerequisites: CS 5513 and CS 5523. Areas of study include advanced architectures, including massively parallel and distributed systems. Issues of communication, fault tolerance, and performance are addressed.

CS 6523. Distributed Operating Systems. (3-0) 3 Credit Hours.

Prerequisites: CS 5513 and CS 5523. Distributed operating systems issues, including migration, naming, reliability, security, resource allocation, and scheduling are addressed in heterogeneous and homogeneous systems. Time-critical data such as video and audio are considered.

CS 6543. Networks. (3-0) 3 Credit Hours.

Prerequisite: CS 5523. This course introduces the underlying concepts and principles of modern computer networks, with emphasis on protocols, architectures and implementation issues in the Internet.

CS 6553. Performance Evaluation. (3-0) 3 Credit Hours.

Prerequisites: CS 5513 and CS 5523. This course introduces analytical modeling, simulation analysis, and experimental evaluation of computer systems and networks. Particular emphasis will be placed on the analysis and design of medium- to large-scale distributed computer systems and networks.

CS 6643. Parallel Processing. (3-0) 3 Credit Hours.

Prerequisite: CS 5513. Parallel models of computation, performance measurement, and modeling of parallel algorithms and application studies on parallel computers.

CS 6723. Image Processing. (3-0) 3 Credit Hours.

Prerequisites: CS 5633 and MAT 2233 or an equivalent. Topics include image acquisition, enhancement, transformations, filters, compression, segmentation and edge detection, morphology, and recognition.

CS 6953. Independent Study. (0-0) 3 Credit Hours.

Prerequisites: Graduate standing in Computer Science and permission in writing (form available) of the instructor and the Graduate Advisor of Record. Independent reading, research, discussion, and/or writing under the direction of a faculty member. For students needing specialized work not normally or not often available as part of the regular course offerings. May be repeated for credit, but not more than 6 hours of CS 5971, CS 5973, and CS 6953, regardless of discipline, will apply to a degree.

CS 6961. Comprehensive Examination. (0-0) 1 Credit Hour.

Prerequisite: Approval of the Graduate Program Committee to take the Comprehensive Examination. Independent study course for the purpose of taking the Comprehensive Examination. May be repeated as many times as approved by the Graduate Program Committee. Enrollment is required each term in which the Comprehensive Examination is taken if no other courses are being taken that term. The grade report for the course is either “CR” (satisfactory performance on the Comprehensive Examination) or “NC” (unsatisfactory performance on the Comprehensive Examination).

CS 6973. Special Problems. (3-0) 3 Credit Hours.

Prerequisite: Consent of instructor. An organized course offering the opportunity for specialized study not normally or not often available as part of the regular course offerings. Special Problems courses may be repeated for credit when topics vary, but not more than 6 hours, regardless of discipline, will apply to a degree.

CS 6981. Master’s Thesis. (0-0) 1 Credit Hour.

Prerequisite: Consent of thesis advisor. Thesis research and preparation. May be repeated for credit, but not more than 6 hours will apply to the Master’s degree. Credit will be awarded upon completion of the thesis. Enrollment is required each term in which the thesis is in progress.

CS 6982. Master’s Thesis. (0-0) 2 Credit Hours.

Prerequisite: Consent of thesis advisor. Thesis research and preparation. May be repeated for credit, but not more than 6 hours will apply to the Master’s degree. Credit will be awarded upon completion of the thesis. Enrollment is required each term in which the thesis is in progress.

CS 6983. Master’s Thesis. (0-0) 3 Credit Hours.

Prerequisite: Consent of thesis advisor. Thesis research and preparation. May be repeated for credit, but not more than 6 hours will apply to the Master’s degree. Credit will be awarded upon completion of the thesis. Enrollment is required each term in which the thesis is in progress.

CS 7123. Research Methods. (3-0) 3 Credit Hours.

Prerequisites: Doctoral Student standing. Examine and learn practical research skills and research writing techniques. Review, present, and critique recent research publications in the areas of Computer Science. May be repeated for credit. May not be counted towards the Master of Science degree in Computer Science.

CS 7211. Doctoral Research. (0-0) 1 Credit Hour.

Prerequisite: Successful completion of the Doctoral Qualifying Examination. May be repeated, a minimum of 18 hours is required for the Doctoral degree.

CS 7213. Doctoral Research. (0-0) 3 Credit Hours.

Prerequisite: Successful completion of the Doctoral Qualifying Examination. May be repeated, a minimum of 18 hours is required for the Doctoral degree.

CS 7216. Doctoral Research. (0-0) 6 Credit Hours.

Prerequisite: Successful completion of the Doctoral Qualifying Examination. May be repeated, a minimum of 18 hours is required for the Doctoral degree.

CS 7311. Doctoral Dissertation. (0-0) 1 Credit Hour.

Prerequisite: Admission to candidacy for the Doctoral degree. May be repeated, a minimum of 18 hours is required for the Doctoral degree.

CS 7313. Doctoral Dissertation. (0-0) 3 Credit Hours.

Prerequisite: Admission to candidacy for the Doctoral degree. May be repeated, a minimum of 18 hours is required for the Doctoral degree.

CS 7316. Doctoral Dissertation. (0-0) 6 Credit Hours.

Prerequisite: Admission to candidacy for the Doctoral degree. May be repeated, a minimum of 18 hours is required for the Doctoral degree.