A discussion thread in regards to computer science in the curriculum

Do we seriously think that python should be the first high-level language introduced to children.
Other then it being close pseudo code I really don't think it should be the first language shown to children.

Attached: download.png (800x600, 57K)

What do you think is bad about python from a didactic point of view, anonymous?

theres nothing wrong with it

It's not even that I think python is a bad language, my question is more like, why python.

And why isn't the first thing children are taught nowadays the actual theory behind it like assembly and compilers etc.

Also if they insist on teaching a language why not just teach them pseudo code or a different language that's more versatile.

as someone with cursory knowledge of programming i would say pythons syntax is mildy easier to grasp. Now, once you have gotten your feet wet the syntaxes of other languages are probably more functional and intuitive, but as a complete novice I would say python is easier to pick up from a position of no prior knowlege.

I think all kids should learn HTML in middle school.
Follower by JavaScript or Python in high school depends if they are more into web or CS.
In college it should be a combination of a scripting language and an OOPL.

>why python
simple syntax
dynamically typed
large standard library

>the actual theory behind it like assembly and compilers etc.
retarded, you don't need to know how an engine works to drive a car

I think I can answer this as a guy who fell for the Python as a first language propaganda. Python isn't inherently bad, but it is very retard-proof. Because the syntax is very different from other languages and it comes with a huge set of abstractions and standard libraries that do basically everything you can think of, people become very dependent on it. They never try to understand the low level things that happen under the hood. Worse, the (shitty) "community" encourages mindlessly using abstractions and frameworks to solve problems instead of thinking about them. The dependence on Python causes you to develop bad habits that can really affect you when you have to get out of your comfort zone in a job.

Python community encourages this dependence further, by consistently shilling for it to be used everywhere. As a result, you become the programming equivalent of a Mactoddler who struggles to do anything without his Mac toys.

From my own experience and that of many other Python retards, it is extremely hard for people who started with Python to pick up another language. I remember having to work with C++ and it made me sweat buckets and shit my pants (not kidding).

Not because of the language itself, but the syntax being so dissimilar to Python with the angle brackets and whatnot. I also struggled extremely hard and embarrassed myself with line terminating semicolons.

I've since moved away from Python towards C/C++/Java. Again, Python is not inherently bad. It's a good language, it can do a lot complex things very quickly and elegantly. But I don't think people should start out with Python.

Something like Javascript, with its babby friendly object system and similarity to most other regular programming languages would be a better. It would have a lot of practical uses too, as people would at least be generally aware of what goes in their browser and not fall for stupid shit like XSS attacks.

>you don't need to know how an engine works to drive a car
this kind of dumbass ignorance is bliss mentality is why people make fun of americans

Shell > JS/Python/Lua > Java/C# > C/C++

In that order was the way I learned conventionally and unconventionally.

The programming language is like less than 10% of knowing how to program. In college was mostly spent on the fundamentals of methodology and building efficient algorithms. You can learn whatever language you want, but if you're logical thinking is that of a 2 year old, it doesn't even matter.

I'm willing to bet you don't know the inner workings of every single piece of technology you use in your life
Most people don't need to know assembly, nor would they really benefit from it in high-level programming environments

You're correct. 90% of jobs you'll get will be building from a set of libraries and/or APIs. Building something from scratch on your Vim text editor died a decade ago.

BASIC -> COBOL -> C -> Fortran -> C++ -> sh -> Perl/Python/Ruby/PHP/Javascript

is how I learnt. Am I boomer or a millenial?

You don't even need to know assembly to build shit in scratch in C/C++. Most sane languages are semantically designed and have a set of recommended programming practices that ensure you're writing code that gets compiled efficiently anyway. Learning compilers and assembly is only relevant when you start tinkering with the internals of languages

you might actually be a non-meme boomer if you learnt COBOL

I was gonna say, our switches at work were coded in COBOL

I'm not that old, one summer I screeched at my dad to buy me programming books so he bought a COBOL cd and one of those famous Cobol books from a used book store

It depends.

I learned electronics first and finally programmed memories with bare cables and dip switches.
Then I moved into assembler and then into C / C++.

Once it university I started with Java and C#, I learned Python by myself though.

how do I learn electronics in current year

read books, do stuff

what books do you recommend

If your serious about cs and not just taking a HS course you should learn C first. Also roll, 0 is reroll.

Attached: TM_sluts.jpg (2866x3264, 2.65M)

my uni taught C first, and i think that was the best decision

All these girls are trash and you should be ashamed of posting this r/anime tier shit on Jow Forums.

>>python
>whitespace syntax (will make learning languages with C-inspired syntax harder)
>arbitrary precision integers by default
>no explicitly declared types
Python is just too different from other languages to be useful as a first language.

>>C
>no namespaces
>retarded function names (strcspn, etc.)
>insecure string functions
>memory leaks
>annoying backwards compatibility garbage (e.g. stdbool)
>annoying fixed size arrays until you learn to use malloc
>idiotic compiler extensions and differing standards (ANSI vs. POSIX)
>making "actually useful" stuff and not just toy programs is relatively hard
Teaching a kid C as their first language is a good way to make them pick up bad habits.

>>C++
Come on.

>>Java
>OOP
>C-like syntax
>lambdas
>has a shell (jshell)
>types have to be declared -> kiddos will learn what int, double, etc. actually are (no unsigneds tho)
>big standard library with networking and graphical capabilities
Obviously java has its own flaws, but out of the languages I could think of, it's still clearly the winner in terms preparing children for learning numerous other languages.

this

Python is great as a very first language for people who may have never encountered it before (eg high / middle schoolers).

Python is simple and intuitive, since as you pointed out is basically a step removed from pseudocode.

Python encourages some good habits by enforcing properly formatted code.

Python is ubiquitous, and thus easy for students to get support for via Stackoverflow / Google.

Python has a robust standard library, so students will be making useful programs in no time.

Dynamic typing is not an issue if by "children" we're talking about people in high school and below.

Depends on the context. If it's taught in a middle/high-school class with no intention for the kids to become professional programmers, it'd be appropriate. If it's colleague kids in CS classes, a C-like language would better prepare them for their future career.