Problem-based Learning for Programming Education

— Computer Programming is a core subject in Computer Science. This course requires the analysis and solving of problem critically. These skills are also required in preparing Computer Science students for the career world. Problem-based Learning is thus regarded as one of the suitable methods for Teaching and Learning programming. Although this method has been proven to hone student skills in other areas such as Medicine, its usage in Computer Programming courses has yet to bring about any impacts. This is because, to date, Problem-based Learning has been employed based on the practitioner’s intuition without specifically meeting the principles and concepts of Programming courses from the human, process, and product aspects. The human aspect involves practitioners during the process. The framework for this study is built using a qualitative method that combines theoretical and empirical studies. The theoretical study includes reviews of the implementation of previous Problem-based Learning in Computer Science as well as other fields. The empirical study involves information obtained from both the theoretical and empirical studies were analysed by utilising the Thematic Analysis method to generate the proposed framework for this study. This framework can be utilised as a guide for the management and practitioners in Computer Science education to use Problem-based Learning as an effective Teaching and Learning method for Programming courses.


I. INTRODUCTION
Programming is a core course in the Computer Science programme, especially for developing problem-solving (PS) skills [1]. Hence, suitable Teaching and Learning (T&L) methods that can help hone problem-solving skills should be adopted. Nowadays, there are various T&L that have been adopted by Programming instructors. Fundamentally, conventional methods have been widely applied to teach Programming. However, the conventional method does not really help the development of PS skills. This is because students tend to memorise learning material rather than practice PS skills. Students are also exposed to reference materials that explain the general Programming concept such as textbooks and journals. The process of solving the problem in conventional practice is unstructured and unclear. This causes students to tend to refer to learning material, which they have prepared themselves or as provided by the instructors. In addition, conventional methods place more focus on the knowledge delivery processes, which increases student dependence on the instructor. This process prevents students from learning and thinking in-depth. Therefore, appropriate teaching methods should be adopted. support the skill development, educators needed to adopt a suitable T&L approach.
Nowadays, there are many available T&L methods whether it be student-centred or teacher-centred. Yet, normally, a teacher-centred method such as the lecture-based approach or surface learning approach has been widely adopted to teach programming [11]. Unfortunately, there is doubt concerning the effectiveness of this method, especially in terms of exercising the problem-solving skills and critical thinking skills of students. The nature of the conventional approach is based on knowledge transfer, which leads to a passive learning process. Furthermore, the availability of learning materials in the Programming area also encourages students to memorise syntax rather than practice it [3], [12]. In other words, it does not help the student to learn to program [2]. Practice must be done in tandem with developing problem-solving skills in Programming. These characteristics seem well matched with Problem-based Learning [13]- [15].

Problem-based Learning
Problem-based Learning (PBL) was first implemented in Medical education in the 1960s. In PBL, problems are first presented to initiate the learning process. Then, the process of resolving the problem will bring students to the content of knowledge. It is mandated that all the problems loaded in the PBL systems be structured [16]. PBL has certain characteristics to ensure learning effectiveness. In general, problems are used to trigger the learning process. The process of solving the problems involves brainstorming activities and learning issue formulation. This is usually carried out in a small-scale group in which knowledge is acquired individually in self-learning sessions before reporting it to the group. Finally, the information is synthesised and tested [17]- [19].
The problem in PBL implementation is the decisive factor. Therefore, in order to drive the learning process, the problem must have certain characteristics. Essentially, the problem must be ill-structured, real-world simulated, complex, and open-ended [20]- [23]. An empirical study showed that the most cited problems involved learning the outcome and triggering interest. The problem was designed with a suitable format and stimulated self-learning, provided sufficient solving-time, was applicable, related to prior knowledge, and stimulated collaborative work [24]. The educator must change his or her role of being a knowledge-transmitter to a facilitator. The roles of the facilitator are to guide and motivate students during the PBL session [18]. The facilitator is also responsible for assisting the students in acquiring knowledge in the group [23]. The adoption of PBL has brought positive impact to Medical education. Thus, its adoption has been endemic to other disciplines such as Engineering [24], Social Sciences [6], Science [25] and Computer Science [14], [26].

Problem-based Learning in Programming
Several studies support the fact that PBL is suitable for adoption in Programming. For instance, a systematic review in Computing education involving PBL showed that the PBL implementation inclined towards the Programming course rather than other Computing courses [27]. This study involved a review of previous works from 1996 to 2011. In addition, a systematic mapping that reviewed articles regarding PBL. Computing teaching from 1997 to 2011 also found PBL to be suitable for adoption into the Programming discipline [29]. The main factor in selecting an appropriate T&L method is to match the learning outcomes (LOs) with the method elements. This is to ensure the attainment of the corresponding Los. The learning outcome articulated in the Programming Language Knowledge Area (KA) by the Association for Computing Machinery (ACM) and IEEE-Computing Society Joint Task Curricular 2013 showed that KA needs to adopt the PBL implementation [30].
CS courses brought positive impact on student careers, especially in Programming and data mining [13]. In terms of student psychology, PBL assisted in increasing motivation and reduced the dropped course rate [31]. PBL also proved that it could improve student attributes [11], [32].
Although there have many studies on PBL implementation, these were not conducted in detail. The previous studies were limited to discussions on the implementation of PBL, especially the seven-step method. Therefore, the method to implement PBL should be studied more thoroughly.

