Introducing Basic Programming To Pre-University Students
Introducing Basic Programming To Pre-University Students
4-2018
Part of the Asian Studies Commons, and the Programming Languages and Compilers Commons
Citation
MOK, Heng Ngee and RAMACHANDRA RAO, Vandana. Introducing basic programming to pre-university
students: A successful initiative in Singapore. (2018). 2018 17th International Conference on Information
Technology Based Higher Education and Training (ITHET): Proceedings, Olhao, Portugal, April 26-28. 1-7.
Research Collection School Of Information Systems.
Available at: https://ink.library.smu.edu.sg/sis_research/4074
This Conference Proceeding Article is brought to you for free and open access by the School of Information
Systems at Institutional Knowledge at Singapore Management University. It has been accepted for inclusion in
Research Collection School Of Information Systems by an authorized administrator of Institutional Knowledge at
Singapore Management University. For more information, please email [email protected].
Introducing Basic Programming to Pre-University
Students: A Successful Initiative in Singapore
Heng Ngee Mok, Member, IEEE, and Vandana Ramachandra Rao
Singapore Management University, School of Information Systems
[email protected], [email protected]
Abstract—“Let’s Code!” is an intensive 3-week basic “Computing” as an “O”-level1 subject [12], most government
programming course that aims to formally expose pre-university schools do not teach programming, and very few junior
students in Singapore to programming. This course was colleges (JC) offer “Computing” as an “A”-level subject 2 .
conducted in blended-learning format, and included lecture Because of this lack of exposure, many JC students may not
videos, self-check quizzes, video conferences, meet-up tutorials consider a computing-related course when choosing a degree
and take-home programming assignments. The authors hope to program at university.
capture the experience gained from running this course for
educators who intend to implement similar courses in the future. In 2015, the authors obtained a grant to develop and run an
Besides a detailed description of this course, significant changes intensive 3-week programming course for pre-university
that were made based on feedback from participants and students with the main objective of exposing them to
members of the teaching team are documented here. programming. The authors wanted to create awareness about
this discipline and open up the possibility of a computing-
Keywords—programming, Curriculum Development, Computer related degree course and a subsequent career in IT. This
Science Education, Student Outreach, Flipped Classroom, Blended program was also designed to increase awareness about the
Learning degree options offered by the authors’ school.
2
laptops. At the end of the briefing session, coders should be
ready to start working on unit 1.
There were five meet-up tutorials; one for each unit. Each
tutorial was three hours long, and was conducted in a 70-seater
seminar room. Tutorial sessions were led by the instructors and
supported by the mentors. Each instructor ran his/her respective
classes slightly differently, but most of the tutorial time was
spent working on a set of in-class exercises. Each in-class
exercise consisted of ten to 12 questions that could be
categorized into three types as shown in table 2. These types of
questions reflected the kind of programming skills that the
instructors wanted coders to acquire through the program. The
assignment questions for units 1-4 were also similarly
structured. Mentors were around to assist coders who needed
Fig. 1: Sequence of activities for each unit help with these exercises, and each tutorial session ended with
a debrief during which solutions from volunteers were flashed
on the screen and criticized.
D. Role of Mentors
Mentors had about one day to prepare formative feedback TABLE II. QUESTIONS TYPES IN ASSIGNMENTS AND IN-CLASS EX
on the submitted assignment solutions. While that was Question Type Comments
happening, coders were expected to start watching the lecture 1 Theoretical Required coders to read and understand code
videos for the next unit, thus explaining the “overlaps” between questions written by others. By stepping through
the units on the horizontal timeline in figure 1. Mentors were statements one line at a time, coders
encouraged to key in a summary of their comments into the appreciated how the program flowed through
loops and decision statements, and how
LMS and correspond with their respective mentees either face- variables were updated.
to-face, via online means (WhatsApp, Telegram etc.) or via the 2 Programming Required coders to actually design and write
telephone to explain their feedback. questions simple code and run them.
3 Troubleshooting Required coders to identify and resolve logical
Mentors were also specifically instructed not to mark questions bugs or runtime errors in existing code.
submitted code just by running test cases to validate the values
returned; they were expected to “look into” each method to see
how the code was written. This was how mentors could add The 7th and last meet-up session included a debrief lecture
tremendous value over automated code marking systems that and an examination. During the course debrief, additional
merely perform black-box testing on submitted code. resources were recommended to coders to continue with their
learning journey. Code examples written in Python and Java
The instructors recognized that the mentors were the first were also shown to impress upon coders that picking up
“line of contact” for the coders, and also acted as ambassadors another object-orientated language was not difficult once they
for the authors’ school and evangelists for the computing had mastered the fundamentals of Ruby. Coders were also
industry; the quality of mentors’ interaction would have a introduced to other computing subjects such as artificial
significant impact on the coders’ overall experience. So the intelligence, analytics and cybersecurity as a brief overview of
instructors were careful to select suitable mentors. Instead of the discipline. The examination was comprised of three parts:
choosing only from the ranks of the “elite programmers”, the an online multiple-choice quiz administered via the LMS, a
instructors preferred mentors who displayed passion in teaching written theoretical paper, and a hands-on programming test that
and demonstrated exemplary communication skills. required coders to write and submit code.
E. Meet-up Sessions and In-Class Exercises There was one optional lecture conducted via video
conferencing between the 4th and last tutorial session. This
The first meet-up session was the compulsory briefing. session was conducted by the instructors using WebEx, and
Mentors were present to greet their respective mentees and covered the topic of object cloning applied to arrays. The whole
assist them with connecting to the school’s network. The first conference was recorded and subsequently posted to the LMS
half of the briefing was spent on administrative tasks: for coders who missed the “live” session.
distribution of LMS accounts and a lecture-styled briefing on
the pedagogy, schedule and expectations of the course. The Coders who had fulfilled the following requirements were
second half of the session was spent on unit 0 (Setting up the considered to have completed the course successfully: (i)
programming environment). Coders were briefed on the attended the briefing (first meet-up), the examination (last
command line environment, how to create and edit a simple meet-up) and at least 2 out of 5 of the tutorials, (ii) completed
Ruby program using a text editor, and how to execute that and submitted all five assignments, and (iii) attempted all the
program using Interactive Ruby. Coders were instructed to self-check quizzes.
leave the lesson only after they had gotten the programming
environment installed and properly configured on their personal
3
III. CHANGES MADE BASED ON FEEDBACK third run onwards, the course web site was edited to enable
At the conclusion of each run, the instructors made changes registrants to “register together” with friends so that they would
to the next run based on feedback collected from mentors and be placed into the same group even if they were from a
coders. The significant changes are summarized in this section different school. The instructors suspected that it was more
with justifications for each change. likely for “loners” to drop out of the course, than for coders
who were working on the assignments together.
(1) Setting the commitment expectations of coders correctly.
During the first run, the instructors received numerous (5) Having tutorials before assignments: For the first three
“complaints” about the significant amount of time and effort runs, coders were instructed to follow this sequence for each
required for the course during those three weeks. The official unit: (i) watch lecture videos and attempt self-check quizzes,
course web site was updated to specifically warn potential (ii) attempt assignment, (iii) attend tutorial. Tutorial sessions
registrants that they were expected to commit three to four were supposed to “wrap up” a unit, and the in-class exercise
hours per day. Coders were also reminded about the heavy questions given out during tutorials were slightly more
commitment during the briefing session. This resulted in a challenging than the assignment questions. However the
significant reduction in the number of comments in the end-of- instructors realized quickly that there were coders who turned
course survey about the course requiring too much time and up for tutorial sessions without having even watched the lecture
effort. videos for that unit. Mentors were also giving feedback that
some coders still had difficulty bridging the gap between the
(2) Allocation of two mentors to coders. For the first three lecture videos and the programming assignments even after
runs, one mentor was assigned to a group of 10-15 coders. In watching the screencasts of “example questions”. For the fourth
the fourth run, the instructors decided to assign two mentors to run, the instructors reshuffled the sequence to: (i) watch lecture
a larger group of 20-30 coders. Mentors decided how work was videos and attempt self-check quizzes, (ii) attend tutorial, (iii)
to be split between the pair. Whilst the mentor/coder ratio was attempt assignment. This time round, the assignment questions
kept the same, the instructors felt that this was a preferable were slightly more challenging than the tutorial questions.
arrangement for the following reasons: Figure 2 shows the change. This new arrangement seemed to
facilitate learning better: coders who turned up at the tutorials
• a less experienced mentor could be paired with one were able to get some guided practice before they started on the
who was involved in an earlier run, assignments on their own, and mentors had one more day to
• mentors could learn from each other, motivate coders who turned up for tutorials without having
watched the lecture videos.
• coders had a choice as to which of the two assigned
mentors to speak to,
• mentors were able to more easily take over his or her
partner’s duties when necessary, and
• there was more interaction and cooperation amongst
mentors.
(3) Providing screencasts showing worked examples of
assignment questions. Especially for programming, there is a
gap between understanding the programming concepts in
theory, and actually coding and running a functioning program.
There were comments such as “I could understand everything
in the lecture videos and was able to get a perfect score for the
self-check quizzes, but was unable to start on the
(programming) assignment”. From the second run onwards,
about four out of 12 of each assignment’s questions were
converted into “example questions”, and screencasts on how to
tackle them were released together with the assignment. These Fig. 2: The tutorial was shifted from day 3 to day 2 for each unit in the last run
videos covered alternative approaches to solve the same
question with comments on the advantages and disadvantages (6) Including an “open-ended” project in the last
of each. Coders were strongly encouraged to watch them even assignment motivates interested coders to self-explore. For the
if they managed to derive a working solution to these example fourth run, the instructors decided to include an “open-ended”
questions without any help. project-like question in unit five’s assignment. Basically coders
(4) Putting friends together in the same teams. The could select an existing problem or game and write a program
instructors were aware of the benefits of heterogeneous teams to solve it. To encourage creativity and effort, a small
over homogeneous ones [15]. However, for this course, the percentage of their exam scores was allocated to this project.
instructors deliberately placed coders from the same schools This change motivated proficient coders to “try new things”
into the same groups whenever possible, under the assumption and be rewarded for exploration. The instructors received some
that team members were more likely to know one another, and excellent submissions for this project that were very
hence would “push” one another along to completion. From the impressively coded.
4
(7) Using a “dashboard” to track the progress of individual university [16] with a few customized questions inserted.
coders. “Let’s Code!” was a very fast-paced course with Course feedback were very positive. On a scale of 1 (for
scheduled tasks to complete every day. Some of the coders who “Extremely poor”) to 7 (for “Excellent”), respondents gave
did not complete the course gave up because they allowed average scores of 6.3/7 for both “Overall rating of instructor”
undone work to snowball, and dropped too far behind schedule and “Overall rating of mentor” (n=228, s.d.=0.8, response
until a sense of helplessness overwhelmed them. It was useful rate=97%). The “Learning experience in this course”, “Quality
for the instructors to have a “bird’s-eye view” of the general and value of course material” and “Quality and usefulness of
progress of all coders, and yet be able to identify potential course assignments/projects” each scored a relatively high
drop-outs, so that more attention could be given to them. Most 6.1/7.
LMSs come with dashboards that provide instructors with such
insights, but they are expensive to customize. For the last two In order to determine if the course had affected the
runs of “Let’s Code!”, the instructors prepared an online likelihood of coders pursuing computing in the future,
spreadsheet with columns for attendance, submission dates of respondents were asked to rate the following two statements on
each assignment and scores for the self-check quizzes. Mentors a 7-level Likert scale (Strongly Agree to Strongly Disagree):
were instructed to update the spreadsheet once they had given • Q1: “Before this course, I have considered a career or university
feedback for assignment submissions. Attendance records on program in an IT/computing/computing-related discipline”.
the same spreadsheet were also updated at the end of each
• Q2: “After this course, I will consider a career or university
meet-up. This online spreadsheet – although primitive program in an IT/computing/computing-related discipline”.
compared to the more fanciful ones which come with graphs
and charts – gave the instructors a good overview of “what’s
happening” as the course progressed. It also alerted mentors to
lagging mentees who were likely to drop out unless more
attention was given.
5
for Q2 than Q1, signalling that the course had a positive effect V. CONCLUDING REMARKS
in encouraging them to consider this discipline. 17.2% of The authors consider “Let’s Code!” a successful program:
respondents gave a lower score; these were likely to be over the four runs, a total of 535 coders enrolled in the course,
participants who realised that they did not enjoy programming and 431 (80.6%) of them completed it. End-of-course ratings
after all. 48.0% of the participants gave identical responses for for instructors, mentors and the course were very high, and
both questions. Despite these positive figures, it has to be noted there were many heart-warming notes from coders on how
that the survey was done only by coders who attended the last participation in this program had changed perspectives on
meet-up session. programming and computing. Some had discovered a new
Coders were specifically briefed during the first meet-up interest and would be matriculating in computing-related
session that in order to qualify for a certificate, they had to be programs for their university studies. Despite the requirement
present at the final meet-up session for their examination, and to attend only 2 out of 5 tutorial sessions, the course enjoyed
at least 2 out of 5 of the tutorial sessions. 76.3% of the coders, high attendance rates with more than one-third being present
however, attended more than two tutorial sessions, with the for all five sessions. The authors were glad that the 412
majority (34.4%) having attended all five sessions. Figure 4 participants who had never written a line of code before, wrote
shows how many tutorial sessions coders attended (n=535). their “Hello World!” program through this project. 78.9% of
The 18 coders who attended none of the tutorials were those these first-time coders managed to complete the course, and
who dropped out after the briefing. more than one-third of them gained enough skills over the three
weeks to be recognized as competent beginning programmers
by the authors. The project also contributed tremendously to
school outreach and marketing: through “Let’s Code!”, more
than half of the participants became aware of the authors’
school and the degree options that could be pursued there.
The authors were able to fine tune the pedagogy by
studying feedback from coders and mentors after each run, and
implement constructive changes in the following run.
Undergraduate students who were involved as mentors also
gained teaching experience, leadership and coaching skills.
This project had made an impact on a number of pre-
university students in Singapore by introducing programming
to them. This could have opened up an entire new world of
educational and career possibilities.
ACKNOWLEDGMENT
The authors would like to acknowledge their collaborators
and colleagues: Eileen Moh and Tan Ai Chin from Hwa Chong
Institution, Prof. Steven Miller, Prof. Venky Shankararaman,
Fig. 4: Histogram showing the distribution of number of tutorial sessions Koh Kwan Chin, Fiona Lee and the General Office staff from
attended by coders. Singapore Management University, as well as the following
organizations which supported this initiative: Science Centre
There seems to be a correlation between the number of Singapore, IEEE (Singapore branch), Singapore Computer
tutorial sessions attended by coders, and the category of Society and the Infocomm Media and Development Authority.
certificates they obtained eventually. The average attendance of
merit certificate holders, completion certificate holders and REFERENCES
those who did not finish the course were 4.1, 3.8 and 2.0 [1] Code.org, Hour of Code. [Online]. Available: https://code.org/about
respectively (out of 5 tutorial sessions). [Accessed Apr. 21 2018].
[2] S. Dredge, "Coding at school: A parent’s guide to England’s new
Coders were also asked to indicate the number of hours computing curriculum", The Guardian, Sep. 4, 2014. [Online].
spent on this course per day (including attending meet-up Available: http://www.theguardian.com/technology/2014/sep/04/coding-
sessions) over those three weeks. Respondents gave an average school-computing-children-programming [Accessed Apr. 21 2018].
figure of 3.4 hours per day (n=228). [3] H. W. Lauw, "Commentary: The hidden value of learning how to code",
Channel NewsAsia, Feb. 18, 2018. [Online]. Available:
In order to determine the impact of this course on school http://www.channelnewsasia.com/news/singapore/commentary-coding-
marketing, respondents were also asked if they were “aware programming-enrichment-classes-children-value-9905320 [Accessed
that there is a School of Information Systems” at the authors’ Apr. 21 2018].
university prior to attending “Let’s Code!”. 55.6% (n=522) of [4] R. Y. K. Toh, "Fresh grads in computing see biggest salary jump", The
the coders replied “not aware”, thus underscoring the role of Straits Times, Feb. 23, 2017. [Online]. Available:
http://www.straitstimes.com/singapore/education/those-in-computing-
this project in marketing the school and its degree courses to see-biggest-starting-salary-jump [Accessed Apr. 21 2018].
potential students. [5] P. T. Wong, "Move over doctors and lawyers, there's a new rich kid in
town", Today, Feb. 26, 2018. [Online]. Available:
6
http://www.todayonline.com/singapore/move-over-doctors-and-lawyers- from-the-lost-steve-jobs-interview-showing-this-weekend-2011-11
theres-new-rich-kid-town [Accessed Apr. 21 2018]. [Accessed Apr. 21 2018].
[6] E. Leung, and S. Tan, "IT, business graduates get higher starting pay", [12] P. Lee, "19 Schools to offer programming at O levels", The Straits
The New Paper, Feb. 27, 2018. [Online]. Available: Times, Feb. 29, 2016. [Online]. Available:
http://www.tnp.sg/news/singapore/it-business-graduates-get-higher- http://www.straitstimes.com/singapore/education/19-schools-to-offer-
starting-pay [Accessed Apr. 21 2018]. programming-at-o-levels [Accessed Apr. 21 2018].
[7] Smart Nation and Digital Government Office, Smart Nation. [Online]. [13] Singapore. Ministry of Education, Education Statistics Digest. p.2.
Available: http://www.smartnation.sg/about/Smart-Nation [Accessed Singapore: Ministry of Education; 2017. [Online]. Available:
Apr. 21 2018]. https://www.moe.gov.sg/docs/default-
[8] L. K. Fai, "Google programme inspires kids to learn coding", Channel source/document/publications/education-statistics-digest/esd_2017.pdf
NewsAsia, May 20, 2017. [Online]. Available: [Accessed Apr. 21 2018].
http://www.channelnewsasia.com/news/singapore/google-programme- [14] H. N. Mok, "Teaching tip: The flipped classroom", Journal of
inspires-kids-to-learn-coding-8868844 [Accessed Apr. 21 2018]. Information Systems Education, vol. 25, no. 1, pp. 7-11, Spring 2014.
[9] K. Kwang, "Speaking in code: Kids in Singapore are learning a new [15] S. Kagan, "10 Reasons to Use Heterogeneous Teams", Kagan Online
language", Channel NewsAsia, Mar. 16, 2017. [Online]. Available: Magazine, Fall 2014/Winter 2015. [Online]. Available:
http://www.channelnewsasia.com/news/singapore/speaking-in-code- http://www.kaganonline.com/free_articles/dr_spencer_kagan/396/10-
kids-in-singapore-are-learning-a-new-language-8188110 [Accessed Apr. Reasons-to-Use-Heterogeneous-Teams [Accessed Apr. 21 2018].
21 2018]. [16] FACET (For Assessment of Continuing Excellence in Teaching),
[10] L. Hio, "Coding classes for kids in high demand", The Straits Times, Singapore Management University, 2012. Available:
Mar. 8, 2016. [Online]. Available: http://cte.smu.edu.sg/feedback-teaching/student-feedback-
http://www.straitstimes.com/tech/coding-classes-for-kids-in-high- teaching/resources [Accessed Apr. 21 2018].
demand [Accessed Apr. 21 2018].
[11] M. Rosoff, "The most interesting thing Steve Jobs said in a 'lost' Heng Ngee Mok and Vandana R. Rao are both with the School of
interview showing next week", Business Insider, Nov. 11, 2011. Information Systems, Singapore Management University. Mok teaches
[Online]. Available: http://www.businessinsider.com/the-best-quotes- concurrent programming and computational thinking. Vandana teaches
programming and data management.