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 learning (six months)
- On-the-job training (three months)
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.
Application are open now through 29 February 2020.
Classes start on 4 May 2020.
Each applicant will be informed of the interview outcome within five to ten working days.
All applicants must check their email regularly for updates and be contactable via their mobile.
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).
The 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.
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.
Selected trainees will be required to bring their own laptops for the first six months of the classroom learning. Please visit our Computer Recommendations page for the laptop specifications.
Please email us at: ce.sg[at]digipen[dot]edu