II. MATERIAL AND METHOD
This study aims to determine the factors that influence PBL implementation in a Computer Programming course. The factors would assist Programming educators and CS Head of Programme to plan and implement PBL in the course systematically. Thus, both theoretical and empirical approaches were employed to determine and validate the PBL implementation factors. The following sections explain each activity briefly.

A. Formulation of Research Question
Essentially, the study intends to resolve the following research questions, which are organised based on initial study made on the topic; "What are the factors involved in implementing PBL in a Computer Programming course?", "How do these factors correspond to each other in the PBL implementation for a Computer Programming?". A review process was thus held to distinguish elements of PBL implementation for a Computer Programming. Four basic steps were involved in formulating the research questions: (a) searching protocol; (b) formulating basic search string; (c) determining the acceptance and rejection criteria; and (d) exclusion criteria.

1) Search Protocol:
The search keywords used to find related articles are "problem-based learning", "PBL", "problem-based learning" and "Computer Programming", and "introductory programming", and "CS1". A total of 408 articles were found. However, after further refining, only 180 articles were found suitable. In the end, only 14 articles were selected after considering their relevance to the study for further analysis. The selection criteria for this study is restricted only to PBL implementation for a Programming course in a physical classroom. The search was performed using several popular online databases and Open Access journal including IEEE Explore, ACM, Scopus, Springer, Google Scholar, EBSCOhost, Taylor & Francis Online, ScienceDirect, and Interdisciplinary Journal of Problem-Based Learning, through 2008 until 2017 for which the results are tabulated in Table 1.  Table 2.

3) Determine the Acceptance and Rejection Criteria:
After identifying the search string and the study's location, the acceptance and rejection criteria are then determined. Table 3 shows the final results of acceptance. The criteria for acceptance is that the article must consist of features that could be accepted as a reference. Meanwhile, the rejection criteria include characteristics that cause the article to be removed from the list of research citations. The acceptance criteria for the study's reference are detailed as follows: • Only articles published in journals and proceedings are accepted. • Articles must be produced after 2007, starting from January 1 st , 2010, until August 30 th , 2017 • Only studies that have been conducted for higher education institutions are accepted. • The articles must explain PBL implementation for Programming courses in a physical class.

4) Exclusion Criteria:
The criteria for rejection of the reference for the study are as follows: • The article titles and abstracts are not related to the primary question for the study. • Overlapping articles. • Articles are written in languages other than the Malay and English language. • Articles are not complemented with a full text.

B. Empirical
The elements found in the literature were confirmed through individual and focus group interviews. Individual interviews allow researchers to concentrate on research subjects. Therefore, the research topics were discussed in depth because more time could be used to analyse the content of the discussions. In addition, the feedback of the participants was not determined by other participants during the interview session [39]. The focus group consists of a group of interacting individuals that have some common interest of characteristics, brought together by a moderator that adopts the groups as a way for gaining information about the certain or focused issue [40]. Semi-structured questions were used in the interview. The questions were constructed based on the elements of PBL found in the review. In order to validate the questions, a test was carried out with the Information System Head of Programme.
The feedback received from the session were used to improve the pilot study. A pilot study was conducted with the Programming instructor to validate the accuracy and completeness of the questions and the feasibility of the session. The feedback received from the pilot study were then used to improve the planning of the actual session. The predefined criteria for selecting information were set in order to make sure that the data gathered are meaningful.
It is mandated that the potential informants should have experience in PBL implementation for Computer Programming. Therefore, the study employed purposive sampling. In order to fulfil this objective, the study identified 38 informants consisting of students, facilitators, and the programme manager. Eight interview sessions were conducted, including three one-to-one sessions and five focus group sessions. A formal invitation letter was sent to the participants, which contained information regarding the focus group sessions such as purpose, the impact of study, date, time, and venue. The informants came from Malaysian Public and Private higher education institutions. Brief information about the informant is described in Table 4.
Each interview session took approximately one and a half to two hours and was voice-recorded. The procedure was explained by the researcher before the session was initiated and participation agreement was acquired verbally.

