The Misfits Lair
  • Home
  • Discover
  • Articles & Papers
  • Smart Cities Research
  • Our Vision
  • Our Mission
  • References
  • Contact
  • Be Brave

Preparing for the AP Computer Science A Exam

8/14/2020

0 Comments

 
By Suman Tripathy
Picture
Business photo created by freepik - www.freepik.com

For many students, myself included, their first exposure to Computer Science is through the AP Computer Science A course in high school. Advanced Placement (AP) courses are designed for high schoolers to learn subjects with the rigor, depth, and complexity of college classes. Taking AP classes can also boost a student's weighted GPA.
The AP Computer Science A curriculum emphasizes the fundamental concepts and problem solving skills that Computer Science requires, using the Java programming language. It introduces basics like variables, loops, conditionals, and methods, along with object-oriented programming, data structures, algorithms, and software design strategies. Java is a widely used programming language, useful and multifaceted because it can support abstraction, encapsulation, and object-orientation, all of which are important concepts for software engineering.
The official prerequisite for AP Computer Science A is first-year high school algebra, including function notation and other algebraic problem solving skills. Overall, the course recommends a solid foundation in mathematical reasoning. However, having worked with many students taking this course, we have found that some prior coding experience really helps students be successful in this course. At Juni, we recommend students who are new to programming start with our Python Level 1 and sometimes our Python Level 2 course before moving into Java.​

The College Board's AP Computer Science A Exam

To receive college credit, students must register to take the College Board AP exam through their school, administered in May of each year. In 2017, the College Board introduced a second computer science AP course, AP Computer Science Principles. Compared to AP Computer Science A, this course "focuses on the broader aspects of computing, including not only programming but also topics like the global impact of computing, the internet and cyber-security, and creativity" (College Board). At Juni, we only offer the AP Computer Science A course.
The AP Computer Science A exam is a three hour test. The first half includes 40 multiple choice questions and accounts for 50% of the exam score. The second half includes four free response questions focused on program design, implementation, and problem solving, and it makes up the remaining 50% of the exam score. All of the questions on the AP exam involving coding use Java as the primary programming language, and test booklets include the Java Quick Reference that includes all of the accessible methods from the Java library that the AP exam may reference.
Goals of the AP Computer Science curriculum include:
  • Design, implement, and analyze solutions to problems
  • Use and implement commonly used algorithms
  • Develop and select appropriate algorithms and data structures to solve new problems
  • Write solutions fluently in an object-oriented paradigm
  • Write, run, test, and debug solutions in the Java programming language, utilizing standard Java library classes and interfaces from the AP Java subset
  • Read and understand programs consisting of several classes and interacting objects
  • Read and understand a description of the design and development process leading to such a program
  • Understand the ethical and social implications of computer use
The exam score is College Board’s recommendation on whether universities should grant course credits to the student. Generally, an AP score of 3 and above is considered passing. The scoring breakdown is laid out as follows:

Score     Recommendation
   5          Extremely well qualified
   4         Well qualified
   3         Qualified
   2         Possibly qualified
   1          No recommendation


Ways to Prepare

Most students who take the AP Computer Science A take the course in high school. However, it is possible to self-study for the exam successfully. Thankfully, many great online resources exist for students!
The College Board itself has numerous helpful materials. For example, they offer a compilation of various exam tips and tricks, in addition to a test bank of each year’s free response questions, multiple-choice, sample answers, and scoring guidelines to ensure transparency and fairness in grading.
Barron's, another well-known test prep company, sells a great book for this course and offers an online practice exam as well. Johns Hopkins Center for Talented Youth also offers this as an online course.
At Juni Learning, we offer AP Computer Science A as a course with a private instructor that covers all of the topics on the AP exam in depth. With our classes, students are paired one-on-one with an instructor who works on concepts and test prep, tailored to the student's specific needs. With us, some students fully self-study for the AP exam, while others are simply getting exposure to the material in preparation for the school year ahead.
Our AP Computer Science A course is broken down into the following modules:
  • Variable types, input / output, & arithmetic operators
  • Loops & conditionals
  • Classes & objects
  • Subclasses, abstract classes, & interfaces
  • Standard classes
  • Software design principles
  • Arrays & ArrayLists
  • Recursion
  • Basic algorithms
  • AP test prep

