Description

What is programming? Programming is writing programs. Programming is the process of writing out the flow of doing something that originally exists in the brain and the process of visualizing the original abstract thinking. The reason our group chose to teach a simple introductory programming course was simple: programming frees our brain and attention to focus on more important things. More importantly, in the future, more and more low-level jobs will be taken over by machines (such as in logistics). If the program can be written in a language that can be understood by the machine, the machine can complete the repetitive work that should be done by human beings, so as to break through the physical limitations of human beings and achieve things that cannot be done originally. Just like a hundred years ago, it was the popularization of household appliances that freed women from heavy domestic work and enabled them to participate in social work. As we all know, machines crush humans in every direction to perform repetitive, manual tasks. Just like no weight lifter can compete with a crane. Programming, in other words, is the physics of the information age. Learning to program is about better understanding and transforming the world in which we live so that we can better survive in the near future. Because even if all the work is replaced by machines and software, the machines and software themselves need to be maintained and upgraded. And, of course, these are people who can program. With the rapid development of technology, one day, programming will become a thinking skill that everyone has to master. So even the very basic knowledge of programming teaching can also bring a good guarantee for the future of students.

 

Concept analysis

Since the development of technology, people increasingly rely on the convenience brought by smart devices like computers, phones, intelligent recommendation algorithms, etc. Leading to an increasing number of requirements for aspects. Programming is the foundation of all smart technologies. According to Stanford children’s health, abstract logical thinking of 12-18 years old children begins to form[2]. This is the golden stage of learning programming. Writing a good program needs strict logic and requires constant debugging and backtracking. After understanding how programming works, children will unconsciously use programming thinking to analyze, learn and do arrangements, and also have the ability to find the cause of the error. The key to programming is how to divide a huge problem into small pieces then conquer it. During that process, children must think about how to arrange each part together in order to run the program and handle input smoothly, return the right output at the end. This process greatly improves the logic of children’s analysis ability, which also reflects on the real world. Programming can improve children’s patience and care at the same time. Troubleshooting is something every programmer will do no matter how good you are. Missing a comma might result in a big mistake, not to mention certain situations that overlooked logic issues. During the debugging process, children must take good care of every situation and spend lots of time discovering mistakes. Because more people start to rely on modern technology, the future prospects of the programming industries are still very impressive. However, if we directly teach K-12 students to start coding might not work well, they might get bored sitting in front of the computer and type 1 and 0. The motivation of offering complex ideas must be drive-by children’s own interest, curiosity boost children to learn and accept new things. Teachers are responsible to design exercises that can highlight the relevance of maths and science. Recognizing the face, translation between language, fun games and providing interesting experiences to stimulate students’ desire for exploration[1]. Programming in the K-12 level does not directly offer tons of knowledge as an undergraduate. We offer more mindset as programming thinks. Students are not required to fulfil knowing any programming technique, own a laptop is the only requirement. Teachers will provide essential computer knowledge for each student and make sure no one gets behind because of a lack of knowledge. For K-12 students, learning programming is a great way to develop their mindset comprehensively.

Learning Outcome:

On successful completion of this course, students should be able to:

  1. understand the basic logic of programming language
  2. understand some simple pseudo-code
  3. rewrite or make some changes to the given source code
  4. complete a simple programming task as a group

Topics:

Topic Tools Purpose Time Resources
General understanding of programming languages Video Let students understand the concepts and uses of programming languages through animated videos 10min https://www.youtube.com/watch?v=N7ZmPYaXoic
Understand the logic of programming languages Java online compiler

 

Let student understand the simple programming logic through pseudo-code, so they can understand the real code better afterwards 20min  
Understanding the Java language Java online compiler Let students see examples written in java and explain the meaning of the code, and know simple coding rules(how to use semicolons,etc) 30min https://www.w3schools.com/java/java_syntax.asp
Rewrite part of the code Java online compiler

 

Let students indicate which parts of the code can be modified to meet the requirements of the question. 20min  
Complete simple task by group(3-4 person) Java online compiler Let students show their learning outcomes. 45min  
Presentation Projector Students can show their result in front of their class, and explain the logic 20min  

 

 

Responsibility:

Xinran:         1. Write an overview of your assessment plan.

  1.         Introduce Java to students.
  2. Write an introduction about how to run the code.
  3. An overview of the resource
  4. A description and rationale for the learning theory upon which your resource will be based (behaviourism, cognitivism, constructivism)
  5. A description and rationale for the learning design you chose (inquiry, project-based, direct instruction, etc)

 

Kewen:        1. Help students when they need help.

  1.         Assess students’ presentations.
  2. Write an introduction about how to run the code.
  3. A description of your learning context (K-12, higher ed, corporate, individual, etc)
  4. 2-4 learning outcomes (copied or revised from your blueprint)
  5. Brief commentary about each topic and activity

 

Kaiheng:      1. Write the sample code for students.

  1. Assess students’ final code. (Based on the quality)
  2. Write an introduction about how to run the code.
  3. One interactive activity for each learning outcome/topic based on a resource aligned with that topic (blog post, video, article, etc)
  4. An overview of your assessment plan.
  5. An overview of your plans to design for inclusion of diverse learners (choose two from the list above, and specify in your resource).

 

Yanyu:         1. Introduce programming to students

  1. Go through the code and make sure the code is not too hard to understand for others. Yanyu is not a computer science student, he can make sure our code is not too hard.
  2. A rationale for your technology choices.
  3. Links to each peer review of your resource
  4. A rationale for why you did or did not incorporate your peers’ recommendations into your final resource
  5. A bibliography or reference list of all resources cited and/or required for your learners

References:

[1]Sterling, L. (2016, August 09). Session L: Coding in the curriculum: Fad or foundational? [Paper presentation]. Research Conference 2016 – Improving STEM Learning: What will it take?. https://research.acer.edu.au/research_conference/RC2016/9august/4

 

[2]Stanford Children’s Health(2019), Cognitive Development in the Teen Years 

https://www.stanfordchildrens.org/en/topic/default?id=cognitive-development-90-P01594