1) Empirical Instrument:
The instrument used for The interview sessions were constructed based on the theoretical study. A sample of the instrument is listed in the following: involved in the group-forming process? (c) When do you prefer the problem to be distributed? (d) How was the problem distributed? (e) What is the approximate ideal group size? Is it less or more than 10 persons? Why? (f) Are there certain roles that the student should perform such as to monitor or promote the discussion process? (g) Do you have certain standards when solving the given problem? What sequence do you use? (h) How do you identify the problem? Do you have any specific methods for problem-solving? (i) How do you participate in the brainstorming process? (j) Do have any mechanism or standard to structure the discussion information such as using explanatory models? How do you intend to structure the information? (k) Do you summarise the learning issues? How do you approach the summarisation process? (l) If there is more than one question, what will the group members do? How would you reach an agreed upon answer? Do you conduct any discussions outside of class? Why? (a) Do students agree that the assessment process is carried out with a report and artifacts program in a learning session? Should the report be presented? (b) How should the technical report be produced? (c) What is the technical report content? How is the report submitted for assessment purposes? (d) What are the processes for developing the program?
Should it be in a group or individually? Are all students required to participate in the program development? (e) Should the program be documented and presented? Problem (a) Should an unstructured problem be used in PBL for programming? Why? (b) Is a structured problem appropriate for use in PBL for programming? Why? (c) Should the problem have features for enabling existing knowledge? Why? (d) Should the problem be related to the real world? (e) Must the problem be tied to one solution only? What are the examples of such problems associated with logic (to determine which team will advance to the next game -a game of knockout)? (f) Should the problem have features that would attract students? How do you define a conflict of interest? (g) Should the problem be easy or complicated? Why? (h) Do students have problems related to other students?
What is the issue that students feel close/familiar with that can be associated with Programming? (i) What are other characteristics that should be incorporated into the problem?
Thematic analysis was employed to analyse the collected data from theoretical and empirical work. Thematic analysis is one of the most commonly used forms of qualitative analysis. It is more based on highlighting, examining, and recording existing patterns (also known as 'themes') within a given data [41]. The themes represent the patterns within a set data that are vital for the description of a phenomenon, or that can be linked to a given research question [42]. The first step is to identify the Computer Programming course and PBL implementation elements. Then, the elements are grouped into PBL implementation factors.
The thematic analysis was performed with NVivo software. In the built up to the analysis, PBL was coded as a node in the system, while factors like 'influence of management', 'influence of facilitators', and influence of 'PBL committee' on the implementation processes were cases under the node. Each factor constitutes the corresponding PBL implementation for Programming course elements. Overall, most of the elements exist in both theoretical and empirical work. In order to capture the themes, the responses were grouped according to participants and transferred into the NVivo software for analysis. The software now looked in-depth at the related themes occurring amongst respondents. These corresponding findings shaped the figures depicted in Fig. 1 and Fig. 2. Data were collected by means of group interviews and analysed quantitatively using Thematic Analysis [41]. The results of the data analysis were presented according to three main aspects, namely People, Process, and Product. Some excerpts of the actual interview responses are provided to support the claims made by this study.

A. People
The people aspect can be categorised according to four main factors that contribute to the implementation of PBL in Programming. These are Top Management, PBL Committee, Facilitator, and Student.
1) Top Management: The analysis shows that the implementation of PBL for a Programming course depends on the support and commitment from the Top Management. The Top Management is the institution's governor and decision-makers such as the Dean, Deputy Dean, and Head of Programme. Overall, the majority of the participants stated that PBL could only be implemented with approval from the Top Management, particularly for institutions that have not been practicing or have never practiced PBL before. The analysis also shows that the Top Management should give a commitment, for example, provide infrastructure, appoint committees, and provide training to PBL facilitators.
"The management must approve timetables and any changes to the timetable." -Participant P3.
"The management must be fully committed to the implementation of PBL by creating the committee and offering necessary training." -Participant P1.
2) PBL Committee: Members of the committee should play roles and possess a background that can ensure the success of PBL implementation in a Programming course. Their roles include monitoring the entire PBL implementation in the Programming course and attend PBLrelated training in order to master the skills of PBL facilitation. After acquiring the skills and knowledge of PBL, the PBL Committee should provide training for facilitators involving the implementation of PBL for a Programming course. The PBL Committee should have the skills to conduct a PBL session. These skills can be acquired through continuous competency training as well as from performing observations of other institutions that run PBL.
"The PBL Committee are sent to a number of institutions where they are trained on necessary skills."-Participant P2.
"The PBL Committee should possess the knowledge and expertise necessary before being engaged in our institution Participant P3.
3) Facilitator: The analysis of this study indicates that the facilitator acts as the backbone for the implementation of PBL. In the implementation of PBL, the roles of the facilitator differ from conventional T&L methods. In PBL, lectures are not compulsory; however, the facilitator needs to be involved in the planning as well as the implementation phase of PBL. The facilitator plays a certain role in implementing PBL in Programming, especially to change their role from being knowledge transmitters to guides. However, when a student impasses during the learning process, facilitators need to scaffold the student by being a knowledgeable presenter. The facilitator does not have to explain the entire Programming concept but only needs to stimulate the problem-solving process. "The students should be encouraged to engage in deep thought by being asked to provide justification for their choices." -Participant P1.
"Explanation is delivered to poor students only, and they are guided throughout the course learning and PBL implementation process." -Participant P2.
The facilitator should also monitor and interact with the student during the self-learning process. Self-learning is a critical part of PBL. The use of technology in a learning environment is important, especially to monitor student's involvement in learning process [43] and such include Edmodo for online learning. "From experience, self-learning need to be monitored with technologies such as Edmodo."-Participant P2 "The facilitator will hold a meeting to interact with the facilitator."-Participant P3 The facilitator must evaluate the student based on a PBLrecommended assessment including technical reports, programs, and group presentations. Each assessment is carried out using a scoring rubric.
"Students are assessed during their presentation; the evaluation criteria include presentation content, presentation media, skills, participation, and a question and answer session." -Participant P1. "In PBL, we make use of rubric form to assess the performance of students in terms of techniques and concepts employed as it relates to training obtained." -Participant TU1.
There are participants that stressed that the evaluation of the program should not be devoted to complete or executable programs only. They are of the view that program with error should be marked if they relate to solutions.
"In PBL, marks should be accorded to programs based on solution criterion." -Participant TU3.
"Students need to be examined for their problem-solving process, not based on output alone. This is because the student can develop quality programs that cannot be executed." -Participant TU4.
The facilitator should encourage students to be motivated during the learning process.
"Students need to be motivated during the process of learning to program." -Participant TU2.
"Students really need to be motivated in the course of Programming. Let them be excited about learning." -Participant TU3.
In order to implement PBL effectively, the facilitator should possess Programming knowledge and PBL handling skills mainly to guide students during problem-solving because the students will be involved in the wide and varied context of Programming searching. This will include expertise in running the program and teaching experience. "It is vital that the facilitator be an expert in Programming field in order to guide the students better." -Participant P2 "Facilitators should have more than 5 years of experience in teaching a Programming course. Training is also vital." -Participant P1 The facilitator needs to have a certain personality to implement PBL for a Programming course such as commitment and concern. The facilitator should commit to abide by the PBL plan so that implementation runs smoothly. Participants also felt that the facilitator must be concerned about taking into account the background knowledge of students on Programming. Students with no Programming knowledge require more guidance than students with prior Programming knowledge. In addition, the facilitator should pay attention to students who seem stuck during the process of problem-solving. "The facilitator needs to make preparations based on PBL plans that have been prepared." -Participant P2.
"Facilitators need to acknowledge that not all students have good Programming skills. Thus, they need to guide such students." -Participant IS6.

