Class Descriptions

The Software Engineering and Architecture Certificate consists of the classes below. Students will take these classes to complete this certificate. Some students, based on experience, can elect to substitute courses from the following certificates: Introduction to Software Design and Engineering, DevSecOps for Software Engineers and Architects, or SAFe for Software Engineers and Architects. Each course counts towards one certificate only.

Advanced C++ Programming (30 Hours): 
The comprehensive, five-day course consists of three modules. A preliminary module reviews topic, including inheritance, the ANSI C++ Standard Library, templates, I/O streams, and practical issues of C++ programming, such as reliability, testing, efficiency, and interfacing to C. This material is covered as needed depending on the background of the students.

Software Product Line Engineering (12 Hours): 
Software reuse has been a goal of the software community since the early days of software engineering. Various technologies have been proposed to solve the software reuse problem, including subroutines, object-oriented software development, software design patterns and component-oriented software development. Unfortunately, software reuse has been applied in an opportunistic, ad hoc manner, and as such did not scale up for large-scale software development. Systematic software reuse is a promising approach to reduce cost and development cycle time, improve software quality and productivity. In this context the notion of software product line has gained importance for large-scale systematic software reuse. Software product line is a set of software-intensive systems sharing a common, managed set of features that specify the specific needs of a market segment and that are developed from a common set of core assets. Software product line engineering is a paradigm to develop software product lines and as such supports reuse, productivity and quality of the systems. Unlike conventional software development paradigms that aim to develop single systems, SPLE considers the development of a family of software systems. As such SPLE adopts a fundamentally different software life cycle approach than single system development. 

Model Based System Engineering (MBSE) (Cameo) (18 Hours): 
This introductory SysML workshop provides students with a solid foundation for applying Model-Based Systems Engineering (MBSE) principles and best practices with SysML, the industry-standard architecture modeling language for systems engineering applications. The workshop teaches students how to solve practical problems using all SysML diagram types and Allocation Tables. This workshop is designed to integrate basic modeling tool training with NoMagic's Cameo Systems Modeler and Cameo Enterprise Architect.

 Advanced .NET/C# Programming (12 Hours)
The Advanced .NET Programming course goes beyond the basics to focus on advanced topics of C#. Topics include developing memory management, .NET components, interfaces, delegates, advanced language features, and threading. 

Python - Advanced (18 Hours)
In this Python training course, students already familiar with Python programming will learn advanced Python techniques such as Jupyter Notebook, the Collections module, mapping and filtering, lamba functions, advanced sorting, working with regular expressions in Python, working with databases, CSV files, JSON and XM, writing object-oriented code, testing and debugging and learning about Unicode and text encoding. This advanced Python course is taught using Python 3, however, differences between Python 2 and Python 3 are noted. 

Python Programming for Data Analysis (12 Hours)
This is a rapid introduction to NumPy, pandas and matplotlib for experienced Python programmers who are new to those libraries. Students will learn to use NumPy to work with arrays and matrices of numbers; learn to work with pandas to analyze data; and learn to work with matplotlib from within pandas. 

Advanced OpenGL (18 Hours): 
OpenGL is a powerful software interface used to produce high-quality, computer- generated images and interactive applications using 2D and 3D objects and color bitmaps and images. This course is a continuation of Introduction to OpenGL. Students will learn how to write OpenGL applications using modern shader-based OpenGL implementations, implement modern rendering techniques, debug and profile OpenGL applications and maximize the processing power of both the GPU and the CPU. 

Vulkan Programming (24 Hours): 
In this course students learn the basics of using the Vulkan graphics and compute API. Vulkan is a new API by the Khronos group, also known for OpenGL, that provides a better abstraction of modern graphics cards, as well as a new interface that results in better performance and less surprising driver behavior when compared to existing APIs like OpenGL. In addition, Vulkan has the advantage of being fully cross-platform compatible and allows you to develop for Windows, Linux and Android at the same time. 

Service Oriented Architecture and Microservices for Architects (18 Hours): 
In this course students delves into the architectural aspects of Service Oriented Architecture (SOA) and Microservices. This training course will help the attendees understand the technical aspects of SOA and Microservices. The course starts with the architectural aspects of Service Oriented Analysis and Design (SOAD) and then moves into Microservices architecture. Topics include the pros and cons of breaking up the monolithic type of applications prevalent in the enterprise space and converting them into Microservices-basedsolutions. Detailed analysis of some of the common patterns and motivation for using them for both SOA and Microservices architecture is also provided.


Advanced Software Engineering and Architecture 90 Hour Certificate:

In order to complete the Advanced Software Engineering and Architecture 90 Hour Certificate students must complete 90 hours of classes in the Software Engineering and Architecture Certificate. Students may elect to substitute hours from any of the certificates listed below:

Additional Details

Required fields are indicated by .
*Academic Unit eligibility to be determined by college/university in which you are enrolled in a degree seeking program.