Courses

    • CS 2290 - Special Topics

      The course covers special topics at the intermediate level that are not in the regular course offerings.

      Prerequisites: Approval of the instructor, major area committee, and department chair.

      Credits: 3

    • CS 3223 - Computer Architecture

      A study of instruction set architectures; basic processor components such as control units, ALU's, and registers; memory; input/output; and performance enhancement using caches and pipelines. Design of the major processor components is discussed in terms of the concepts presented in . Some coverage of assembly language programming is included.

      Prerequisites: and CSE 1301

      Credits: 3-0-3

    • CS 3305L - Data Structures Lab

      This laboratory course will cover the implementation of data structures concepts in a contemporary programming language.

      Prerequisites: (CSE 1322 and CSE 1322L) and MATH 2345 

      Credits: 1

    • CS 3305 - Data Structures

      This course introduces data structures, specification, application, and implementation. The case studies will illustrate how data structures are used in computing applications. The emphasis of the course is on linear and some nonlinear data structures and object oriented principles. Topics include: abstract data types, stacks, queues, lists, binary search trees, priority queues, recursion, algorithm efficiency, trees, heaps, hash tables, and analysis of search and sort algorithms and their performance for implementation and manipulation. The programming language to be used in this course is any standard high-level object-oriented programming language such as C++, Java, and Ada.

      Prerequisites: MATH 2345 and (CSE 1322 and CSE 1322L)

      Credits: 3

    • CS 3410 - Introduction to Database Systems

      Introduction to the database management systems, database processing, data modeling, database design, development, and implementation. Contrasts alternative modeling approaches. Includes implementation of current DBMS tools and SQL.

      Prerequisites: A grade of B or better in both CSE 1322 and CSE 1322L 

      Credits: 3

    • CS 3502 - Operating Systems

      This course introduces the fundamental concepts and principles of operating systems. Topics covered include system performance, processes and threads, multiprogramming, scheduling, memory management, synchronization, deadlocks, file systems, Input/output systems. Additional topics: security and protection, network and distributed OS.

      Prerequisites: (CS 3503 and CS 3503L) and (CS 3305 and CS 3305L)

      Credits: 3

    • CS 3503L - Computer Organization and Architecture Lab

      This course will provide the student the opportunity to access some of the physical components of a computer and generate code to manipulate these components.

      Prerequisites: CSE 1322 and CSE 1322L 

      Credits: 1

    • CS 3503 - Computer Organization and Architecture

      Introduction and overview of basic computer organization. Computer arithmetic: binary, hexadecimal and decimal number conversions, binary number arithmetic and IEEE binary floating point number standard. Basic computer logic: gates, combinational circuits, sequential circuits, adders, ALU, SRAM and DRAM. Basic assembly language programming, basic Instruction Set Architecture (ISA), and the design of single cycle CPU. Hardware security will be introduced.

      Prerequisites: CSE 1322 and CSE 1322L 

      Credits: 3

    • CS 4242 - Artificial Intelligence

      The primary objective of this course is to provide a introduction to the basic principles and applications of Artificial Intelligence. It covers the basic areas of artificial intelligence including problem solving, knowledge representation, reasoning, decision making, planning, perception and action, and learning -- and their applications. Students will design and implement key components of intelligent agents of modern complexity and evaluate their performance. Students are expected to develop familiarity with current research problems, research methods, and the research literature in AI.

      Prerequisites: CS 3305 and CS 3305L 

      Credits: 3

    • CS 4265 - Big Data Analytics

      This course covers algorithms and tools that are needed to build MapReduce applications with Hadoop or Spark for processing gigabyte, terabyte, or petabyte-sized datasets on clusters of commodity hardware. A wide range of data algorithms will be discussed in this course.

      Prerequisites: A grade of C or better in (CS 3305 and CS 3305L) and CS 3410 

      Credits: 3

    • CS 4267 - Machine Learning

      This course covers the-state-of-the-art machine learning techniques. Focuses will be put on deep learning, kernel methods and ensemble learning. Students will learn applying advanced machine learning techniques to solve challenging problems, especially big data problems.

      Prerequisites: A grade of C or better in (CS 3305 and CS 3305L) and CS 3410 

      Credits: 3

    • CS 4270 - Intelligent Systems in Bioinformatics

      Biological sciences are undergoing a revolution in how they are practiced. In the last decade, a vast amount of biological data has become available, and computational methods are playing a fundamental role in transforming this data into scientific understanding. Bioinformatics involves developing and applying computational methods for managing and analyzing information about the sequence, structure and function of biological molecules and systems. This course covers a wide range of machine learning, data mining, and computational algorithms to solve various bioinformatics research problems.

      Prerequisites: A grade of C or better in (CS 3305 and CS 3305L) and CS 3410 

      Credits: 3

    • CS 4305 - Software Engineering

      This course provides an overview of the software engineering discipline with emphasis on the development life cycle and UML modeling. It introduces students to the fundamental principles and processes of software engineering, including Unified, Personal, and Team process models. This course highlights the need for an engineering approach to software with understanding of the activities performed at each stage in the development cycle. Topics include software process models, requirements analysis and modeling; design concepts and design modeling; architectural design and styles; implementation; and testing strategies and techniques. The course presents software development processes at the various degrees of granularity.

      Prerequisites: CS 3410, CSE 3801, COM 1100 

      Credits: 3

    • CS 4306 - Algorithm Analysis

      Advanced algorithm analysis including the introduction of formal techniques and the underlying mathematical theory. Topics include asymptotic analyses of complexity bounds using big-O, little-o, omega, and theta notations. Fundamental algorithmic strategies (brute-force, greedy, divide-and-conquer, backtracking, branch-and-bound, pattern matching, parallel algorithms, and numerical approximations) are covered. Also included are standard graph and tree algorithms. Additional topics include standard complexity classes, time and space tradeoffs in algorithms, using recurrence relations to analyze recursive algorithms, NP-completeness, the halting problem, and the implications of non-computability.

      Prerequisites: CS 3305  and CS 3305L 

      Credits: 3

    • CS 4308 - Concepts of Programming Languages

      This course covers the fundamental concepts on which programming languages are based and the execution models supporting them. Topics include values, variables, bindings, type systems, control structures, exceptions, concurrency, and modularity. Languages representing different paradigms are introduced.

      Prerequisites: (CS 3503 and CS 3503L), and (CS 3305 and CS 3305L)

      Credits: 3

    • CS 4322 - Mobile Software Development

      This course primarily focuses on mobile sensor application development and security of smartphones and mobile telecommunication systems. The goals of the course is to provide students with real world relevant mobile sensor app development and improve their knowledge and skills on mobile application development and mobile security.

      Prerequisites: (CS 3305 and CS 3305L) and (CS 3410 or CSE 3153) and SWE 3313

      Credits: 3

    • CS 4400 - Directed Studies

      This course covers special topics of an advanced nature that are not in the regular course offerings. Up to three hours may be applied to the major area.

      Prerequisites: Approval of the instructor, major area committee, and department chair.

      Credits: 1-3

    • CS 4412 - Data Mining

      This course covers fundamental data mining concepts and techniques for discovering interesting patterns from data in various applications. Topics include data preprocessing, data warehousing and OLAP, mining frequent patterns, classification, clustering, and tend analysis.

      Prerequisites: (CS 3305 and CS 3305L) and CS 3410   

      Credits: 3

    • CS 4491 - Advanced Topics in Computer Science

      This course provides the current and relevant topics in an advanced Computer Science area of interest to faculty.

      Prerequisites: A grade of C or better in any prerequisite course. Prerequisite course(s) vary depending upon the topic.

      Credits: 3

    • CS 4504 - Distributed Computing

      A course that introduces students to the fundamental principles common to the design and implementation of programs that run on two or more interconnected computer systems. The subtopics, which are based on these principles, include: distributed operating system and network protocols for process communication, synchronization, scheduling, and exception and deadlock resolution; understanding of client-server, web-based collaborative systems; parallel computing; concurrency issues; and API's for distributed application development. Several distributed computing environments, like MPI, PVM, and Java RMI are discussed and used in developing experimental projects in a cluster of networked computers.

      Prerequisites: CS 3502 

      Credits: 3

    • CS 4512 - Systems Programming

      This course presents an introduction to systems programming in Linux/Unix. Topics include file I/O, process control and communication, threading, and network-aware systems programs.

      Prerequisites: (CS 3305 and CS 3305L), and CS 3502 

      Credits: 3

    • CS 4514 - Real-Time Systems

      This course covers the software-development life cycle as it applies to real-time systems. Alternatives: • Including labs that involve the use of a real-time operating system and an associated development environment, or • Modeling with UML, and object oriented simulation. Introduction to formal specification of real-time systems. A course project is required to be completed by the end of the semester.

      Prerequisites: CS 3502 

      Credits: 3

    • CS 4522 - HPC & Parallel Programming

      This course will introduce parallel programming techniques for shared memory and distributed memory systems. Topics include threading, OpenMP, and MPI.

      Prerequisites: (CS 3305 and CS 3305L), and CS 3502 

      Credits: 3

    • CS 4523 - Programming Massively Parallel Processors

      A study of practical parallel algorithms with an emphasis on implementation and performance issues on massively parallel processors. Design and implement high performance computing applications using CUDA running on Graphics Processing Unit (GPU). Topics include heterogeneous parallel programming, hardware threading models, synchronization, parallel blocking algorithms, register allocations, memory performance, and inter-thread communication.

      Prerequisites: (CS 3305 and CS 3305L), and CS 3502 

      Credits: 3

    • CS 4524 - Cloud Computing

      This course discusses the fundamental concepts and techniques of cloud computing. Students will develop an understanding of cloud computing architecture, Infrastructure as a Service (IaaS), Platform-as-a-Service (PaaS), Software as a Service (SaaS), Virtualization, and Application Development on Cloud.

      Prerequisites: (CS 3305 and CS 3305L) and CS 3502 

      Credits: 3

    • CS 4612 - Secure Software Development

      This course covers the design and implementation of secure software. Some of the topics covered are the characteristics of secure software, the role of security in the development lifecycle, designing secure software, and best security programming practices. Security for web and mobile applications will be covered.

      Prerequisites: CS 3503 and CS 3503L 

      Credits: 3

    • CS 4622 - Computer Networks

      This course covers computer networking and includes software application-related, protocol-related and security-related issues involved in the Internet. Topics include basic network structures, mechanisms for application-to-application communications, protocol layering, Internet addressing, unicast and multicast routing, connection establishment and termination, data flow and congestion control, and error handling. A specific protocol suite will be examined in detail. More advanced topics that build on the student's understanding of network protocols are also introduced, such as network security, mobile networks and the future Internet.

      Prerequisites: CS 3503 and CS 3503L 

      Credits: 3

    • CS 4632 - Modeling and Simulation

      This course covers the modeling and simulation of the structure and behavior of real-world systems using object-oriented discrete-event simulation techniques. The course emphasizes the modeling and computer programming perspective of simulation; design and implementation of simulation models. The fundamental concepts of object-oriented simulation are introduced. Model implementation will require programming in an object-oriented simulation language such as OOSimL, or in a general purpose programming language (Java or C++). Students will also be exposed to a commercial integrated simulation software tool: Arena.

      Prerequisites: CS 3305 and CS 3305L 

      Credits: 3

    • CS 4712 - User Interface Engineering

      A comprehensive study of techniques in design and implementation of user interfaces engineering. Topics include the foundation of human-computer interaction and interface related to software lifecycle, building a graphic user interface engineering, interaction devices and technologies, human-computer dialogue, cognitive models, usability, the design and development process, user interface management systems (UIMS), interface style and techniques, user learning, and diversity in interaction styles. Major research and the building of a working graphic user interface are included.

      Prerequisites: CSE 1322 and CSE 1322L 

      Credits: 3

    • CS 4720 - Internet Programming

      This course introduces current technologies for modeling, designing, implementing, and developing Web applications. Topics include developing for the server and the client, programming frameworks, server administration and integration with databases. Practice will involve platforms and language such as Linux, Python, PHP, Ruby and JavaScript.

      Prerequisites: (CS 3305 and CS 3305L) and (CSE 3153 or CS 3410)

      Credits: 3

    • CS 4722 - Computer Graphics and Multimedia

      The basic principles and practices of interactive computer graphics and multimedia systems are covered in this introductory course. The design and implementation of state-of-the-art computer graphic rendering and visual multimedia systems are the main part of the course. The sub-topics of the course deal with specific input/output hardware devices and their technology, software and hardware standards, programming methods for implementing 3-dimensional graphical applications and interactive multimedia applications, and a study and evaluation of the effectiveness of graphic/multimedia communications. A large component of the class is the building of a large-scale application.

      Prerequisites: CS 3305 and CS 3305L 

      Credits: 3

    • CS 4732 - Machine Vision

      This course introduces concepts and techniques in machine vision. Students successfully completing this course will be able to apply a variety of image processing techniques for the design and analysis of efficient algorithms for real-world applications, such as optical character recognition, face detection and recognition, motion estimation, human tracking, and gesture recognition.

      Prerequisites: CS 3305 and CS 3305L 

      Credits: 3

    • CS 4850 - Computer Science Senior Project

      The course provides a capstone experience for CS majors to promote a successful transition to the work place or further academic study. Students will have the opportunity to practice essential project management skills and work with current software tools and technologies. Student teams will develop a project scope, project plan, document functional specifications, develop a design document, implement specified functions, provide weekly progress reports, give project presentations to the class, conduct final project presentation to the instructor and/or project sponsor, and provide a complete final report that includes documentation of all class activities. Each team will designate a team leader who is responsible for coordinating work tasks, team meetings, communications with the instructor and/or project sponsor, and team effort.

      Prerequisites: CS 3502 and CS 4305 

      Credits: 3

    • 33

    • CS 5000 - Foundations of Programming

      An accelerated approach to programming is presented with an emphasis on program design and computer science concepts. A modern, Object-Oriented language is used. Topics include core programming concepts including common data structures, function and class definition, inheritance, polymorphism, file I/O and exceptions, and recursion. Programming projects are included.

      Credits: 3

    • CS 5020 - Foundations of Computer Architecture and Operating Systems

      This accelerated course contains selected concepts from architecture including number systems, digital logic, basic logic design in combinational and sequential circuits, and assembly and machine language. Operating Systems concepts include management of resources including processes, real and virtual memory, jobs, processes, peripherals, network, and files.

      Credits: 3

    • CS 5040 - Data Structures & Algorithms

      An intense coverage of data structures and algorithmic techniques is provided including runtime analysis and big-oh notation. A modern language will be used. Topics include dynamically allocating memory, pointer declaration and use, and the implementation of data structures such as lists, stacks, queues, binary search trees, and graphs. Analysis techniques are provided, such as the growth of functions, recurrence equations, advanced sorting techniques, elementary graph algorithms, minimum spanning trees, greedy algorithms. Programming projects are included.

      Credits: 3

    • CS 5060 - Database Design

      This course will provide a practical foundation of database systems with emphasis on relational database design, implementation, and management. Topics include normalization, ERD, logical and physical design, SQL query, database applications, usage of XML in database, and data warehouse.

      Credits: 3

    • CS 5070 - Mathematical Structures for Computer Science

      Topics from discrete mathematics include set theory, relations and functions, principles of counting, graph theory, formal logic, recursion, and finite state machines. Emphasis is given to how mathematics relates to computer science.

      Prerequisites: Undergraduate Calculus course.

      Credits: 3

    • CS 6021 - Advanced Computer Architecture

      Topics include computer performance issues, instruction set architectures, RISC versus CISC, performance enhancing techniques, memory hierarchy (including cache memory), pipelining, multiprocessor architectures, and implications to operating system design.

      Prerequisites: Coursework in computer architecture and operating systems, or CS 5020 as per admissions analysis.

      Credits: 3

    • CS 6025 - Advanced Operating Systems

      The course focuses on advanced OS concepts such as: memory and process management for high-performance computing and architectures, advanced threading/concurrency, and distributed architectures and computing. The course emphasizes performance modeling with simulation and reading papers on the various advanced topics of operating systems. Discussion of grid computing and cloud computing, virtualization and hypervisors, scheduling for real-time, symmetric multiprocessing and hardware multithreading, effects and control of hardware cachesA research project/paper is to be developed during the second half of the course.

      Credits: 3

    • CS 6027 - Advanced Computer Networking

      This course builds on the fundamentals of computer networking and covers network programming, software application-related, protocol-related and security-related issues involved in the Internet. A specific protocol suite will be examined in detail. More advanced topics that build on the student's understanding of network protocols are also introduced, such as network security, mobile networks and the future Internet.

      Credits: 3

    • CS 6041 - Theory of Computation

      A study of topics from theoretical computer science that includes automata and languages, computability theory, and complexity theory.

      Prerequisites: Coursework in Discrete Math or CS 5070 as determined by program admission

      Credits: 3

    • CS 6045 - Advanced Algorithms

      This course covers advanced topics in algorithms including randomized algorithms, decompositions of graphs, dynamic programming, linear programming and reduction, NP-complete problems, approximation algorithms, and quantum algorithms.

      Prerequisites: Coursework in Data Structures or CS 5040 as determined by program admission

      Credits: 3

    • CS 7050 - Data Warehousing and Mining

      This course covers prominent algorithms and techniques for developing effective, efficient, and scalable data warehousing and data mining tools. Topics discussed in this course include: data visualization, data integration, data warehousing, online analytical processing, data cube technology, advanced pattern mining, advanced classification analysis, advanced clustering analysis, outlier detection, data mining trends and research frontiers.

      Prerequisites: CS 6045 and CS 7260 

      Credits: 3

    • CS 7060 - Mobile Intelligence

      This course covers advanced and/or intelligent mobile application development. Topics include cross-platform mobile application development, mobile augmented reality, and mobile business intelligence. 

      Prerequisites: CS 7455 

      Credits: 3

    • CS 7070 - Advanced Networking Protocols

      This course covers the study of the modern networking protocols, including the TCP/IP protocol suite, addressing, IPV6, routing, security.

      Prerequisites: CS 7425 

      Credits: 3

    • CS 7075 - Artificial Intelligence and Robotics

      This is a survey course covering topics in Artificial Intelligence and Autonomous Robotics. A survey of AI methods and approaches from search methods to neural networks will include hands-on with expert systems. A robotics kit will be included to allow students to analyze, design, build, and test simple robotic systems running autonomously.

      Prerequisites: CS 6021  

      Credits: 3

    • CS 7125 - Cloud Computing

      In this course we will discuss concepts including cloud computing, cloud computing architecture, Infrastructure as a Service (IaaS), Platform-as-a-Service (PaaS), Software as a Service (SaaS), etc. We will study commercial products such as Amazon EC2. We will also discuss advanced topics such as Cloud simulation tools and open sourced software for Cloud environment.

      Prerequisites: CS 5020 or Equivalent

      Credits: 3

    • CS 7172 - Parallel and Distributed Computing

      This course covers various aspects of parallel and distributed processing and algorithm design with an emphasis on programming. Topics include: Taxonomy of parallel architectures; Shared-memory vs. message-passing architectures; Computation models and Performance metrics; Parallel/distributed algorithm design - basic techniques; Parallel/distributed programming techniques and issues: partitioning, load balancing, synchronization, task scheduling, message overheads, etc.; Parallel/distributed algorithms for sorting, matrices, etc.; Debugging, Profiling, and Performance enhancements of parallel and distributed programs. Students will gain experience in parallel and distributed programming on state-of-the-art cluster and GPGPU/CUDA machines, including a 700+ CUDA machine.

      Credits: 3

    • CS 7174 - Modeling and Simulation

      The course covers an overview of modeling and simulation of the structure and behavior of real-world systems using object-oriented discrete-event simulation techniques. Students select an advanced topic in modeling and simulation to develop a research project and paper.

      Credits: 3

    • CS 7260 - Advanced Database Systems

      This course will cover advanced concepts and techniques in database systems. Topics include advanced concepts in relational databases, data warehousing and mining, and NoSQL distributed database technology for big data analytics.

      Prerequisites: CS 5060 or equivalent or Admission to PhD in Analytics and Data Science program

      Credits: 3

    • CS 7263 - Text Mining

      This course covers algorithms and applications of mining text/web data. Topics include entity extraction, social graph analysis, text clustering, TF-IDF indexing, web crawling, natural language processing, trend analysis, and semantic web. Multiple case studies will be conducted.

      Prerequisites: CS 6045 or Admission to PhD in Analytics and Data Science program

      Credits: 3

    • CS 7265 - Big Data Analytics

      This course covers algorithms and tools that are needed to build MapReduce applications with Hadoop or Spark for processing gigabyte, terabyte, or petabyte-sized datasets on clusters of commodity hardware. A wide range of data algorithms will be discussed in this course.

      Prerequisites: CS 6045 or Admission to PhD in Analytics and Data

      Credits: 3

    • CS 7267 - Machine Learning

      This course covers the-state-of-the-art machine learning techniques. Focuses will be put on deep learning, kernel methods and ensemble learning. Students will learn applying advanced machine learning techniques to solve challenging problems, especially big data problems.

      Prerequisites: CS 6045 or Admission to PhD in Analytics and Data Science Program

      Credits: 3

    • CS 7327 - Computer Graphics and Multimedia

      A study of the algorithms and principles of interactive 3D computer graphics, this course focuses on the rendering of graphical data with an emphasis on real-time systems. Topics include standards, supporting mathematics (including matrix and vector operations), the graphics pipeline, coordinate systems, lighting calculations, texturing, file formats and shader-based rendering. Major project included.

      Prerequisites: Coursework in Data Structures or CS 5040 as determined by program admission

      Credits: 3

    • CS 7367 - Machine Vision

      This course introduces students to basic concepts and techniques in machine vision. Students successfully completing this course will be able to apply a variety of computer techniques for the design and analysis of efficient algorithms for real-world applications, such as optical character recognition, face detection and recognition, motion estimation, human tracking, and gesture recognition. The topics covered include Geometric Camera Models, image enhancement, edge detection, image transformation, feature extraction, image segmentation, object detection, object recognition, tracking, gesture recognition, image formation and camera models, video analysis and stereo vision. The course will be evaluated based on programming assignments, written tests, and a final term project.

      Prerequisites: Students should possess basic proficiency in programming and data structures as well as a basic familiarity with Linear Algebra; CS 3304 or CS 5040 (or equivalent).

      Credits: 3

    • CS 7375 - Artificial Intelligence

      This course is about the theory and practice of Artificial Intelligence (AI). We will study modern AI techniques for computers to represent task-relevant information and make intelligent (i.e. satisficing or optimal) decisions towards the achievement of goals. We will investigate questions about AI systems such as how to represent knowledge, how to effectively generate appropriate sequences of actions and how to search among alternatives to find optimal or near-optimal solutions. We expect that by the end of the course students will have a thorough understanding of the algorithmic foundations of AI and how automated agents learn. Other topics will include intelligent agents, natural language processing, computer vision, machine learning, artificial neural networks and nature-inspired algorithms.

      Prerequisites: CS 5040 or equivalent

      Credits: 3

    • CS 7385 - Human Factors

      The psychological, social, and technological aspects of interaction between humans and computers. Includes usability engineering, cognitive and perceptual issues, human information processing, user-centered design approaches, and development techniques for producing appropriate systems. Major project included.

      Prerequisites: Program Admission or Permission of Director

      Credits: 3

    • CS 7425 - Wireless and Mobile Computing

      This course introduces the fundamental concepts of wireless networks, radio propagation, and data communications. It includes an extensive discussion on the MAC layer, IEEE802.11, location-sensing systems, wireless technologies (e.g., IEEE802.11, WiMAX, Bluetooth, RF tags, Wii), various data dissemination and access paradigms/architectures (e.g., mesh networks, mobile peer-to-peer) and wireless networks (e.g., ad hoc, mesh, sensor, infrastructure networks), routing protocols for wireless networks, monitoring wireless networks, statistical analysis and modeling of wireless network measurements, and analyzing the performance of mobile computing systems. The course also includes programming/survey/research term project that will enable students to experiment with mobile computing and research on wireless networking hot topics.

      Prerequisites: Admission to the MSCS program.

      Credits: 3

    • CS 7455 - Mobile App Development

      This course covers the fundamentals of software development for the Android Mobile Application Platform. Topics include UI Design for Mobile Apps, Resource Management for Mobile Apps, and Deployment of Mobile Apps.

      Prerequisites: Coursework in Computer Programming, or CS 5000 as determined by program admission

      Credits: 3

    • CS 7457 - Game Design and Development

      An introduction to computer game design, game design engines, 2D and 3D graphics, game-related algorithms, game control structures and games as simulations. Topics include graphics, multimedia, visualization, animation, artificial intelligence, and tools of game design. Developments using the software engineering life cycle are emphasized. The development and presentation of a game prototype is required.

      Prerequisites: Coursework in Data Structures or CS 5040 as determined by program admission

      Credits: 3

    • CS 7530 - Computing Security

      This course provides an introduction to fundamentals of security in computers and applications. Topics include various security principles based on authentication, authorization, access control, and cryptography. Focus is on latest trends in emerging security threats within network, web, mobile, and database applications as well as best practices to mitigate the threats. 

      Prerequisites: CS 6025  

      Credits: 3

    • CS 7535 - Computing Security: Implementation and Application

      This course covers the fundamentals of computing security, access control technology, cryptographic algorithms, implementations, tools and their applications in communications and computing systems security. Topics include public key infrastructure, operating system security, database security, network security, web security, firewalls, security architecture and models, and ethical and legal issues in information security.

      Prerequisites: (Coursework in Data Structures or CS 5040) and (Discrete mathematics coursework or CS 5070) as determined by program admission.

      Credits: 3

    • CS 7537 - Digital Forensics

      This course covers comprehensive study of the technological, systematic inspection and analysis of the computer systems and contents for evidence or supportive evidence of a crime. It focuses on legal systems, digital forensics, search and seizure, digital evidence, and media analysis. Students will be introduced to tools and techniques, and trends in digital forensics field.

      Prerequisites: CS 6025 and CS 6021 

      Credits: 3

    • CS 7827 - Real Time Systems

      The software development life cycle as it applies to real-time systems. Labs involve the use of a real-time operating system and an associated development environment. Related topics such as concurrent task synchronization and communication, sharing of resources, scheduling, reliability, fault tolerance, and system performance are discussed. Major project included.

      Prerequisites: Coursework in Operating Systems or CM 5030 as determined by program admission

      Credits: 3

    • CS 7843 - Theory of Programming Languages

      Comparative study of programming language paradigms with emphasis on design and implementation issues. Covers formal definitions of syntax and semantics, data types, scanning, parsing, scoping, static and dynamic storage allocation, definition of operations, control of program flow, code generation, virtual machine, subroutine and function linkages, formal tools for characterizing program execution, and abstraction techniques. This course exercises the agile software development process and methodologies via a term programming language project. It covers an in-depth of programming language design including scripting languages such as Scheme/Lisp.

      Prerequisites: Coursework in Discrete Math OR CS 5070 - Mathematics Structures for Computer Science, as determined by program admission. Some basic C or Java programming experiences are strongly required.

      Credits: 3

    • CS 7990 - Special Topics in Computer Science

      Prerequisites: Depends upon topic

      Credits: 3

    • CS 7991 - Advanced Topics in Computer Science

      This course will cover research methods in computer science. Students will be required to study certain advanced topics in computer science through literature reviews and project development, and present study outcome in a seminar.

      Credits: 3

    • CS 7992 - Directed Studies

      This course covers special topics of an advanced nature that are not in the regular course offerings. Up to three hours may be applied to the major area.

      Prerequisites: Approval of the instructor, program director, and department chair

      Credits: 1-3

    • CS 7993 - Computer Science Graduate Research Seminar

      This course examines and presents latest developments in all areas of Computer Science by internal and external speakers.

      Credits: 1

    • CS 7995 - Internship

      This course provides a supervised, credit-earning experience of research or development in computer science with an approved organization or institution. Each student will also be required to complete a research/development project.

      Credits: 3

    • CS 7999 - Thesis

      Candidates will conduct thesis research in computer science and complete their theses under the direction of university supervisors who serve as their major professors.(repeatable until thesis is complete; 9 hours minimum)

      Prerequisites: Permission of program director

      Credits: 1-3

    • 39

©