4) Student:
In the implementation of PBL, students must have certain characteristics and roles. Students should interact with team members during self-learning. In addition, they may also seek guidance from a facilitator during the learning activities.
"During the learning process, students should interact with the facilitator. They should also communicate with the group members."-Participant TMK2.
"The students need to consult the facilitator in the event that they face issues during the learning process." -Participant GM11.
In order to implement PBL effectively, students need to have a certain personality such as having a sense of responsibility. Responsibilities can help students to cooperate with the members of their group to solve the problem.
"Each team member should be responsible and corporate accordingly for solving issues." Participant GM13.
"Students should be fully responsible for seeing the process to complete the solution." -Participant GM14.
In addition, students also have to carry out duties as team leader, subject to appointment. A team leader must ensure the learning process works well, segregate tasks, and strategise problem-solving activities. "All members of the group (including the leader) must participate in any given task." -Participant GM12.
"A leader should be appointed to make the group proactive and to create a necessary strategy." -Participant GM17.
Students must also appoint a secretary or writer who will record and minute group discussions. These records will be referred to by the group members and submitted to the facilitator for review purposes. The analysis also indicates that students need to be independent during the learning process. This is because PBL will only be effective when students engage in the learning process without depending on the facilitator. "Actually, students need to be independent in PBL sessions." -Participant Ax1.
"Students must be independent, but teachers still need to play their role in the learning process." -Participant TMK9.

B. Process
The process is the main aspect that affects the implementation of PBL for a Programming course. The PBL process involves two phases: the planning phase and the implementation phase. Information relating to the process is described as follows: 1) PBL Planning Phase: The analysis shows that the implementation of PBL for Programming courses requires careful and thorough planning. Thus, a series of preparations that involve the commitment and cooperation from top management, the PBL committee, and the facilitator must be conducted. First of all, the Top Management should form a PBL Committee to monitor the implementation of PBL for a Programming course. Basically, the PBL Committee consists of Computer Science academic members. The committee members should attend competency training provided by the Top Management. The PBL committees need to train facilitators, especially in facilitation skills, problem-crafting skills, and student evaluation.

