Computer Science (CS)

CS 1003 Computer Proficiency

Description: For students with minimal personal computer skills. Use of Internet and productivity software such as word processing, spreadsheets, databases, and presentation software. The ability to log on to a personal computer, access the OSU network, and access OSU Web sites is assumed. Previously offered as CS 1002.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 1013 Computer Science Principles

Description: Computing as a creative human activity, abstraction to reduce detail and focus on concepts relevant to understanding and solving problems, describing data and information to facilitate the creation of knowledge, discuss algorithms as tools for developing and expressing solutions to computational problems, use programming is a creative process that produces computational artifacts; and discuss digital devices, systems, and the networks that interconnect them.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 1103 Computer Programming (A)

Prerequisites: MATH 1513 or higher, each with a grade of "C" or better.

Description: Introduction to computer programming using a high-level computer language, including subprograms and arrays. Principles of problem solving, debugging, documentation, and good programming practice. Elementary methods of searching and sorting. No prior programming or computing experience needed. Previously offered as CS 2103.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

General Education and other Course Attributes: Analytical & Quant Thought

CS 1113 Computer Science I (A)

Prerequisites: MATH 1513 or higher, with a grade of "C" or better.

Description: Introduction to computer science using a block-structured high-level computer language, including subprograms, arrays, recursion, records, and abstract data types. Principles of problem solving, debugging, documentation, and good programming practice. Elementary methods of sorting and searching. Use of operating system commands and utilities. Previously offered as CS 2113.

Credit hours: 3

Contact hours: Lecture: 2 Lab: 2 Contact: 4

Levels: Undergraduate

Schedule types: Lab, Lecture, Combined lecture and lab

Department/School: Computer Science

General Education and other Course Attributes: Analytical & Quant Thought

CS 2133 Computer Science II

Prerequisites: CS 1113 with a grade of "C" or better.

Description: Recursive algorithms. Intermediate methods of searching and sorting. Mathematical analysis of space and time complexity, worst case, and average case performance. Course previously offered as CS 3333.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 2351 Unix Programming

Prerequisites: CS 1113 or EET 2303 with a grade of "C" or better.

Description: The UNIX programming system. The programming environment. The UNIX file system and the shell. Use of pipes and filters. Course previously offered as CS 3451.

Credit hours: 1

Contact hours: Lab: 2 Contact: 2

Levels: Undergraduate

Schedule types: Lab

Department/School: Computer Science

CS 2433 C/C++ Programming

Prerequisites: CS 1113 with a grade of "C" or better.

Description: C/C++ programming language types, operators, expressions, control flow, functions, structures, pointers, arrays, UNIX interface. Basic object oriented programming using C++ and the related language syntax and functionality. Previously offered as CS 2432.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 2570 Special Problems in Computer Science

Prerequisites: Consent of instructor and freshman or sophomore standing.

Description: Current topics and applications of computer science. Existing and new topics to computer science. Allows lower-division students to study topics not provided in existing classes. Can be individual study or a class with a new subject. Offered for variable credit, 1-3 credit hours, maximum of 6 credit hours.

Credit hours: 1-3

Contact hours: Contact: 1-3 Other: 1-3

Levels: Undergraduate

Schedule types: Independent Study

Department/School: Computer Science

CS 3030 Industrial Practice in Computer Science

Prerequisites: CS 3443 and MATH 2144, each with a grade of "C" or better, junior standing, consent of departmental adviser.

Description: Applied computing in industry. Topics vary with cooperating employers. Written reports will be specified by adviser. Basic object oriented programming using C++ and the related language syntax and functionality. Offered for variable credit, 1-6 credit hours, maximum of 9 credit hours.

Credit hours: 1-6

Contact hours: Contact: 1-6 Other: 1-6

Levels: Undergraduate

Schedule types: Independent Study

Department/School: Computer Science

CS 3353 Data Structures and Algorithm Analysis I

Prerequisites: CS 2133 and CS 3653, each with a grade of "C" or better.

Description: Storage, structures, data and information structures, list processing, trees and tree processing, graphs and graph processing, searching, and sorting. Previously offered as CS 4343 and CS 4344.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 3363 Organization of Programming Languages

Prerequisites: CS 2133 and (CS 3443 or ECEN 3213), each with a grade of "C" or better.

Description: Programming language constructs. Run time behavior of programs. Language definition structure. Control structures and data flow programming paradigms. Previously offered as CS 4363.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 3443 Computer Systems

