Monday, September 28, 2020

Education and Coding: Python vs. Java: Uses, Performance, Learning


Python vs. Java: Uses, Performance, Learning


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)


Here's how you would do the same thing in Java:

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 Kivy and 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.



Python

Java

Runtime Performance


Winner

Ease of Learning

Winner


Practical Agility

Tie

Tie

Mobile App Development


Winner

Big Data

Winner




This article originally appeared on junilearning.com This is posted in collaboration with junilearning.com on Twinkle Teaches.


twheaderrainbowtwtwtw

Wednesday, September 23, 2020

TwinkleTeaches-Lesson 3








I am now going to try to upload a new lesson every week on Wednesday.

 
Please donate if you enjoy my resources!

twheaderrainbowtwtwtw

Monday, September 21, 2020

Light.





Under the glow of the moon,
In the shadow of my dreams,
A blanket of stars surrounds me.
"Remember." they say. "Even in darkness, light still exists."

©Tara Shannon, 2020



twheaderrainbowtwtwtw

Tuesday, September 15, 2020

Coding For Kids: Getting Started Learning Programming


Coding For Kids: Getting Started Learning Programming



Photo Source

Computer programming is rapidly becoming increasingly popular. In turn, more and more parents want their children to learn coding - and for good reason. According to the Bureau of Labor, median pay for software developers is $103,560 per year, with demand expected to increase by 24% between 2016 and 2026, a growth rate which is significantly faster than that of other occupations. Computer programming also teaches a number of important life skills, like perseverance, algorithmic thinking, and logic. Teaching your kids programming from a young age can set your child up for a lifetime of success.

While programming is offered by a some schools in the US, many schools don’t include regular computer science education or coding classes in their curriculum. When offered, it is usually limited to an introductory level, such as a few classes using Code.org or Scratch. This is mainly because effective education in computer programming generally depends on teachers with ample experience in computer science or engineering.

This is where Juni can help. With instructors from the top computer science universities in the US, Juni students work under the tutelage of instructors who have experience in the same advanced coding languages and tools used at companies like Facebook, Google, and Amazon. Juni’s project-based approach gives students hands-on experience with professional languages like Python, Java, and HTML. The rest of this article addresses some of the most frequently asked questions about coding for kids.

How can I get my child interested in coding?

Tip 1: Make it Fun!

A good way to get your child excited about programming is to make it entertaining! Instead of starting with the traditional, “Hello World” approach to learning programming, intrigue your children with a curriculum that focuses on fun, engaging projects.

Tip 2: Make it Relatable

Children are more likely to stay interested in something that they can relate to. This is easy to do with coding because so many things, from videogames like Minecraft, to movies like Coco, are created with code! Reminding students that they can learn the coding skills necessary to create video games and animation is a great motivator.

Tip 2: Make it Approachable

Introducing programming to young children through lines of syntax-heavy code can make coding seem like a large, unfriendly beast. Starting with a language like Scratch instead, which uses programming with blocks that fit together, makes it easier for kids to focus on the logic and flow of programs.

How do I teach my child to code?

There are a few approaches you can take in teaching kids how to code. Private classes with well-versed instructors are one of the most conducive ways to not only expose your kids to programming and proficiently develop your children’s coding skills, but also sustain their interest in the subject.

At Juni, we offer private online classes for students ages 5-18 to learn to code at their own pace and from the comfort of their own homes.

Via video conference, our students and instructors share a screen. This way, the instructor is with them every step of the way. The instructor first begins by reviewing homework from the last class and answering questions. Then, the student works on the day’s coding lesson.

The instructor can take control of the environment or annotate the screen -- this means the instructor can type out examples, help students navigate to a particular tool, or highlight where in the code the student should look for errors -- all without switching seats. Read more about the experience of a private coding class with Juni.

We have designed a curriculum that leans into each student’s individual needs. We chose Scratch as the first programming language in our curriculum because its drag-and-drop coding system makes it easy to get started, focusing on the fundamental concepts. In later courses, we teach Python, Java, Web Development, AP Computer Science A, and a training program for the USA Computing Olympiad. We even have Juni Jr. for students ages 5-7.

Other Options: Coding Apps and Coding Games

There are a number of coding apps and coding games that children can use to get familiar with coding material. While these don’t have the same results as learning with an instructor, they are a good place to start.

