CS - Computer Science

Courses numbered 500 to 799 = undergraduate/graduate. (Individual courses may be limited to undergraduate students only.) Courses numbered 800 to 999 = graduate.

CS 510.  Programming Language Concepts   (3).

Theoretical concepts in the design and use of programming languages. Formal syntax, including Backus Normal Form (BNF), Extended Backus-Naur Form (EBNF), and syntax diagrams. Semantics, including declaration, allocation and evaluation, symbol table and runtime environment; data types and type checking, procedure activation and parameter passing, modules and abstract data types. Prerequisite(s): CS 311, MATH 322.

CS 540.  Operating Systems   (3).

Fundamental principles of modern operating systems. CPU management including processes, threads, scheduling, synchronization, resource allocation and deadlocks. Memory management including paging and virtual memory. Storage management and file systems. Prerequisite(s): ECE 238 and CS 311.

CS 560.  Design and Analysis of Algorithms   (3).

Design of various algorithms including several sorting algorithms. Analysis of their space and time complexities. Data structures include heaps, hash tables and binary search trees. Prerequisite(s): CS 322, 400; STAT 460 or IME 254.

CS 577.  Special Topics in Computer Science   (1-4).

Focuses on contemporary computer science topics through traditional lecture, research and experiential learning activities. Content changes as new problems and research advances related to computer science attain prominence nationally and internationally. Prerequisite(s): departmental consent.

CS 580.  Introduction to Software Engineering   (3).

Introduces the processes, methods and tools used in software development and maintenance. Topics include software development life cycle and processes, configuration management, requirements gathering, OOA/D with UML, cohesion and coupling, and unit testing. Prerequisite(s): CS 311.

CS 581.  Programming for Computing   (3).

Fast-paced course in computer programming in Python. Emphasizes problem solving and object-oriented programming principles. Topics include language syntax, built-in data structures, functions, classes, modules and exception handling. Not for BSCE, BSCS or BSEE credit. Prerequisite(s): MATH 242.

CS 582.  Applied Data Structure and Algorithms for Computing   (3).

Fast-paced course that introduces basic data structures, algorithms, and introduces analysis of space and time complexity. Topics includes sorting algorithms, greedy algorithms, linked lists, stacks, queues, binary search trees, asymptotic notation, substitution and recursion tree method, master theorem, and order statistics. Not for BSCE, BSCS or BSEE credit. Prerequisite(s): CS 581.

CS 598.  Senior Design Project I   (2).

Cross-listed as ECE 585. Design project under faculty supervision chosen according to the student's interest. Does not count toward a graduate degree in electrical engineering, computer engineering or computer science. This class should be taken in the semester prior to the one in which the student is going to graduate. For undergraduate credit only. Prerequisite(s): senior standing, ECE 492 or CS 580. Pre- or corequisite(s): PHIL 354 or PHIL 385.

CS 599.  Senior Design Project II   (2).

This is the second part of a sequence of two courses (CS 598 and CS 599) that have to be taken in two consecutive semesters. Students failing this course must retake the CS 598 course. For undergraduate credit only. Prerequisite(s): CS 598. Pre- or corequisite(s): PHYS 314 and PHYS 316.

CS 656.  Introduction to Cybersecurity   (3).

Provides fundamental concepts in cybersecurity including cryptography, security in networks, operating systems and databases. Topics in intrusion detection, security administration, and legal and ethical issues are also discussed. Prerequisite(s): CS 664 or CS 764.

CS 664.  Computer Networks   (3).

Introductory course on computer networking. Introduces concepts and protocols in various network layers with emphasis on the internet. Topics covered include: physical layer (wired and wireless), medium access control and data link layers, packet switching and routing (IP), routing protocols, transport layer (TCP, UDP), congestion and flow control, basic network security, and network applications. Prerequisite(s): undergraduate students: IME 254 and CS 311; graduate students: object oriented programming and statistics/probability knowledge.

CS 665.  Introduction to Database Systems   (3).

Fundamental aspects of relational database systems, conceptual database design and entity-relationship modeling; the relational data model and its foundations, relational languages and SQL, functional dependencies and logical database design; views, constraints and triggers. Course includes a group project involving the design and implementation of a relational database and embedded SQL programming. Prerequisite(s): CS 311, MATH 322.

CS 697.  Selected Topics   (1-3).