Prerequisites: CS 2133 with a grade of "C" or better.

Description: Functional and register level description of computer systems, computer structures, addressing techniques, macros, linkage, input-output operations. Introduction to file processing operations and auxiliary storage devices. Programming assignments are implemented in assembly language.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 3513 Numerical Methods for Digital Computers

Prerequisites: MATH 2153 with a grade of "C" or better; MATH 3013 with a grade of "C" or better, or concurrent enrollment; or MATH 3263 with a grade of "C" or better and knowledge of programming.

Description: Errors, floating point numbers and operations, interpolation and approximation, solution of nonlinear equations and linear systems, condition and stability, acceleration methods, numerical differentiation and integration. Course previously offered as CS 3223.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 3570 Special Problems in Computer Science

Prerequisites: Junior standing and consent of instructor.

Description: Existing and new topics to computer science. Allows lower-division students to study topics not provided in existing classes. Can be individual study or a class with a new subject. Offered for variable credit, 1-6 credit hours, maximum of 6 credit hours.

Credit hours: 1-6

Contact hours: Contact: 1-6 Other: 1-6

Levels: Undergraduate

Schedule types: Independent Study

Department/School: Computer Science

CS 3613 Theoretical Foundations of Computing

Prerequisites: CS 2133 and CS 3653, each with a grade of "C" or better.

Description: Introduction to the classical theory of computer science. Sequential machines and their applications to devices, processes, and programming. Models of computation: finite-state automata, push-down automata, Turing machines. The role of non-determinism. Limits of digital computation. Computability and unsolvability. The Church-Turing Thesis.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 3653 Discrete Mathematics for Computer Science

Prerequisites: MATH 2144 with a grade of "C" or better.

Description: Theory and applications of discrete mathematical models fundamental to analysis of problems in computer science. Set theory, formal logic and proof techniques, relations and functions, combinatorics and probability, undirected and directed graphs, Boolean algebra, switching logic.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4143 Computer Graphics

Prerequisites: MATH 2163 and CS 3353, each with a grade of "C" or better.

Description: Interactive graphics programming; graphics hardware; geometrical transformation; data structures for graphic representations; viewing in three dimensions; representation of 3D shapes; hidden edge and hidden surface removal algorithms; shading models. May not be used for degree credit with CS 5143.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4153 Mobile Applications Development

Prerequisites: CS 2133 or 2433, each with a grade of "C" or better.

Description: The history of mobile apps and their implication on computing in general. Survey of the various platforms and approaches used for mobile apps. Examine the differences between "conventional" programs and mobile apps. Learn tools and techniques to develop mobile apps, and demonstrate proficiency through development assignments. Must have access to computer running Mac OS. May not be used for degree credit with CS 5153.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4173 Video Game Development

Prerequisites: CS 2133, and CS 2433 and MATH 2144, all with a grade of "C" or better.

Description: History of video games. A survey of various game platforms. Computer graphics, audio tools and techniques, and artificial intelligence for game development. Game engines. Game development tools and techniques. An overview of the video game industry from a development perspective. May not be used for degree credit with CS 5163.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4183 Video Game Design

Prerequisites: CS 2133 and CS 3653, each with a grade of "C" or better.

Description: Theory and pragmatics of game design including game mechanics, storytelling, and types of game play. The relationship between human/computer interaction and the user experience. A survey of game genres. An overview of the video game industry from a design perspective. May not be used for degree credit with CS 5183.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4243 Introduction to Computer Security

Prerequisites: CS 3443 or ECEN 3213, each with a grade of "C" or better.

Description: Introductory course to computer security. Covers a broad range of basic topics in security, including cryptography, computer security, and network security. May not be used for degree credit with CS 5243.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4273 Software Engineering

Prerequisites: CS 2133 and CS 3653 and (CS 3443 or ECEN 3213), each with a grade of "C" or better.

Description: Fundamental characteristics of the software life cycle. Tools, techniques, and management controls for development and maintenance of large software systems. Software metrics and models. Human factors and experimental design. Same course as ECEN 4273. May not be used for degree credit with CS 5473.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4283 Computer Networks

Prerequisites: CS 2133 with a grade of "C" or better; and CS 3443 or ECEN 3213 with a grade of "C" or better; UNIX knowledge.

Description: Computer networks, distributed systems and their systematic design. Introduction to the use, structure, and architecture of computer networks. Networking experiments to describe network topology. ISO reference model. Same course as ECEN 4283. May not be used for degree credit with CS 5383.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4323 Design and Implementation of Operating Systems I