Advice From Former AP Computer Science Students

We asked Juni instructors who took AP Computer Science in high school on what they did to prepare for the AP exam and any advice that they would give current students. Here is some of their advice:
  • Practice! That includes practicing the multiple choice and free-response questions individually, but also taking practice exams, end-to-end, in a controlled environment within the allotted time. This helps you get a feel for how long you should spend on each section. Simply reading the textbook won't help you get the real experience you need for the exam.
  • Time management is critical - make sure that you move on from certain questions if you're getting stuck and come back to them later in the exam. Otherwise. you may get stuck for a long time on a harder question and run out of time on the easier ones.
  • Ask for help. If you're stuck on a problem, ask a friend in the course or one of your teachers (or a Juni Instructor) for help. Don't be afraid to get problems wrong, because programming is all about learning from your mistakes and continuing to improve.
  • Take a break once in a while. You've already gotten this far - at a certain point you'll need a break from practicing, as you'll have diminishing returns from trying to cram in new information. Make sure that you're getting enough sleep and take some time to go for a run or meditate. Some great meditation apps like Calm or Headspace can help you refocus on the task at hand

Final Thoughts

There are many different resources and programs that can help students prepare for the AP Computer Science A exam. The best fit depends on the student's learning style and time constraints.
Overall, the AP Computer Science A course is a great opportunity to learn the fundamentals of computer science and demonstrate proficiency to colleges. Passing the AP exam is a great way to earn some college credit, but more importantly it helps develop a lifelong technical skill that helps one think in new ways.​
This article originally appeared on junilearning.com

Picture
​
Suman Tripathy holds a B.S. in Electrical Engineering and Computer Science from UC Berkeley. Next fall, she will be moving to New York to pursue her Master's in Data Science. She is currently a Senior Instructor at Juni Learning. You can often find her camped out at Philz Coffee reading books and listening to music!


Picture
Picture
​​

Juni Learning & Zinnia Holdings
content partnership for the Misfits Lair's.

Copyright © 2020 Juni Learning. All rights reserved.


The Misfits Lair, a project by Zinnia Holdings LLC ©2020
0 Comments

What Are Algorithms & Why Are They Important

8/13/2020

0 Comments

 
By Ananya Rao
Picture
Technology photo created by pressfoto - www.freepik.com

What Is An Algorithm?

algorithm is a set of step-by-step procedures, or a set of rules to follow, for completing a specific task or solving a particular problem. Algorithms are all around us. The recipe for baking a cake, the method we use to solve a long division problem, and the process of doing laundry are all examples of an algorithm. Here’s what baking a cake might look like, written out as a list of instructions, just like an algorithm:
  1. Preheat the oven
  2. Gather the ingredients
  3. Measure out the ingredients
  4. Mix together the ingredients to make the batter
  5. Grease a pan
  6. Pour the batter into the pan
  7. Put the pan in the oven
  8. Set a timer
  9. When the timer goes off, take the pan out of the oven
  10. Enjoy!
Algorithmic programming is all about writing a set of rules that instruct the computer how to perform a task. A computer program is essentially an algorithm that tells the computer what specific steps to execute, in what specific order, in order to carry out a specific task. Algorithms are written using particular syntax, depending on the programming language being used.​

Types of Algorithms

