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.
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:
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 Asia, Apar Technologies, Continental 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.
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.
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.
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.
This is a full-time, nine-month program consisting of:
- Classroom training (six months)
- On-the-job training (three months)
Fees and Funding
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 consists of:
- Introduction to computer programming in C
- 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.
Interviews will only be conducted after the application deadline, in July/August 2019.
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.
Due to the tight schedule of the interviewers, we kindly request that all applicants do not change their interview dates.
Selected trainees will be required to bring their own laptops for the first six months of the classroom training.
Please email us at: ce.sg[at]digipen[dot]edu