Post Image
By nancyDecember 1, 2020In Articles

Reflection from Summer Coding Program to psychological theories and findings

STEAM (Science – Technology – Engineering – Art – Math) education is an essential part of modern education. STEAM education helps students develop a variety of 21st-century skill sets such as problem-solving, creativity, critical thinking, and technological literacy. These are necessary conditions for them to have a successful future. Because STEAM education is so important, the STEAM for Vietnam organization created a Summer Coding Program as a STEAM-based program. After the first run in Summer 2020, the Summer Coding Program we organized had more than 7000 registrants, and 5000 students took part in the program. 83% of participants had positive feedback about this program. With this result, the Summer Coding Program is considered a success and had a significant impact on Vietnamese children and also Vietnamese Education. Thus, in this paper, we will look at how the Summer Coding Program design aligns with the application of the following psychological theories: the age time of learning, the combination of multiple instruction models, and behaviorism. Considering these psychological theories when creating the program played an important role in its success, especially in improving students’ engagement with an online learning program.


STEAM for Vietnam’s Summer Coding Program

The Summer Coding Program was created by STEAM for Vietnam, a non-profit organization. The primary purpose of this organization is to provide high-quality STEAM education for Vietnamese children for free. The Summer Coding Program is our first program in the series of STEAM courses. 

In this program, we aim to teach Computational Thinking as an efficient way of solving problems. There are four facets of Computational Thinking. One is Decomposition, which breaks down a big problem into some smaller ones that are easier to solve. The second is Pattern Recognition, which finds similarities among little problems to make a prediction. The third is Abstraction, which is generalizing the solution of one problem to another problem. The final facet of Computational Thinking is Algorithm, which involves designing step-by-step instructions to solve a problem. This method is not only applied in Computer Science. It also can be used in solving all issues. If students can understand and use this method, they will gain many benefits because they will have an excellent strategy to think, analyze, and take advantage of the power of technology.

We use coding as a tool to teach about Computational Thinking. The programming language that we chose is Scratch – a block-based programming language that allows students to drag and drop blocks to program instead of writing many lines of code. There are eight main lessons and some extra lessons to celebrate special events in the summer and honor students’ efforts. In each lesson, students will work on a project. Thus, during the whole Summer Coding Program, students can learn to program eight games based on some popular games such as Ping Pong, Car Racing, Flappy Bird, and Mario. Computational Thinking was used in the analysis steps when students were developing a strategy to recreate the game. Because we aim to teach Computational Thinking as a powerful tool to solve problems, such as creating any game, it was repeated and emphasized in all lessons.

The goal of the Summer Coding Program is to universalize Computational Thinking to all students in Vietnam. We believe that everybody should know about Computational Thinking regardless of age group or major because Computational Thinking simply is how people solve problems, and we need to solve problems every day. There is no specific requirement for the age range to take part in our program. We have a small test to verify the background knowledge of registrants. People who can pass our test about reading skills, math skills, and basic computer skills are eligible to participate in this program. In fact, our students are very diverse in age range, from 5 to 76 years old. Most of our students are from 8 to 12 years old. We also encourage parents to join the class with their children. As a result, we have various chronological age ranges in one class, but they all have enough prior knowledge to learn together.

The Summer Coding Program is run entirely online. In each lesson, about five students out of 5000 students are chosen randomly to join a Zoom class with the teacher. Then, we stream our Zoom class on YouTube so that the rest of the students can join the lesson by watching the live video. To help students engage with the lesson, we developed a platform called LiveApp. In this platform, students can watch the lesson’s video on the left side and have a live chat window on the right side to ask for support at any time during the class. The LiveApp platform also divides students into many small rooms, about 100 students per room, to help teacher’s assistants to manage the group more easily and respond more quickly. Besides, when the teacher asks a question on the live video, the LiveApp system immediately pops up the problem for students to choose their answers. After students choose their solution, the system will display the result, and teachers also have some explanation of the correct answer on the video. Finally, the most important part of each lesson is that while watching the live lecture, students follow the teacher’s instructions to practice coding. The goal of each lesson is for students to create their own game. 