​Algorithms are classified based on the concepts that they use to accomplish a task. While there are many types of algorithms, the most fundamental types of computer science algorithms are:
  1. Divide and conquer algorithms – divide the problem into smaller subproblems of the same type; solve those smaller problems, and combine those solutions to solve the original problem.
  2. Brute force algorithms – try all possible solutions until a satisfactory solution is found.
  3. Randomized algorithms – use a random number at least once during the computation to find a solution to the problem.
  4. Greedy algorithms – find an optimal solution at the local level with the intent of finding an optimal solution for the whole problem.
  5. Recursive algorithms – solve the lowest and simplest version of a problem to then solve increasingly larger versions of the problem until the solution to the original problem is found.
  6. Backtracking algorithms – divide the problem into subproblems, each which can be attempted to be solved; however, if the desired solution is not reached, move backwards in the problem until a path is found that moves it forward.
  7. Dynamic programming algorithms – break a complex problem into a collection of simpler subproblems, then solve each of those subproblems only once, storing their solution for future use instead of re-computing their solutions.

Example of an Algorithm:  Solving a Rubik’s Cube

​There are a number of different algorithms, from simple to very complicated, that exist for solving a Rubik’s cube. Below is just one simple algorithm. First, let’s specify a notation to use (similar to picking a programming language).
Each of the six faces of a Rubik’s cube can be represented by the first letter of their name:
  • U - up
  • D - down
  • L - left
  • R - right
  • F - front
  • B - back
Each face can be turned in three different ways/directions. Using U as an example, these are represented as:
  • U - clockwise quarter-turn of the upper face
  • U' - counter-clockwise quarter-turn of the upper face
  • U2 - half turn in either direction of the upper face
Now, let’s go through the steps in the algorithm to solve a Rubik’s Cube. Feel free to grab one of your own and follow along!
Step 1: The Cross
  1. First, flip some edges so that there is a white cross on the upper face.
  2. Apply the following turns: F, R’, D’, R, F2, R’, U, R, U’, R’, R2, L2, U2, R2, L2.
  3. The cross is now solved.
Step 2: The White Corners
  1. The edges on the white face are now complete, but the corners remain.
  2. Depending on where the white-orange-green corner is in the puzzle, apply one of the following series of turns:
    1. Bottom: R’, D’, R, D (repeat until the corner moves to its correct place)
    2. Top: R’, D’, R, D (this moves the corner to the bottom; then, follow the above instructions)
Step 3: Middle Layer Edges
  1. Flip the cube so that the white is on the bottom.
  2. Look for an edge that is on the top face and doesn’t have yellow on it.
  3. Perform a U-turn so that the color on the front face of the edge matches with the center.
  4. Depending on the direction that the edge could go, apply one of the following series of turns:
    1. Left: U’, L’, U, L, U, F, U’, F’
    2. Right: U, R, U’, R’, U’, F’, U, F)
Step 4: Yellow Cross
  1. Apply the following turns, until a yellow cross on the face appears with the yellow center: F, R, U, R’, U’, F’.
  2. If there is an “L” shape, where the two yellow pieces showing are adjacent to each other, apply the following turns: F, U, R, U’, R’, F’.
  3. If there is a “Line” shape, which is horizontal, apply the following turns: F, R, U, R’, U’, F’.
Step 5: Sune and Antisune
  1. Look at the face with the yellow center.
  2. Depending on the below contingencies, apply one of the following series of turns:
    1. If there is only one oriented corner: R, U, R’, U, R, U2, R’ (repeat until the desired position is attained)
    2. There is one oriented corner and one right-facing corner: U2, R, U2, R’, U’, R, U’, R’
Step 6: Finishing the puzzle
  1. Look for sets of “headlights” (two stickers of the same color in the same row, separated by a sticker of a different color).
  2. Depending on how many there are, apply one of the following series of turns:
    1. If there are a set of headlights on each side: R, U’, R, U, R, U, R, U’, R’, U’, R2
    2. Otherwise: R’, F, R’, B2, R, F’, R’, B2, R2

Sorting Algorithms

​A sorting algorithm is an algorithm that puts elements of a list in a certain order, usually in numerical or lexicographical order. Sorting is often an important first step in algorithms that solves more complex problems. There are a large number of sorting algorithms, each with their own benefits and costs. Below, we will focus on some of the more famous sorting algorithms.
  1. Linear sort: Find the smallest element in the list to be sorted, add it to a new list, and remove it from the original list. Repeat this until the original list is empty.
  2. Bubble sort: Compare the first two elements in the list, and if the first is greater than the second, swap them. Repeat this with every pair of adjacent elements in the list. Then, repeat this process until the list is fully sorted.
  3. Insertion sort: Compare each element in the list to all the prior elements until a smaller element is found. Swap these two elements. Repeat this process until the list is fully sorted.

Where Algorithms are Used in Computer Science?

Algorithms are used in every part of computer science. They form the field's backbone. In computer science, an algorithm gives the computer a specific set of instructions, which allows the computer to do everything, be it running a calculator or running a rocket. Computer programs are, at their core, algorithms written in programming languages that the computer can understand. Computer algorithms play a big role in how social media works: which posts show up, which ads are seen, and so on. These decisions are all made by algorithms. Google’s programmers use algorithms to optimize searches, predict what users are going to type, and more. In problem-solving, a big part of computer programming is knowing how to formulate an algorithm.

Why are Algorithms Important to Understand?

Algorithmic thinking, or the ability to define clear steps to solve a problem, is crucial in many different fields. Even if we’re not conscious of it, we use algorithms and algorithmic thinking all the time. Algorithmic thinking allows students to break down problems and conceptualize solutions in terms of discrete steps. Being able to understand and implement an algorithm requires students to practice structured thinking and reasoning abilities.
This article originally appeared on junilearning.com

Picture
​Ananya Rao is studying Computer Science at Carnegie Mellon University in Pittsburgh, PA, and she is an instructor at Juni Learning. She is a biorobotics researcher at CMU, and she is pursuing an additional major in Robotics. She was previously a Digital Technology Intern at GE Transportation and an Assistant Teacher at the National Academy For Learning in Bengaluru, India. Ananya also enjoys dancing, building robots, and writing stories.


Picture
Picture
​

Juni Learning & Zinnia Holdings LLC 
content partnership for the Misfits Lair's.

Copyright © 2020 Juni Learning. All rights reserved.


The Misfits Lair, a project by Zinnia Holdings LLC ©
0 Comments

Best Coding Games, Toys, & Apps for Kids

8/3/2020

0 Comments

 
Picture
Music photo created by freepik - www.freepik.com

Coding Toys for Younger Kids

​For kids 10 and under, there are many games and toys that help them understand the building blocks of computer programming. For example, Bitsbox delivers a physical box to your home every month containing a kit of projects, and then your young child can login to Bitsbox’s online platform to program their own version of these projects. The apps are selected based on difficulty and interests - they offer anything from interactive birthday cards to Tetris-like games. The apps can then be easily shared onto phones and tablets.
The Osmo is an iPad-based programming game system that incorporates physical blocks to write code. Using a set of magnetic blocks, your child controls Awbie, a cute character who must navigate the different levels of the Osmo universe. The physical blocks must be connected together logically so that Awbie can move on screen, using commands like “move,” “turn,” and “repeat.” The Osmo is ideal for kids as young as five years old because they don’t need typing skills to learn the basics of programming logic and to practice their critical thinking skills. After your child has mastered Awbie, they can move onto Osmo’s other products like Coding Jam, which uses a similar block system to generate digital music, and Coding Duo, a more advanced version of Coding Awbie with multiple players.
Cubetto is a completely screenless coding toy for kids 6 and under. Cubetto is a wooden robot that is programmed by placing colored blocks onto its surface, which instructs it where to move. The Cubetto is placed on top of different maps, mazes, and books. For example, in one challenge Cubetto must navigate around a big urban city. In another, he is in ancient Egypt, learning about pyramids, hieroglyphics, and the Sphinx. This is a great toy that encourages active play and critical thinking without any screens.

Coding Games for Older Kids

