# Introduction to Programming

**Why learn to code?**

Many people code for many reasons. Some do it for fun and others for a profession. Regardless of age and profession, it is beneficial for everyone. It improves problem-solving and logic skills by exercising the left side of the brain. In addition, it improves interpersonal skills through different projects which most of the time require collaborative work. Coding can also be a skill that is useful for job applications regardless of the field. So why wouldn’t you want to learn to code?

**Start Coding at a Young Age**

There is no age limit for a student to start coding. In fact, sooner the better. Experimenting and learning a new form of language will help students build creativity. Facing different challenges and failing multiple times, they will learn how to come up with different and unique solutions. Students can also increase their performance academically by learning how to organize and plan. They also get motivations for technical knowledge since they are surrounded by it. This builds the understanding that all these technologies/ applications are able to be created and don't appear like magic. This leads them to use imaginations of their own to make innovations.

**Develop Different Skills**

****

**1. Problem Solving**

When programming and building some programs from scratch, there are countless numbers of problems to solve. Solving different problems in a different way will develop students to think in a logical and algorithmic way, breaking problems into many pieces and solving one by one. Some problems are easier to solve but there are other problems that are more challenging and sometimes frustrating for young students to solve on their own. This could possibly mislead students to think that programming is difficult and impossible when in fact it's not. Showing students different methods to solve different problems and teaching them the skill set to solve the problem on their own is crucial in the long run. One of the methods is to search for hints or solutions online to get the information they want to solve the problem. When searching, there are many efficient ways to get the result and how to properly use that source to implement it in a certain problem.

**2. Math Skills**

Math is everywhere and coding is not an exception. Students can learn new mathematical concepts through math or they can enrich their current knowledge. When coding, students might not directly see the relationship between Math and programming but as they start doing exercises and create projects, they will start to see mathematical concepts appearing. When creating a program that does addition, students will have to create a variable that holds a specific number just like using variables (x, y) in Algebra. Furthermore, they can really understand what functions are and understand the true functionality of a function. Given an algebraic equation, most students plug numbers in for the variable and get the answer. Through programming, they will actually create and define the functionality of the function.

**3. Algorithmic Thinking**

What is algorithmic thinking? It's a way to get to a particular answer through defined sequential steps. For example, look at the simple algorithm for an addition that we all learn in elementary school. The first step is to line up all the numbers to match the place value. Next, add the numbers in the same place value. If the sum is greater than 9, then carry out the first number to the next place value. There is a wide range of algorithms in terms of difficulty. It could be as simple as the addition algorithm or a very complicated algorithm for machine learning. The key point is that it is important to build these algorithmic thinking at an early age to learn them naturally by creating a different program that utilizes different types of algorithms. Though our __Introduction to Programming course at the Thinkprep__, we introduce different algorithms by creating a creative game.

**4. Systematic Thinking**

To understand systematic thinking is, we first need to know what the system means. A system is an interconnected set of elements that is coherently organized in a way that achieves something. There are three parts to a system and those are elements, interconnections, and function or purpose. So systematic thinking is understanding how a system works and how they are organized. Through __our course__, we introduce systematic thinking through programming in Scratch by using blocks that are part of a system and connect them to see how a system comes together to perform a meaningful function.

****

**Prepare Ahead**

****It’s the 21st century and technology is everywhere. Having technical knowledge and technical thinking skill is a must. As a student, developing multiple projects will highly benefit them through developing different skill sets and help them to get into better schools or Universities. In some highschool, __programming courses__ are becoming a requirement, just like Math and English. By starting early, students can learn to program the fun way and be less stressed about it compared to learning it in school where they are given some pressure through grades. Also, if a student wants to pursue their career as a software engineer, starting early can really be beneficial since there are multiple programming languages and tools to learn. When starting to program, it is difficult to know where to start and what languages and tools to use. At Thinkprep, we find what students are interested in and try to improve student’s skillsets towards what they want to do. Also, we introduce different types of technologies and environments for developing so that students can be comfortable in many technical environments.

**Applications in Math**

Many times when students are taught different subjects in school, they just learn without knowing the importance and how they can be applied in the real world. This leads to memorization and not gain a deep understanding of the content. By programming, students will see how math is applied in different cases and start to get interested in the subject Math. To go into the field of machine learning, basic concepts of math are required in addition to Linear Algebra, Multivariate Calculus, and Probability.

For more information about our courses, please contact us @ 212-686-5077 / info@thinkprepny.com