This course aims to produce students who are capable of solving complex ICT problems using problem-solving and programming techniques. The course will cover the steps in problem-solving and several programming techniques. The overall content of this course includes fundamental knowledge in programming. In their solutions, students should integrate the elements of efficiency and effectiveness