# School of Computer Science

Dean Hougen, Interim Director

Devon Energy Hall - Rm 158

110 W. Boyd St.

Norman OK 73019

Phone: (405) 325-4042

Fax: (405) 325-4044

cs@ou.edu

www.ou.edu/coe/cs

## General Information

### School History

Graduate instruction and research in computer science began in 1969 at the University of Oklahoma with the creation of a unit called Information and Computing Sciences. This unit was under the direct supervision of the Provost until 1972, when it became part of the College of Engineering. An undergraduate program in computer science was added in 1976, and computer science became an integral part of the School of Electrical Engineering, which was later renamed as the School of Electrical Engineering and Computer Science. The first MS, degree in computer science was awarded in 1972, the first PhD, in 1973, and the first undergraduate degree in 1979-80. Computer Science remained in the School of Electrical Engineering and Computer Science until 1992, when the School of Computer Science was formed.

Beginning with the Spring 2010 semester, The School of Computer Science moved our operations to Devon Energy Hall. The five-story, 103,000-square-foot Devon Energy Hall has some of the latest in technological advancement in it’s classrooms, team rooms, teaching labs and research space, providing the best for our students of today and tomorrow.

### Program Mission Statement

To generate and disseminate durable knowledge within and around the rapidly evolving discipline of computer science by:

- Educating bachelors, masters, and doctoral degree candidates within our discipline.
- Contributing to the education of degree candidates in related fields, including mathematics, meteorology, computer engineering, industrial and systems engineering, and electrical engineering.
- Generating knowledge in theoretical and applied topics within and around our discipline and disseminating the results.
- Contributing to professional societies within and around our discipline.
- Producing graduates who are highly sought by industry, government and universities.

## Programs & Facilities

### Computer Science Scholarships & Assistantships

