CSYE 6200. Concepts of Object-Oriented Design. (4 Hours)

Introduces object-oriented design and programming via the Java programming language; the use of inheritance, composition, and interface classes in software design; development of Java applets and applications; study of the Java class libraries, including the swing tool kit for building human computer interfaces, the network package for development of client-server systems, and the collections’ package for data structures and sorting algorithms. Requires a course project. Requires knowledge of C programming.


CSYE 6202. Concepts of Object-Oriented Design with C#. (4 Hours)

Introduces object-oriented design and programming via the C# (C-sharp) programming language and its underlying .NET platform. Covers the use of inheritance and composition in software design and development of complex C# .NET applications. Topics include classes, overloading, data abstraction, information hiding, encapsulation, inheritance, polymorphism, file processing, templates, exceptions, container classes, and low-level language features.


CSYE 6205. Concepts of Object-Oriented Design with C++. (4 Hours)

Introduces object-oriented design and programming via the C++ programming language. Covers the use of inheritance and composition in software design and development of complex C++ applications. Topics include classes, overloading, data abstraction, information hiding, encapsulation, inheritance, polymorphism, file processing, templates, exceptions, container classes, and low-level language features. Requires a course project.


CSYE 6220. Enterprise Software Design. (4 Hours)

Designed to build on previous experience in concepts of object-oriented design courses with equal focus in the three areas of architecture, design, and implementation. Instruction and hands-on exercises cover both server-side and client-side web programming. Offers students an opportunity to build a conceptual understanding and to gain practical experience with popular frameworks (Spring MVC, Hibernate, and Dojo or jQuery) that increase productivity, empower developers, and greatly simplify web development. The goal is to be able to build the server side and client side of substantial web-based, client-server, database-intensive, multitier applications.

Prerequisite(s): CSYE 6200 with a minimum grade of B- or CSYE 6202 with a minimum grade of B- or CSYE 6205 with a minimum grade of B-


CSYE 6225. Network Structures and Cloud Computing. (4 Hours)

Offers a practical foundation in cloud computing and hands-on experience with the tools used in cloud computing. Designed as a foundation course for cloud-aware, adept professionals. Focuses on the fundamentals of cloud computing, the principal areas of cloud architectures, cloud security, cloud governance, cloud storage, cloud virtualization, and cloud capacity. Discusses the Internet evolution that led to cloud and how cloud applications revolutionized Web applications.

Prerequisite(s): CSYE 6200 with a minimum grade of B- or INFO 5100 with a minimum grade of B- or INFO 5100 with a minimum grade of B-


CSYE 6230. Operating Systems. (4 Hours)

Covers basic concepts of operating systems and system programming, such as utility programs, subsystems, and multiple-program systems. Main topics include processes, interprocess communication, and synchronization; memory allocation, segmentation, and paging; loading, linking, and libraries; resource allocation, scheduling, and performance evaluation; file systems, storage devices, and I/O systems; and protection, security, and privacy. Emphasizes key concepts through code design and development.

Prerequisite(s): INFO 6205 with a minimum grade of B-


CSYE 6305. Introduction to Quantum Computing with Applications. (4 Hours)

Addresses how scientists and engineers can use quantum computers to simulate large quantum mechanical systems easily, which is crucial in discovery of new lifesaving drugs and new efficient materials. Quantum computers maintain an abstract state where both 0 and 1 states exist simultaneously with some probability. The course delves deeper into how such an abstract state can be realized physically and used as a computing tool to simplify algorithm implementation and execution. Offers students an opportunity to learn about the latest breakthroughs in cryptography systems (RSA), as well as fast database search; accurate weather forecasting; ultrasecure communication; and fast image recognition.

Prerequisite(s): INFO 6205 with a minimum grade of B


CSYE 6700. Technical Writing and Professional Development. (0 Hours)

Emphasizes professional communication skills through intensive verbal practice and technical writing application. Students work together in groups and individually to practice verbal and written communication to increase their English competency and comfort level for work in the United States. Offers students an opportunity to develop their ability to communicate technical skills sets in a professional setting. This course does not count toward graduation requirements.


CSYE 6962. Elective. (1-4 Hours)