"Institutions that have the desire to implement PBL should form a committee that is able to train other facilitators and monitor the entire PBL implementation." -Participant P1.
"It is important to train the facilitator on how to lead and assess students in the PBL process as knowledge is the key success of the process." -Participant P3.
2) PBL Implementation Phase: The implementation phase in PBL comprises three stages, namely before, during, and after.
• Before: PBL Preparatory Implementation This stage is conducted once the semester starts. The activities involved in this stage include problem crafting, problem reviewing, and preparation of PBL guidelines and plans. The Facilitator and PBL Committee should play their role in this process. Details of the activities in this stage are described as follows: The analysis shows that the facilitator should design problems in groups. The point of views of all facilitators should take into account the process of designing problems to avoid bias. Programming Course Learning Outcomes (CLO) are referred to during this process. The analysis shows that the PBL Committee should review the problem that has been created by the facilitator. The reviewing process can be done either orally or via document review. The revised problem can be used in PBL session. "The crafted problem must be reviewed by the PBL committee. Normally, we document the problem so that it is easier for the committee to revise." -Participant P3.
"The process of reviewing the problem can be done orally. The facilitator will present the problem in front of the PBL committee." -Participant P1.
The facilitator needs to provide a PBL plan to replace the conventional T&L plan. The plan contains contact hours, student activities, number of problems that need to be distributed throughout the semester, and recommended time to solve the problem. "The facilitator needs to have a PBL plan. This is different from regular teaching plan." -Participant TU2.
"Each facilitator should prepare T&L plans. This plan is used as a reference and as a preparatory step to start the PBL sessions." -Participant P3.
Facilitators also need to prepare a PBL Guide for the student. This guide should contain information about PBL and the student's role. This guide should be made available to download online. This guide can be distributed to students during the first week of the academic semester or uploaded to an online learning application. The goal is that the students gain exposure before PBL implementation. "Students should be given guidelines on how to learn to use PBL. The facilitator can provide a guideline in the form of a book. This is aimed at providing more understanding for the students in regard to PBL." -Participant TU3.
"This guidance is given to students at the beginning of the semester prior to PBL implementation."-Participant TU4.
• Current: PBL Implementation PBL Session Results of the analysis found that at least three meetings are required in the PBL problem-solving process. Selflearning is considered part of the PBL session. Therefore, the time to carry out the self-learning process must be allocated in the PBL implementation sessions. Overall, the time to implement PBL for a Programming course is around three to four weeks depending on the problem scale. "Well, we at least need to hold three meetings in a PBL session."-Participant P1 "Self-learning is part of PBL, so it needs to be included in the PBL plan." -Participant P2 "We need to check the time required to solve Programming problems in PBL sessions. The ideal time for problemsolving in Java programming language courses is approximately three weeks." -Participant TU1.

a. First Meeting
The first meeting involves group formation, chairman appointment, problem distribution, problem identification, brainstorming activities, and learning issue formulation. The time taken for the first meeting should be in the range of four to seven hours. In order to identify the problems, the students are encouraged to use FILA (Facts, Ideas, Learning Issues, Actions) [44], [45] or the 3Ks (Know, Do not Know, What you want to know). Details of the steps in the first meeting are described below: "We frequently spend approximately five to seven hours in the first meeting. I think this is an appropriate duration to understand the problem properly."-Participant GM13.

i. Forming Groups and Determining Student Role
The majority of participants felt that the group should be formed by the students themselves so that they do not have to spend time getting to know each other. Allowing the students to choose their own group members is a good practice [41]. Implementation of Programming courses would be between four to five members to avoid free-rider members and to reduce any difficulties in communication.

"I would rather choose my own group members because we would know each other's strengths and weaknesses." -Participant 1S8.
"The total number of group members should not exceed five. Normally, the number of members would be between four to five students. Too many members of a group may cause difficulties in communication." -Participant IS5.
Upon group formation, the role of the leader and writer must be determined. The appointment can be made by rotation.
"The first thing that must be done after group formation is leader and writer appointment." -Participant P2.
"Each member should be a group leader whereby the position is rotated to include all members." -Participant Ax2.

ii. Problem Distribution
The facilitator needs to distribute the problem to the students. The problem can be distributed via a Learning Management System (LMS) by uploading it or projecting it through a device such as a projector in class. There are a few sets of the problem that should be distributed throughout the semester. "We will distribute at least three sets of problems to the student every semester" -Participant P3.
"Sometimes, the facilitator will project the problem text using a Powerpoint slide via an LCD projector in class" -Participant P1.
iii. Clarify Problem Students need to read the problem upon the problem distribution. "Normally, I will read the problem in the first meeting. It takes some time to understand the question." -Participant GM13 "The approximate total time to read and understand the question should be 30 minutes" -Participant Ax2.

iv. Identify Problem
Students will need to identify the problem. During the process, the student must jot down information regarding the problem.
"The problem must be identified individually. The students need to understand how to solve the problem. Then, they must discuss the way to solve the problem in a group" -Participant Ax4.

v. Brainstorming
Each student must participate in the brainstorming activities. Each student needs to express their opinions and the knowledge that they have. The most suitable opinion and the idea will be taken into account to solve the problem. Information that is gathered in this process will be included in the technical report. The time estimation to perform a brainstorming activity is approximately one hour. "The student must perform the brainstorming process in the first meeting. We have been practicing the 3K concepts to identify the problem, and this is the point where the student will start the brainstorming process." -Participant GM16.

vi. Sketch Explanatory Model
The student needs to sketch an explanatory model or mind map to visualise the results of their discussion and to identify the 3Ks or FILA information. "Usually we will draw a mind map to extract the 3Ks or FILA information" -Participant GM19.
"The mind map is a sketch to identify 3K information. Then only will we proceed with other PBL processes" -Participant GM14.

vii. Formulate Learning Issues
At the end of the first session of the meeting, students need to formulate the learning issues. Learning issues are generated from the brainstorming process. It is derived from the thing that students need to know. The learning issues are then distributed to each group member. "Through FILA or 3K information, we can check the students' knowledge background and ideas. The student will list the learning issues that need to be learned" -Participant P1. b. Self-learning Self-learning must be conducted after the student confirms the learning issues that need to be learned or studied. It is agreed by the majority of the participants that time taken for searching information should be within seven days. However, the duration also depends on the problem scale.