Besides online sessions, we also have a learning management system (LMS) to support students doing their homework and self-study. In the LMS, students can watch the lesson again, submit their projects, do quizzes, ask questions in the Discussion Forum, and participate in peer grading. There are two highlight functions in this system. First, we use the community grading method to evaluate the vast number of students’ projects. Each student will grade 3 projects. It means three different people will assess one project. The final grade is the average of three results. Second, the Discussion forum is the place for students to share their knowledge. If students have any questions or thoughts during self-learning, they can post them there to get support from their classmates, teacher’s assistants, and teachers.

Finally, I want to summarize some results of the first launch in August 2020. The program received more than 7000 applications from all over Vietnam. The program also attracted Vietnamese children living in 33 different countries around the world. 83% of participants had positive feedback about this program. In the next run in January 2021, we hope we will attract more students and bring Computational Thinking and STEAM closer to children in Vietnam.


Reflection on psychological theories


Age timing of learning

There is a relationship between age and the development of children. Piaget’s theory of cognitive development suggests that every child will go through four stages of mental development: The Sensorimotor stage (from birth to 2 years old), the Preoperational stage (from 2 to 7 years old), the Concrete operational stage (from 7 to 11 years old) and the Formal operational stage (from 12 years old). This theory is well-known in the psychological and education fields. When school becomes compulsory, age is also used to create rules about timing when children start formal schooling. In other words, age is used to standardize the learning ability of children. However, Rogoff had shown that learning readiness is different among children. “In Piaget’s developmental theory, the sequence of stages in the development of thinking was important, but not the age at which new developments occurred.” (Rogoff, 2003, p.160). Environmental factors, such as social culture, have a significant impact on the development of children. Different communities’ cultures cause a variation in timing when a child reaches a development milestone (Rogoff, 2003, p.159). Thus, the appropriate timing for learning new things should be evaluated based on children’s abilities, not their age.

Based on the theory of different age timing for learning readiness among children, the Summer Coding Program selects students according to their ability and accepts the variety of ages in the class. To assess students’ readiness, we list all the background knowledge requirements for taking the course. Then, we build a test to evaluate this knowledge. This program has three main requirements, namely reading skills, math skills, and basic computer skills. For reading, students should have basic reading comprehension skills. Scratch code blocks are quite similar to natural language. For example, when we want to make the cat say meow when the player clicks on him, we can combine two coding blocks: “when this sprite clicked” and “play sound meow.” If students can read and understand this kind of sentence, students can easily convert their thoughts into code blocks. For the math requirement, we need to work with a 2D-coordinate system to determine the position and moving direction of characters in programming. Thus, we require students to be proficient in addition, subtraction and understand negative number concepts. Finally, because our program runs wholly online, we need students to have some basic computer skills such as browsing websites, creating an account to login to our system, chatting, sending links, etc. These skills are necessary to participate in online class sessions and help students access other learning material and support. 

In summary, the Summer Coding Program uses a test to assess participants’ suitability level through their prior knowledge. No matter what age group they are in, if students pass the test, they are a good fit for the program. This method helps remove the unconvincing assumption about the relationship between chronological age and learning ability.


Combination of multiple instruction models

The Summer Coding Program is a combination of three instructional models: adults-run, children-run, and the community-of-learners model. These three models are smoothly mixing in both the live class session and the process of self-study at home to bring the best learning experience for students. Rogoff (1994) also emphasized, “Rather than trying to select only one model to use in all situations, we may do well to foster children’s and our flexibility in using different models in different circumstances” (p.226).

According to Rogoff (1994), in the adults-run model, “Learning is viewed as a product of teaching or adult’s provision of information. Adults see themselves as responsible for filling children up with knowledge as if children are receptacles and knowledge is a product” (p.211). This method can be understood as lecturing. The adults-run model is the primary method in most public schools, even in the US or in Vietnam. The Undergraduate Teaching Faculty: The 2016-2017 HERI Faculty Survey showed that, in 2016-2017, about 50.3% of learning time at school is extensive lecturing. In the Summer Coding Program, about 60% of class time uses the adults-run model. Because our class is entirely online and has a large scale, this model is the most suitable one. In the live session, the teacher instructs students to program a game step-by-step. However, the greatest difficulty of this method is motivating students to engage in the lesson. Especially in the online learning environment, if students feel bored, they can turn off the video and stop learning.

To improve this situation, in the live session, we encourage students to practice coding with the teacher. When the teacher introduces some codes, students can immediately practice these codes. If they have trouble during the practice or have a question, they can send it via LiveApp, and teaching assistants can help them. So, practice will keep students busy and not bored. Additionally, every 10-15 minutes, the teacher will ask questions to evaluate the students’ understanding and progress. This question will pop-up on the students’ screens and require them to answer it. By answering the question, students once again have a chance to get engaged with the lesson. Thus, although using the adults-run model, students still have many opportunities to engage with the class instead of simply receiving knowledge from the teacher.

The second model, which accounts for about 30% of the Summer Coding Program’s learning process, is communities-of-learners. In a community of learners, “Children and adults together are active in structuring shared endeavors, with adults responsible for guiding the overall process and children learning to practice in the management of their own learning and involvement.” (Rogoff, 1994, p.213). This model is best demonstrated in three activities of the program. First, it is the process of building a code plan. The teacher will help students go through four steps of Computational Thinking by giving students suggestion questions. By answering these questions, students can explore the way to recreate the game. In other words, with some guidance from the teacher, students themselves can apply Computational Thinking to solve the problem of coding a game. Second, we encourage parents to participate in the live class with their children. So each family will become a small community of learners. They can learn together and support each other in solving the problem. If parents are unable to join with their children, students still have an online community of learners via the LiveApp platform. In the LiveApp, students can discuss with their classmates and teaching assistants to learn from each other. Finally, similar to the LiveApp, students can use the Discussion Forum as an online community of learners after live class sessions. In the Discussion Forum, students can share their ideas or projects to have feedback. When students post questions, teachers, teaching assistants, and other students can solve that problem. Thus, if students are active in their learning, there is always a community of learners for them to join. They can learn not only from teachers but also from many of their friends and program staff.

The third model is the children-run model. It accounts for about 10% of the Summer Coding Program. Unlike the adults-run model, in this model, children will take active roles while the teacher is passive. Rogoff (1994) said, “Adults may set up learning environments for the children but should otherwise avoid influencing children’s natural course of learning” (p.212). This model is applied in our program through the process of peer project assessment. Students take the whole responsibility to assess their classmates’ projects without adults’ intervention. Students can learn from comparing their project with three versions of the project from different students. Also, their project receives some feedback from others. Therefore, students can still learn without adults’ influence.



According to McLeod (2017), “Behaviorism, also known as behavioral psychology, is a theory of learning which states all behaviors are learned through interaction with the environment through a process called conditioning.” In other words, behaviors are the result of responding to the stimuli of the environment. Skinner is one of the psychologists who had many studies about this theory, and he is the father of operant conditioning. From the perspective of operant conditioning, Skinner (1968) created a definition of learning: “We have made sure that effects do occur and that they occur under conditions which are optimal for producing the changes called learning” (p.30). Learning is the process of changing organisms’ behaviors. If we can set up some conditions to reinforce the behavior, this technique will help us shape and maintain organisms’ behavior. Indeed, Skinner had successfully applied this technique in education with the invention of Teaching Machine and Programmed Instruction (Skinner, 1968). Crain (2005) pointed out three principles of Skinner’s invention: processing in small steps to shape the behavior little by little, making learners active to simulate the natural condition of learning organisms, and immediate feedback to reinforce the stimuli to encourage learning (p.171-172).

In the Summer Coding Program, we included these three principles in our students’ learning experience. First, we divided a lesson into many parts. Each part takes about 10-15 minutes to finish. In detail, we split a big game project into many checkpoints. When students finish a checkpoint, they finish a function of the game. Although each checkpoint is not a complete program, it is playable. Students can test their project by playing it and get the feeling of achieving something. In a short period, students can finish a coding task and create fun stuff. It forms the perception that coding is not hard; it is fun. This thought is a reinforcement to sharpening students’ engagement with the coding lesson. 

Second, our program allows students to play an active role in the class. Students can actively choose their suitable learning pace without affecting the learning process of other students. Our class is live sessions, but it does not mean students need to learn at the same speed. Students can pause the video at any time they need and come back when they feel ready. For example, if students want to spend more time practicing coding or discussing some problems with their classmates before moving to the next part, it is possible. 

Third, immediate feedback is the most challenging factor. Thanks to technology, when students submit their answers to the teacher’s questions, the system immediately responds to students. These prompt responses helped to reinforce learning and establish desired responses at the highest rates for students (Skinner, 1953, p.101). Besides, different from other online courses, we have the LiveApp platform that allows students to ask questions anytime during the live session. If students have questions, they can instantly send them in the LiveApp, and our supporters or even other classmates will help them answer the questions. Students do not need to wait until the end of the lesson to ask or wait for a few days to receive responses. However, similar to the traditional classroom, when one teacher needs to handle many students, the response to student’s problems is unlikely to be immediate. On average, it takes a few minutes for students to get the answer. This problem can be improved by increasing the number of supporters or encouraging students to support each other.

There are some limitations in our design compared to Skinner’s principles. Firstly, the questions that we use to ask students during the lesson are all multiple choice. In Skinner’s design, he required students to compose their response instead of selecting an answer from a list. He explained his selection with two reasons: “One reason for this is that we want him to recall rather than recognize. Another reason is that effective multiple-choice material must contain plausible wrong responses, which are out of place in the delicate process of shaping behavior because they strengthen unwanted forms” (Skinner, 1968). Secondly, in our program, all students have the same set of questions. We do not have a branched design for the quizzes. Whether students answer the first question right or wrong, they all move to the same next question. This point should be improved to provide suitable learning steps for each student, and to avoid too easy or too hard steps in the learning process.



Evaluating the Summer Coding Program provides a good learning experience to reflect on these psychological concepts. The age time of learning theory has allowed us to select suitable students. By doing so, we are successful in creating a learning environment suitable for all participants. There are no students who do not feel ready for the class. There are no students feeling they are too young or too old for the class. All participants have enough prior knowledge requirements that allow them to succeed in their learning.

The application of behaviorism and combining of three instruction models are two essential factors that help improve students’ engagement in an online course. Usually, online courses are considered to be less attractive and especially difficult to engage young children. However, by using the three principles by Skinner (1968) in lesson design, we can resolve many problems of online learning such as encouraging students to do practice without overwhelming them with large amounts of work, be active in their learning pace and receive immediate reinforcement when they do a good job. In addition, the combination of the three instruction models gives a balance in delivering knowledge. Students not only can learn new knowledge from teachers, but also learn from their friends. Moreover, we can build communities of learners both offline and online to support students anytime they need. Thus, evaluating this program through these psychological theories brings us many valuable insights to improve this program in the next run.



Bruner, J. S. (1960). The process of education. Harvard University Press.


Crain, W. C. (2005). Theories of development: Concepts and applications. Boston, MA: Prentice-Hall.


McLeod, S. A. (2017, February 05). Behaviorist approach. Simply Psychology.


Piaget J. (1977) Problems of Equilibration. In: Appel M.H., Goldberg L.S. (eds) Topics in Cognitive Development. Topics in Cognitive Development. Springer, Boston, MA.


Rogoff, B. (1994). Developing understanding of the idea of communities of learners. Mind, Culture, and Activity, 1(4), 209–229. DOI: 10.1080/10749039409524673.


Rogoff, B. (2003). The cultural nature of human development. Oxford: Oxford University Press.


Skinner, B. F. (1953). Science and human behavior. Macmillan.


Skinner, B.F. (1968). The technology of teaching. New York: Appleton-Century-Crofts.


Stolzenberg, E. B., Eagan, M. K., Zimmerman, H. B., Berdan Lozano, J., Cesar-Davis, N. M., Aragon, M. C., & Rios-Aguilar, C. (2019). Undergraduate teaching faculty: The HERI Faculty Survey 2016–2017. Los Angeles: Higher Education Research Institute, UCLA.

svgPerspective on the nature of Mathematics and its developement
svgHistory of Education in Vietnam​

Leave a reply