Computer Systems Engineering
Kal Bugrara, PhD
130 Snell Engineering
Kal Bugrara, PhD, Program Director, firstname.lastname@example.org
Our newly renovated computer systems engineering program takes a sociotechnical, engineering approach to software. This engineering foundation is designed to enable students to embrace real-world complexity as a golden opportunity, especially for the more technically advanced student. We are committed to shaping our students to be intuitive problem solvers, experienced engineering architects, and result leaders who will have a great impact at the exciting three-way intersection of computer science, engineering, and ethics.
Our program offers a multitude of courses in big-data engineering and analytics in addition to supplementary courses that are required to deliver the data-analytics results in a meaningful way to management. We cover data management, advanced data management, business intelligence, column databases, data science, and big-data engineering. We offer advanced functional programming using the powerful Scala language and a course on advanced data science as well as cloud computing. Multi-thread concurrent computing is also offered as it is important for synchronizing a huge set of servers working in parallel to do large-scale analytics to make things run faster by a hundredfold increase in speed. Due to the high-level mathematical operations required to run these programs, only software engineers have the capacity to work in such complicated areas. Only they can make the necessary mathematical algorithms execute quickly enough to get the finest results.
Our engineers become fluent in data science for the sake of building the actual system. They study how to write machine-learning algorithms on top of statistical packages.
- Students study the fundamentals of logical computing formulation and program construction as well as the mathematical modeling and analysis of algorithms—an essential aspect of data science analytics.
- Students study clustering techniques, along with topic modeling and classification and logical regression techniques, as well as Bayesian statistics.
- Students study how to configure and operate a Hadoop environment (large clusters of commodity hardware) and in the process how to integrate data from diverse sources, to move and manage data through big-data platforms (in-house or in the cloud). Data ingestion, the filtering and firing of millions of operations to run over large clusters of commodity hardware, is a software-engineering technique that we teach our students how to perform through Scala, multi-threading, Spark programming, and “map-reduce” techniques.
- We show students how to make the business case for analytics projects and how to follow an execution road map that involves understanding the architectures underpinning such gigantic platforms as well as the resourcing and cost issues.
Graduate Certificate Options
Students enrolled in a master's degree in Computer Systems Engineering have the opportunity to also pursue one of 14 engineering graduate certificate options in addition to or in combination with the MS degree. Students should consult their faculty advisor regarding these options.
Gordon Institute of Engineering Leadership Option
Students have the opportunity to pursue the Gordon Engineering leadership program in combination with the MS degree.
Master of Science in Computer Systems Engineering (MSCSE)
Computer Science Engineering Courses
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. Prereq. Knowledge of C programming; engineering students only.
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. Prereq. Engineering students only.
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 6210. Component Software Development. 4 Hours.
Covers component-based design, development, and implementation. Emphasizes the reusability, flexibility, scalability, and portability of software components. Covers the JavaBeans Component Model in detail and compares it against competing technologies. Requires a component-based software project. Prereq. CSYE 6200; engineering students only.
CSYE 6220. Enterprise Software Design. 4 Hours.
Introduces the hypertext markup language (HTML), cascading style sheets (CSS), CSS3, and HTML5 for the design of Web sites. Coverage of HTML5 includes semantic markup and the following application programming interfaces (APIs): canvas, scalable vector graphics, video, audio, Web storage, Web SQL database, geolocation, Web sockets, and Web workers. Requires a project in which students develop a Web site using CSS3 and HTML5. Prereq. CSYE 6200, CSYE 6202, or CSYE 6205 (any of which may be taken concurrently); engineering students only; not open to information systems students.
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. Prereq. CSYE 6200 or INFO 5100; engineering students only.
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. Prereq. INFO 6205.
CSYE 6962. Elective. 1-4 Hours.
Offers elective credit for courses taken at other academic institutions.
CSYE 6964. Co-op Work Experience. 0 Hours.
Provides eligible students with an opportunity for work experience. Prereq. ENCP 6000.
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. Prereq. Engineering students only.
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. Prereq. CSYE 6200 or INFO 5100 (either may be taken concurrently); engineering students only.
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. Prereq. CSYE 6200 or INFO 5100 (either may be taken concurrently); engineering students only.
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. Prereq. INFO 7250 or INFO 7390 (either may be taken concurrently); engineering students only.
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. Prereq. INFO 6205, INFO 6210, INFO 7290, or INFO 7390; engineering students only.
CSYE 7270. Building Virtual Environments. 4 Hours.
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. Prereq. CSYE 6200 or INFO 5100 (either may be taken concurrently).
CSYE 7374. Special Topics in Computer Systems Engineering. 4 Hours.
Offers topics of current interest in computer systems engineering. Prereq. Engineering students only.
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. Prereq. CSYE 7230; engineering students only.
CSYE 7962. Elective. 1-4 Hours.
Offers elective credit for courses taken at other academic institutions.
CSYE 7978. Independent Study. 1-4 Hours.
Offers theoretical or experimental work under individual faculty supervision. Prereq. Engineering students only.
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. Prereq. Engineering students only.
CSYE 7994. Thesis Continuation—Part Time. 0 Hours.
Continues thesis work conducted under the supervision of a departmental faculty member.
CSYE 7996. Thesis Continuation. 0 Hours.
Offers analytical and/or experimental work conducted under the auspices of the department. Prereq. Engineering students only.