i. Gather Information Individually
The student needs to find information individually after acknowledging the learning issues formulated in the previous step. Students search for the information using various ways, whether through online, Programming books or collecting data related to the problem from outsiders. Students need to prepare appropriate tools such as a form that they have created in order to gather information from outsiders. A student can also run observations of the process or other products. "Based on the discussion in the first meeting, the students can take home the problems and do searching activities at home via online and other sources. They will discuss further what they have gathered at the next meeting." -Participant P1.
"We also need a reference from users. For example, for producing a system for a restaurant, we need to know the data that needs to be included such as menu and food price. Thus, we must collect that data from the owner of the restaurant. The information will be collected through forms and showed to the facilitator as data collection evidence." -Participant GM12.

ii. Design Program
After obtaining the relevant information, students are required to generate an algorithm or design a program. "We had to prepare an information draft to be revised during the second meeting. This includes the program design draft." -Participant GM15.
"We created a flow chart and showed it to the facilitator in the second meeting." -Participant GM13.
iii. Preparing a Brief Report on the Findings Once the searching for information is done, the information will be compiled in the form of a brief report. This report comprises of the information obtained during the selflearning, including the draft report and program design.
"After done searching for all the necessary information, we first collect and then summarise." -Participant GM11.
"Whatever material we obtain or produce will be reported in the second meeting." -Participant GM14.

c. Second Meeting
The second meeting is a process of synthesising the findings obtained during the self-learning. During this meeting, students must demonstrate the program design and further develop the program. The estimated time for this meeting is between five to seven hours. The results of this meeting are explained in the technical report. "The second meeting was done in order to gain information on the students' learning progress. Students are asked to present the findings obtained. This is because we need to ensure that the students do get the right learning materials. At this point, if the learning materials they obtained are not correct, they can make a correction." -Participant P3.

i. Synthesise Information of Problem Needs and Program
Once done with the self-learning, students will regroup to discuss the findings in the second meeting. Each student will summarise the information gained during the self-learning. Students will report the new information obtained and show the algorithm, program design or program draft. This information shall be synthesised to get appropriate solutions. Students then need to finalise the resolution. If no agreement is reached or the self-learning findings could not fulfil the problem needs, students must repeat the steps to formulate the learning problems and conduct the self-learning again. The process of synthesising information to develop a program can take up to five hours. However, the formal time to synthesise this information depends on the time outlined in the PBL Plan. "In the second meeting, students may demonstrate the draft of the program, program design, and algorithm. Students explain briefly what has been designed, algorithm, flowchart or pseudocode to solve the problem." -Participant TU3.
"The process of problem synthesising when carried out up to the program development stage, the time required may reach 5 hours" -Participant GM13.
ii. Develop Program The information synthesised has to be translated into a program. Thus, each student is responsible for developing a program. The programming process is done in the laboratory. The estimated time for this process is within the range of five to seven hours. "When everyone in the group has understood or reached a consensus, we then build a program in the laboratory." -Participant IS11.
"After done searching for information, only then we will turn the information into a program. We need to build a program. Trial and error. If the program could not be executed, the program would be edited. After that, we will present." -Participant GM16.
iii. Completing Technical Report Each group must produce a technical report. A technical report contains certain characteristics. Basically, a technical report includes an introduction, 3K information or FILA, algorithm, flowchart, program code, print-screen and its explanation, and conclusion. The technical report is produced in stages starting from the first meeting and subsequently completed on the second meeting or before the third meeting. It is only completed once the program and the print-screen are attached together. "We are required to send in a technical report. 3K is answered in the form of a report. Examples of the program are also included in the report." -Participant GM17.
"A technical report is only completed once the program is perfectly developed. If the program was not fully completed during the second meeting, we would finish it up before the presentation." -Participant GM18.

d. Third Meeting
The third meeting involves activities of presentation, submission of assessment materials, and reflection. "Once the activities in the second meeting are completed, next to the third meeting students must submit the program and report as well as do a presentation. After the presentation, I will do a reflection." -Participant P3.
"Reflection must be carried out at the end of the problemsolving session. After all the groups are done presenting their answers." -Participant P2.

i. Presenting Program
Students will present program after the entire group members agreed with the final answer. Presentation session is held in the third meeting. Each group shall present their answers. During the presentation, students must demonstrate the programs they produced. A question and answer session are also held to assess students' understanding pertaining the program code developed as well as their involvement. The presentation is evaluated using a scoring rubric. The time period for presentation session is within 15 minutes. "Once we are done developing the program, we present." -Participant Ax1.
"We will meet back in class for presentation process. All group members will present their parts. This is because scores are given individually. During the presentation, the facilitator will ask students about the part they are accounted for. That is how the facilitator detects students' involvement in the group" -Participant GM15.