For older kids who love robots, the Anki Cozmo is a palm-sized robot, built with facial recognition, self-maneuvering capabilities, and an “emotion engine” to respond to real-world situations. It comes with a Code Lab app for users to program the Cozmo’s movements and responses to different environments. Code Lab is built on Scratch, a visual programming language. For example, you can use Code Lab to program Cozmo to move around and write his name, or to approach a human and Cozmo recognizes his or her face. There is even a more extensive software development kit to tap into the Cozmo’s computer vision capabilities and third party integrations (like with Google Assistant and Android). Kids can also play games with Cozmo like Memory Match and Keepaway.
If your child is interested in building hardware, the Kano might be the best toy for them. With the Kano, you follow a storybook to build a simple computer. The kit comes with a power supply, Raspberry Pi (the chip that powers the computer), keyboard, SD card, and optionally a microphone and an HD touchscreen. Once built, the touchscreen version allows you to program your own art, games and music. The coding starts with a block-based environment, but for more advanced students, there are projects available in Python and Javascript programming languages.
Many kids this age love Minecraft, an open-ended game where users can build their own worlds and experiences using the resources they acquire. Building in Minecraft is very Lego-like, where the pieces are varied and fit together in infinite combinations. Given the nature of Minecraft, “modding” the game is extremely popular, where you create new items, resources, and functionality by programming extensions to Minecraft’s code. The most popular mods, for example, add new animals, crops, and furniture pieces to the game; allow you to monitor and control your inventory more efficiently; and even introduce magic and wand-making into the game. While modding Minecraft was not designed for beginning programmers, there are sites dedicated for helping kids learn how to mod with online tutorials like LearnToMod and books like Coding with Minecraft.

Online Coding Games and Platforms

There are also many online-based games and platform for students to start learning programming. CodeCombat offers a series of online levels in settings like the Kithgard Dungeon and the Backwoods Forest. Students gain points by completing challenges so that they can advance to the next level and buy power-ups. CodeMonkey is another online game where the student moves through a series of challenges in tracks like Coding Adventure and Coding Chatbots. The main language they focus on is CoffeeScript.
For students who want to take a more rigorous course, Khan Academy offers self-paced courses in HTML, CSS, and Javascript, focusing on website and game development. These courses include online videos, written explanations, and coding exercises.

This article originally appeared on junilearning.com

Picture
​Article published as per  Juni Learning & Zinnia Holdings LLC content partnership for the Misfits Lair's.

Copyright © 2020 Juni Learning. All rights reserved.
Picture

The Misfits Lair, a project by Zinnia Holdings LLC ©

Article copyright © protected, all rights reserved. Reuse of this article or any of its content by permission only.
0 Comments

Python vs. Java: Uses, Performance, Learning | Juni Learning

7/14/2020

0 Comments

 
Andrea Domiter
NOVEMBER 08, 2019
Picture

​Python vs. Java: Uses, Performance, Learning

​In the world of computer science, there are many programming languages, and no single language is superior to another. In other words, each language is best suited to solve certain problems, and in fact there is often no one best language to choose for a given programming project. For this reason, it is important for students who wish to develop software or to solve interesting problems through code to have strong computer science fundamentals that will apply across any programming language.
Programming languages tend to share certain characteristics in how they function, for example in the way they deal with memory usage or how heavily they use objects. Students will start seeing these patterns as they are exposed to more languages. This article will focus primarily on Python versus Java, which are two of the most widely used programming languages in the world. While it is hard to measure exactly the rate at which each programming language is growing, these are two of the most popular programming languages used in industry today.
One major difference between Python and Java is that Python is dynamically typed, while Java is statically typed. Loosely, this means that Java is much more strict about how variables are defined and used in code. As a result, Java tends to be more verbose in its syntax, which is one of the reasons we recommend learning Python before Java for beginners. For example, here is how you would create a variable named numbers that holds the numbers 0 through 9 in Python:
​numbers = []

for i in range(10):
numbers.append(i)
ArrayList numbers = new ArrayList();

for (int i = 0; i < 10; i++) {
numbers.add(i);
}

