https://www.di.fct.unl.pt/en/education/integrated-master-com...
https://tecnico.ulisboa.pt/en/education/courses/undergraduat...
https://www.di.fct.unl.pt/en/education/integrated-master-com...
https://tecnico.ulisboa.pt/en/education/courses/undergraduat...
In two undergrad courses, we programmed in an old language and a very outdated environment, the one the professor had used their entire career - and apparently that continued until the prof retired. The courses were about implementing algorithms, so the language didn't really matter, but I would say the course was probably a net negative from a software engineering perspective.
We had a database course covering the mathematics in good detail. We learned the relational model, normal forms and such mathematically, with a little basic SQL at the end. That was great for understanding, as at the end of the course you'd be able to write out the actual maths performed by a query but it didn't really teach SQL.
Multiple professors wrote typical "researcher code" - I don't necessarily want to say it's bad but it's very different from what you'd see as good industry code. Lots of global state, variable names with 1-2 letters, magic numbers. It's understandable why research code to be like that but it is much more fitting for an implementation of a research paper than for a software product.
On my degree, database classes required both theory, as writing a full blown application in Oracle.
Naturally like everything there are students that work around it, but then they aren't in position to complain about not learning.
We did not truly learn any of those though, it's just that they were used.
The specific languages did not really matter, they were secondary, just some tools. One Theoretical CS professor used some really obscure thing whose name I forgot, really niche, again it was only used to demonstrate some theoretical aspects (provability I think).
Most content was math and formal stuff. Some experiments and low-level stuff, like creating a sound directly from a chip (no computer), in assembler, as part of intro to hardware.
I would have fekt pretty irritated and that I was wasting my time if we had had courses about learning programming languages (designing them, writing compilers etc., is another matter). This is something easily and better done on your own, learning the actual languages.
It’s ultimately a matter of the focus of the major and department.
You can graduate without writing a single line of code, without having ever heard of SQL, and knowing nothing about math.
If you do it right. Or is that "do it wrong"?