An umbrella course created to explore a variety of subtopics differentiated by letter (e.g., 697A, 697B). Not all subtopics are offered each semester – see the course schedule for availability. Students enroll in the lettered courses with specific topics in the titles rather than in this root course. Prerequisite(s): departmental consent.

CS 697AP.  Applied Parallel Computing   (3).

This course is to teach how to program parallel computers to efficiently analyze challenging problems with enormous datasets. Two distinct approaches will be introduced which can be used to solve problems in all manner of domains including data analytics and machine learning. The first approach to be studied will be embarrassingly parallel in nature while the second approach will leverage fine-grain parallelism. Prerequisite(s): CS 394 or Instructor’s consent.

CS 697AQ.  Web Programming   (3).

Hands-on introduction to web programming. Prepares students to create webpages and develop web applications that integrate with a backend database. Topics covered include client-side technologies that run in the web browser (HTML, CSS and JavaScript), and server-side technologies that run on the web server (Node.js or PHP and SQL). A strong programming background is preferred for successful completion of several practical exercises contained in the course. Prerequisite(s): CS 311.

CS 697AR.  Power Business Intelligence   (3).

Covers applications of data science with a focus on real-life examples from various industries. Technical skills, soft skills and subject matter expertise are developed during this course as the intersection of these skills is critical to the field of data science. Students are introduced to different software and programming languages. Topics include project scoping; collection, analysis and visualization of data; interpreting and communicating results; teamwork; and problem-solving. Additionally, students have an opportunity to use their interests and subject matter expertise to interpret findings, communicate results and offer solutions.

CS 721.  Advanced Algorithms and Analysis   (3).

Topics include height-balanced trees, graph algorithms, greedy algorithms, dynamic programming, hard problems and approximation algorithms. Prerequisite(s): CS 560.

CS 731.  Mathematical Foundations for Computer Networking   (3).

Introductory class on applying various mathematical tools to the field of computer networks and related areas. Divided into three phases: phase one covers the fundamentals of probability, statistics and linear algebra required for understanding the core topics to follow. Phase two covers the core topics of optimization and queuing theory. Phase three briefly covers the advanced topics of game theory and information theory. The depth of coverage is sufficient to allow students to read and understand research papers in computer networking and related areas that use these standard techniques. Ideas are taught through intuition, mathematically correct formalization and detailed numerical examples. Prerequisite(s): MATH 243. Corequisite(s): CS 664.

CS 737.  Wireless Networking   (3).

Covers topics ranging from physical layer to application layer in the wireless and mobile networking fields. Explores physical layer issues of wireless communications, wireless cellular telephony, ad-hoc networks, mobile IP and multicast, wireless LAN (IEEE 802.11), security, Bluetooth and WAP, etc. Imparts general knowledge about wireless communication technologies and ongoing research activities. Prerequisite(s): CS 664.

CS 746.  Perspectives on Data Science   (3).

Covers the perspectives and fundamentals of data science. Topics include data collection, preprocessing, transformation, exploratory data analysis, visualization, predictive modeling, descriptive modeling, clustering, regression and classification and data science project life cycle. This course is limited to engineering students and students in other colleges majoring in data science/analytics related programs. Prerequisite(s): IME 254 and CS 211 for undergraduate students; instructor's consent for graduate students.

CS 764.  Routing and Switching I   (3).

Introductory course studying the operation of layer-2 architectures such as vlans, spanning tree protocol, and the operation of layer-3 routing protocols such as OSPF, ISIS, and BGP. Prerequisite(s): CS 664.

CS 767.  Foundations of Network Security   (3).

Presents fundamental concepts in cryptography and network security, and discusses applications and protocols for providing confidentiality, authentication, integrity and availability in networking services and systems. Includes review of symmetric-key cryptographic schemes such as DES and AES, public-key cryptographic schemes such as RSA and Diffie-Hellman key exchange protocol, cryptographic hash functions such as SHA, message authentication codes such as HMAX, digital signature schemes such as El-Gamal and DSS, kerberos and user authentication protocols, transport layer security and TLS, IP layer security and IPSec, and wireless security principles. Prerequisite(s): CS 664; the department also highly recommends CS 656, but it is not required.

CS 770.  Machine Learning   (3).

