Introduction to Software Design and Engineering - OS and Network Programming Track requires 60 hours of training to complete the certificate. Most students will take 60 Hours of training from the courses listed on the right, however, other students, based on experience, can elect to substitute courses from this certificate or other certificates including: Introduction to Software Design and Engineering - OOAD Track, Software Engineering and Architecture or DevOps for Software Engineers and Architects. Each course counts towards one certificate only.

LIN120: Linux Fundamentals (30 Hours)

Linux Fundamentals focuses on the fundamental tools and concepts of Linux. Beginners develop a solid foundation in Linux, while advanced users discover patterns and fill in gaps in their knowledge. Students gain proficiency using the command line. Topics include: basic file manipulation; basic and advanced filesystem features; I/O redirection and pipes; text manipulation and regular expressions; managing jobs and processes; vi, the standard Unix editor; automating tasks with shell scripts; managing software; secure remote administration; and more. Also, this course is designed to provide extensive hands-on experience.

SWD375: VxWorks Essentials (24 Hours)
The VxWorks Essentials course provides engineers with the skills necessary to develop real-time applications. In
this class students learn how to design and develop real-time applications in kernel and user modes, as well as
how to debug, build and test real-time applications in a target host development environment using Workbench
and VxWorks.

SWD425: Multithreaded Programming Using C++ (12 Hours)
Multithreading is a program execution technique that allows for concurrent (simultaneous) execution of two or more parts of a program (threads) for maximum utilization of a CPU. Multi-threaded applications are applications that have two or more threads that run concurrently. Therefore, it is also known as concurrency. With the rise of multi-core machines, multithreading and concurrency concepts are essential skills for Software Engineers. In this course student are introduced to multithreading and concurrency topics starting from the basics and using C++.

SWD475: Network Programming (18 Hours)
Network Programming involves writing programs that enable processes to communicate with other programs across a computer or computer network. In this course students learn the essential concepts of network programming. This course starts with the fundamentals of Internet Protocol, TCP, and UDP. Next we explore client-server and peer-to-peer models for information sharing and connectivity with remote computers. As the class progresses we will also cover asynchronous socket programming and streams, and explore debugging and error handling. Finally, you’ll study network monitoring and implement security best practices.

Advanced Software Design and Engineering - 90 Hour Certificate

In order to complete the Advanced Software Design and Engineering 90 hour certificate, students must complete class(es) in the Introduction to Software Design and Engineering (CLA200, SWD200) certificate. Students may elect to substitute hours from any of the certificates listed below:

Each course counts towards one certificate only.

Additional Details


Minimum Required

60 Hour(s)

Students are required to take 60 Hours of training to earn this certificate. As noted in certificate description, students with prior experience can elect to substitute classes. 
Required fields are indicated by .
*Academic Unit eligibility to be determined by college/university in which you are enrolled in a degree seeking program.