Prerequisites: CS 2133; and CS 3443 or ENSC 3213 or ECEN 3213; and CS 3653 and CS 4343 or CS 3353, all with a grade of "C" or better.

Description: Process activation and process context block. Batch, multi-programmed, and timeshared operating system. Process management, memory management, and synchronization primitives. Deadlock prevention, avoidance, and detection. May not be used for degree credit with CS 5223.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4373 Agile Software Development

Description: This course includes a comprehensive overview of the principles and practices of Agile software development based on Agile community's recent recommendations. The emphasis is on quick realization of system value through disciplined, iterative, and incremental software development techniques and the elimination of wasteful practices.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4433 Introduction to Database Systems

Prerequisites: CS 2133 with a grade of "C" or better.

Description: An overview of database management systems, entity-relationship model, relational model, structural query language, relational algebra, relational database design with normalization theorems, XML; basic file organization and storage management; elementary e-commerce web application development; database systems and the Internet. May not be used for degree credit with CS 4433 and CS 5423.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4513 Introduction to Numerical Analysis

Prerequisites: MATH 2233 and MATH 3013, each with a grade of "C" or better, knowledge of programming or consent of instructor.

Description: Computer arithmetic and round-off errors, numerical solution to nonlinear equations, interpolation, numerical differentiation and integration, numerical solutions to ordinary differential equations, error analysis for numerical solutions and approximations. Additional topics may include direct and iterative solutions for linear systems of equations. Same course as MATH 4513. May not be used for degree credit with MATH 5513.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4523 Cloud Computing and Distributed Systems

Prerequisites: CS 3443; and CS 4343 or CS 3353, each with a grade of "C" or better.

Description: Cloud computing and distributed systems architectures and models. Usage of Virtual Machines. Distributed computing frameworks. Using the cloud for big data analytics. Cloud deployment of data science algorithms. Cloud services. Security. May not be used for degree credit with CS 5123.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4570 Special Topics in Computing

Prerequisites: Honors Program participation, junior standing.

Description: Advanced topics and applications of computer science. Typical topics include operating systems, multiprocessor systems, programming systems or various mathematical and statistical packages. Designed to allow students to study topics not provided in existing courses. Offered for variable credit, 1-3 credit hours, maximum of 5 credit hours.

Credit hours: 1-3

Contact hours: Contact: 1-3 Other: 1-3

Levels: Undergraduate

Schedule types: Independent Study

Department/School: Computer Science

CS 4623 Introduction to Cyber Physical Systems

Prerequisites: CS 2133 with grade of "C" or better.

Description: Introduction to principles and technologies dealing with cyber physical systems and Internet of Things (IoT). Design of cyber physical frameworks and the process underlying creation of 3D VR based simulation models and Next Generation Internet frameworks to support the adoption of cyber physical methodologies. Information modeling and systems engineering based techniques to support the design of collaborative methodologies for CPS contexts from various domains including robotics and medicine. May not be used for degree credit with CS 5623.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4743 Extended Reality

Prerequisites: CS 2133 and CS 2433 and CS 3653, each with a grade of "C" or better.

Description: Survey the history and state-of-the-art of immersive computing, aka VAMR (virtual/augmented/mixed reality) computing. Tools and techniques to develop for a variety of target platforms. Human physiological factors that affect the design and development of immersive systems. The relationship of immersive computing with IoT (Internet of Things). Construction of virtual environments and the tracking of real and virtual objects. Applications of immersive computing to solve real-world problems. May not be used for degree credit with CS 5743.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4783 Machine Learning

Prerequisites: CS 4343 or CS 3353, and MATH 3013, each with a grade of “C” or better.

Description: A probabilistic, statistical approach to automated pattern discovery applied to large datasets. Constructing computational models with this information and assessing their behavior and reliability. Representing data and devising tools for discovering these models. Class focuses on the development and analysis of learning algorithms as well as the mathematical formulations underlying statistical processing. May not be used for degree credit with CS 5783.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4793 Artificial Intelligence I

Prerequisites: CS 3353 with a grade of "C" or better.

Description: Broad coverage of core artificial intelligence (AI) topics, including search-oriented problem solving, knowledge representation, logical inference, AI languages, history and philosophy of AI. May not be used for degree credit with CS 5723.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4883 Social Issues in Computing

Prerequisites: Senior standing and a grade of "C" or better in ENGL 3323 or BCOM 3113 or BCOM 3223 or SPCH 3723.

