How does your school/university teach it? What have been the pros and cons of that choice?
Obviously, teaching students logical and foundational concepts is the most important part, but a student’s first programming language does color their internalization of the concepts and how they approach solving different problems. For example, OOP is really hard to grasp coming from a functional background. Learning how to manage memory efficiently and use appropriate data types is really hard coming from an interpreted language like Python or Javascript. What have you and your peers decided works best for you and your students?
I wish I started with Golang! To me it has the perfect balance of simplicity and power. You need to care about types but only a little bit. Most everything you need is in the standard library. It can be shared very easily as a binary. The concurrency model is quite different than anything else but that could be out of scope for a beginner language. Go also has memory areans (in experimental) and generics so there is enough to chew on for the more advanced students as well.
I went from python and JavaScript to rust and now I’ve settled onto Go. Python really hurt the way I understand programming as a whole and rust mostly corrected that but is overkill for most things I do.