Code.org has been featured by Hour of Code, and it is used by public schools to teach introductory computer science. Code.org’s beginner modules use a visual block interface, while later modules use a text-based interface. Code.org has partnered with Minecraft and Star Wars, often yielding themed projects.

Codeacademy is aimed at older students who are interested in learning text-based languages. Coding exercises are done in the browser, and have automatic accuracy-checking. This closed platform approach prevents students from the full experience of creating their own software, but the curriculum map is well thought out.

Khan Academy is an online learning platform, designed to provide free education to anyone on the internet. Khan Academy has published a series on computer science, which teaches JavaScript basics, HTML, CSS, and more. There are video lessons on a number of topics, from web page design to 2D game design. Many of the tutorials have written instructions rather than videos, making them better suited for high school students.

What is the best age to start learning to code?

Students as young as 5 years old can start learning how to code. At this age, we focus on basic problem solving and logic, while introducing foundational concepts like loops and conditionals. It is taught using kid-friendly content that is interesting as well as projects that involve creativity and an interface that isn’t as syntax-heavy. At ages 5-10, students are typically learning how to code using visual block-based interfaces.

What are the best programming languages for kids?

With young students (and even older students), a good place to start building programming skills is a visual block-based interface, such as Scratch. This allows students to learn how to think through a program and form and code logical steps to achieve a goal without having to learn syntax (i.e. worrying about spelling, punctuation, and indentation) at the same time.

When deciding on text-based languages, allow your child’s interests to guide you. For example, if your child is interested in creating a website, a good language to learn would be HTML. If they want to code up a game, they could learn Python or Java.

What kind of computer does my child need to learn to code?

This depends on your child’s interests, your budget, and the approach you would like to take. Many online coding platforms, like repl.it, are web-based and only require a high-speed internet connection. Web-based platforms do not require computers with much processing power, which means that they can be run on nearly any computer manufactured within the last few years. Higher-level programming using professional tools requires a Mac, PC, or Linux with a recommended 4G of RAM along with a high-speed internet connection.

Why should kids learn to code?

Reason 1: Learning to code builds resilience and creativity

Coding is all about the process, not the outcome.

The process of building software involves planning, testing, debugging, and iterating. The nature of coding involves checking things, piece by piece, and making small improvements until the product matches the vision. It’s okay if coders don’t get things right on the first attempt. Even stellar software engineers don’t get things right on the first try! Coding creates a safe environment for making mistakes and trying again.

Coding also allows students to stretch their imagination and build things that they use every day. Instead of just playing someone else’s video game, what if they could build a game of their own? Coding opens the doors to endless possibilities.

Reason 2: Learning to code gives kids the skills they need to bring their ideas to life

Coding isn’t about rote memorization or simple right or wrong answers. It’s about problem-solving. The beautiful thing about learning to problem solve is, once you learn it, you’re able to apply it across any discipline, from engineering to building a business.

Obviously students who learn computer science are able to build amazing video games, apps, and websites. But many students report that learning computer science has boosted their performance in their other subjects, as well. Computer science has clear ties to math, and has interdisciplinary connections to topics ranging from music to biology to language arts.

Learning computer science helps develop computational thinking. Students learn how to 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.

Reason 3: Learning to code prepares kids for the economy of the future

According to WIRED magazine, by 2020 there will be 1 million more computer science-related jobs than graduating students qualified to fill them. Computer science is becoming a fundamental part of many cross-disciplinary careers, including those in medicine, art, engineering, business, and law.

Many of the most innovative and interesting new companies are tackling traditional careers with new solutions using software. Software products have revolutionized industries, from travel (Kayak, AirBnB and Uber) to law (Rocket Lawyer and LegalZoom). Computing is becoming a cornerstone of products and services around the world, and getting a head start will give your child an added advantage.

Many leading CEOs and founders have built amazing companies after studying computer science. Just take a look at the founders of Google, Facebook, and Netflix!

Career Paths

Although computer science is a rigorous and scientific subject, it is also creative and collaborative. Though many computer scientists simply hold the title of Software Engineer or Software Developer, their scope of work is very interesting. Here is a look at some of the work that they do:

  • At Facebook, engineers built the first artificial intelligence that can beat professional poker players at 6-player poker.

  • At Microsoft, computer programmers built Seeing AI, an app that helps blind people read printed text from their smartphones.