Description: The history and evolution of computing systems, providing the background for the analysis of the social impact of computers. The social implications of computer use and or misuse with emphasis on the effects on the individual, society, and other human institutions. Social responsibilities of people involved in using or applying computers.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Undergraduate

Schedule types: Lecture

Department/School: Computer Science

CS 4983 Senior Capstone Project

Prerequisites: CS 3353 and CS 3363 and (CS 3443 or ECEN 3213), each with a grade of "C" or better.

Description: This course enables senior computer science majors to organize and apply the knowledge they have acquired from the undergraduate curriculum. Students are expected to work in teams to develop software solutions to real-world problems identified by an instructor. Teams are required to analyze the problem presented to them, design and implement a solution, and provide a report with performance analysis. Each team is also expected to present its work, including its ethical and social implications.

Credit hours: 3

Contact hours: Contact: 3 Other: 3

Levels: Undergraduate

Schedule types: Independent Study

Department/School: Computer Science

CS 4993 Senior Honors Project

Prerequisites: Departmental invitation, senior standing, Honors Program participation.

Description: A guided reading and research program ending with an honors project under the direction of a faculty member, with a second faculty reader and an oral examination. Required for graduation with departmental honors in computing and information science.

Credit hours: 3

Contact hours: Contact: 3 Other: 3

Levels: Undergraduate

Schedule types: Independent Study

Department/School: Computer Science

General Education and other Course Attributes: Honors Credit

CS 5000 Master's Thesis

Prerequisites: Consent of major professor.

Description: Roles and responsibilities of the agricultural education teacher; types of program offerings; steps of the teaching-learning process; place of agricultural education in relation to other educational programs in school systems. Offered for variable credit, 1-6 credit hours, maximum of 6 credit hours.

Credit hours: 1-6

Contact hours: Contact: 1-6 Other: 1-6

Levels: Graduate

Schedule types: Independent Study

Department/School: Computer Science

CS 5030 Professional Practice

Prerequisites: Graduate standing in computer science, consent of the department head.

Description: Experience in the application of computer science principles to problems encountered in industry and government. Participation in problem solving in the role of junior computer scientist, junior software engineer, or computer science intern. All problem solutions documented. Required written report to the major professor. Offered for variable credit, 1-9 credit hours, maximum of 9 credit hours.

Credit hours: 1-9

Contact hours: Contact: 1-9 Other: 1-9

Levels: Graduate

Schedule types: Independent Study

Department/School: Computer Science

CS 5033 Parallel Algorithms and Programming

Prerequisites: CS 4343 or CS 3353 with a grade of "C" or better, or consent of instructor.

Description: Models of parallel computation, design and analysis of parallel algorithms: fundamental parallel algorithms for selected sorting, arithmetic, and matrix, and graph problems, and applications in science and engineering, message-passing programming, and shared-memory programming.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5070 Seminar and Special Problems

Prerequisites: Consent of instructor.

Description: Designed to allow students to study advanced topics not provided in existing courses. Offered for variable credit, 1-6 credit hours, maximum of 6 credit hours.

Credit hours: 1-6

Contact hours: Contact: 1-6 Other: 1-6

Levels: Graduate

Schedule types: Independent Study

Department/School: Computer Science

CS 5113 Computer Organization and Architecture

Prerequisites: CS 3443 with a grade of "C" or better.

Description: Computer architecture, computer control, microprogrammed control, addressing structures, memory hierarchies, hardware description languages, specific architectures, hardware simulation, and emulation.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5123 Cloud Computing and Distributed Systems

Prerequisites: CS 3443; and CS 4343 or CS 3353, each with a grade of "C" or better.

Description: Cloud computing and distributed systems architectures and models. Usage of Virtual Machines. Distributed computing frameworks. Using the cloud for big data analytics. Cloud deployment of data science algorithms. Cloud services. Security. May not be used for degree credit with CS 4523.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5143 Computer Graphics

Prerequisites: MATH 2163 and CS 3353, each with a grade of "C" or better.

Description: Interactive graphics programming; graphics hardware; geometrical transformation; data structures for graphic representations; viewing in three dimensions; representation of 3D shapes; hidden edge and hidden surface removal algorithms; shading models. May not be used for degree credit with CS 4143.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5153 Mobile Applications Development

Prerequisites: CS 2133 or 2433, each with a grade of "C" or better.