ii. Reflecting
Reflection is a closing for every PBL session. It concludes the implementation of PBL to strengthen students' understanding. The process of reflection involves students and facilitators. Facilitators will conduct a thorough reflection by covering the progress and achievement of the groups during PBL session. The facilitator shall summarise the overall performance of PBL session. The summary includes the advantages and disadvantages of each group so that students can improve their performance. In addition, the facilitator can also add information to improve students' understanding. The estimated time required to carry out reflection is about 30 minutes to an hour. "Reflection session takes half an hour to an hour." -Participant GM11.
"After the presentation, students do not know whether the answers given are correct or not. Therefore, we need to conduct a reflection session. This reflection session is interesting because students are able to see how they learn. There are groups with high marks because they have the correct understanding. There are also groups with the fewer score because their understanding is almost correct. Facilitators need to add some more information. Reflection strengthens students' understanding. After students have developed the program, do not simply tell them that the code is wrong without giving any explanation." -Participant P2.
Students need to self-analyse themselves in order to evaluate the learning process that they went through. Students have to record the problem-solving experience and its effect on themselves. This process requires supervision and training from facilitators at the initial stage. The content of the reflection note is the experience and understanding of the students about a topic obtained through problem-solving. These records are kept by the facilitator as a reference to monitor the students.
"Reflection is like a journal. Everyone has to tell their experience and understanding. Write it on one page. The note of reflection is sent to the facilitator and kept as a record to monitor the students." -Participant P3.
• After: PBL Implementation session After the implementation of PBL session, an evaluation process is performed on the Assessment Materials. This evaluation process is monitored by the PBL Committee.
e. Evaluating Assessment Materials Assessment Materials are evaluated after the third meeting which is after the presentation. The evaluation is carried out on the program and technical report. Evaluation of Assessment Materials is conducted by using the scoring rubric scale. "Marks are supposed to be given to the problem-solving process. Scoring of the program must use a rubric." -Participant TU2.
"I evaluate the technical report by using a scoring scale." -Participant P3.

f. Monitoring the Evaluation Process
It is shown in the result of the analysis that assessment Materials evaluation needs to be monitored by the PBL Committee. Materials that have been evaluated shall be submitted to the PBL Committee to be reviewed. The PBL Committee will examine how the assessment was done. "Revised assessment materials by the facilitator will then be sent to the PBL Committee. The way the materials were being evaluated will be reviewed by the PBL Committee."-Participant P1.
"Yes. We also review the evaluation format." -Participant P2.
The implementation of PBL must be observed to ensure its effectiveness. The observations should be conducted by the PBL Committee by attending the class or video recording during implementation. "Normally, the committee will attend the PBL class during implementation. Otherwise, the process will be recorded. The camera will be placed in the corner of the classroom for recording purposes." -Participant P1 "We observed the implementation of the PBL session accordingly." -Participant P2.

C. Product
The product consists of Infrastructure, PBL Guide, Problem, PBL Plan and Assessment Material. PBL Guide, Problem, PBL Plan and Assessment Material are categorised as PBL Document. Further description related to the product is described as follows: 1) Infrastructure: Infrastructure is an important factor in the implementation of PBL. Following is a description of the infrastructure used in the implementation of PBL for a programming course.

a. Discussion Room and Laboratory
The facilities that need to be provided in the implementation of PBL for programming course are provisions for discussion and programming. The upper management should provide a discussion room to facilitate students' discussion and laboratory to carry out programming process. The features of the discussion room and laboratory are detailed as follows: Discussion space should be equipped with round tables. The tables should be organised into island shapes to facilitate students' discussions. Each island is assigned to five students. In addition, network facilities and flipcharts should also be provided. In terms of reference facilities, reference books such as programming books and latest papers should be provided in the discussion room and library of the institution. "The management needs to provide infrastructure facilities such as roundtables, reference resources such as books and the Internet." -Participant TU2.
"The arrangement of PBL class cannot be similar with that of the traditional class which is arranged in rows. The arrangement has to be in island form." -Participant P2.
PBL requires a special setting, especially in terms of determining the size of the class. Large class sizes complicate the process of guiding and monitoring the students. The implementation of PBL is more effective with small-sized classes. Therefore, the learning program management needs to set the size of the class before PBL is implemented. It is indicated in the result of the analysis that the ideal size of the class is between 20 to 25 students, while the number of facilitators assigned is two or three. Such students and facilitators ratio is necessary in order to facilitate the guiding process. "In the event that there were 25 students in a given class, there will probably be 5 to 6 groups, so we may need to have 2 or 3 facilitators for the class."-Participant P1.
Laboratories should be provided with the appropriate appliances, software and data network requirementsdesktops or laptops, LCD transmitter, program design and programming language software, library utilities as well as data network software and appliances; "Programming laboratories equipped with computers and appropriate software should be provided." -Participant Ax3.
"The implementation of PBL requires certain infrastructure, for example in terms of laboratory settings." -Participant P1.
The analysis also shows that data network is an important facility feature in the implementation of PBL for a programming course. Network facility is needed to perform a search of information related to problems and programming. "Other facilities should also be available such as the Internet and e-book facilities." -Participant TMK2.
"The Internet is fundamental in implementing PBL. I suggest that a good network facility should be provided." -Participant GM12.
2) PBL Document: PBL document consists of PBL Guidelines, PBL Plan, Problems and Assessment Materials. The detail related to PBL Document is described as follow: a. PBL Guidelines PBL Guidelines is a document that explains briefly about the implementation of PBL. The guidelines are prepared as a reference for the students. "Students should also be given exposure on how to implement PBL. This is because students always assume that programming has to be studied individually and leads to students not putting their commitment to the group." -Participant TMK5 "Students need to be given an understanding of their role in the implementation of PBL". -Participants Ax3.
b. PBL Plan PBL Plan is a document that describes the PBL implementation plan for the whole semester. PBL plan is prepared based on the programming course syllabus. The plan is drawn up by fractional coverage of programming topics, learning activities, the number of academic weeks, the type of assessment, the total set of problems as well as the arrangement of meetings. This document is referred to as a guide by facilitators before and during the implementation of PBL. "PBL plan is different from the usual T&L plan. The planning of learning activities has to start with a problem. The students' activities are more planned than the facilitators." -Participant P1.
"Solving a large scale problem helps to activate the existing knowledge, concept, and skills." -Participant TMK9.