Introductory course on machine learning. Topics include supervised and unsupervised learning, k-nearest neighbor classifiers, decision trees, linear regression, support vector machines, kernel methods, naïve Bayes classifier, logistic regression, neural networks, deep learning, k-means clustering, hierarchical clustering, mixture of Gaussians and EM algorithms, linear and non-linear dimension reductions. Prerequisite(s): MATH 511, IME 254 and CS 311; or CS 746.

CS 771.  Artificial Intelligence   (3).

Introduces some of the fundamental concepts and techniques underlying artificial intelligence. Topics covered include state spaces, heuristic search, game playing, knowledge representation, and resolution in propositional and first-order predicate logic. Prerequisite(s): CS 560.

CS 780.  Advanced Software Engineering   (3).

Systematically learns and practices all workflows of the Unified Process. Discusses advanced topics in software development, maintenance and evolution. Topics include software design patterns, architecture and architectural styles, frameworks, refactorings, and static and dynamic analyses. Includes a group project. Prerequisite(s): CS 580.

CS 781.  Cooperative Education   (1-3).

Practical experience in a professional environment to complement and enhance the student's academic program. For master's level CS students. Repeatable for credit, but may not be used to satisfy degree requirements. Prerequisite(s): departmental consent and graduate GPA of 3.000 or above.

CS 796.  Network Programming   (4).

Introduces techniques for developing TCP and UDP network clients, servers and applications. Topics covered include sockets, client/server design alternatives, concurrent processes and threads, web applications, and security. Programming-intensive course that assumes some experience with programming in a high-level language.

CS 797.  Special Topics in Computer Science   (1-4).

An umbrella course created to explore a variety of subtopics differentiated by letter (e.g., 797A, 797B). Not all subtopics are offered each semester – see the course schedule for availability. Students enroll in the lettered courses with specific topics in the titles rather than in this root course. Prerequisite(s): departmental consent.

CS 797J.  Machine Learning for Natural Language Processing   (3).

Provides students the opportunity to learn about machine learning for Natural Language Processing (NLP). NLP is the field of study that is related to computational processing/manipulation of speech and text. This course deals with introduction to various computational tools/algorithms for text processing, predictive text, automatic summarization, sentiment analysis, information extraction, POS tagging and other related NLP tasks. In addition to providing introduction to various algorithms for analyzing the content and structure of texts, the course deals with algorithms/tools to extract information from unstructured text. As present day NLP is highly intertwined with machine learning, this course also provides introduction to various machine learning algorithms utilized in the field of NLP. A brief introduction of deep learning approaches for NLP are also presented. The course also introduces techniques to prepare text data for modeling. Students get hands-on experience in working with a capstone final project. Prerequisite(s): CS 746 or instructor’s consent.

CS 797K.  Advanced Topics in Data Storage   (3).

Examines the history of computer data storage, the current state of the technology, and look at possible future developments. Examines RAID storage concepts, file systems, databases, object storage and cloud storage. The course is experimental and exploratory; student interest drives topics and research projects.

CS 797M.  Introduction to Linear Data Modeling   (3).

Introduction to commonly used linear models and modeling techniques to be able to reason with data. Topics include linear regression techniques and using such techniques with higher order data. Implementation and application of the models are performed via examples using Python and R. Prerequisite(s): CS 400.

CS 797N.  Data Visualization   (3).

Data visualization is the art and science of turning data into readable graphics. Students explore how to design and create data visualizations based on data available and tasks to be achieved. This process includes data modeling, data processing, mapping data attributes to graphical attributes, and strategic visual encoding based on known properties of visual perception as well as the task(s) at hand. Students also learn to evaluate the effectiveness of visualization designs and think critically about each design decision, such as choice of color and choice of visual encoding. Students create their own data visualizations and learn to use data visualization tools. Prerequisite(s): CS 400.

CS 797O.  Neural Networks and Deep Learning   (3).

Provides students with in depth knowledge of the use, structure, implementation and analysis of neural networks. The main topics covered are structure and basic types of neural networks, learning techniques, and specialized networks, including but not limited to Hopfield networks, dynamic and competitive networks, Grossberg Networks, and recurrent networks. Case studies are also used to understand the use and optimization with real world examples.

CS 797P.  Algorithms and Applications on Graphs   (3).

Provides students with in depth knowledge of the use, structure, implementation and applications of using graphs to represent data. The main topics covered are basic graph theory, breadth first and depth first algorithms, spanning tree algorithms, minimum cut/max flow, modulus, and more.