The School of Computer Science is able to support many students with various scholarships through University, College of Engineering, and Computer Science program-specific opportunities. The requirements for these scholarships vary from merit-based to financial need. The department takes pride in the fact that many of the scholarships available to current and prospective students are set up by CS alumni. All scholarships for Computer Science are housed in and managed by the OU Scholarships Office (https://www.ou.edu/admissions/affordability/scholarships) and the OU Student Financial Center via the CASH portal (https://www.ou.edu/sfc/scholarships/cash).

Graduate teaching/research assistantships (for both Ph.D. and M.S. programs) are not and cannot be guaranteed in the OU School of Computer Science. All assistantships are based on funding availability for the department; need by the faculty; and the demand/size of the class (for a Graduate Teaching Assistant/GTA) or research project (for a Graduate Research Assistant/GRA). Assistantships are granted to Doctoral/Ph.D. and Masters/M.S. students currently in the program, with priority issued to high-achieving graduate students who have progressed further into their respective graduate program and who have established consistent rapport with faculty. Any interest in a graduate assistantship should be initially directed to the student's assigned faculty advisor or the desired faculty member, with the following information available to them: the degree pursuit (Ph.D., M.S.), semester of the assistantship, and course (for GTA) or research (for GRA) interest. If the interest is in a GTA for a course, priority consideration goes to those who have completed the course with a grade of “A” (no less than “B”) as part of the graduate program here at OU…with all eligible candidates being reviewed by the program and relevant faculty. **Emailing all faculty (“blanket” or “mass” emails) to solicit assistantship availability or promote your candidacy is strongly discouraged, **so please only email the assigned or desired faculty member. For unexpected or last-minute assistantship vacancies, the department will email eligible students regarding the position announcement. __Please note the School of Computer Science will not guarantee any assistantship opportunity (for either Ph.D. or M.S. programs), and in many instances, faculty often will request students to participate that they have known for some time__.

### Computer Science Software Studio

The Computer Science Software Studio provides student the opportunity to:

- Work on approved out-of-class projects with state-of-the-art software and hardware tools
- Be a part of collaborative teams
- Gain additional hands-on experience
- Participate in software competitions
- Connect with and learn from professionals in your field
- Contribute to both app and game development
- Enjoy tech talks and seminars

## Undergraduate

### Computer Science Program Educational Objectives (PEO)

- Graduates succeed in problem-solving professions using computer science expertise.
- Graduates succeed in software design and development careers.
- Graduates may pursue and complete advanced degrees in computer science or other fields.

### Computer Science Undergraduate Student Outcomes

- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program's discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program's discipline.

#### The program criterion pertaining to Student Outcomes for Computer Science programs is as follows:

- Apply computer science theory and software development fundamentals to produce computing-based solutions.

### Bachelor of Science

The Computer Science Bachelor of Science provides a broad and flexible undergraduate curriculum. In addition to the general university requirements in the humanities and sciences, computer science students take courses covering the fundamentals of the discipline; courses in mathematics, natural science; and computer science. Bachelor of Science in Computer Science accredited by the Computing Accreditation Commission of ABET, https://www.abet.org, under the General Criteria and the Computer Science and Similarly Named Computing Programs Program Criteria.

### Minors

Students who wish to pursue a minor in computer science are strongly encouraged to check their proposed program with either the Williams Student Services Center for the College of Engineering (325-4096, Felgar Hall - Rm 112) or Dr. Deborah A. Trytten (dtrytten@ou.edu, Devon Energy Hall - Rm 252).

### Computer Science, Bachelor of Science/Master of Science

The accelerated Computer Science Bachelor of Science/Master of Science program allows students to pursue a graduate degree in conjunction with the undergraduate degree requirements. Bachelor of Science in Computer Science accredited by the Computing Accreditation Commission of ABET, https://www.abet.org, under the General Criteria and the Computer Science and Similarly Named Computing Programs Program Criteria.

## Graduate

### Master of Science

The Computer Science, Master of Science degree is designed for those wishing to improve their professional competence or to prepare for work towards a doctoral degree.

### Doctoral Program

The Computer Science doctoral degree program aims to prepare and develop professionals capable of conducting and directing research within the discipline of computer science.

## Courses

** C S 1213. Programming for Non-Majors with Python.****3 Credit Hours.**

Prerequisite: Mathematics 1503 or concurrent enrollment. Introduction to the design and implementation of computer programs in the language Python. We will cover data types, control flow, iterations, functions, and the use of external libraries for text processing, graphics, image manipulation, web programming and others. Emphasis on problem solving with examples drawn from diverse disciplines. (F, Sp)

** C S 1313. Programming for Non-Majors with C.****3 Credit Hours.**

Prerequisite: MATH 1523 or concurrent enrollment. Introduction to the design and implementation of computer programs. Emphasis on problem solving. Topics include: variables and constants, arithmetic and Boolean expressions, conditional statements, loops, procedures and functions, arrays, standard libraries, input and output, structures, and program documentation. (F, Sp)

** C S 1321. Java for Programmers.****1 Credit Hour.**

Prerequisite: MATH 1523 or equivalent or concurrent enrollment; or placement into MATH 1743 or MATH 1823 or higher and departmental permission. Introduction to computer programming using the Java programming language for students who are already proficient in another programming language. Topics include: variables and constants, arithmetic and Boolean expressions, conditional statements, repetition, methods, arrays, linear and binary search, basic sorting algorithms, object-oriented programming, documentation, and testing. Students may not take this class after passing CS 2334. (F, Sp)

** C S 1323. Introduction to Computer Programming for Programmers.****3 Credit Hours.**

Prerequisite: MATH 1523 or concurrent enrollment; or placement into MATH 1743 or MATH 1823 or higher and department permission. Introduction to the design and implementation of computer software with an emphasis on abstraction and program organization for students with some prior programming experience. Topics include: variables and constants, arithmetic and Boolean expressions, conditional statements, repetition, methods, arrays, linear and binary search, basic sorting algorithms, object-oriented programming, documentation, and testing. Students may not take this class after passing CS 2334. (F, Sp)

** C S 1324. Introduction to Computer Programming for Non-Programmers.****4 Credit Hours.**

Prerequisite: Math 1523 or concurrent enrollment; or placement into Math 1743 or Math 1823 or higher and departmental permission. Introduction to the design and implementation of computer software with an emphasis on abstraction and program organization for students with no prior programming experience. Topics include: variables and constants, arithmetic and Boolean expressions, conditional statements, repetition, methods, arrays, linear and binary search, basic sorting algorithms, object-oriented programming, documentation, and testing. Students may not take this class after passing CS 2334. (F, Sp)

** C S 2334. Programming Structures and Abstractions.****4 Credit Hours.**

Prerequisite: C S 1323 or 1321 or 1324, and MATH 1523 or higher. The design and implementation of computer programs using disciplined methodologies. Use of several abstract data types. Software reuse through encapsulation, composition, aggregation, inheritance, polymorphism, and generics. Topics include recursion, GUI development, file processing, and unit testing. A program design tool will be used. Introduction to ethics in computer science, including philosophical ethics theories. Discussion of intellectual property rights and privacy. (F, Sp)

** C S 2413. Data Structures.****3 Credit Hours.**

Prerequisite: C S 2334 and MATH 1823 or 1914; and C S 2813 or MATH 2513, or concurrent enrollment in C S 2813 or MATH 2513. Representation, analysis and implementation of data structures and associated algorithms including: algorithm complexity, sorting algorithms, lists, stacks, queues, search trees (AVL, Red-Black, Splay, 2-3), Heaps, Graphs, and Hashing. Written communications required in some projects. Ethical issues and tools and techniques used in writing secure applications will also be discussed. The primary programming language is C++ with a debugging tool. (F, Sp)

** C S 2614. Computer Organization.****4 Credit Hours.**

Prerequisite: CS 2334. An introduction to the architecture, organization and design of uniprocessor-based computer systems. Topics include processor, control and memory design and organization, pipelining and vector processing, computer arithmetic, I/O organization, and computer systems security. (F, Sp)

** C S 2813. Discrete Structures.****3 Credit Hours.**

Prerequisite: C S 2334; MATH 2423 or MATH 2924 as prerequisite or concurrent enrollment. Introduction to the theory of discrete structures useful in computer science. Topics include combinatorics, relations, functions, computational complexity, recurrences, and graph theory. (F, Sp)

** C S 2970. Special Topics/Seminar.****1-3 Credit Hours.**

Special Topics. 1 to 3 hours. May be repeated; Maximum credit nine hours. Special topics course for content not currently offered in regularly scheduled courses. May include library and/or laboratory research, and field projects. (Irreg.)

** C S 3113. Introduction to Operating Systems.****3 Credit Hours.**

Prerequisite: C S 2413 and C S 2813 or MATH 2513, and C S 2614 or ECE 2214. An introduction to the major concepts and techniques of designing and implementing operating systems including: memory management, process management, information management, and computer security. Principles of performance evaluation. Class projects require the design and implementation of software systems. A UNIX family operating system will be used. (F)

** C S 3203. Software Engineering.****3 Credit Hours.**

Prerequisite: C S 2413, and C S 2813 or MATH 2513. Methods and tools for software specification, design, and documentation. Emphasis on architectural modularity, encapsulation of software objects, and software development processes such as design review, code inspection, and defect tracking. Students apply these ideas to design and document software products. Study of professional ethics, responsibility, legal issues. No student may obtain credit for CS 3203 and C S 5213. (F)

** C S 3323. Principles of Programming Languages.****3 Credit Hours.**

Prerequisite: C S 2413, and C S 2813 or MATH 2513, and ENGL 3153 or BC 2813 or ENGR 2002 as a prerequisite or concurrent enrollment. An introduction to theoretical foundations and paradigms of programming languages. Topics include basic concepts such as lexical analysis, syntax analysis, type systems and semantics, some practical issues such as memory management and exception handling, and programming paradigms such as imperative programming, object-oriented programming, functional programming and scripting. (Sp)

** C S 3440. Mentored Research Experience.****3 Credit Hours.**

0 to 3 hours. Prerequisite: CS 2413 and CS 2813 or Math 2513 and permission of instructor; May be repeated, maximum credit 12 hours. For the inquisitive student to apply the scholarly processes of the discipline to a research or creative project under the mentorship of a faculty member. Student and instructor should complete an Undergraduate Research & Creative Projects (URCP) Mentoring Agreement and file it with the URCP office. Not for honors credit. (F, Sp, Su)

** C S 3823. Theory of Computation.****3 Credit Hours.**

Prerequisite: CS 2413 and CS 2813 or MATH 2513 or CS 5005 or DSA 5005. Introduction to abstract machine theory and formal language theory. Topics include Turing machines, finite/pushdown automata, deterministic versus nondeterministic computations, context-free grammars, and mathematical properties of these systems. (F)

** C S 3960. Honors Reading.****1-3 Credit Hours.**

1 to 3 hours. Prerequisite: admission to Honors Program. May be repeated; maximum credit six hours. Consists of topics designated by the instructor in keeping with the student's major program. Covers materials not usually presented in the regular courses. (F, Sp)

** C S 3970. Honors Seminar.****1-3 Credit Hours.**

1 to 3 hours. Prerequisite: admission to Honors Program. May be repeated with change of topic; maximum credit eight hours. Projects covered will vary. Deals with concepts not usually presented in regular coursework. (Irreg.)

** C S 3980. Honors Research.****1-3 Credit Hours.**

1 to 3 hours. Prerequisite: admission to Honors Program. May be repeated with change of subject matter; maximum credit six hours. Provides an opportunity for the gifted Honors candidate to work on a special project in the student's field. (F, Sp, Su)

** C S 3990. Independent Study.****1-3 Credit Hours.**

1 to 3 hours. Prerequisite: permission of instructor and junior standing. May be repeated once with change of content. Independent study may be arranged to study a subject not available through regular course offerings. (F, Sp, Su)

** C S 4013. Artificial Intelligence.****3 Credit Hours.**

(Slashlisted with C S 5013) Prerequisite: CS 2413 or CS 5005, and CS 2813 or CS 4005 or MATH 2513. Study of the methods of search, knowledge representation, heuristics, and other aspects of automating the solution of problems requiring intelligence. No student may earn credit for both 4013 and 5013. (Sp)

** C S 4023. Introduction to Intelligent Robotics.****3 Credit Hours.**

(Slashlisted with C S 5023) Prerequisite: C S 2413, and C S 2813 or MATH 2513. History of intelligent robotics; functional models approach; reactive robots; ethology for robotics; architectures and methodologies; implementation; sensing; hybrid deliberative/reactive robotics; multi-robot systems; navigation; topological path planning; metric path planning; localization and mapping. No student may earn credit for both 4023 and 5023. (F)

** C S 4033. Machine Learning Fundamentals.****3 Credit Hours.**

(Slashlisted with C S 5033) Prerequisites: C S 2413, and C S 2813 or MATH 2513, and MATH 4753 or ISE 3293 or MATH 4743, and MATH 3333, and MATH 3113 or MATH 3413. Topics include decision trees, relational learning, neural networks, Bayesian learning, reinforcement learning, multiple-instance learning, feature selection, learning appropriate representations, clustering, and kernel methods. No student may earn credit for both 4033 and 5033. (F)

** C S 4053. Computer Graphics.****3 Credit Hours.**

(Slashlisted with C S 5053) Prerequisite: C S 2413, and C S 2813 or MATH 2513, and MATH 3333. An introduction to computer graphics. Topics include coordinate systems, transformations, rendering in both two and three dimensions, and graphical programming. No student may earn credit for both 4053 and 5053. (F)

** C S 4063. Human Computer Interaction.****3 Credit Hours.**

(Slashlisted with CS 5063) Prerequisite: C S 2413, and C S 2813 or MATH 2513. An introduction to human-computer interaction and graphical user interfaces. Topics include principles of human-computer interaction, human perceptual and cognitive abilities, user interface analysis and design, window systems, and social implications of computing. Current user interface programming tools will be described and used. Oral presentations are required for some assignments. No student may earn credit for both 4063 and 5063. (Sp)

** C S 4113. Distributed Operating Systems.****3 Credit Hours.**

(Slashlisted with C S 5113) Prerequisite: C S 3113, and Mathematics 4753 or Industrial Engineering 3293 or Mathematics 4743 or Engineering 3293. Continuation of study from 3113. Advanced topics and examples and simulation techniques used in performance evaluation. No student may earn credit for both 4113 and 5113. (Sp)

** C S 4133. Data Networks.****3 Credit Hours.**

(Slashlisted with 5133) Prerequisite: 3113 or permission of instructor. Comprehensive treatment of data networking principles including: layered protocol design and their functions, tools for performance analysis, multi-access communication, routing and flow control. No student may earn credit for both 4133 and 5133. (F)

** C S 4173. Computer Security.****3 Credit Hours.**

(Slashlisted with C S 5173) Prerequisite: CS 3113. An introduction to computer security. Topics include applied cryptography, access control, programming and software security, operating system security, network security protocols, and the legal and ethical aspects of security software. (F)

** C S 4273. Capstone Design Project.****3 Credit Hours.**

Prerequisite: C S 3203, and C S major or C S minor. Methods and tools for software development, testing, and delivery. Emphasis on data abstraction and reusable components. Students working in teams implement a significant software product, including design documents, user's guide, and process reports. Students will practice oral/written communication skills. Study of professional social issues and responsibilities. No student may obtain credit for C S 4273 and C S 5213. (Sp) [V].

** C S 4281. Engineering Co-Op Program.****1 Credit Hour.**

(Crosslisted with AME, CH E, CEES, ECE, EPHY, ISE and BME 4281) Prerequisite: Departmental permission and junior standing. May be repeated; maximum credit 6 hours. The Co-Op program provides students an opportunity to enhance their education via career exploration in related professional work experiences. Course assignments help students articulate their experiences by completing journals; mid-term paper; final paper and/or final presentation. Faculty receive an evaluation from the student's Co-Op supervisor who monitors performance. Faculty collaborate with the Co-Op supervisor to ensure student success. (F, Sp, Su)

** C S G4323. Compiler Construction.****3 Credit Hours.**

Prerequisite: 2413 and 3823. Introduction to the theory and implementation of programming language compilers and interpreters. Class projects require the design of medium scale software systems. (Sp)

** C S 4410. Programming Competition.****0 Credit Hours.**

Prerequisite: Permission of Instructor. Prepare students to participate in regional, national, and international computer programming competitions. Students will work in teams to solve challenging computer programming problems. (F, Sp)

** C S G4413. Algorithm Analysis.****3 Credit Hours.**

(Crosslisted with DSA 4413) Prerequisites: C S 2413 and C S 2813; or MATH 2513; or C S 5005. Design and analysis of algorithms and measurement of their complexity. This course introduces various algorithm design strategies: divide and conquer, greedy principle and dynamic programming to solve a variety of problems using algorithms of various types - deterministic and randomized, serial and parallel, centralized and decentralized, program based and circuit based. (F)

** C S 4433. Computational Methods in Discrete Optimization.****3 Credit Hours.**

(Slashlisted with C S 5433) Prerequisite: MATH 3333 and C S 4413 or concurrent enrollment in 4413. Linear programming: simplex method for LP problems, degeneracy and anticycling strategies, duality theory and complementary slackness conditions, revised simplex method, sensitivity analysis and simplex method for general LP problems. Network optimization: the transshipment problem, network simplex method, shortest path algorithms, the maximum flow problem, and the primal dual method. No student may earn credit for both 4433 and 5433. (F, Sp)

** C S 4473. Parallel, Distributed, and Network Programming.****3 Credit Hours.**

(Slashlisted with C S 5473) Prerequisite: CS 3113 and CS 4413. Parallel and distributed architectures, algorithms, programming paradigms and network communication protocols and programming. Topics include asynchronous/synchronous computation, GPU architectures, load balancing, memory hierarchies, other parallel and distributed models of computation, concepts about computer networks, including internet protocol stack and internet architecture, and socket programming using TCP and UDP. No student may earn credit for both 4473 and 5473. (Sp)

** C S G4513. Database Management Systems.****3 Credit Hours.**

(Crosslisted with DSA 4513) Prerequisites: C S 2413 and C S 2813; or MATH 2513; or C S 5005. The design and implementation of a DBMS including data models, query languages, entity-relationship diagrams, functional dependencies, normalization, storage structures, access methods, query processing, security and transaction management, and applications. The impact of databases on individuals, organizations, and society, and legal and professional responsibilities including security and privacy will be discussed. A commercial DBMS is used. Students practice written communication skills. (F)

** C S G4613. Computer Architecture.****3 Credit Hours.**

(Crosslisted with ECE 4613) Prerequisite: ECE 3223 or C S 2614 or C S 2613. Covers basic concepts of computer system design and communication between components, along with current and historical examples of computer architecture. (F, Sp)

** C S 4743. Scientific Computing I.****3 Credit Hours.**

(Slashlisted with C S 5743) Prerequisite: MATH 3333. Interaction between applications, architectures, and algorithms. Review of linear algebra, serial, pipelined vector processors, cluster of processors. Measures of proformance of parallel algorithms. Parallel algorithms for the solution of linear systems. No student may earn credit for both 4743 and 5743. (F)

** C S 4823. Cryptography.****3 Credit Hours.**

(Slashlisted with 5823) Prerequisite: 3823 and 4413. Elementary number theory, time complexity for doing arithmetic, finite fields, RSA, discrete logarithm and Diffie-Hellman, zero-knowledge protocols and oblivious transfer. Basic elliptic curve cryptosystems, elliptic curve factorization and primality proving. No student may earn credit for both 4823 and 5823. (Sp)

** C S 4910. Senior Reading and Research.****1-3 Credit Hours.**

1 to 3 hours. Prerequisite: senior standing, permission of instructor. May be repeated with change of subject matter; maximum credit six hours. Individually supervised reading and research in computing science for gifted seniors. (F, Sp, Su)

** C S 4960. Directed Readings.****1-4 Credit Hours.**

1 to 4 hours. Prerequisite: good standing in University; permission of instructor and dean. May be repeated; maximum credit four hours. Designed for upper-division students who need opportunity to study a specific problem in greater depth than formal course content permits. (Irreg.)

** C S 4970. Undergraduate Seminar.****1-3 Credit Hours.**

0 to 3 hours. May be repeated with change of subject matter; maximum credit three hours. A special type of seminar necessitated by the rapidly changing nature of modern data processing information science and computing sciences. (Irreg.)

** C S 4973. Special Topics.****3 Credit Hours.**

Prerequisite: 2413 and permission of instructor. May be repeated with change of subject matter; maximum credit nine hours. A special topics course necessitated by the rapidly changing nature of computer sciences. Topics offered under this number will be accepted as approved Computer Science electives for Computer Science majors. (Irreg.)

** C S 4990. Independent Study.****1-3 Credit Hours.**

1 to 3 hours. Prerequisite: Senior standing and permission of instructor. May be repeated; maximum credit nine hours but total credit applicable to any degree may be limited. Individual or group research and development projects involving original laboratory, analytical or theoretical investigations and syntheses. Specific objectives and work requirements are established by prior agreement of the instructor and student. Students should expect to spend at least 48 hours for each credit hour and to submit appropriate reports or papers (F, Sp, Su).

** C S 5005. Computing Structures.****5 Credit Hours.**

(Crosslisted with DSA 5005) Prerequisite: CS 2334, MATH 1914 or MATH 1823 or with permission of graduate liaison. This course has three parts: discrete mathematics, object-oriented programming in C++, and data structures in C++. As part of the discrete mathematics students will be introduced to combinatorics, logic, relations, functions, computational complexity, automata, and graph theory. Students will be introduced to the fundamentals of object-oriented programming and learn to design, build, and analyze data structures using object-oriented principles and techniques. Credit hours earned for this course cannot be used to fulfill degree requirements for the B.S., M.S. or Ph.D. programs in computer science. (Irreg.)

** C S 5013. Artificial Intelligence.****3 Credit Hours.**

(Slashlisted with C S 4013) Prerequisite: graduate standing and C S 2413 or C S 5005, and C S 2813 or C S 4005 or MATH 2513. Study of the methods of search, knowledge representation, heuristics, and other aspects of automating the solution of problems requiring intelligence. No student may earn credit for both 4013 and 5013. (Sp)

** C S 5023. Introduction to Intelligent Robotics.****3 Credit Hours.**

(Slashlisted with C S 4023) Prerequisite: graduate standing and C S 2413, and C S 2813 or MATH 2513. History of intelligent robotics; functional models approach; reactive robots; ethology for robotics; architectures and methodologies; implementation; sensing; hybrid deliberative/reactive robotics; multi-robot systems; navigation; topological path planning; metric path planning; localization and mapping. No student may earn credit for both 4023 and 5023. (F)

** C S 5033. Machine Learning Fundamentals.****3 Credit Hours.**

(Slashlisted with C S 4033) Prerequisite: Graduate standing and C S 2413; C S 2813 or MATH 2513; MATH 4753 or ISE 3293 or MATH 4743; MATH 3333; and MATH 3113 or MATH 3413. Topics include decision trees, relational learning, neural networks, Bayesian learning, reinforcement learning, multiple-instance learning, feature selection, learning appropriate representations, clustering, and kernel methods. No student may earn credit for both 4033 and 5033. (F)

** C S 5043. Advanced Machine Learning.****3 Credit Hours.**

Prerequisite: Graduate standing; MATH 3333; MATH 4743 or MATH 4753 or ENGR 3293 or ISE 3293; and C S 4033/5033 or C S 5073; or permission of the instructor. Topics include deep learning, deep networks, convolutional neural networks, recurrent neural networks, transformers, autoencoders, generative adversarial networks, and explainable deep learning. (Irreg.)

** C S 5053. Computer Graphics.****3 Credit Hours.**

(Slashlisted with C S 4053) Prerequisite: graduate standing and C S 2413, and C S 2813 or MATH 2513, and MATH 3333. An introduction to computer graphics. Topics include coordinate systems, transformations, rendering in both two and three dimensions, and graphical programming. No student may earn credit for both 4053 and 5053. (F)

** C S 5063. Human Computer Interaction.****3 Credit Hours.**

(Slashlisted with CS 4063) Prerequisite: Graduate standing and C S 2413, and C S 2813 or MATH 2513; or departmental permission. An introduction to human computer interaction and graphical user interfaces. Topics include principles of human computer interaction, human perceptual and cognitive abilities, user interface analysis and design, window systems, and social implications of computing. Current user interface programming tools will be described and used. Oral presentations are required for some assignments. No student may earn credit for both 4063 and 5063. (Sp)

** C S 5073. Artificial Neural Networks Evolution.****3 Credit Hours.**

Prerequisite: CS 2413 and CS 2813, or CS 5005, and MATH 3333. Overview of computational intelligence and artificial evolution, artificial neural networks and artificial evolution, introduction to artificial life and neuro-evolution, and evolutionary robotics. (F)

** C S 5093. Visual Analytics.****3 Credit Hours.**

Prerequisite: permission of instructor. Exploration and analysis of complex information through visual interactive computational tools and techniques. Topics include analytic reasoning, sense-making, knowledge dissemination, data representation and transformation, visual abstraction, coordinated interaction, visual query languages, spatiotemporal visualization, and applications of visual analysis. (Sp)

** C S 5113. Distributed Operating Systems.****3 Credit Hours.**

(Slashlisted with C S 4113) Prerequisite: Graduate standing, C S 3113; and MATH 4753, ISE 3293, or MATH 4743. Advanced topics, examples, and simulation techniques used in performance evaluation. No student may earn credit for both 4113 and 5113. (Sp)

** C S 5133. Data Networks.****3 Credit Hours.**

(Slashlisted with 4133) Prerequisite: 3113 or 5004 or permission of instructor. Comprehensive treatment of data networking principles including: layered protocol designs and their functions, tools for performance analysis, multi-access communication, routing and flow control. No student may earn credit for both 4133 and 5133. (F)

** C S 5143. Network Design and Management.****3 Credit Hours.**

Prerequisite: 4133 or 5133, or equivalent. Basic concepts in networks; modeling and evaluation techniques; network analysis: delay, loss and throughput, centralized network design; distributed network design, network reliability; applications to local area wireless, wide area, multi-service networking, etc.; network management: SNMP, OSI management, distributed network management and architectures. (Sp)

** C S 5173. Computer Security.****3 Credit Hours.**

(Slashlisted with C S 4173) Prerequisite: CS 3113. An introduction to computer security. Topics include applied cryptography, access control, programming and software security, operating system security, network security protocols, and the legal and ethical aspects of security software (F)

** C S 5213. Software Engineering Processes.****3 Credit Hours.**

Prerequisite: graduate standing, C S 3113 or C S 3823 or C S 5005. No student may obtain credit for C S 4263 or C S 4273 and CS 5213. Effective processes for software requirements specification, planning, design, documentation, development, review, defect tracking, testing, product delivery, and product evaluation. Emphasis on resource tracking and software quality. Students work in teams to develop, deliver, and evaluate software products. (Sp)

** C S 5293. Text Analytics.****3 Credit Hours.**

Prerequisite: C S 2413 or C S 5005; CS 2813 or MATH 2513; and MATH 4743 or MATH 4753 or ISE 3293 or ISE 5013. The course covers the design and implementation of algorithms to extract useful knowledge from text to support decision making, including methods to obtain data sets, understanding data formats, detecting duplicates, cleaning data sets, tagging, indexing, search, evaluating algorithms, classification, clustering, topic modeling, and entity resolution. (Sp)

** C S 5413. Computational Complexity.****3 Credit Hours.**

Prerequisite: 4413 and 3823 or 5813. Computational complexity theory dealing with various models of computation and a detailed analysis of P and NP hard problems. (Sp)

** C S 5433. Computational Methods in Discrete Optimization.****3 Credit Hours.**

(Slashlisted with C S 4433) Prerequisite: MATH 3333 and C S 4413 or concurrent enrollment in 4413. Linear programming: simplex method for LP problems, degeneracy and anticycling strategies, duality theory and complementary slackness conditions, revised simplex method, sensitivity analysis and simplex method for general LP problems. Network optimization: the transshipment problem, network simplex method, shortest path algorithms, the maximum flow problem, and the primal dual method. No student may earn credit for both 4433 and 5433. (F)

** C S 5443. Advanced Discrete Optimization and Networks.****3 Credit Hours.**

Prerequisite: 4413. Review of basic algorithm techniques: DFS, BFS, shortest paths, min-cost spanning tree, etc.; maximum flow problem: labeling and preflow-push algorithms, maximum flow in unit capacity networks and complexity analysis; min cost-flow problems: duality theory, network simplex, primal-dual and relaxation methods; matching: bipartite matching, weighted matching and optimum assignment problems; connectivity: biconnectivity and K-connectivity algorithms; heuristics and approximation algorithms; applications: network design, network reliability and Q0s routing etc. (Sp)

** C S 5463. Advanced Computer Architecture.****3 Credit Hours.**

(Crosslisted with ECE 5463) Prerequisite: C S 4613. The design of modern programmable computer systems with emphases on exploiting parallelism at all levels, designing within constraints, including energy consumption, and the impact of architecture on software design. Covers state of the art computer architecture, case studies and trends. (Sp)

** C S 5473. Parallel, Distributed, and Network Programming.****3 Credit Hours.**

(Slashlisted with C S 4473) Prerequisite: Graduate standing, C S 3113, and C S 4413. Parallel and distributed architectures, algorithms, programming paradigms and network communication protocols and programming. Topics include asynchronous/synchronous computation, GPU architectures, load balancing, memory hierarchies, other parallel and distributed models of computation, concepts about computer networks, including internet protocol stack and internet architecture, and socket programming using TCP and UDP. No student may earn credit for both 4473 and 5473. (Sp)

** C S 5483. Network Science.****3 Credit Hours.**

Prerequisite: C S 4413 or DSA 4413 or permission of instructor. Topics to be covered include fundamental algorithms for network analysis, investigating properties of networks, learning community detection methods, understanding network inference methods, understanding dynamics of networks, percolation, resilience, spreading phenomenon, social influence, and cascades. A variety of application contexts will be used, including physical, informational, biological, cognitive, and social systems. (F)

** C S 5513. Advanced Database Management.****3 Credit Hours.**

Prerequisite: 4513. An advanced course dealing with both current database applied research subjects and theoretical aspects of relational databases. Selected topics such as distributed databases, object-oriented databases, real-time databases, and multimedia databases will be discussed. (Sp)

** C S 5593. Data Mining.****3 Credit Hours.**

Prerequisite: graduate standing and permission from the instructor or department. Covers the process, concepts and techniques in data mining, including advanced techniques that deal with Big Data. It provides students with the necessary background to conduct data mining tasks for real world problems. The topics covered include understanding and preprocessing data, classification, association analysis, cluster analysis, anomaly detection, and Big Data mining. (F)

** C S 5613. Computer Networks and Distributed Processing.****3 Credit Hours.**

Prerequisite: 4613. Provides a comprehensive treatment of the analysis and design of computer networks. Data communication techniques and distributed processing in a network architecture will be examined. (Sp)

** C S 5703. Machine Learning Practice.****3 Credit Hours.**

(Crosslisted with DSA 5703) Prerequisite: Graduate standing; C S 4013/5013, C S 5593, ISE/DSA 5103; or permission of instructor. Machine learning is the data-driven process of constructing mathematical models that can be predictive of data observed in the future. In this course, we will study the use of a range of supervised, semi-supervised and unsupervised methods to solve both classification and regression problems. (F)

** C S 5713. Computational Learning Theory.****3 Credit Hours.**

Prerequisite: Departmental Permission and C S 4413 or DSA 4413. Topics of machine learning theory. Learning using membership queries, equivalence queries, version spaces, decision trees, perceptrons. Probably approximately correct (PAC) learning, Occam algorithms, VC-dimension, sample sizes for distribution-independent learning. Representation issues, proper learning, reductions, intractability, learning in the realizable case, agnostic learning. Noise models, statistical queries, PAC learning under noise. Adversarially robust learning against poisoning attacks and against adversarial examples. (F)

** C S 5743. Scientific Computing I.****3 Credit Hours.**

(Slashlisted with C S 4743) Prerequisite: graduate standing and MATH 3333 and AME 3723 or MATH 4073 or ENGR 3723 or C S 3723. Interaction between applications, architectures, and algorithms. Review of linear algebra, serial, pipelined vector processors, cluster of processors. Measures of proformance of parallel algorithms. Parallel algorithms for the solution of linear systems. No student may earn credit for both 4743 and 5743. (F)

** C S 5753. Scientific Computing II.****3 Credit Hours.**

Prerequisite: 5743. Special research topics in scientific computing. Possible topics include optimization algorithms, time series modeling, Kalman filtering techniques, and multivariate statistical techniques. (Sp)

** C S 5813. Formal Languages.****3 Credit Hours.**

Prerequisite: 3823. Theory of formal languages. Mathematical modeling of natural or artificial objects, events, and phenomena. Topics include systems for linear/nonlinear objects, their language-theoretical properties, and the related machine theory. (F)

** C S 5823. Cryptography.****3 Credit Hours.**

(Slashlisted with 4823) Prerequisite: 3823 and 4413. Elementary number theory, time complexity for doing arithmetic, finite fields, RSA, discrete logarithm and Diffie-Hellman, zero-knowledge protocols and oblivious transfer. Basic elliptic curve cryptosystems, elliptic curve factorization and primality proving. No student may earn credit for both 4823 and 5823. (Sp)

** C S 5833. Blockchains & Cryptocurrencies.****3 Credit Hours.**

Prerequisite: Departmental Permission and C S 3823 or C S 4413. This course attempts to bridge the gap in the technical understanding of blockchain architectures and their applications as a currency. Specifically, this course will address the following fundamental questions and more: How does Bitcoin work and what makes it different? How secure are Bitcoins? How anonymous are Bitcoin users? What applications can be built using Bitcoin as a platform? (Sp)

** C S 5960. Directed Readings.****1-3 Credit Hours.**

1 to 3 hours. Prerequisite: graduate standing and permission of department. May be repeated; maximum credit twelve hours. Directed readings and/or literature reviews under the direction of a faculty member. (F, Sp, Su)

** C S 5970. Graduate Seminar.****1-3 Credit Hours.**

Prerequisite: permission of instructor. May be repeated with a change of subject matter; maximum credit six hours. Selected topics of current research interest not covered by regularly scheduled coursework. (F, Sp, Su)

** C S 5980. Research for Master's Thesis.****2-9 Credit Hours.**

Variable enrollment, two to nine hours; maximum credit applicable toward degree, six hours. (F, Sp, Su)

** C S 5990. Independent Studies.****1-3 Credit Hours.**

1 to 3 hours. Prerequisite: graduate standing, permission of instructor. May be repeated with change of topic; maximum graduate credit nine hours. Supervised individual reading and research in computer science for graduate students. (F, Sp, Su)

** C S 6960. Directed Readings.****1-3 Credit Hours.**

1 to 3 hours. Prerequisite: graduate standing or permission of instructor. May be repeated; maximum credit six hours. Directed readings and/or literature review under the direction of a faculty member. (Irreg.)

** C S 6970. Special Topics/Seminar.****1-3 Credit Hours.**

1 to 3 hours. Prerequisite: graduate standing or permission of instructor. May be repeated; maximum credit 12 hours. Special topics or seminar course for content not currently offered in regularly scheduled courses. May include library and/or research and field projects. (Irreg.)

** C S 6980. Research for Doctoral Dissertation.****2-16 Credit Hours.**

2 to 16 hours. Prerequisites: Graduate standing and permission of instructor; may be repeated. Directed research culminating in the completion of the doctoral dissertation. (F, Sp, Su)

** C S 6990. Independent Study.****1-3 Credit Hours.**

1 to 3 hours. Prerequisite: Graduate standing and permission of instructor. May be repeated; maximum credit nine hours. Contracted independent study for a topic not currently offered in regularly scheduled courses. Independent study may include library and/or laboratory research and field projects. (Irreg.)

## Faculty

Last Name | First/Middle Name | Middle init. | OU Service start | Title(s), date(s) appointed | Degrees Earned, Schools, Dates Completed |
---|---|---|---|---|---|

Antonio | John | 1999 | PROFESSOR OF COMPUTER SCIENCE, 1999; HOWARD & SUZANNE KAUFFMAN CHAIR IN ENGINEERING, 2014; INTERIM DEAN OF MEWBOURNE COLLEGE OF EARTH & ENERGY, 2022 | PhD, Texas A&M Univ, 1989; MS, Texas A&M Univ, 1986; BS, Texas A&M Univ, 1984 | |

Atiquzzaman | Mohammed | 2001 | PROFESSOR OF COMPUTER SCIENCE, 2003; EDITH KINNEY GAYLORD PRESIDENTIAL PROFESSOR, 2009 | PhD, Univ of Manchester, 1987; MS, Univ of Manchester, 1984; BS, Bangladesh Univ Engr & Tech, 1982 | |

Cheng | Qi | 2001 | PROFESSOR OF COMPUTER SCIENCE, 2014; WILLIAMS COMPANY FOUNDATION PRESIDENTIAL PROFESSOR, 2014 | PhD, Univ of Southern California, 2001; MS, Fudan Univ, 1995; BS, Nankai Univ, 1992 | |

Diochnos | Dimitrios | I | 2019 | ASSISTANT PROFESSOR OF COMPUTER SCIENCE, 2019 | PhD, Univ of Illinois at Chicago, 2013; MS, Univ of Athens, 2007; BS, Univ of Athens, 2004 |

Ebert | David | S | 2020 | PROFESSOR OF COMPUTER SCIENCE & ELECTRICAL COMPUTER ENGINEERING, 2020; GALLOGLY CHAIR #3, 2020; ASSOCIATE VP OF RESEARCH & PARTNERSHIPS, 2020; DIRECTOR - DATA INSTITUTE FOR SOCIETAL CHALLENGES, 2020 | PhD, Ohio State Univ, 1991; MS, Ohio State Univ, 1987; BS, Ohio State Univ, 1986 |

Fagg | Andrew | H | 2004 | ASSOCIATE PROFESSOR OF COMPUTER SCIENCE, 2004; BRIAN E. & SANDRA O'BRIEN PRESIDENTIAL PROFESSOR, 2017 | PhD, Univ of Southern California, 1996; MS, Univ of Southern California, 1991; BS, Carnegie Mellon Univ, 1989 |

Fang | Song | 2018 | ASSISTANT PROFESSOR OF COMPUTER SCIENCE, 2018 | PhD, Univ of South Florida, 2018; MS, Beijing Univ of Posts & Telecommunications, 2013; BS, South China Univ of Technology, 2011 | |

Gruenwald | Gia Loi | L | 1991 | SAMUEL ROBERTS NOBLE PRESIDENTIAL PROFESSOR, 1998; PROFESSOR OF COMPUTER SCIENCE, 2002; DAVID W. FRANKE PROFESSOR OF COMPUTER SCIENCE, 2006 | PhD, Southern Methodist Univ, 1990; MS, Univ of Houston, 1983; BS, Univ of Saigon, 1978 |

Habibi | Golnaz | 2022 | ASSISTANT PROFESSOR OF COMPUTER SCIENCE, 2022 | PhD, Rice Univ, 2015; MS, Tarbiat Modares Univ-Tehran, 2007; BS, Toosi Univ-Tehran, 2005 | |

Hougen | Dean | 2001 | ASSOCIATE PROFESSOR OF COMPUTER SCIENCE, 2007; INTERIM DIRECTOR OF COMPUTER SCIENCE, 2022 | PhD, Univ of Minnesota, 1998; BS, Univ of Minnesota, 1988 | |

Khanmohammadi | Sina | 2021 | ASSISTANT PROFESSOR OF COMPUTER SCIENCE, 2021 | PhD, State Univ of New York-Binghamton, 2016; MS, Univ of Hertfordshire, 2012; BS, Univ of Tabriz-Iran, 2010 | |

Lan | Chao | 2020 | ASSISTANT PROFESSOR OF COMPUTER SCIENCE, 2020 | PhD, Univ of Kansas, 2017; MS, Nanjing Univ of Posts & Telecommunications, 2011; BS, Nanjing Univ of Posts & Telecommunications, 2008 | |

Maiti | Anindya | 2020 | ASSISTANT PROFESSOR OF COMPUTER SCIENCE, 2020 | PhD, Wichita State Univ, 2018; MS, Wichita State Univ, 2014; BS, Vellore Institute of Technology, 2012 | |

McGovern | Amy | 2005 | PROFESSOR OF COMPUTER SCIENCE, 2018; PROFESSOR OF METEOROLOGY, 2020; LLOYD G. & JOYCE AUSTIN PRESIDENTIAL PROFESSORSHIP, 2020 | PhD, Univ of Massachusetts-Amherst, 2002; MS, Univ of Massachusetts-Amherst, 1998; BS, Carnegie Mellon Univ, 1996 | |

Pan | Chongle | 2018 | ASSOCIATE PROFESSOR OF COMPUTER SCIENCE, 2018; ASSOCIATE PROFESSOR OF MICROBIOLOGY AND PLANT BIOLOGY, 2018 | PhD, Univ of Tennessee, 2006; BS, East China Normal Univ, 2001 | |

Park | Ji Hwan | 2021 | ASSISTANT PROFESSOR OF COMPUTER SCIENCE, 2021 | PhD, Stony Brook Univ, 2017; MS, Korea Advanced Institute of Science & Technology, 2006; BS, Hongik Univ, 2004 | |

Radhakrishnan | Sridhar | 1990 | PROFESSOR OF COMPUTER SCIENCE, 2002; CO-DIRECTOR DATA SCIENCE AND ANALYTICS, 2014; INTERIM ASSOCIATE DEAN FOR PARTNERSHIPS, 2022 | PhD, Louisiana State Univ, 1990; MS, Louisiana State Univ, 1987; MLIS, Louisiana State Univ, 1986; BS, Univ of South Alabama, 1985; BSC, Univ of Madras, 1983 | |

Trytten | Deborah | 1992 | ASSOCIATE PROFESSOR OF COMPUTER SCIENCE, 1998; ASSOCIATE PROFESSOR OF WOMENS' AND GENDER STUDIES, 2014; PRESIDENT'S ASSOCIATES PRESIDENTIAL PROFESSOR, 2015 | PhD, Michigan State Univ, 1992; MS, Michigan State Univ, 1988; MS, Michigan State Univ, 1984; BS, Albion College, 1982 | |

Veras | Richard | M | 2021 | ASSISTANT PROFESSOR OF COMPUTER SCIENCE, 2021 | PhD, Carnegie Mellon Univ, 2017; MS, Carnegie Mellon Univ, 2016; BS, Univ of Texas-Austin, 2011 |

Weaver | Christopher | E | 2008 | ASSOCIATE PROFESSOR OF COMPUTER SCIENCE, 2014 | PhD, Univ of Wisconsin, 2006; MS, Univ of Wisconsin, 1997; BS, Michigan State Univ, 1991 |

Zhao | Shangqing | 2021 | ASSISTANT PROFESSOR OF COMPUTER SCIENCE, 2021 | PhD, Univ of South Florida, 2021; MS, Henan Polytechnic Univ, 2015; BS, Fujian Agriculture & Forestry Univ, 2010 |