Computer Systems Engineering (CSYE)

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.

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.

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.

CSYE 6510. Fundamentals of the Internet of Things. 4 Hours.

Explores the foundations and technologies involved in the Internet of Things (IoT). Topics include machine-to-machine (M2M) communication and its relationship with IoT as well as their evolution. Examines fundamental components of the IoT architecture and presents a large array of real-life applications and case studies. Focuses on different wireless technologies that are relevant to the IoT including WiFi, Bluetooth Low Energy, and ZigBee, as well as several network layer protocols that are instrumental to the deployment of these networks. Discusses the most common IoT application technologies with special emphasis on MQTT, CoAP, and AMQP. Also explores special issues that affect IoT networks, including security and privacy considerations as well as reliability mechanisms intended to overcome network impairments.

CSYE 6530. Connected Devices. 4 Hours.

Offers an introduction to the Internet of Things (IoT) via a hands-on approach to understanding connected devices. Covers concepts and technologies such as architectures, software stacks, DevOps specific to IoT, communications and messaging protocols, types of devices, cloud services designed for IoT systems, and device management.

CSYE 6962. Elective. 1-4 Hours.

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

CSYE 6964. Co-op Work Experience. 0 Hours.

Provides eligible students with an opportunity for work experience. May be repeated without limit.

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.

CSYE 7245. Big-Data Systems and Intelligence Analytics. 4 Hours.

Offers students an opportunity to learn a hands-on approach to understanding how large-scale data sets are processed and how data science algorithms are adopted in the industry through case studies and labs. This project-based course builds on INFO 7390 and focuses on enabling students with tools and frameworks primarily to build end-to-end applications. The course is divided into three parts: building the data pipeline for data science, implementing data science algorithms, and scaling and deploying data science algorithms.

CSYE 7250. Big Data Architecture and Governance. 4 Hours.

Focuses on creating and managing a data-driven enterprise. Geared to current IT technical professionals, data scientists, technical project managers, aspiring IT professionals, and managers who want to understand the complex nature of creating and managing data-driven projects to support the new and legacy data environments. Covers the analysis that is required to design data-driven projects and make appropriate recommendations for the target state of an organization. This analysis is used as input to create a comprehensive road map to achieve the target state and includes current and future uses of data, consumption methods, data sources and categories, and aggregation and quality requirements.

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.

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 7945. Software Engineering Project. 4 Hours.

Supports teamwork on a large software project under faculty supervision. The projects are drawn from an engineering field, and involve design, systems engineering, manufacturing, planning maintenance, reliability, quality control, risk assessment, project control, evaluation of alternatives, and so on. The project may cover either the whole software development life cycle or a significant part of it.

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.