Hacker News new | ask | show | jobs
by sdevonoes 1846 days ago
Looks really good. I still remember the curriculum of my CS degree in Europe:

- first year: Mathematics I, Mathematics II, Mathematics III, Electronics I, Electronics II, Digital Circuits, Statistics I, Physics I. The rest was about software and programming (at least!)

- second year: Mathematics IV, Statistics II, Physics II. The rest was about software and programming (nice!)

- third year: software and programming only (very nice!)

So, about 80% of the students didn't pass the first year because of its heavy mathematics + physics content.

Extra:

- mathematics I = logic, Boolen algebra

- mathematics II = calculus

- matehmatics III = Multivariable calculus and something else I don't remember

- mathematics IV = Complex analysis/complex variable calculus

- physics I and II = electromagnetism and friends

7 comments

That looks like a CompEng degree, something of a mix of CS and EE content. The physics and digital circuits courses don't seem very typical of pure CS degrees.
In Spain for example, there is historically no such thing as a Computer Science degree. Before the implementation of the EU-wide Bologna Process (mid 2000s), 5-year bachelor degrees were classified into either ordinary “Licenciaturas“ or “Ingenierías“ (=Engineering), with computing being an engineering degree (“Ingeniería Informática“) and treated as such. I'm not sure how it works now, but I think it's still a degree in engineering at least by name.

In my opinion, this being the only option has had a lasting negative impact on the IT culture in Spain, with many people who worked their way through (i.e. suffered their way through) getting their Computer Engineering degree feeling defensive about "professional intrusion" from people who work in the field without having taken Computer Engineering at university. However, being as I am one of those intruders, I am of course biased.

As someone who suffered it, it was way worse.

There was “ingeniería informatica”, which was kind of CS, but focused highly on software (databases were a significant part of the curriculum).

Then there was “licenciatura informatica”, although it was rarer to find and a lot of colleges woudn’t offer it. It should be the CS equivalent, but it was generally seen as very heavily related to math, and computation was seen in “general terms”. There were 2 or 3 programming courses at best, with most of the curriculum being similar to pure maths degrees.

Then, if you wanted to focus on hardware (like I did), your best path was “ingenieria de telecomunicaciones” (telecom engineering?) and then do a 2 year “superior engineering in electronics” (which just meant you need a previous engineering to acces).

Nowadays the scheme is similar, but instead of 3 and 5 year plans, they’re 4 or 5.

To be honest, in Europe, when talking about universiy degrees, there was no hard distinction between Computer Science, Computer Engineering and Software Engineering 20 years ago. It was all the same. Nowadays there is (I have been told).
A lower lever digital circuits and physics class both seem common in CS degrees. Digital circuits is foundational to how computers work. I wouldn't expect required classes after the into ones though.
It was similar for me (no physics but 2/3 of the courses were math) about 20 years ago. I suspect they do it because way more people sign up to study CS than the university can afford to have graduating every year, so they need a way to "filter out" a lot of students.

They already filter out a lot in terms of admissions (you need quite good grades in high school to be able to attend the first year) so I'd wager if the purpose was to train as many people that are capable of being trained in programming we'd see a lot more students graduating every year.

It's a fair point that CS is not the same as "programming vocational school" but seeing what companies use as criteria for hiring junior programmers you can't really blame the students.

> It's a fair point that CS is not the same as "programming vocational school" but seeing what companies use as criteria for hiring junior programmers you can't really blame the students.

True. I don't regret attending (and passing!) all those math+physics lectures to be honest. All the stuff I missed in uni regarding software engineering and programming I learnt them quite fast and easy in my own time (e.g., at least for me after passing an exam full of Cauchy-Riemann Equations and friends, it was quite easy for me to learn Java or to go through books like TCP/IP Illustrated or The Art of Unix Programming in my own time).

I managed too, but the problem is a lot of people who didn't could have been great developers. Your ability/tolerance to math/physics isn't proportional to your ability to become a good programmer (not any more than any other mentally taxing activity at least).
I don't get why it would include so much math but no discrete or proof based stuff. Was it a degree in computer engineering instead?
I suspect it is a distinction in the common names of things. Eg to me “logic, Boolean algebra” feels like something that ought to fit into a lecture or two (assuming here that logic doesn’t mean formal logic full of things like tautologies and modus ponens and some ZF set theory). So I have to assume that there’s more to it.

Another example is that in my education I think of analysis as being the “pure” thing with a first course consisting of 0. epsilon-delta; 1. sequences, series, limits; 2. Continuity, limits; 3. differentiation, Riemann integration. And calculus is the application of integration and differentiation and probably involves physics and integration by parts and things like Stokes’ law or Green’s theorem and maybe differential equations (unless they go in a separate course). But I understand that at other universities these might all be called calculus.

US colleges often don't even do that. They just learn differentiation and integration rules but none of the actual math, hence why it's called "calculus" and not "real analysis" which the math majors take.
We can thank Dijkstra for that I guess... He was very pro theory and anti practice. Most CS folks from that era had a math or physics background. At Eindhoven University of Technology they still have a Department of Mathematics and Computer Science. So your literally part of the same department as math students.
Complex analysis/complex variable calculus

You need this? Damn the students who could trough through this must be good. IMO only real analysis and complex analysis in that list are real math that deal with a lot of proofs.

Same in Romania. For a 4 year curriculum: first 3 semesters (1.5 years): a heavy blend of math, physics, electronics. general programming and numerical methods (matlab) on the side. 4th semester: a programming heavy semester with lots of coding: algorithms, functional programming, network programming, FPGAs. It is this semester that filters the most.
Mirrors my own uni years, plenty of physics and mathematics (bool logic, analysis & calculus) on the first year, though I also had classes on digital circuit design and the internal hardware design of a standard Turing computer.

I remember really enjoying designing the circuits, then writing machine code for them and seeing it all work at such a low level.

It’s somewhat similar in India. First year has introductory courses from all other engineering streams. Mechanical, civil and what not and is common for all the students. The specialization beings from the second year.