Description: The history of mobile apps and their implication on computing in general. Survey of the various platforms and approaches used for mobile apps. Examine the differences between "conventional" programs and mobile apps. Learn tools and techniques to develop mobile apps, and demonstrate proficiency through development assignments. Must have access to computer running Mac OS. May not be used for degree credit with CS 4153.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5163 Video Game Development

Prerequisites: CS 2133, and CS 2433 and MATH 2144, all with a grade of "C" or better.

Description: History of video games. A survey of various game platforms. Computer graphics, audio tools and techniques, and artificial intelligence for game development. Game engines. Game development tools and techniques. An overview of the video game industry from a development perspective. May not be used for degree credit with CS 4173.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5173 Video Game Production

Prerequisites: CS 4173 and CS 4183, each with a grade of "C" or better.

Description: The various aspects of video game production and the video game industry will be covered, including technical production and testing, roles and responsibilities of team members, project management, and legal concerns related to video game production. Professionals from the video game industry will be invited to make presentations.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5183 Video Game Design

Prerequisites: CS 2133 and CS 3653, each with a grade of "C" or better.

Description: Theory and pragmatics of game design including game mechanics, storytelling, and types of game play. The relationship between human/computer interaction and the user experience. A survey of game genres. An overview of the video game industry from a design perspective. May not be used for degree credit with CS 4183.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5223 Design and Implementation of Operating Systems I

Prerequisites: CS 2133; and CS 3443 or ENSC 3213 or ENSC 3213; and CS 3653 and CS 4343 or CS 3353, all with a grade of "C" or better.

Description: Process activation and process context block. Batch, multi-programmed, and timeshared operating system. Process management, memory management, and synchronization primitives. Deadlock prevention, avoidance, and detection. May not be used for degree credit with CS 4323. For non-CS majors only.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5233 Intro to Database Systems

Prerequisites: CS 2133 with a grade of "C" or better.

Description: An overview of database management systems, entity-relationship model, relational model, structural query language, relational algebra, relational database design with normalization theorems, XML; basic file organization and storage management; elementary e-commerce web application development; database systems and the Internet. May not be used for degree credit with CS 4433 or CS 5423. Previously offered as CS 4433.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5243 Introduction to Computer Security

Prerequisites: CS 3443 with a grade of "C" or better.

Description: Introductory course to computer security. Covers a broad range of basic topics in security, including cryptography, computer security, and network security. May not be used for degree credit with CS 4243.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5253 Digital Computer Design

Prerequisites: ECEN 4243 or graduate standing.

Description: Analysis and design of digital computers. Arithmetic algorithms and the design of the arithmetic/logic unit (ALU). Serial and parallel data processing; control and timing systems; microprogramming; memory organization alternatives; input/output interfaces. Same course as ECEN 5253.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5263 Quantum Computing

Prerequisites: Graduate standing.

Description: The main theory of quantum information science and its applications to communications, computing and cryptography. Topics include introduction to quantum mechanics, quantum gates, circuits, entropy, cryptographic schemes, and implementations. Current technology in support of quantum processing will be reviewed.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5273 Advanced Software Engineering

Prerequisites: CS 4273 with a grade of "C" or better.

Description: Continuation of CS 4273. Formal methods for software design and development. Static analysis. Emerging design and development approaches. Model checking and model-based software reuse. Component-based software engineering and software repositories. Same course as ECEN 5273.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5283 Computer Network Programming

Prerequisites: CS 4283 with a grade of "C" or better.

Description: Detailed technical concepts related to Internet and multimedia, high speed LANS, high speed transport protocols, MPLS, multicasting, Int. serv/Diff serv, Router Buffer management, self-similar traffic, and socket programming.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5313 Formal Language Theory

Prerequisites: CS 3613 with a grade of "C" or better.

Description: Formal language theory applied to procedure oriented languages. Application of finite state algorithms to lexical analysis. Chomsky hierarchy of languages. Generation, recognition, and closure properties of languages.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5323 Design and Implementation of Operating Systems II

Prerequisites: CS 4323 with a grade of "C" or better.

Description: Task systems and concurrent programming, synchronization, and inter process communication. Theoretical investigation of resource sharing and deadlock, memory management, strategies, and scheduling algorithms, queuing theory, distributed operating systems. System accounting, user services and utilities.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5363 Advanced Organization of Programming Languages

Prerequisites: CS 3363 with a grade of "C" or better.

Description: Continuation of CS 3363, mathematical theory of computer language organization functional programming. Parallelism in languages. Mathematics of control structures and data structures. Applicative languages. Symbolic languages.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5373 Advanced Object-Oriented Programming for Windowing Environments