Computer scientists also work as data scientists, who clean, analyze, and visualize large datasets. With more and more of our world being encoded as data in a server, this is a very important job. For example, the IRS uncovered $10 billion worth of tax fraud using advanced data analytics and detection algorithms. Programmers also work as video game developers. They specialize in building fun interactive games that reach millions of people around the world, from Fortnite to Minecraft.

All of these career paths and projects require cross-functional collaboration among industry professionals that have a background in programming, even if they hold different titles. Some of these people may be software engineers, data scientists, or video game designers, while others could be systems analysts, hardware engineers, or database administrators. The sky is the limit!

How can you get your kids started on any of these paths? By empowering them to code! Juni can help your kids get set up for a successful career in computer science and beyond. Our founders both worked at Google and developed Juni’s curriculum with real-world applications and careers in mind.

Coding for Kids is Important

Coding for kids is growing in popularity, as more and more families recognize coding as an important tool in the future job market. There is no “one-size-fits-all” for selecting a programming course for students. At Juni, our one-on-one classes allow instructors to tailor a course to meet a student’s specific needs. By learning how to code, your kids will not only pick up a new skill that is both fun and academic, but also gain confidence and learn important life skills that will serve them well in whatever career they choose.


This article originally appeared on junilearning.com
This is posted in collaboration with junilearning.com on Twinkle Teaches.


   twheaderrainbowtwtwtw

Lesson 2 is here!




Hey Friends! You can watch lesson 2 for Prek/Kindergarten here: 



 To access the printables go HERE!
Have a super day!


  twheaderrainbowtwtwtw

Tuesday, September 8, 2020

Rest.




I am still working on Lesson 2 for Prek/Kindergarten. I will post it next Monday at 10am CST. I am trying to learn how to pace myself (I have many projects going on) and to also rest when I am tired. Thanks for understanding! 





Thursday, September 3, 2020

STEAM: Why is Coding Important?

Why Is Coding Important For Kids To Learn?



Image Source


Why Is Coding Important For Kids To Learn?

We hear about coding all the time. With the technology built by computer programmers constantly surrounding us - our phones, smartwatches, and even our thermostats - it feels like everyone wants to learn a little bit about this world. Still, your children have a vast array of activities to choose from to enrich their education, so why should learning to code be a priority for your children?

Promoting Logical Thinking

There are a number of reasons why it’s important for kids to learn to code. First, programming concepts teach kids logical thinking. Our students learn how to approach problems systematically, and to implement and test their code one step at a time.

To understand how coding teaches logical thinking, let’s consider programming the game of Hangman (which is actually part of our curriculum!). First, we have to think through what data we need to keep track of and how we will store it in the computer's memory. We must keep track of which letters have been guessed, what the correct word is, and how many guesses have been made. We need to use our knowledge of variables and data structures to decide how to represent each of these things.

Then, we need to consider the logical ordering of our code. We need to continuously ask the user to make a guess, to check whether that letter part of the word, and to respond to the user about their guess! All of these things allow us to practice fundamental concepts in programming, like loops and conditional statements.

In thinking through how to program each feature of the game, the student learns how to break problems down into smaller parts and work through each one sequentially. This problem-solving skill applies far beyond computer programming; nearly all problems need to be deconstructed in order to be solved. Let’s say your child is trying to figure out how to study for a physics exam. They need to break down the material into manageable chunks, understand how they relate to each other and what sequence they follow, and plan a study schedule to cover all of the topics. The same skills that enable them to build a game of Hangman are applicable to any type of real-world situation.

Fostering Creativity

Coding also fosters creativity in students. There is a common erroneous stereotype that STEM fields are strictly “technical” while fields like English and art are strictly “creative.” This is a false dichotomy - creativity is critical to coming up with technical solutions. Similarly, artistic fields also require a knowledge of technical details to make progress. Coding teaches kids to think creatively about original solutions for problems, and this type of creativity is broadly applicable.

Should Every Child Learn to Code?

Kids have a wide range of interests and talents, and not every child wants to become a software engineer. Still, we believe it’s beneficial for all kids to have basic coding knowledge. Much like reading, coding is literacy for the 21st century. Understanding how we program computers will allow your kids to better understand technology and understand the impact of technological advances on our economy and world.

Coding is a part of so many careers; in fact, over half of all coding jobs are outside the tech field. Having basic coding skills will prepare your child for any number of careers even outside of STEM, including healthcare, art, manufacturing, and law.

This article originally appeared on junilearning.com. This is posted in collaboration with junilearning.com on Twinkle Teaches.




twinklesig2019sm