Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

But those skills have nothing to do with computer science as a field of study - wouldn't they be more useful to teach in general education like K-12?

Like I remember in middle school, we had an elective option between woodshop and CAD. The 'CAD' class was really more about performing simple automation in programs like MS Word/Excel, but that sort of thing is still useful in just about any job these days - not just programming.

I really like the idea of starting to call 'CS' something like 'Informatica' so people might stop looking at the field as just a valuable career skill. Google tells me that there is now a startup called 'Informatica', but that is also what the field is called or translates to in some other countries like the Netherlands; I think https://www.cwi.nl/ could probably claim prior use.

Speaking of, it seems odd to try to use an existing commonplace phrase as a trademark in the industry that the phrase was born from - it seems like it'd be impossible to argue that anyone was infringing - but I guess I'm not a corporate lawyer.



I think you are trying to make some good points, but your language could have been clearer. If I'm understanding correctly you mean:

1. Treat Computer Science (CS) as a specific field, and don't dilute the curriculum with related items. 2. Introduce a course that covers these broader, non-CS items, and actually push it out beyond the audience of CS?

Did I get that right?

I think you might have meant the term "informatics" (https://en.wikipedia.org/wiki/Informatics). Depending on your position CS is either subordinate, equal, or above informatics. I have a degree from a UK university and there is a much wider spectrum degree types in this field than exist here in the US where I now live.

I'm conflicted on the original post that elicited your response. I have that background where I inherited a broken PC, a bunch of floppy disks, and some manuals. In some ways this gives me an advantage, especially given that I'm comfortable being dropped into a messy project or some problem that is debugged. I've seen lots of folks who can't handle this, but can churn out code on to need more support around the edges.

I now see more and more folks attempting things like devops and at least being able to learn some of these skills later on. I think where it stands me in better stead is problem avoidance, but even that is subjective.


Better to stop trying to create programmers by teaching them a theoretical discipline like CS and to teach them software engineering instead?


Frankly, I think we would need to know what software engineering looks like, outside of the spaces where engineers (like, ones with PEs) more than developers own the project, before we start teaching it to novices.

I mean, I've been getting paid for this for going on fifteen years now and I'm not an engineer. I try to build resilient, reliable systems, I try to test heavily and comprehensively...but I'm not an engineer, and most of the time I'm worried when somebody calls themselves one.

What "software engineering" is, in the context of a web app or a point of sale system, rather hard to define. Worth taking a crack at. But we shouldn't put the cart before the horse.


Completely agree. The mantle of _engineer_ is not passed on simply via a job title.

Responsible engineers (i.e., those that I aspire to emulate) seem to spend non-trivial amounts of time predicting and avoiding potential-negative outcomes. They also seem to have a near-total understanding of the processes that impact these outcomes.

If only I could figure out how they _know so darned much_ about everything ...


> If only I could figure out how they _know so darned much_ about everything ...

As someone with a degree in Mechanical Engineering, I'd say that your observation is mostly due to (1) several hundred years' worth of head start (2) the field not shifting under them (much) over their careers (3) intuition from interacting with the real world being applicable and (4) you're also unaware of the crazy amount of accumulated computer knowledge you have. Now, due to the changing nature of software development, a lot of that accumulated knowledge is useless, but it wouldn't be useless in a more mature field. Imagine if all of the random arcania I've had to pick up from AppleSoft BASIC, Pascal, Perl 5, Tcl, ANSI C , etc. were directly applicable in my day job using C++, Scala, and Java.

Sure, there's some overlap, particularly from ANSI C to C++, but with Mechanical Engineering the basic tool kit changes much more slowly. I learned about common steel and Aluminum alloys, polyethylene, ABS... advantages and disadvantages of each, things to watch out for.

If a Mechanical Engineer really gets to know 1040 vs 1045 vs. 4130 steel alloys, that's knowledge that's going to pay dividends for the rest of her career. It's not like 10 years ago or 10 years in the future there was/will be a massive shift away from Aluminum and steel and the majority of engineers had/have to throw out most of what they knew/know about metals and learn how to design for Nickel and Titanium alloys. 3D printing brings something new, and heat treatment and machining techniques have improved, but even 3D printed metal parts aren't fundamentally different from the powdered metallurgy that my dad's cousin was researching in the 1940s.

You're also accumulating a ton of arcane knowledge, it's just that most of it has a relatively short useful life.

There's also survivor bias. The engineers that were promoted and kept through economic downturns tended to be the ones that were really interested in their field and readily soaked it in.


ASU has a degree called 'informatics' that's run by the computer science faculty but focused more on <the application of technology to other things> rather than <the technology and creation of technology itself.>

I just transferred into it from computer science, because I spend all my free time making games anyway, and the informatics program lets me take an elective track to get credit for that. I do think CS is probably a better fit for what I see as my long term plan, but I think this program has a lot of potential for people who wouldn't otherwise call themselves engineers.


Calling Informatica a startup is a bit of a stretch given that they've been around for 25 years, were public for a long time, make ~1 billion in revenue a year, and have thousands of employees (though I don't doubt that CWIs use of the word predates the company's founding)


in some other languages it's basically called that. "Informatik" in German. there's still the vestigial title in some department names in the US, "Department of Computer Science and Informatics".

I agree it would be a better name but I think the battle is lost, informatics now refers to an applied discipline (closely related to library science) involving building up big systems to store and organize data.


When I went to college, CS required 3 semesters of Calc and 3 semesters of Physics. It's almost as if CS was trying to fill in some hours. Calc and Physics are great and all, but very narrowly applicable. The only benefit is how it works your brain (and a good weed out course).

I would ditch that and concentrate only on computer related issues. Database would be a big one that is usually missing. Networking as well. Computer architecture (like building a computer and the Von-Neumann model) should also be included. Basic project management would be helpful too. That's 4-6 courses you could suppliant with Physics 1-3 and Calc 1-3.

It just seems silly to force CS kids to learn Physics and Calc when it is seldom used in the real world. I would much rather have a grad know the ins and outs of networking and how a computer actually works than Calc and Physics.


I agree on physics, less on Calc.

However, the explanation behind such a program is probably the distinction between vocational training and academic training. At least, here in the Netherlands, academic CS taught in academic institutions lies on the theoretical side. In such an academic CS program there are some practical courses. Stuff on databases, networking and computer architecture. But those are high level, and quite theoretical. Were they not, there would be a lot of push-back because they are almost considered demeaning.

Meanwhile, with the vocational instituion, things are very practical as far as I know. Much of those courses are actually building practical software. In large projects aimed at real uses. Meanwhile, in the academic institutions, you'll have multiple projects that boil down to 'implement gradient descent in MATLAB'.

I've heard it said that even though the academic institution is much harder and prestigious, when it comes to making practical software you are better of taking someone from the vocational instituion. Or at the very least, if you take someone from the academic institution you'll need to invest more time into training.

There is a bit of tension here where 'really smart people' who want to just become really good at a job are still expected to go to the academic institution for the prestige. Then, those people get less practical knowledge than they want because they are at an academic institution.


In Germany we have two different kinds of universities, the normal ones and the universities of applied sciences. After spending two semesters at a university (with fairly good grades) I switched to the uni of applied sciences. It was far too theoretical, and I'm not talking about the algorithms and data structures kind of theoretical. More like prove that a nondeterministic fa is not "mightier" / able to compute more than a DFA.

That was not what I wanted and I'm quite happy at the uni of applied sciences now, and since most of our profs have an industry background (and a Dr.) we learn a lot of practical things.

E.g. Git, build management, agile development, a module about usability and user experience, networks, applied algorithms and data structures, some math (proofs where a side note though) etc

On the other hand, some of my fellow students ... Well, one task last semester was to program some really easy program with java, connect to a database with jdbc, do something with the data and write it back. We didn't know about jdbc until then. After a module is finished we have the opportunity to fill out a questionnaire about it and at least half of the class wrote that it was not ok to demand something like this. It boggles the mind.


We should have something like that in the Netherlands. We do have 'university' and 'technical university' but I just looked at the curriculum for CS at a technical university and it is similarly theoretical. You really need to go to HBO (höhere Berufsbildung, Higher Professional Education) to get that practical approach.

This is sadly considered as plain easier than university. It probably is as well, but that leaves a gap for professional training at a higher level. It sounds like the 'Technische universitat' in Germany nicely fills that gap, or is that still considered as easier than normal university?


> 'Technische Universität'

That's just what the Universities which focus more on STEM as opposed to Literature/Law/Psychology call themselves.


I've found that some universities have a program like this -- replacing the calc, physics and higher-level math with more hands-on classes. At my university, a BA in CS was like this, while a BS maintained the rigorous math requirements. I've also seen programs labeled Information Systems that's similar.

Not sure I agree with whole-scale removal of it though. I have to use calculus every once in a while in my job. While I never integrate by hand, I certainly need to know what integrals and derivatives are and how/when they are applied.


Also, I would think just 1 semester Calc and Physics would be beneficial to add more applicable subject would be a fine compromise. 3 of each seems really excessive. That cirriculum was created when computers weren't overly complicated. I know that had it back in the 90s. There's just been too many important innovations in computing that are ignored because of Calc and Physics IMO.


Yes, Information Systems type degrees are close, but at my school they weren't strong on programming, instead required Accounting I+II, Finance, Marketing, Management, Business Ethics and that sort of thing.

My wife got her CIS degree a few years ago and they seem to have improved a bit. She had multiple programming courses in several languages along with more advanced CS courses and database courses.


Asymptotic notation is defined using limits. In fact a lot of concepts in CS involve limits, convergence, etc.

The problem is that most calculus courses were devised before the widespread availability of Wolfram Alpha and focus too much on hand computation rather than understanding of the subject.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: