- CS200B - Concepts of Computers and AI
[IAI Course: BUS 902] The course is designed to provide participants with a broad overview of computer and artificial intelligence (AI) concepts. Concepts are realized by how computer systems, algorithms, and data work together to create productive AI systems. Computer systems provide the foundational architecture for the development and operation of AI. Algorithms and data provide the fuel for AI models. Computer hardware provide the raw computational power necessary to train and run AI models. Computer software creates the environment in which AI applications are built and deployed. Topics include, but are not limited to simple computer algorithms, simple programmatic syntax, the role of data in AI, computing machines behind AI, machine learning, deep learning, and prompt engineering. Learning through simple examples is emphasized to illustrate and give substance to concepts.
Credit Hours: 3
- CS201 - Problem Solving with Computers and AI
Introduction to Artificial Intelligence (AI) explores the basic theory and practice of creating and working with intelligent systems. The course covers core concepts, major application domains, and AI tools. Students will gain an introductory understanding of key areas including search algorithms, machine learning, deep learning, intelligent agents, and prompt engineering. Emphasis will be on learning through practice with simple code examples, AI tools, and prompt engineering interactions with AI agents. We prevent students from over-relying on AI by requiring AI usage disclosure including declaration of (a), AI tools used and extents of their usage, (b) specific shortcomings with available AI tools, and (c) lessons learned from using AI tools. Course fee: $60.
Credit Hours: 3
- CS202 - Introduction to AI Programming
[IAI Course: CS 911] This course offers an engaging introduction to programming through the lens of Artificial Intelligence (AI). Designed for beginners, it blends the fundamentals of Python programming with intuitive AI concepts to create a practical, hands-on learning experience. Students will learn core programming constructs while applying them to basic AI tasks such as search, logic, and data handling. The course emphasizes algorithmic thinking, problem-solving, and writing clean, efficient code, preparing students for further study in computer science or AI. We prevent students from over-relying on AI by requiring AI usage disclosure including declaration of (a), AI tools used and extents of their usage, (b) specific shortcomings with available AI tools, and (c) lessons learned from using AI tools. Prerequisite: Mathematics 111 or equivalent with a grade of C or better. Course fee: $60.
Credit Hours: 4
- CS215 - Discrete Mathematics
[IAI Course: M1 905] Introduction to topics relevant to the study of computer science including: number systems, sets, sequences, summations, logic and truth tables, proofs, functions, relations, matrix operations, combinations, permutations, counting techniques, discrete probability, algorithmic complexity, recurrence relations, Boolean algebra, simple combinational circuits, simplification techniques. Prerequisites: MATH 111 or equivalent with grade of C or better. Course fee: $60.
Credit Hours: 4
- CS220 - Programming with Data Structures
[IAI Course: CS 912] Advanced programming, data structures and algorithm design. Topics will include advanced language features, data abstraction and object-oriented programming, recursion, stacks, queues, linked lists, trees and graphs, sorting and searching. The course will focus on implementation and analysis of data structures and algorithms, as well as how Artificial Intelligence (AI) can be utilized when performing comparative analysis. AI use will be allowed and will be supervised. The course meets for three lecture hours and two laboratory hours per week. Prerequisites: CS 202 and CS 215 each with a grade of C or better. Course fee: $60.
Credit Hours: 4
- CS221 - Introduction to Internet and Mobile Computing
As a preparation course for students to prepare for higher level core curricula, this course provides a comprehensive introduction to a broad range of fundamental computer system concepts and principles. Coverage includes operating system concepts; fundamentals of network, internet, and world-wide-web; C programming; core Linux/Unix systems concepts and tools; and a little taste of Android App development. Prerequisite: CS 202 with a grade of C or better. CS fee: $100.
Credit Hours: 4
- CS280 - Computational Statistics I
This course provides a basic introduction to probability and statistics as well as related computational approaches. Topics include basic probability models, combinatorics, random variables, discrete and continuous probability distributions, statistical estimation and hypotheses testing, confidence intervals and linear regression. Some selected computational approaches for statistical problems such as simulation of random variables from probability distributions, the visualization of multivariate data, Monte Carlo integration and methods in inference will also be discussed. The R language will be used for programming assignments. Prerequisite: MATH 108 with a grade of C or better.
Credit Hours: 3
- CS290 - Ethics, Safety and Security in Computing and AI
This course develops effective writing, reading, presentation, and oral communication skills for computer science professionals. Emphasis is placed on evaluating and communicating technical material clearly to diverse audiences, including stakeholders and team members. Students explore professional ethics and responsibilities in computing, with attention to societal, legal, and sustainability impacts. The course examines emerging ethical, safety, and security challenges in technologies such as Artificial Intelligence (AI), preparing students to engage with complex issues in responsible and trustworthy computing. Assignments and discussions are drawn from technical sources, case studies, and real-world scenarios related to the history, practice, and future of the discipline. Prerequisites: CS 201 or CS 202 with a grade of C or better or consent of the instructor.
Credit Hours: 3
- CS300 - Introduction to Linux
A gentle introduction to the Linux operating system. Computer programming experience is not required. Students will gain the knowledge and hands-on experience needed to install, configure, and use Linux. Emphasis will be placed on administration skills and security. Software for Linux will be surveyed, particularly to identify replacements for standard Windows applications. Prior experience with Windows or Macintosh operating systems is assumed.
Credit Hours: 3
- CS304 - Advanced Object-Oriented Programming
Advanced features of object-oriented programming are covered in depth. The topics covered include, but are not limited to, the following: polymorphism, inheritance, overloading, generic programming, exception handling, file I/O, GUI development. A group project is an integral part of the course. Prerequisite: CS 220 with a grade of C or better.
Credit Hours: 3
- CS305 - Software Development Practices
Agile software development approach, tools, methodologies, and technical writing are addressed. Understanding of object-oriented design principles, implementation, and testing to meet customer requirements are enhanced through agile practices using modern development tools. A team project is an integral part of this course. Prerequisite: CS 220 with a grade of C or better.
Credit Hours: 3
- CS306 - Linux/UNIX Programming
This course will prepare students to develop software in and for Linux/UNIX environments. Topics to be covered include basic operating system concepts, effective command line usage, shell programming, the C language, programming development tools, system programming, network programming (client-server model and sockets), and GUI programming. Prerequisites: CS 220 and CS 221 with a grade of C or better. CS fee: $60.
Credit Hours: 4
- CS311 - Advanced AI Programming
This course builds on the foundational concepts introduced in Fundamental Programming with AI using Python. It reinforces key Python and AI topics while introducing essential tools and libraries used in modern AI programming workflows. Students will gain practical experience with numerical computing using NumPy, data manipulation using Pandas, and data visualization with Matplotlib. The course also introduces high-level overviews of PyTorch and TensorFlow to prepare students for deeper studies in Machine Learning. The emphasis remains on programming fluency, structured thinking, and the ability to use the Python ecosystem effectively in AI contexts. We prevent students from over-relying on AI by requiring AI usage disclosure including declaration of (a), AI tools used and extents of their usage, (b) specific shortcomings with available AI tools, and (c) lessons learned from using AI tools. Prerequisite: CS 220 with a grade of C or better.
Credit Hours: 3
- CS315 - Computer Logic and Digital Design
Introduction to switching algebra and its applications. Combinational logic and combinational circuit components. Sequential logic and sequential circuit components. Asynchronous sequential circuits. Prerequisite: CS 215 with a grade of C or better.
Credit Hours: 3
- CS320 - Computer Organization and Architecture
Overview of the basic logic circuits needed in constructing a computer. Fundamental computer operations: machine and assembly language instructions, stacks, procedures and macros. The translation process: assembly, linking and loading. Hardware elements for processing, transferring, and storing information. Data path and control unit for a simple processor. Prerequisite: CS 220 with grade of C or better.
Credit Hours: 3
- CS330 - Introduction to the Design and Analysis of Algorithms
Intensive study of the fundamentals of data structures and algorithms. Presents the definitions, representations, processing algorithms for data structures, general design and analysis techniques for algorithms. Covers a broad variety of data structures, algorithms and their applications including linked lists, various tree organizations, hash tables, strings, storage allocation, algorithms for searching and sorting, and a selected collection of other algorithms. The course will focus on implementation and analysis of algorithms, as well as how Artificial Intelligence (AI) can be utilized when performing comparative analysis. Use of AI tools will be allowed and will be supervised. Prerequisite: CS 220 with a grade of C or better.
Credit Hours: 3
- CS335 - Operating Systems
An extended treatment of the components of operating systems including process management, concurrency, memory management, device management, file management, and security. Prerequisites: CS 220 and CS 221 with a grade of C or better.
Credit Hours: 3
- CS350 - Web Application Development
A comprehensive introduction to languages and tools used to create client side and server side Web applications. Topics include, but are not limited to, markup languages, server-side and client-side scripting languages, web programming languages, web development architectures, frameworks and technologies, and database access. Prerequisites: CS 202 and CS 221 with a grade of C or better or consent of instructor.
Credit Hours: 3
- CS391 - Current Topics in Computer Science
Selected current topics from various fields of computer science. Only maximum of 6 credit hours can be counted toward degree.
Credit Hours: 1-3
- CS393 - Internship in Computer Science
Credit for participation in a formalized internship program involving computer science related work. Hours do not count toward requirements for computer science major. Mandatory Pass/Fail. Prerequisite: Prior approval of the sponsoring agency and the School of Computing. Restricted to Computer Science major.
Credit Hours: 1-6
- CS401 - Computer Architecture
Review of logical circuit design. Hardware description languages. Algorithms for high-speed addition, multiplication and division. Pipelined arithmetic. Implementation and control issues using PLA's and microprogramming control. Cache and main memory design. Input/Output. Introduction to interconnection networks and multiprocessor organization. Prerequisite: CS 320 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS404 - Autonomous Mobile Robots
This course is a comprehensive introduction to modern robotics with an emphasis on autonomous mobile robotics. Fundamentals of sensors and actuators as well as algorithms for top level control are discussed. Multi-robotics and human-robot interaction issues are explored. A group project is an integral part of this course. Prerequisite: CS 330 with a grade of C or better or graduate standing. CS fee: $125.
Credit Hours: 3
- CS408 - Applied Cryptography
This course is a comprehensive introduction to modern cryptography, with an emphasis on the application and implementation of various techniques for achieving message confidentiality, integrity, authentication and non-repudiation. Applications to Internet security and electronic commerce will be discussed. All background mathematics will be covered in the course. Prerequisite: CS 330 with a grade of C or better and MATH 221 or graduate standing.
Credit Hours: 3
- CS409 - Ethical Hacking
This course will explore the various means that an intruder has available to gain access to computer resources. We will investigate weaknesses by discussing the theoretical background, and whenever possible, actually performing the attack. We will then discuss methods to prevent/reduce the vulnerabilities. This course is targeted specifically for Certified Ethical Hacking (CEH) exam candidates, matching the CEH exam objectives with the effective and popular Cert Guide method of study. Prerequisite: CS 202 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS410 - Computer Security
A broad overview of the principles, mechanisms, and implementations of computer security. Topics include cryptography, access control, software security and malicious code, trusted systems, network security and electronic commerce, audit and monitoring, risk management and disaster recovery, military security and information warfare, physical security, privacy and copyrights, and legal issues. Prerequisite: CS 306 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS412 - Programming Distributed Applications
This course uses advanced features of the Java programming language to develop networked, distributed, and web-based applications. Topics covered include, but are not limited to, sockets, datagrams, the Java security model, threads, multi-tier architectures, Java RMI, Java database connectivity, and Java-based mobile agents. Prerequisite: CS 306 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS413 - Digital Forensics
Cybersecurity has become a ubiquitous concern well beyond finding solutions to post-mortem threat analysis. The course provides a broad overview of security objectives and will cover fundamentals in confidentiality, integrity, and availability. Lectures will offer a broad range of topics on digital forensics. Students will be trained for an investigation mindset. Contemporary tools and techniques for digital forensics and investigations are reviewed. Security for stationary and mobile platforms are foci of current course in both forensic and active modes. There will be multiple hands-on homework and laboratories as well as a practical project as an integral part of this course. Prerequisite: CS 330 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS415 - Network Forensics
With the proliferation of wireless networks, security is at odds with privacy and integrity. The course provides a broad overview of security strategies for wireless networks. Topics will range from intrusion detection and network security protocols to collaborative computing. Contemporary tools and techniques for wireless network security are reviewed. A hands-on project will be an integral part of this course. Prerequisite: CS 330 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS416 - Compiler Construction
Introduction to compiler construction. Design of a simple complete compiler, including lexical analysis, syntactical analysis, type checking, and code generation. Prerequisite: CS 306 and 311 each with a grade of C or better or graduate standing.
Credit Hours: 3
- CS420 - Distributed Systems
A top-down approach addressing the issues to be resolved in the design of distributed systems. Concepts and existing approaches are described using a variety of methods including case studies, abstract models, algorithms and implementation exercises. Prerequisite: CS 335 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS425 - Principles of Virtualization and Cloud Computing
Cloud Computing (CC) represents a recent major strategic shift in computing and Information Technology. This course explores fundamental principles, foundational technologies, architecture, design, and business values of CC. Understanding will be reinforced through multiple angles including: analysis of real world case studies, hands-on projects and in-depth study of research developments. Prerequisites: CS 330 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS430 - Database Systems
The course concentrates on the relational model, database design, and database programming. Topics include relational model, relational algebra, SQL, constraints and integrity, transaction support, concurrency control, database design, normalization, backup, recovery, and security. A comprehensive product-like project is an integral part of the course. Prerequisite: CS 330 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS431 - Cyber-Physical Systems
The goal of this course is to introduce and develop an understanding of the computing and communication for Internet of Things as a subset of Cyber-Physical systems. Connectivity among devices in our daily lives such as WiFi-enabled thermostats, smart grids, and driverless cars is ushering in an era of sociality that transcends human social networks to machine to machine networks. Prerequisites: CS 330 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS434 - Learning From Data
An introduction to classical machine learning theory and practical techniques. Topics to be covered include computational learning theory (VC theory), linear classification and regression models, SVMs and kernel methods, decision trees, the bias-variance tradeoff, overfitting, and regularization. Prerequisites: CS 330 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS435 - Software Engineering
Principles, practices and methodology for development of large software systems. Object-oriented principles, design notations, design patterns and coping with changing requirements in the software process. Experiences with modern development tools and methodologies. A team project is an integral part of this course. Prerequisite: CS 330 with a grade of C or better or graduate standing; CS 306 with a grade of C or better recommended.
Credit Hours: 3
- CS436 - Artificial Intelligence I
Search and heuristics, problem reduction. Predicate calculus, automated theorem proving. Knowledge representation. Applications of artificial intelligence. Parallel processing in artificial intelligence. Prerequisite: CS 311 and 330 each with a grade of C or better or graduate standing.
Credit Hours: 3
- CS437 - Machine Learning and Soft Computing
An introduction to the field of machine learning and soft computing. It covers rule-based expert systems, fuzzy expert systems, artificial neural networks, evolutionary computation, and hybrid systems. Students will develop rule-based expert systems, design a fuzzy system, explore artificial neural networks, and implement genetic algorithms. Prerequisite: CS 330 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS438 - Bioinformatics Algorithms
This course is an introductory course on bioinformatics algorithms and the computational ideas that have driven them. The course includes discussions of different techniques that can be used to solve a large number of practical problems in biology. Prerequisite: CS 330 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS440 - Computer Networks
Design and analysis of computer communication networks. Topics to be covered include queuing systems, data transmission, data link protocols, topological design, routing, flow control, security and privacy, and network performance evaluation. Prerequisite: CS 330 with a grade of C or better or graduate standing; CS 306 recommended.
Credit Hours: 3
- CS441 - Mobile and Wireless Computing
Concepts of mobile and wireless systems are presented. These concepts include, but are not limited to, Routing and Medium Access for Mobile Ad hoc and Wireless Sensor Networks, Mobile IP, Wireless LAN and IEEE 802.11. Hands-on group lab experience is an integral component in the course. Prerequisite: CS 330 with a grade of C or better, or graduate standing or consent of the instructor.
Credit Hours: 3
- CS447 - Introduction to Graph Theory
(Same as MATH 447) Graph theory is an area of mathematics which is fundamental to future problems such as computer security, parallel processing, the structure of the World Wide Web, traffic flow and scheduling problems. It also plays an increasingly important role within computer science. Topics include: trees, coverings, planarity, colorability, digraphs, depth-first and breadth-first searches. Prerequisite: MATH 349 with C or better.
Credit Hours: 3
- CS449 - Introduction to Combinatorics
(Same as MATH 449) This course will introduce the student to various basic topics in combinatorics that are widely used throughout applicable mathematics. Possible topics include: elementary counting techniques, pigeonhole principle, multinomial principle, inclusion and exclusion, recurrence relations, generating functions, partitions, designs, graphs, finite geometry, codes and cryptography. Prerequisite: MATH 349 with C or better.
Credit Hours: 3
- CS451 - Theory of Computing
The fundamental concepts of the theory of computation including finite state acceptors, formal grammars, Turing machines, and recursive functions. The relationship between grammars and machines with emphasis on regular expressions and context-free languages. Prerequisite: CS 311 and 330 each with a grade of C or better or graduate standing.
Credit Hours: 3
- CS455 - Advanced Algorithm Design and Analysis
An in-depth treatment of the design, analysis and complexity of algorithms with an emphasis on problem analysis and design techniques. Prerequisites: CS 330 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS471 - Optimization Techniques
(Same as MATH 471) Introduction to algorithms for finding extreme values of nonlinear multivariable functions with or without constraints. Topics include: convex sets and functions; the arithmetic-geometric mean inequality; Taylor's theorem for multivariable functions; positive definite, negative definite, and indefinite matrices; iterative methods for unconstrained optimization. Prerequisite: MATH 221 and MATH 250 with C or better.
Credit Hours: 3
- CS472 - Linear Programming
(Same as MATH 472) Introduction to finding extreme values of linear functionals subject to linear constraints. Topics include: recognition, formulation, and solution of real problems via the simplex algorithm; development of the simplex algorithm; artificial variables; the dual problem and duality theorem; complementary slackness; sensitivity analysis; and selected applications of linear programming. Prerequisite: MATH 221 with C or better.
Credit Hours: 3
- CS475 - Numerical Analysis I
(Same as MATH 475) Introduction to theory & techniques for computation with digital computers. Topics include: solution of nonlinear equations; interpolation & approximation; solution of systems of linear equations; numerical integration. Students will use MATLAB to study the numerical performance of the algorithms introduced in the course. Prerequisites: MATH 221 and MATH 250 with C or better.
Credit Hours: 3
- CS480 - Computational Statistics II
This course utilizes computational and graphical approaches to solve statistical problems. A comprehensive coverage on modern and classical methods of statistical computing will be given. Case studies in various disciplines such as science, engineering and education will be discussed. Various topics such as numerical integration and simulation, optimization and maximum likelihood estimation, density estimation and smoothing as well as re-sampling will be presented. Students will be able to create graphical and numerical display based on their data analysis results using R programming language. Prerequisite: MATH 250 and CS 306 or CS 330 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS484 - User Interface Design and Development
Problems and processes in the design of highly usable systems. Understanding stakeholders, requirements, tasks, prototyping, evaluation, guidelines and design process and heuristics. Interactive software concepts and implementation considerations. A group project is an integral part of this course. Prerequisite: CS 306 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS485 - Computer Graphics
Principles and techniques of computer graphics. Interactive graphics software development using a modern graphics standard. Topics include: primitives, transforms, clipping, modeling, viewing, rendering, texture, animation and ray tracing. A group project is an integral part of this course. Prerequisite: CS 306 with a grade of C or better or graduate standing; MATH 150 and 221 are recommended.
Credit Hours: 3
- CS487 - Software Aspects of Game Development
This course focuses on software implementation and development aspects of game production including: software process, system architecture, frameworks, entity management and interaction design, game design, production and business issues as well as technical foundations in graphics modeling and rendering, collision detection, physics, artificial intelligence, and multiplayer techniques. Prerequisite: CS 330 with a grade of C or better or graduate standing.
Credit Hours: 3
- CS490 - Readings
Supervised readings in selected subjects. Not for graduate credit. Mandatory Pass/Fail. Special approval needed from the instructor.
Credit Hours: 1-3
- CS491 - Special Topics
Selected advanced topics from the various fields of computer science.
Credit Hours: 1-6
- CS492 - Special Problems
Individual projects involving independent work. Special approval needed from the instructor.
Credit Hours: 1-6
- CS493 - Seminar
Supervised study. Preparation and presentation of reports. Special approval needed from the instructor.
Credit Hours: 1-6
- CS498 - 4th Year Seminar in Computer Science
This course consists of diverse presentations by faculty, students, and invited speakers from industry, and prepares students for CS 499 (4th Year Project in Computer Science) or CS 499B (4th Year Thesis in Computer Science). Students in CS project track will select and plan a real world team project, while students in CS thesis track will select a research topic, under advisement of a Computer Science faculty, and will present a research proposal. Prerequisite: completion of or concurrent enrollment in at least two other 400-level Computer Science courses. Restricted to 4th Year standing in Computer Science.
Credit Hours: 2
- CS499 - 4th Year Project in Computer Science
A continuation of CS 498, performing exercise in the design, implementation, documentation, and deployment of a group project culminating in a presentation to the Computer Science faculty. Prerequisite: CS 498.
Credit Hours: 3
- CS499B - 4th Year Thesis in Computer Science
A continuation of CS 498, carrying out the approved research under the supervision of a Computer Science faculty culminating in a written thesis and presentation to the Computer Science faculty, evaluated by a committee consisting of the Undergraduate Curriculum Committee, the advisor, and the instructor of the course. Prerequisite: CS 498.
Credit Hours: 3