Prerequisites: For CS students: CS 2133 and CS 2433, each with a grade of "C" or better. For TCOM students: CS 4343 or CS 3353 with a grade of "C" or better and a working knowledge of C++.

Description: Applying the object-oriented computing model to the design and development of software for windowing environments. Effective use of Graphical User Interfaces (GUIs), the Internet, data interchange principles and related topics. No credit for students with credit in CS 3373.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5383 Computer Networks

Prerequisites: CS 2133 with a grade of "C" or better; and CS 3443 or ECEN 3213 with a grade of "C" or better; UNIX knowledge.

Description: Computer networks, distributed systems and their systematic design. Introduction to the use, structure, and architecture of computer networks. Networking experiments to describe network topology. ISO reference model. May not be used for degree credit with CS/ECEN 4283.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5413 Data Structures and Algorithm Analysis II

Prerequisites: CS 4343 or CS 3353 with a grade of "C" or better.

Description: Data structures and their application in recursive and iterative algorithms. Static and dynamic data structure representations and processing algorithms. Dynamic and virtual storage management.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5423 Principles of Database Systems

Prerequisites: CS 4343 or CS 3353; and CS 4433 or equivalent; each with a grade of "C" or better.

Description: An overview of database management systems, entity-relationship model, relational model, structural query language, relational algebra, functional dependencies, relational database design with normalization theorems, query processing, fault recovery, concurrent control, web-based database systems. Introduction to NoSQL databases, querying NoSQL databases. May not be used for degree credit with CS 5233.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5433 Big Data Management

Prerequisites: CS 3353.

Description: Introduction to storing, processing and analyzing big data. Topics to be covered include map-reduce model within the Hadoop framework, data summarization, query and analysis; data munging and transformation; streaming data; transferring structured data; setting up distributed services; fast data processing using Apache Spark, including querying, live data streaming, machine learning and parallel processing; writing data pipeline jobs; introduction to machine learning using R or Python.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5473 Software Engineering

Description: Fundamental characteristics of the software life cycle. Tools, techniques, and management controls for development and maintenance of large software systems. Software metrics and models. Human factors and experimental design. May not be used for degree credit with CS 4273 and ECEN 4273.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5513 Numerical Computation

Prerequisites: MATH 2233 with a grade of "C" or better; and MATH 3013 or MATH 3263 or equivalent courses with a grade of "C" or better; CS 3513 or MATH 4513 or MATH 5513 or an equivalent course with a grade of "C" or better; a knowledge of computer programming.

Description: Errors in machine computation; condition of problems and stability of algorithms; interpolation and approximation; nonlinear equations; linear and nonlinear systems; differentiation and integration; applications to modeling, simulation, and/or optimization. May not be used for degree credit with CS 4513.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5623 Introduction to Cyber Physical Systems

Prerequisites: CS 2133 with grade of "C" or better.

Description: Introduction to principles and technologies dealing with cyber physical systems and Internet of Things (IoT). Design of cyber physical frameworks and the process underlying creation of 3D VR based simulation models and Next Generation Internet frameworks to support the adoption of cyber physical methodologies. Information modeling and systems engineering based techniques to support the design of collaborative methodologies for CPS contexts from various domains including robotics and medicine. May not be used for degree credit with CS 4623.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5653 Automata and Finite State Machines

Prerequisites: CS 5313 with a grade of "C" or better.

Description: Sequential machines and automata. Hierarchy of recognizers. Decision problems and closure properties. Finite and infinite state machines. Cellular and stochastic automata. Coverings of automata.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5663 Computability and Decidability

Prerequisites: CS 5313 with a grade of "C" or better.

Description: Primitive and partial recursive functions. Equivalence of models of computation. The Halting problem and undecidability. Reducing one problem to another or representation change. Tractability and the P-NP problem. Complexity hierarchies.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5683 Big Data Analytics

Prerequisites: CS 5513 or instructor’s permission.

Description: This course focuses on data science methods to analyze multiple types of massive datasets along with their applications on real world problems like web analysis and recommender systems. May not be used for degree credit with MSIS 5683.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5723 Artificial Intelligence I

Prerequisites: CS 3353 with a grade of "C" or better.

Description: Broad coverage of core artificial intelligence (AI) topics, including search-oriented problem solving, knowledge representation, logical inference, AI languages, history and philosophy of AI. May not be used for degree credit with CS 4793.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5743 Extended Reality