Offers elective credit for courses taken at other academic institutions. May be repeated without limit.


CSYE 7105. High-Performance Parallel Machine Learning and AI. (4 Hours)

Explores the parallelization of machine learning and deep learning code that leads to high performance on heterogeneous cluster architectures. Includes the applications to a variety of domains, including image classification, speech recognition, and natural language processing, etc. Covers a brief overview of the emerging parallel computing applications. Analyzes system architectures for different kinds of parallel computing systems (shared-memory system, distributed-memory system, accelerator system, and hybrid). Offers students an opportunity to practice the principles and the practice of the emerging parallelism-based machine-learning paradigm.

Prerequisite(s): DAMG 6105 with a minimum grade of B or INFO 6105 with a minimum grade of B


CSYE 7125. Advanced Cloud Computing. (4 Hours)

Examines a collection of repeatable, generic software design patterns such as sidecar pattern, ambassador pattern, adapter pattern, event driven, stream and batch processing, containers and container orchestration with Kubernetes, replication, partitioning, transactions, consistency, and consensus to help make the development of reliable distributed systems more approachable and efficient. Microservices, containers, and container orchestration have fundamentally changed how distributed systems are developed. Offers students an opportunity to determine which kind of technology is appropriate for which purpose and to understand how these patterns can be combined to form the foundation of a good application architecture.

Prerequisite(s): CSYE 6225 with a minimum grade of B


CSYE 7200. Big-Data System Engineering Using Scala. (4 Hours)

Covers the fundamentals of functional programming with Scala and seeks to provide a basic, practical foundation for students who want to use it as a language for working with big-data platforms. Scala is one of a new breed of general-purpose functional programming languages that is strongly typed and is object oriented. It runs on the Java virtual machine and is able to share libraries from the vast collection of open-source projects written in Java. For these reasons it is readily accessible by programmers of Java, C++, and similar languages.


CSYE 7215. Foundations of Parallel, Concurrent, and Multithreaded Programming. (4 Hours)

Covers all aspects of concurrent program design, development, and implementation utilizing the Java multithreading API/facilities. Topics covered include thread safety and lifetime issues, block structured versus explicit synchronization, intrinsic versus explicit locking, thread pools, liveness issues, deadlock, livelock, race conditions, atomicity, performance and scalability, execution policies, test strategies. Major Java multithreading API/facilities covered include synchronized blocks, wait sets, intrinsic locks and condition variables, synchronized and concurrent collections, executor framework. Comparisons between the Java multithreading API and the Posix Pthreads multithreading standard are provided.

Prerequisite(s): CSYE 6200 with a minimum grade of B- or INFO 5100 with a minimum grade of B- or INFO 5100 with a minimum grade of B-


CSYE 7220. Deployment and Operation of Software Applications. (4 Hours)

Introduces the four most popular infrastructure languages—Chef, Puppet, Ansible, and Salt— and codes with them in the same way that we code with Java, Python, C#, and Javascript. IT infrastructure languages and their underlying methods and tools, referred to as DevOps, bridge the gap between software development and software administration. Instead of recruiting CPU cycles on our laptops, we create and manage virtual IT infrastructures on a public cloud. Offers students an opportunity to learn how to manipulate virtual machines, containers, and lambdas and set up assembly lines on public clouds in the fashion of a Model T assembly line.

Prerequisite(s): CSYE 6220 with a minimum grade of B- or INFO 6250 with a minimum grade of B-


CSYE 7224. Engineering Reliable, Scalable, and Maintainable Distributed Systems. (4 Hours)

Covers repeatable, generic software design patterns such as sidecar, ambassador, adapter, event driven, stream and batch processing, containers and container orchestration, replication, partitioning, transactions, consistency, and consensus to help make the development of reliable distributed systems more approachable and efficient. Studies the common language and framework these patterns provide. Microservices, containers, and container orchestration have fundamentally changed how distributed systems are developed. Designed to find ways of thinking about distributed systems—not just how they work, but also why they work, and what questions we need to ask. Offers students an opportunity to decide which kind of technology is appropriate for which purpose and to understand how these patterns can be combined to form the foundation of a sound application architecture.

Prerequisite(s): CSYE 6225 with a minimum grade of B