Another major difference is that Java generally runs programs more quickly than Python, as it is a compiled language. This means that before a program is actually run, the compiler translates the Java code into machine-level code. By contrast, Python is an interpreted language, meaning there is no compile step.

​Usage and Practicality

​Historically, Java has been the more popular language in part due to its lengthy legacy. However, Python is rapidly gaining ground. According to Github’s State of the Octoberst Report, it has recently surpassed Java as the most widely used programming language. As per the 2018 developer survey, Python is now the fastest-growing computer programing language.
Both Python and Java have large communities of developers to answer questions on websites like Stack Overflow. As you can see from Stack Overflow trends, Python surpassed Java in terms the percentage of questions asked about it on Stack Overflow in 2017. At the time of writing, about 13% of the questions on Stack Overflow are tagged with Python, while about 8% are tagged with Java!

Web Development

Python and Java can both be used for backend web development. Typically developers will use the Django and Flask frameworks for Python and Spring for Java. Python is known for its code readability, meaning Python code is clean, readable, and concise. Python also has a large, comprehensive set of modules, packages, and libraries that exist beyond its standard library, developed by the community of Python enthusiasts. Java has a similar ecosystem, although perhaps to a lesser extent.

​Mobile App Development

In terms of mobile app development, Java dominates the field, as it is the primary langauge used for building Android apps and games. Thanks to the aforementioned tailored libraries, developers have the option to write Android apps by leveraging robust frameworks and development tools built specifically for the operating system. Currently, Python is not used commonly for mobile development, although there are tools like Kivyand BeeWare that allow you to write code once and deploy apps across Windows, OS X, iOS, and Android.

​Machine Learning and Big Data

Conversely, in the world of machine learning and data science, Python is the most popular language. Python is often used for big data, scientific computing, and artificial intelligence (A.I.) projects. The vast majority of data scientists and machine learning programmers opt for Python over Java while working on projects that involve sentiment analysis. At the same time, it is important to note that many machine learning programmers may choose to use Java while they work on projects related to network security, cyber attack prevention, and fraud detection.

​Where to Start

​When it comes to learning the foundations of programming, many studies have concluded that it is easier to learn Python over Java, due to Python's simple and intuitive syntax, as seen in the earlier example. Java programs often have more boilerplate code - sections of code that have to be included in many places with little or no alteration - than Python. That being said, there are some notable advantages to Java, in particular its speed as a compiled language. Learning both Python and Java will give students exposure to two languages that lay their foundation on similar computer science concepts, yet differ in educational ways.
Overall, it is clear that both Python and Java are powerful programming languages in practice, and it would be advisable for any aspiring software developer to learn both languages proficiently. Programmers should compare Python and Java based on the specific needs of each software development project, as opposed to simply learning the one language that they prefer. In short, neither language is superior to another, and programmers should aim to have both in their coding experience.
Picture

This article originally appeared on junilearning.com ​

Picture
​
​Andrea Domiter is pursuing a B.A. in Computer Science and Economics with a specialization in Data Science at the University of Chicago. She is currently an instructor at Juni Learning, teaching Python, Scratch, Java, and Pre-Algebra. Last summer, Andrea worked at RCP Advisors, a private equity firm based in Chicago, as a Research Analyst focusing on automating several processes. Andrea also loves to cook, hike, and read.

Picture
​​​
​Article published as per  Juni Learning & Zinnia Holdings LLC 
content partnership for the Misfits Lair's.

Copyright © 2020 Juni Learning. All rights reserved.
Picture

​​The Misfits Lair, a project by Zinnia Holdings LLC ©

Article copyright © protected, all rights reserved. Reuse of this article or any of its content by permission only.
0 Comments

8 Reasons Coding for Kids is Not Just Another Fad

7/13/2020

0 Comments

 
Picture

Julia Geer
October 19th, 2019

​Is Coding a Fad?