Prerequisites: CS 2133 and CS 2433 and CS 3653, each with a grade of "C" or better.

Description: Survey the history and state-of-the-art of immersive computing, aka VAMR (virtual/augmented/mixed reality) computing. Tools and techniques to develop for a variety of target platforms. Human physiological factors that affect the design and development of immersive systems. The relationship of immersive computing with IoT (Internet of Things). Construction of virtual environments and the tracking of real and virtual objects. Applications of immersive computing to solve real-world problems. May not be used for degree credit with CS 4743.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5783 Machine Learning

Prerequisites: CS 3353 or CS 4343, and MATH 3013, each with a grade of "C" or better.

Description: A probabilistic, statistical approach to automated pattern discovery applied to large datasets. Constructing computational models with this information and assessing their behavior and reliability. Representing data and devising tools for discovering these models. Class focuses on the development and analysis of learning algorithms as well as the mathematical formulations underlying statistical processing. May not be used for degree credit as CS 4783.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5793 Artificial Intell II

Prerequisites: CS 4793 with a grade of "C" or better.

Description: Advance knowledge representation and expert system building, including reasoning under uncertainty. Applications to planning, intelligent agents, natural language processing, robotics, and machine learning.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5813 Principles of Wireless Networks

Prerequisites: CS 4283 or ECEN 4283, with a grade of "C" or better.

Description: Wireless network operation, planning, mobility management, cellular and mobile data networks based on CDMA, TDMA, GSM, IEEE 802-11 WLANS, Adhoc networks, Bluetooth, power management, wireless geolocation and indoor positioning techniques. Same course as ECEN 5563.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 5823 Network Algorithmics

Prerequisites: CS 4283 and CS 4323, with a grade of "C" or better.

Description: Discusses principles of efficient network implementation-router architecture, end node architecture, data copying, timer maintenance, demultiplexing, forwarding table, lookups, switching, scheduling, IP traceback.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 6000 Doctoral Dissertation

Prerequisites: Graduate standing and approval of advisory committee.

Description: Graduate standing and approval of advisory committee. Independent research under the direction of a member of the graduate faculty. For students working toward a PhD degree. Offered for variable credit, 2-15 credit hours, maximum of 40 credit hours.

Credit hours: 2-15

Contact hours: Contact: 2-15 Other: 2-15

Levels: Graduate

Schedule types: Independent Study

Department/School: Computer Science

CS 6210 Advanced Topics in Parallel and Distributed Systems

Prerequisites: CS 5113 with a grade of "C" or better.

Description: The state-of-the-art of parallel and distributed systems. Design, implementation, and analysis of parallel and distributed system architectures, protocols, and algorithms. Resource management, scheduling, and coordination. Internet-scale systems, middleware and services, virtualization, and distributed operating systems. Parallel and distributed programming paradigms: message-passing, shared memory, data-intensive, high performance, high throughput. Offered for variable credit, 2-6 credit hours, maximum of 12 credit hours.

Credit hours: 2-6

Contact hours: Contact: 2-6 Other: 2-6

Levels: Graduate

Schedule types: Independent Study

Department/School: Computer Science

CS 6240 Advanced Topics in Computer Organization

Prerequisites: CS 5113 and CS 5253, each with a grade of "C" or better.

Description: Structure and organization of advanced computer systems, parallel and pipeline computers, methods of computation, alignment networks, conflict-free memories, and bounds on computation time. Offered for variable credit, 2-6 credit hours, maximum of 12 credit hours.

Credit hours: 2-6

Contact hours: Contact: 2-6 Other: 2-6

Levels: Graduate

Schedule types: Independent Study

Department/School: Computer Science

CS 6253 Advanced Topics in Computer Architecture

Prerequisites: CS 5253 or ECEN 5253, with a grade of "C" or better.

Description: Innovations in the architecture and organization of computers, with an emphasis on parallelism. Topics may include pipelining, multiprocessors, data flow, and reduction machines. Same course as ECEN 6253.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 6300 Advanced Topics in Programming Languages

Prerequisites: CS 5313 with a grade of "C" or better.

Description: Interpreter models of programming language semantics, Vienna definition language, lambda calculus, LISP definition; Knuth semantic systems and their formulation, translational and denotational semantics. May be repeated with change of topics. Offered for variable credit, 2-6 credit hours, maximum of 12 credit hours.

Credit hours: 2-6

Contact hours: Contact: 2-6 Other: 2-6

Levels: Graduate

Schedule types: Independent Study

