For tech veterans, the choice is clear. Python, often considered a “teaching language”, is hugely popular and the go-to solution for a vast array of modern software engineering problems. However, it’s not the default choice for K12 education. Why?

Block languages like Scratch and code.org are more accessible for beginners. They require minimal typing, which can be challenging for younger or less experienced students. The click-and-drag interface eliminates the need for understanding syntax or typing skills. It’s an easy introduction to coding, but does it limit students’ potential?

Python’s Potential: Beyond Blocks

What can Python offer that block languages can’t? Imagine downloading global temperature statistics from the internet, manipulating, and plotting them in just a few lines of code. Or reading air quality levels from a sensor and uploading the data to a real-time web graph every second.

With Python, students can use free machine learning libraries to identify whether images taken by a Raspberry Pi camera are of a feral cat or a raccoon. The knowledge gained from studying Python for 2 to 3 years in K12 can be applied to solve problems in math, science, humanities, and beyond, providing a strong foundation for college and career.

The Role of Block Languages

Block languages aren’t obsolete. Many educational programming environments now allow students to switch between blocks and Python. The translation of code in these environments can be impressive, albeit sometimes buggy.

I once thought restricting access to blocks would encourage students to use Python. However, I’ve found value in using AI like ChatGPT to write and refine Python programs. This approach mirrors how many future computer scientists will work. Is there really a difference between using ChatGPT to write a Python program and converting block code to Python?

Foreign language teachers have been using tools like Google Translate for years. It’s time for coding education to embrace similar advancements.

The Future of Coding Education

I won’t be teaching block languages. When asked how to grade Scratch programs, a facilitator suggested students take screenshots and submit those. That’s not the future I envision.

When my son was in 3rd grade, he used an Arduino, a microcontroller common in high school robotics courses, to simulate a die roll. Five years ago, it could only be programmed in the “C” language. Today, Arduinos understand Python. This evolution reflects the future of coding education - a future where Python plays a central role. 🚀🐍

pyton joke

Computer Science AP Exams

CS AP A

The AP Computer Science A (CS A) exam is a standardized test administered by the College Board in the United States. It is designed to assess students’ understanding and proficiency in introductory computer science concepts and programming using the Java programming language.

When I took this exam almost 40 years ago, it was based on a computer language called Pascal. (It was a significant language back in the day and is where the local Santa Cruz County company Borland got its start - which, as a trivia fact, was the source of the quote “Real programmers eat quiche.”) However, Pascal is now about as obsolete as Latin is in everyday conversation. So, Java is superior to Pascal. However, even some Java programmers have moved beyond Java to languages like Scala, Kotlin, and Groovy. There is no definitive answer, but I argue that we could reach more students if we focused on proficiency in introductory computer science concepts with a programming language that is more accessible and easier for beginners to understand and master. Are you listening, College Board?

CS AP Principals

The AP Computer Science Principles (CS Principles) course introduces students to the foundational concepts of computer science and computational thinking. Through the exploration of seven big ideas, such as creativity, abstraction, algorithms, and global impact, students develop problem-solving skills and gain insights into the impact of computing on society. The course emphasizes hands-on projects and collaborative work, fostering teamwork, communication, and critical thinking. By completing performance tasks and engaging in the creation of computational artifacts, students develop a solid understanding of computational principles and prepare for further studies or careers in computer science.

Transitioning from Python to the pseudocode used in the exam can be a relatively easy process. Python’s readability and straightforward syntax make it highly compatible with the pseudocode requirements. Many programming concepts, such as loops, conditionals, and data structures, are shared between Python and the pseudocode. Students familiar with Python will find it natural to express their algorithmic thinking using the pseudocode syntax required for the exam. This familiarity enables a smooth transition, allowing students to focus on understanding and applying computational principles rather than getting bogged down by unfamiliar syntax. By leveraging their Python knowledge, students can confidently navigate the pseudocode requirements and effectively showcase their problem-solving skills in the AP Computer Science Principles exam.

See Also

Feedback at comments@porttack.com.