Back to top

Overview

The Attach-and-Train Program for Cybersecurity Software Developer has been tailored to the needs of the info-communications technology industry. It aims to reskill PMETs who are Singapore citizens or Singapore permanent residents into software developers with competencies in cybersecurity and machine learning, the latter being an important element of modern data protection and threat detection systems.

Apply through WSG Website

Applications open November 1, 2019.

In this program, trainees acquire knowledge about internal mechanisms and technologies governing the execution of programs in computer systems and apply this knowledge in various programming languages essential to cybersecurity. In particular, trainees develop advanced and introductory-level proficiencies in the following programming languages:

  • C – advanced level
  • C++ – advanced level
  • Go – advanced level
  • Assembler (x86) – introductory level
  • JavaScript (with HTML and CSS) – introductory level

Upon completion of the classroom training, trainees will undergo on-the-job training at the Partnering Company they are attached to. The six Partnering Companies are Acronis AsiaContinental Automotive Singapore, Fujitsu Asia, Government Technology Agency, and MSI Global.

Two days of the program have been reserved for industry guest lectures from practicing cybersecurity experts at Acronis Asia. These guest speakers will share their valuable experiences and talk about the most recent developments in the field of cybersecurity.

Curriculum Modules

Programming Paradigms: C and C++ Programming Languages

This module’s initial focus is providing an introduction to computer programming. The module begins with a review of numeral systems, Boolean algebra, and a detailed discussion on how data is stored in a computer’s memory. The module then progresses to the C programming language, which serves as an instrument in discussing the basics of the computer architecture, imperative programming, and the flow of a program’s execution. Subsequently, the main programming language of the module, C++, is introduced. The module discusses the object-oriented style of programming with the modern C++11 standard, with an emphasis on understanding “under-the-hood” details of the computer, compilers, and the C++ language itself. We then apply this knowledge towards the practical problem of writing programs that are less error prone and more efficient. 

Fundamental Data Structures and Algorithms

This module introduces fundamental data structures, abstract data types, and classical algorithms commonly used in computer science. Trainees learn how to express complex relationships of data elements required to successfully design and implement computer software. Learning about classical algorithms equips the trainees with the information about solving well established and studied problems in computer science, and it lets them participate in analysis and assessment of algorithms, developing stronger understanding of algorithm design in general.

Designing and Implementing Object-Oriented Software

This module investigates object-oriented programming, analysis, and design. Current methodology is emphasized as we study the use of object-oriented features such as encapsulation, information hiding, inheritance, and polymorphism to design and implement programs. We also examine some of the complex issues that arise in object-oriented design and some possible solutions to these issues. The Unified Modeling Language is studied to understand how a modeling language can be used as a means to communicate realistic solutions to problems. Design patterns are examined from the viewpoint of organizing small sets of classes to meet needs that arise frequently. We also look at commonly used design patterns and examine the considerations involved in recognizing the need for the pattern, adapting it into a specific software context, and selecting among its variations.

Operating Systems

The module starts with an overview of operating systems, including their function, structures, and organization. Through a detailed look at Linux/Unix-like operating systems, trainees learn about the kernel, process management, inter-process communication, hardware abstraction, memory management, file system, and built-in security and protection systems. Trainees not only learn the theory and terminology, but they also get the chance to acquire practical experience implementing programs that exercise and put into use various mechanisms built into modern operating systems.

Introduction to Information Security

This module focuses on the fundamental concepts of information security that are used to ensure the protection of information transmitted over computer networks and stored in computer systems. At the beginning, the module explores various functions of information systems’ protection mechanisms and focuses on cryptography and its key algorithms that perform various roles in data protection. Then, the module progresses to discuss popular types of attacks aimed at computer software. Trainees will practice writing code that is less susceptible to these types of attacks, as well as learn how the software displaying some of these vulnerabilities can be protected from intruders. Trainees also get the opportunity to take a closer look at various security mechanisms built into two widespread families of operating systems: Microsoft Windows and Linux-based operating systems.

Introduction to Web Technologies

This module offers a condensed introduction to major contemporary technologies used in computer networks to expose user or programming interfaces to other computer systems. This knowledge becomes an invaluable instrument in understanding how threats and malware surface and spread through computer networks. The module starts with a high-level overview of computer networking, progressing from a physical layer upwards. After introducing fundamental networking technologies, the module moves on to discuss key tools essential for building web applications and web services.

Introduction to Artificial Intelligence and Machine Learning

