Majority faced difficulties understanding the abstract concepts since they can’t really see what is happening in a computer when a program is executed such as Multidimensional Array, Looping Statements, Function and Array Data Structure are the difficult topics.
Moreover, participants experience issues understanding the basic concept of programming structure as well as designing a program to solve certain tasks. In my teaching, I tried to help and support them in visualizing the programming process dynamically to enhance participant’s conceptual understanding.
It isn’t very difficult to write a program that solves a problem that you can solve yourself conceptually but learning to program means learning how to solve problems using code which requires thinking precisely about how to solve the problem and breaking it down into steps that are so simple that a computer can execute them.
This is the ‘skill’ they find it challenging. The best way to acquire this skill is by practice. Sometimes I had trouble coming up with good exercises, however, I think the activities and exercises we done were helpful for them to learn programming.