I looked at the coding material I have for my AP computer science class, it was teaching me about superclases in Java
It was around then I finally realized why I see so much bad Python out of this class
These coders are not learning about computer science, they are learning Java, and Java features
We should not teach coders about Java, if they need a class for that they are never going to be good coders in the first place
The goal of computer science classes should instead be teaching about basic code concepts, not Java
The reason I saw so much garbage Python out of these students is not because they didint understand loop expressions or print statements,
It was because they didint utilize any of Pythons features that sped up the code considerably
They were never taught about language features, they were just taught Java and Python on the side
Ignoring how Java should not be taught anymore, these students didint know why their code was slow, they didint know they were doing anything wrong at all
The solution to this problem is to teach language features and language basics seperately
But no coding language lacks basics, and few coding languages lacks features, so you must teach them 2 languages, one with features, and one without
The languages to use are C and then Python
C has no features which means students are forced to use basic types to accomplish a goal, along the way learning what goes on at a machine layer
Python on the other hand has numerous language features and code will run slow without using them, students will have mastered basic types by then and can start to learn how to learn a language by using the features it provides
In the end I have yet to take a coding class that taught the important parts of coding,
The important parts not being how well you could learn Java super classes, not how fast you could make Python run, but how fast you could learn a new coding language, how fast you could solve a problem and then write it in any language
The importance of coding was never the language features, it was never even the language, it has always been solving problems
Noone can solve a problem when they dont know how to adapt to the new language their company wants to use
Noone can code when all they know is Java and slow Python
Noone can solve a problem when all they can do is use a languages features
-- Ultrabear