The objective of this module is to expose trainees to a wide range of classic models and practical algorithms that are commonly used to pre-process data and extract patterns from large amounts of information. Upon successful completion of this module, trainees will understand the benefits and limitations of common machine learning algorithms, and they will be able to implement and apply these algorithms in their projects. The main topics that trainees will work with are classification, regression, and basic decision making techniques.

Artificial Neural Networks and Deep Learning

In this module, trainees will learn the foundations of artificial neural networks and deep learning algorithms, understand how to build neural networks, and practice the skills — such as normalization, regularization, and optimization — essential in implementing machine learning systems. Trainees will master not only the theory, but also see how it is applied in the industry. They will have a chance to practice new ideas by writing C++ programs.

Career Prospects

As a Cybersecurity Software Developer, he or she will possess well-developed skills in design, development, testing, and debugging to implement software applications related to cybersecurity. Additionally, he or she will be equipped in data protection technologies to develop tools that can detect and deter cybersecurity threats. Possible career pathways include starting out as a Junior Software Developer, then progressing to a Software Developer, Senior Software Developer, and Team Lead/Manager.

Duration

This is a full-time, nine-month program consisting of:

  • Classroom training (six months)
  • On-the-job training (three months)

Prerequisites

  • Must be a Singapore citizen or Singapore permanent resident.
  • Preferably, university graduates in science, technology, engineering, or mathematics (e.g. computer science or engineering) with at least two years of relevant working experience or polytechnic graduates in science, technology, engineering, or mathematics (e.g. computer science or engineering) with at least five years of relevant working experience.
  • Knowledge of C/C++ programming language would be an added advantage.

Course Fees and Training Allowance

  • The full course fees are $25,000 (exclusive of 7% GST). Workforce Singapore (WSG) and the Partnering Companies will co-fund the course fees. A course fee of $10,600 is payable by trainees.

  • The trainee will be provided a training allowance of $28,600 for nine months by WSG and the Partnering Companies. This training allowance is non-CPF deductible and will be paid monthly to the trainee.

  • Trainees can pay their course fee of $10,600 either (a) through monthly installments using their training allowance or (b) as a lump sum upfront. DigiPen (Singapore) will discuss these options with the selected trainee upon signing of the Trainee Enrollment Agreement.

  • If the trainee chooses

    • (a), he/she will receive an eventual training allowance of $2,000 per month for nine months.

    • (b), he/she will receive a training allowance of about $3,178 per month for nine months.

Certification

DigiPen (Singapore) will issue a Specialist Diploma in Cybersecurity Software Development to the successful graduates of this AnT program.

Application Details

  • Application will be opened from 1 November 2019 to 14 February 2020.

  • Classes start on 4 May 2020.

  • All applications to be submitted here.

  • Interviews will be conducted from 17 February 2020 onwards, after the application deadline.

  • Each applicant will be informed of the interview outcome within five working days.

  • All applicants must check their email regularly for updates and be contactable via their mobile.

Admissions Process

  • Only those applications which meet the prerequisites will be further shortlisted, except for exceptional cases.

  • Shortlisted applicants will be invited for a technical assessment (45 mins) and a job interview (60 mins).

Technical Assessment

The technical assessment consists of:

  • Introduction to computer programming in C
  • Introduction to web programming in JavaScript with HTML/CSS
  • Introduction to Windows and Linux operating systems administration
  • Pre-university mathematics, particularly on probability and statistics

Calculator or formula sheets are not needed during the technical assessment.

The technical assessment is for the interviewers to gauge your familiarity with program-related STEM topics. There is no minimum passing score for this assessment. The purpose of the assessment is to check your level of comprehension and ability to express the execution logic in a structured fashion.

We are aware that some candidates may be familiar with, for instance, operating systems but not mathematics and programming, while others may be very strong in programming, but never had a chance to work with operating systems, etc.

Do note that DigiPen (Singapore) and the partnering companies will take a holistic view when shortlisting a candidate for the interview based on the outcome of the technical assessment, education transcripts, and their resume.

Preparation for the Interview

Consider this a job interview. Please read up on the company that you have been shortlisted by before coming for the interview.

Be punctual for the interview. Due to the tight schedule of the interviewers, we kindly request that all applicants do not change their interview dates.

Note

Selected trainees will be required to bring their own laptops for the first six months of the classroom training. Please visit our Computer Recommendations page for the laptop specifications.

Questions?

Please email us at: ce.sg[at]digipen[dot]edu

An image of DigiPen's viewbook

Learn More

Receive an in-depth viewbook to learn more about our programs.

Request Info