CS 797Q.  Applied and Practical Data Science   (3).

Provides a practical view of data science and its industry applications. Topics discussed include: data science methodology, data science project management, interpreting data, data informed recommendation making, data visualization and model iteration. Prerequisite(s): CS 746.

CS 797R.  Cross-Platform Mobile Development   (3).

A project-based course that teaches fundamental factors of cross-platform (Android, iOS, Windows desktop) mobile application development. It uses .NET Multi-platform App UI (.NET MAUI) as the framework to implement applications. Students learn user interface elements, data binding, data persistence and model-view-view-model (MVVM) design pattern. Prerequisite(s): graduate standing or CS 400.

CS 797S.  Software Quality Engineering   (3).

Designed to provide computer science students broad view of software quality assurance techniques and their integration into a comprehensive quality management and improvement system. Course coverage includes topics outlined in key ISO and IEEE Standards. These include the benefits of software quality, defect prevention and detection techniques; an overview of software quality-related standards and models; and a review of major quality assurance activities in the software development life cycle. The course explores contemporary topics on teams and project management principles. Prerequisite(s): CS 580.

CS 797T.  Data Cleaning   (3).

Before someone can start testing machine learning algorithms, they need clean data. It is estimated that data scientists spend up to 80 percent of their time cleaning data before they get to the analysis. Spending time exploring, understanding and cleaning data is paramount. This course gives students practical experience with various data-cleaning procedures and exploratory data analysis techniques. Students learn the best practices and dive further into the basics with hands-on examples. This course teaches students how to identify and treat a variety of data-cleaning problems in Python.

CS 797U.  Advanced Information Systems   (3).

Designed to provide computer science students understanding of information systems in a modern enterprise, including database design, information technology and ethics using hands-on activities and directed classroom discussion. The class concentrates on the relational database model; the conceptual, logical and physical phases of database design and development; and entity-relationship modeling, data normalization. Students gain hands-on experience with database design concepts. The opportunity to build a relational database using the foundational principles of database design within the framework of the database life cycle (DBLC) is covered. Additionally, the course emphasizes the relational data model and its foundations, relational languages and SQL, functional dependencies, and logical database design. Prerequisite(s): CS 211 or MIS 310 or MATH 451 or CS 497B.

CS 797V.  Artificial Intelligence for Cybersecurity   (3).

Covers advanced topics in the application of AI to defend and attack systems, including AI systems themselves. The course starts by covering the implementation of machine learning algorithms to defend computer and networks against common attacks. It then covers the AI techniques that attackers can use to craft attacks to bypass AI defenses, as well as potential countermeasures. A major part of the course is a project that implements both AI defenses and attacks for a particular system. Prerequisite(s): CS 770 and (CS 656 or CS 767).

CS 797W.  Quantum Computing Essentials and Applications   (3).

Quantum computing is the future. In this course, students dive into the mysterious and complex quantum world. By understanding the key difference between classical computing and quantum computing and learning the essentials of quantum computing, students explore potential ideas to incorporate elements of quantum computing into their research areas. This project-based course provides students with an opportunity to experiment and create original codes working with real quantum computers at IBM Quantum Computing and Google Quantum AI. This hands-on experience further develops an understanding of the applications of quantum computers. The course also improves the much-needed research and presentation skills of a graduate student. The course focuses on a brief history of quantum computing, the concept of superposition, qubits and their behavior, the concept of entanglement, quantum teleportation, and EPR paradox. Prerequisite(s): MATH 511 and CS 211.

CS 798.  Individual Projects   (1-3).

Allows beginning graduate students and mature undergraduate students to pursue individual projects of current interest in computer science. Repeatable for credit with advisor approval. Prerequisite(s): departmental consent.

CS 834.  Advanced Routing and Switching   (3).

Advanced course which provides an introduction to the Border Gateway Protocol (BGP), the main internet routing protocol, and mobile all-IP-networks. Significant research topics regarding BGP and mobile IP networks are covered. Prerequisite(s): CS 764.

CS 865.  Principles of DBMS Implementation   (3).

An introduction to the fundamental principles underlying modern database management systems (DBMS). It deals almost entirely with DBMS based on the relational data model. Topics covered are: storage management and query processing. Prerequisite(s): CS 560 and CS 665.