Department/School: Computer Science

CS 6350 Advanced Topics in Operating Systems

Prerequisites: CS 5323 with a grade of "C" or better.

Description: Design and analysis of operating systems. Concurrent processes, server scheduling, models of auxiliary storage, memory management, virtual systems, and performance algorithms. May be repeated with a change in topics. Offered for variable credit, 2-6 credit hours, maximum of 12 credit hours.

Credit hours: 2-6

Contact hours: Contact: 2-6 Other: 2-6

Levels: Graduate

Schedule types: Independent Study

Department/School: Computer Science

CS 6400 Advanced Topics in Information Systems

Prerequisites: CS 5413 and CS 5423, each with a grade of "C" or better.

Description: Principles of distributed database systems. Overview of relational database management systems (DBMS) and computer networks, distributed DBMS architecture, distributed database design, distributed concurrency control, query processing and distributed DBMS reliability. Offered for variable credit, 2-6 credit hours, maximum of 12 credit hours.

Credit hours: 2-6

Contact hours: Contact: 2-6 Other: 2-6

Levels: Graduate

Schedule types: Independent Study

Department/School: Computer Science

CS 6500 Advanced Topics in Numerical Analysis

Prerequisites: MATH 5513 or CS 4513 with a grade of "C" or better, or MATH 4513 with a grade of "C" or better and consent of instructor.

Description: Systems of nonlinear equations, nonlinear least squares problems, iterative methods for large systems of linear equations, finite element methods, solution of partial differential equations. May be repeated with change of topics. Offered for variable credit, 2-6 credit hours, maximum of 12 credit hours.

Credit hours: 2-6

Contact hours: Contact: 2-6 Other: 2-6

Levels: Graduate

Schedule types: Independent Study

Department/School: Computer Science

CS 6600 Advanced Topics in Analysis of Algorithms

Prerequisites: CS 5413 with a group of "C" or better.

Description: Analysis of various algorithms. Sorting, searching, computational complexity, lower bounds for algorithms; NP-hard and NP-complete problems; parallel algorithms; proof of correctness of algorithms. May be repeated with change of topics. Offered for variable credit, 2-6 credit hours, maximum of 12 credit hours.

Credit hours: 2-6

Contact hours: Contact: 2-6 Other: 2-6

Levels: Graduate

Schedule types: Independent Study

Department/School: Computer Science

CS 6620 Advanced Topics in Applied Algorithms

Prerequisites: CS 4343 or CS 3353 with a grade of "C" or better, or consent of instructor.

Description: Recent advances in the design and analysis of data structures and algorithms for real-world applications in diverse problem domains. Problem domain designated for the course will differ in each offering and with instructor's interests. Core topics include mathematical modeling of complex applied problems, and studies of relevant fundamental algorithmic techniques and their experimental analysis on real datasets. Offered for 3 fixed credit hours, maximum of 6 credit hours.

Credit hours: 3

Contact hours: Lecture: 3 Contact: 3

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science

CS 6623 Algebraic Structures of Formal Grammars

Prerequisites: CS 5313 and CS 5653; all with a grade of "C" or better.

Description: Context-free languages, Kleene languages, Dyck languages, context-sensitive languages; use of algebraic systems to define languages; linear bounded automata.

Credit hours: 3

Contact hours: Contact: 3 Other: 3

Levels: Graduate

Schedule types: Independent Study

Department/School: Computer Science

CS 6700 Advanced Topics in Artificial Intelligence

Prerequisites: CS 5793 with a grade of "C" or better, or consent of instructor.

Description: Machine learning; computer perception and robotics; logic programming; natural language understanding; intelligent agents; medical informatics. May be repeated with change of topics. Offered for variable credit, 2-6 credit hours, maximum of 12 credit hours.

Credit hours: 2-6

Contact hours: Contact: 2-6 Other: 2-6

Levels: Graduate

Schedule types: Independent Study

Department/School: Computer Science

CS 6800 Advanced Topics in Computing Networks

Prerequisites: CS 5283 with a grade of "C" or better; Graduate standing in Computer Science; consent of instructor.

Description: Large scale embedded networks, deep-space networking, ubiquitous computing, optical networking, Next Generation Internet. May be repeated with change of topics. Offered for variable credit, 2-12 credit hours, maximum of 12 credit hours.

Credit hours: 2-12

Contact hours: Lecture: 2-12 Contact: 2-12

Levels: Graduate

Schedule types: Lecture

Department/School: Computer Science