In short, no. Coding is a field that is growing and changing quickly; there is a world of opportunity for young students looking to get involved in the tech world. Opponents to this position might argue that today’s popular languages, like Python, won’t be used ten or fifteen years down the line. So what’s the use in learning these programming languages?
While it is true that programming will continue to advance, it is important to remember that there is so much more to learning a coding language like Python than memorizing syntax and applications. When we teach coding, we teach concepts beyond one particular language. Students gain knowledge about how computers process and “think” about a given problem, regardless of which language they are learning. They gain important intuition about fundamental concepts, like basic control structures (e.g. loops and conditional statements) and algorithms, that will undoubtedly be useful in our highly technological future. Below are 8 of the many reasons why coding for kids is not just another trendy or silly fad.

1. Our world is growing more technological

In the 21st century, we have seen enormous developments in the technology industry. The world is moving in a direction that is both fast-paced and information-centered. Data is quickly becoming one of the most valuable resources in the global economy, and individuals with digital literacy are becoming more valued in the labor market. With all of this in mind, it’s hard to ignore the massive role that fields like data science and software engineering, both largely centered around coding, are going to have. Figures estimate seemingly outrageous numbers - an estimated fifty billion smart devices are projected to be in use by 2020 - illustrating the abundance of technology in our lives.With such statistics in our near futures, it is clear to see that industries are changing. The internet is a hub of information, applications, e-commerce, social networking, and communication platforms, all of which are designed to increase efficiency, performance, and convenience. As industries become digitized, new jobs are simultaneously emerging. Coding is an asset that will only continue to grow as we move forward as an increasingly connected society.

2. It teaches kids to strategize for unique solutions

Computer science is a highly useful tool beyond its direct applications. As there is rarely one right answer to a given problem, computer science encourages students to create solutions that are unique. For computer scientists, this means that coders have a great amount of leeway to create their own intuitive solutions.
Teaching kids how to code pushes young students to actually learn, not just memorize facts and regurgitate them. It challenges students to critically think about a problem, what they want to accomplish, and how to get it done. There are plenty of kid-friendly coding languages, such as Scratch, that give young students the opportunity to build unique projects using coding techniques. Scratch also allows coders to share their projects with the world. This connectivity can inspire new and aspiring coders to learn from their peers and guide them through more complicated projects and concepts. This collaborative environment also allows students to work together and learn from one another. Encouraging kids to utilize these programs not only teaches them useful skills for computer science, but it also allows them to exercise their creativity.

3. It teaches students to not give up

Most coders will advise, while there is plenty of room for creativity in coding, there is also plenty of room for error. Learning to code teaches students how not to give up on their solutions, but rather to debug their code, even when repeated error messages appear. Coders tease out solutions by using their understanding of computational thinking (see point 6) to isolate any errors and achieve the goal at hand.
That code can always be improved upon motivates coding students to go back and better their solutions, an incredibly valuable skill set to have in general. Code also instills resilience, yet another invaluable tool in the workplace. While programming can feel tedious, frustrating, and difficult at times, the process of problem solving inherently makes for better coders and better students.

​4. It can be applied to almost everything that students are learning

Computer science is expanding into every corner of the world, with applications for anything one can imagine and automated services that are permeating thousands of business models worldwide. On top of that, programming incorporates many mathematical concepts, and it can complement the concepts students are learning in their math classes.
Coding also promotes problem-solving, an important skill for any student. Beyond math, students can use code to support other interests they may have. With coding, young professionals’ career options extend across industries. By teaching kids how to code, students will find the confidence and tools to explore aspects of software engineering, data analysis, video game development, and mobile app development - in just about any industry that they know and love.

5. It is challenging and collaborative

Coding challenges young students to explore new fields. Computer science is a collaborative field, allowing individuals to work together to complement one another’s skill sets, and write code that is efficient and intuitive. Students can and often do learn to code in a group setting, so that they can discuss their ideas and learn from each other’s successes. Learning to code encourages students to work together when they reach a roadblock. It promotes collaboration via idea exchange and allows students’ to compare and contrast solutions. Teaching kids about computer programming can be a catalyst for inspiring teamwork and leadership among students.