CS 869.  Multi-Service Over IP   (4).

Advanced networking course; deals with challenges and solutions associated with sending voice, video and data (multi-service) over IP. Includes telephony signaling, call routing and dial plans, measuring voice quality, voice digitization and coding, quality of service issues, and current research. Hands-on lab allows students to design, troubleshoot and test different VOIP scenarios. Prerequisite(s): CS 764.

CS 870.  Spoken Language Processing   (3).

Provides students an opportunity to learn about spoken language technology with an emphasis on deep learning methods. This course deals with an introduction to acoustic phonetics, speech production and perception, feature extractions, useful deep learning networks, and other methods for automatic speech recognition, speech synthesis, acoustic event detection, affect detection, and applications to digital assistive technology and spoken language understanding systems. This course also provides an introduction to various deep-learning algorithms utilized in the field of spoken language processing. A brief introduction to deep learning approaches for speech are also presented. The course also introduces techniques to prepare audio data for different applications and also covers recent software and hands-on with the Alexa toolkit. Students get hands-on experience in working with a real-time project. Prerequisite(s): CS 770, CS 797O.

CS 891.  Project   (1-3).

Intensive project involving the analysis and solution of a significant practical problem which must be supervised by a CS graduate faculty advisor; it can be job-related. Students must write a report on the project and pass an oral final examination by an ad hoc faculty committee headed by the project advisor. Prerequisite(s): departmental consent.

CS 892.  Thesis   (1-6).

Student-driven research experience to address a specific research question. Potential topics should be formulated by the student and discussed with their advisor. Repeatable for credit. Prerequisite(s): departmental consent.

CS 893.  Individual Reading or Project   (1-6).

Enables students to perform self-learning activities under the supervision of a faculty member. Typical activities include reading state-of-the-art topics, performing research tasks, conducting technical projects, and/or similar assignments pertinent to their degree program of study. The course content, objectives, deliverables and evaluation must be documented and must be approved by the supervising faculty and program coordinator/department chair. Repeatable for credit up to 6 credit hours. Prerequisite(s): departmental consent.

CS 896.  Capstone Project in Data Science   (3).

This capstone course is for MS in data science students only. It aims at providing students the opportunity to apply the various data science concepts (algorithms, methods and tools) they have studied to solve real world data science problems. Students engage in the entire data science life cycle process topics, including data collection, preprocessing, transformation, exploratory data analysis, visualization, predictive modeling, descriptive modeling, clustering, regression and classification by working on a project. Capstone course. Prerequisite(s): CS 770 and CS 746.

CS 898.  Special Topics   (2-3).

An umbrella course created to explore a variety of subtopics differentiated by letter (e.g., 898A, 898B). Not all subtopics are offered each semester – see the course schedule for availability. Students enroll in the lettered courses with specific topics in the titles rather than in this root course. Prerequisite(s): departmental consent.

CS 898AE.  Software Analysis Methodologies   (3).

This course is designed for computer science graduate students. It provides students the opportunity to gain in-depth knowledge of software analysis methods, including available expressions, reaching definitions, live variables, constraint-based analysis, points-to analysis and program slicing.

CS 898AM.  Cyberphysical System Security   (3).

Covers fundamental concepts in physical systems that are controlled by computers and computer networks (i.e., cyberphysical systems). Provides advanced concepts in threats to cyberphysical systems and state-of-the-art security mechanisms that protect them. Students in this course are exposed to the latest research in cyberphysical system security research through the study of recent publications in top journals and conferences. A major component of this course is a final project where students research, implement and/or evaluate a state-of-the-art cyberphysical system security mechanism. Prerequisite(s): CS 766, CS 656 or CS 767.

CS 898AW.  Artificial Intelligence for Robotics   (3).

The study of intelligent robotics allows robots to gather information from surrounding environments and take actions autonomously. The course covers advanced topics in artificial intelligence that are commonly used in robotics research, including probabilistic graph models, probabilistic logic learning, natural-language processing and deep learning. State-of-the-art robotics research using these techniques is introduced in the area of scene understanding, reasoning and action planning. Students get hands-on experience in using a Nao humanoid robot and a Sawyer collaborative robot.

CS 898AX.  Foundations of Data Science   (3).