CSYE 7230. Software Engineering. (4 Hours)

Looks at the software life cycle (requirements analysis and specification, software design, coding, testing, and maintenance). Offers verification, validation, and documentation at various stages of the life cycle. Covers the Unified Modeling Language as applied to the software life cycle. Covers applications of design patterns. Overviews user interface design, software metrics, and software development environments. Emphasis is on modular software construction and development of modular libraries. Requires a small software development project.

Prerequisite(s): CSYE 6200 (may be taken concurrently) with a minimum grade of C- or INFO 5100 (may be taken concurrently) with a minimum grade of C- or INFO 5100 (may be taken concurrently) with a minimum grade of D-


CSYE 7270. Building Virtual Environments. (4 Hours)

Covers the basics of three-dimensional graphics programming using the Unity game engine. Includes a built-in terrain editor; a shader development facility; built-in physics; and advanced lighting, shadows, and audio to build 3D virtual environments and serious games. Javascript and C# can be used for scripting. Assets from various 3D modeling programs can be imported. Facilities to publish to the PC, Mac, iPhone and Wii and support for real-time multiplayer games are available. Requires a final project.


CSYE 7280. User Experience Design and Testing. (4 Hours)

Introduces user experience concepts while working on Web design projects. Offers students an opportunity to build the necessary skill sets to make better decisions when designing contemporary websites that cater to customer needs. Students practice interview techniques to understand user requirements while keeping user experience central to the effort. Uses wireframes and user scenarios to drive the creative design process. Various case studies are introduced and discussed in team settings to emphasize user perspectives. Uses quality assurance and usability testing to drive validation and user-acceptance testing and approvals.

Prerequisite(s): CSYE 6200 (may be taken concurrently) with a minimum grade of B- or INFO 5100 (may be taken concurrently) with a minimum grade of B- or INFO 5100 (may be taken concurrently) with a minimum grade of B-


CSYE 7370. Deep Learning and Reinforcement Learning in Game Engineering. (4 Hours)

Introduces a deep learning and reinforcement learning framework for games called ML-Agents, which enable games and simulations to serve as environments for training intelligent agents. Studies and reviews classical game artificial intelligence (game AI), primarily search and decision trees. Uses game AI to generate responsive, adaptive, or intelligent behaviors primarily in nonplayer characters (NPCs) similar to human-like intelligence. Game AI includes everything from simple chasing and evading to pattern movement, to create opponents with complex tactical and strategic decisions.

Prerequisite(s): INFO 5100 with a minimum grade of B or INFO 5100 with a minimum grade of B or CSYE 6200 with a minimum grade of B


CSYE 7374. Special Topics in Computer Systems Engineering. (4 Hours)

Offers topics of current interest in computer systems engineering. May be repeated without limit.


CSYE 7470. Advanced Game Analytics. (4 Hours)

Explores the use of deep learning for the automated creation and analysis of game metrics. Uses convolutional neural networks (CNNs) to segment and identify anything on a game screen in real-time, which is used as input to AI systems. The second part of the course analyzes the importance of the metrics. Covers surrogate models, Shannon entropy, Individual Conditional Expectation (ICE), leave-one-covariate-out (LOCO), local feature importance, partial dependency plots, tree-based feature importance, standardized coefficient importance, accumulated local effects (ALE) plots, and Shapley values. Lastly, covers building predictive models with game data using the following techniques: supervised learning, generative/discriminative learning, parametric/nonparametric learning, neural networks, unsupervised learning reinforcement learning, and adaptive control.

Prerequisite(s): INFO 6105 with a minimum grade of B


CSYE 7962. Elective. (1-4 Hours)

Offers elective credit for courses taken at other academic institutions. May be repeated without limit.


CSYE 7978. Independent Study. (1-4 Hours)

Offers theoretical or experimental work under individual faculty supervision. May be repeated without limit.


CSYE 7990. Thesis. (1-8 Hours)

Offers analytical and/or experimental work conducted under the direction of the faculty in fulfillment of the requirements for the degree. Requires first-year students to attend a graduate seminar program that introduces students to the methods of choosing a research topic, conducting research, and preparing a thesis. Requires successful completion of the seminar program. May be repeated without limit.