c. Problem
A problem should has features such as a learning-trigger keyword, in the form of a scenario, theoretical integration and programming practical, in a large scale, meets the programming Course Learning Outcomes, challenging, a moderately structured, realistic, same or different set of problems, open, activate the existing knowledge, and require sufficient resolution period. "Problems have to be in the form of a scenario. For example, suppose you work as a software developer at a software company, and you need to develop software. We assume that they are in a real working situation." -Participant P2 True! Problems need to combine theoretical and practical concept because programming is related to skills" -Participant TU1.

D. Proposed Framework
The proposed framework of PBL implementation for a Computer Programming is illustrated in Fig. 3. The framework comprises three important components: People, Process, and Product. Each component encompasses the PBL implementation factor and the elements that need to be deliberated holistically during PBL implementation. The factors are interconnected during the process. The relationship between the factors in the framework is portrayed using arrows.
The People component consists of the Management, Facilitator, and Student. The most crucial factor in PBL implementation for Programming is the Management. The implementation must come with specific classroom settings equipped with several tools to ensure the effectiveness of PBL implementation. Furthermore, the Management is responsible for arranging or providing training to the Facilitator in order to develop PBL teaching skills. In conclusion, without the Management's consent, it is impossible to implement PBL. Basically, Facilitators play the role of a guide rather than being a knowledge transmitter in PBL. They also play the role of ensuring quality and must undergo critical training in order to make it a success.
The Process component includes the PBL preparatory phase and PBL implementation phase. In the Preparatory phase, basic facilities for PBL implementation such as flip charts, class arrangement, network facility, and reference sources are provided by the management. The Management must also provide PBL teaching skills to the facilitators, who are liable to attend the training program as an initial preparatory step. The Preparatory phase is followed by the PBL implementation phase whereby the Facilitators and students have the most involvement. The Management participates as the problem validator. During the PBL implementation, the Facilitators will craft the problem and then verify the problem with the Management. The problem is later used in the PBL session to trigger the learning process among students. Students initiate the problemsolving process by forming groups, and then conduct problem identification, brainstorming, and learning issue formulation. This process, followed by self-learning, normally takes at least one week. Students then synthesise the gathered information before evaluating the findings through program development. Finally, the solution is presented in front of the facilitators and other groups in the class. The next process consists of the evaluation carried out by peers and facilitators. The Product component is produced in two-phases. The first phase, also known as the Preparatory phase, would produce the infrastructure factor, which constitutes the corresponding infrastructure elements, such as PBL teaching tools, classroom arrangement, network facility, and reference source. Meanwhile, the rest of the factors such as PBL Guidelines, Plan, Problem, Program, and Technical report are produced during the PBL implementation phase.
The PBL Guidelines elucidate the student role and PBL principle as an exposure and reference for the students. On the other hand, the PBL Plan is for facilitator guidance and planning. Essentially, the document is a replacement for the T&L plan. It serves as a planner in order to assist facilitators to make preparation before and during the PBL session. In the implementation phase, the solution material is produced. These are the Code Program and Technical Report. The Code Program is developed using Programming language software or tools to test theoretical and newly acquired information. Lastly, students are required to write a technical report in order to document the process of problem-solving and attach it together with the Code Program for final submission. These materials, also called Evaluation Material, need to be submitted to the facilitator for evaluation purposes at the end of the PBL session.

IV. CONCLUSION
This paper has discussed the factors contributing towards PBL implementation in a Computer Programming course, together with corresponding PBL implementation elements. The factors and elements were gathered through a literature review and empirical work encompassing one-to-one and focus group interviews. The empirical works involved students, IT educators, and Programme Managers who have direct experience with PBL implementation in Computer Programming courses. The IT educators and Programme Managers can refer to these factors and elements to plan and implement PBL for a Programming course. Educators could practice the implementation of PBL for a Programming course in a more guided and systematic way instead of implementing PBL based on random, intuitive acts or direct adoption from other disciplines.
The study was carried out qualitatively. Therefore, further refinement must be done to confirm the factors and elements. Therefore, the findings should be validated by implementing PBL in a Programming course. Further improvisation could also be done.