Mathematical toolkit that can be applied to problems in data analysis. Topics covered: geometry of high dimensional space; best-fit subspaces and singular value decomposition (SVD); random walks and Markov chains; machine learning; algorithms for massive data problems: streaming, sketching and sampling; clustering. Prerequisite(s): CS 560, MATH 511.

CS 898AY.  Sequential Decision Problems   (3).

Sequential decision problems arise in many applications including packet routing, ad placement, website and page content optimization, or medium access in wireless communications. They typically involve a trade-off between exploration and exploitation, which corresponds to the decision of either exploiting an option that gave high rewards in the past or exploring new options with the hope to obtain higher rewards. Introduces learning methods for sequential decision problems, and presents their theoretical analyses. Topics covered include multi-armed bandits, stochastic bandits, adversarial bandits, Markov decision processes, tools for regret analysis. Prerequisite(s): ECE 754 or CS 731.

CS 898AZ.  Accessible Computing   (3).

Covers various research topics in the area of accessible computing, defined as assistive, adaptive and rehabilitative computing devices, software and techniques for people with special needs to access and use various services. Students are exposed to several interdisciplinary research challenges in the design and application of mobile computing platforms when used towards the accessible computing paradigm. These include intermittent network connectivity, battery and performance constraints, indoor localization and navigation, human computer interfaces, biomechanics and human factors. Each student acquires and applies technical skills to solve research challenges working in groups to complete a research project at the end of the class. Students are also expected to read, present and critique existing research literature in the area. Students from non-CS backgrounds (such as psychology, bioengineering, kinesiology, exercise science, gerontology, communication sciences and disorders, among others) are welcome, and add a multidisciplinary flavor to the class. Students from non-CS backgrounds will have the curriculum adapted to their unique backgrounds. For students with non-CS backgrounds: instructor’s consent. Prerequisite(s): For computer science (CS) and related majors: CS 560 or equivalent, and prior experience creating mobile applications with Android or iOS.

CS 898BA.  Image Analysis and Computer Vision   (3).

Image is an essential form of information representation and communication in modern society. Billions of images are generated every minute in a variety of applications ranging from photography, entertainment, education and defense to medical. A good understanding of vast amounts of image content at signal, object, syntactic and semantic levels are essential to create new capabilities and enable new applications. The objective of this course is to teach practical algorithm and system solutions for image representation, analysis/understanding and retrieval. In addition, computer vision techniques for image classification, object detection and semantic segmentation is also discussed. Prerequisite(s): CS 560.

CS 898BC.  Information Theoretic Security   (3).

Presents a framework for secure communication, which makes no assumptions on the computational power of a potential adversary. Course begins with fundamental tools from information theory and cryptography, which provide the basis for modern research on security at the physical layer and secret-key generation. Various models and applications are discussed. Prerequisite(s): CS 731 or EE 754 or instructor’s consent.

CS 898BD.  Deep Learning   (3).

Covers concepts of various deep learning algorithms and introduces artificial neural network, multi-layer perceptron, deep neural network, training of deep neural networks, convolutional neural networks, recurrent neural networks, long short-term memory networks, autoencoders, reinforcement learning, and GAN (generative adversarial network). Prerequisite(s): CS 746 or CS 697AB.

CS 898BE.  Advanced Topics in Machine Learning   (3).

Introduces various advanced and recent topics in machine learning including supervised and unsupervised learning methods. Central themes include, but are not limited to, analyzing modern large-scale machine learning algorithms toward understanding trade-offs among space, time and the accuracy of such algorithms, performing extensive empirical evaluations to compare various state-of-the-art machine learning algorithms, and critiquing important recent research papers from this field. Specific topics covered in this course vary from semester to semester at the discretion of the instructor. A strong Python programming background is preferred for successful completion of several practical exercises contained in the course. Prerequisite(s): CS 770, CS 721, MATH 511, STAT 460 or IME 254, and good Python programming skill.

CS 898BF.  Quantum Information   (3).

Quantum based technology is rapidly developing and allows to leverage well-known quantum phenomena that have the potential for breakthroughs in areas such as sensing, computing, telecommunication and networking. This course introduces fundamental concepts to understand how to store quantum information and transmit quantum information over physical communication channels. It also discusses applications to quantum key distribution. This introductory course presents concepts from the ground up, no prior expertise is assumed. Prerequisite(s): IME 254 or equivalent .

CS 898BG.  Reinforcement Learning   (3).