6. It teaches students about computational thinking

Whichever languages a student decides to pursue - Python, Java, or any of the long list of popular coding languages today - will help them develop computational thinking. This means that students will learn how to effectively break down problems into manageable parts, observe patterns in data, identify how these patterns are generated, and develop the step-by-step instructions for solving those problems.
Computational thinking and digital literacy are arguably the most important aspect to learning to code at any age due to the huge technological shift in nearly every industry on the global market (see point 1). Establishing a foundation in computational thinking will pave the way for future success in and outside CS related fields. All students can benefit from understanding computational thinking, as it applies to the technological aspects of daily life.

7. It’s good for the brain

Like any good challenge, coding is an excellent way to strengthen young, developing brains. It encourages students to combine their knowledge of computational learning and out-of-the-box thinking to strategize unique solutions.
Multiple studies support the hypothesis that learning to code has real, long term benefits on young children. Researchers have found that individuals who code tend to have reduced odds of getting neuro-degenerative diseases in older age. Coders also tend to do better in cognitive tasks, because coding activates areas of the brain that are associated with memory, attention, and logic. Learning to code at an early age supports neural connections in these regions, leading to high performance in other fields, as well.

8. It’s fun!

While we may be slightly biased, computer science is an educational way to bring fun into your children’s lives! Computer science is one of the few fields of study in which students can see the immediate outcome of their work as they build out their projects - by running their code, they get instant, live feedback.

Programs like Scratch and Repl.it utilize software that is kid-friendly and permits students to visualize their projects as they come to life! They can build code that creates a videogame or a website and share their work with friends. Developing kids’ proficiency with computer science now will lead to a future generation of coders who have the skill set to advance our world.

This article originally appeared on junilearning.com ​​on October 19th, 2019

Picture
​
Julia Geer is studying Cognitive Science at UC Berkeley and is a former instructor at Juni Learning. She has an interest in the applications of coding in data analytics and digital marketing. In her spare time, Julia loves finding new restaurants, going to the beach, and discovering new music.

Picture
​​
​Article published as per  Juni Learning & Zinnia Holdings LLC 
content partnership for the Misfits Lair's.

Copyright © 2020 Juni Learning. All rights reserved.
Picture

Warm Welcome to this new content Publishing partnership 
Holding hands to advance science and technology learning and education



Juni Learning program helps bright young minds develop their interest and  passion for analytical and technical subjects  outside of school, and we want to inspire kids and their parents to check out how much fun learning could be
Learn more about Juni Learning on this PC Magazine article.

​​The Misfits Lair, a project by Zinnia Holdings LLC ©

Article copyright © protected, all rights reserved. Reuse of this article or any of its content by permission only.
0 Comments

    The Author

    I dedicate my life to science, technology, music and to bringing people together. And I do it my way.

    Archives

    August 2020
    July 2020
    March 2020
    February 2020
    January 2020
    December 2019
    November 2019
    February 2019
    November 2018
    October 2018
    August 2018
    July 2018
    June 2018
    September 2017
    August 2017
    June 2017
    March 2017
    December 2016
    November 2016

    Categories

    All
    Being A Misfit
    Bitcoin Halving
    Blockchain
    Computer Science Education
    Copywriting
    Employment
    Finding A Gig
    Freelance
    Freelancing
    Fringe Scientific Philosophy
    GEMBAH
    Hosting Clues
    Infographics
    Internet Statistics & Facts
    Juni Learning
    Manufacturing
    Personal Finance
    Productivity
    Remote Worker
    Tools For Misfits
    WinBTC.net
    Work For Impact
    Work From Home

    View my profile on LinkedIn

    RSS Feed

Home

Discover

Blog

Contact

Headquarters

Powered by Zinnia Technologies & Applied Sciences © 2016-2020 Zinnia Holdings LLC. All rights reserved. 
  • Home
  • Discover
  • Articles & Papers
  • Smart Cities Research
  • Our Vision
  • Our Mission
  • References
  • Contact
  • Be Brave