-
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