Reinforcement learning is an important machine learning paradigm in particular in the context of decision support and decision making, but also in the context of modeling when only limited feedback is available. This course introduces the reinforcement learning paradigm and its underlying formalisms, and covers a wide range of basic and advanced reinforcement learning algorithms as well as aspects of model learning, hierarchy and abstraction, and reward modeling. Throughout, this course studies these techniques in the context of a wide range of application areas, including robotics, computer vision, security, control, scheduling and data analysis. Prerequisite(s): CS 697AB.

CS 898BM.  Contemporary Legal and Policy Issues in Cybersecurity   (3).

Prepares the student for legal, ethical and policy challenges in the current cyber climate. It covers such topics as international cyber law, criminal law, ethical hacking, data privacy, legal issues in data analytics and social media, disinformation, critical infrastructure, ethics of espionage, and space and satellite law.

CS 898CA.  Introduction to Intelligent Robotics   (3).

The study of intelligent robotics allows robots to gather information from surrounding environments and take actions autonomously. Course introduces the fundamental principles and methods of manipulation, navigation and perception for intelligent robotics. Topics covered include geometry transformations, kinematics, dynamics, localization, navigation, mapping, motion planning, intelligent processing, smart sensing, decision making and robotic intelligence. Students explore the robot concepts and algorithms, such as dexterous manipulation, simultaneous localization and mapping (SLAM), and autonomy, while working with Nao humanoid robots and Sawyer collaborative robots. Prerequisite(s): MATH 511.

CS 898CB.  Deep Learning for Brain-Computer Interface   (3).

Presents a framework on deep learning algorithms with a focus on brain-computer interface systems. A brain-computer interface system is a direct pathway between human brain and an external device. These systems present research avenues into understanding how the human brain works with the aim of helping people with physical disabilities. Students learn machine learning and deep learning concepts such as feature extraction and classification, and to apply those concepts to brain-computer interface problems.

CS 898CC.  Security for Real-Time Internet-of-Things   (3).

Critical cyberphysical systems have real-time (i.e., strict timing) requirements which require real-time embedded devices to be connected to the internet. This course reviews the basic principles of real-time systems and their security requirements then study security vulnerabilities and explore state of the art real-time security techniques. Prerequisite(s): CS 540 and CS 766 (or equivalent) are recommended.

CS 898CD.  Trusted Execution for Embedded Systems   (3).

Reviews trusted execution environments (TEEs) for embedded systems, especially the TrustZone technology present in the ARM microcontrollers. The body of the course consists of readings and discussion of top papers in the field. The students also learn how to be familiar with TrustZone APIs and learn how to develop applications for TrustZone-enabled systems. Prerequisite(s): CS 540 and CS 766 (or equivalent) are encouraged but not required.

CS 898CE.  Human Computer Interaction   (3).

Provides a comprehensive introduction to the dynamic field of human-computer interaction (HCI) and user experience (UX) design. Studies the evolution of user interfaces over the past few decades, and teaches practical principles and guidelines needed to develop high quality interface designs that users can understand, predict and control. Covers theoretical foundations and design processes such as expert reviews and usability testing. Also presents current research and innovations in human-computer interaction to inspire students to seek solutions that improve the experiences of novice and expert users, while achieving universal usability. Of particular interest to the class is coverage of emerging paradigms such as augmented and virtual reality, voice and natural language interfaces, information visualization, and social media and search interaction. Students from non-CS backgrounds are welcomed to add a multidisciplinary flavor to the class and have the curriculum adapted to their unique backgrounds in consultation with the instructor. If they do not have expertise in writing software, they may be expected to collaborate with other students who have the appropriate interface building skills. Prerequisite(s): for students with a computer science or related background, basic knowledge of computer programming is expected for development of interfaces.

CS 976.  PhD Dissertation   (1-16).

Student-driven research experience to address a specific research question. Potential topics should be formulated by the student and discussed with their advisor. Repeatable for credit. Prerequisite(s): admission to doctoral aspirant status.

CS 981.  Cooperative Education   (1).

Work-related placement with a supervised professional experience to complement and enhance the academic program. Intended for master's-level or doctoral students in electrical engineering. May not be used to satisfy degree requirements. Repeatable for up to 8 credit hours. Prerequisite(s): departmental consent and a graduate GPA of at least 3.000.