3 ms·
My issue with this article is the author's conflation of his own like and dislikes with what works for students. Many people go into computer science because th
by jeffreyrogers 12y ago
My issue with this article is the author's conflation of his own like and dislikes with what works for students. Many people go into computer science because they want to know how computers work or because they want to know how to program that demo they just saw, or more applied things along these lines. Very few (but definitely some!) go into computer science because they want to know about Turing Machines, or the Curry-Howard isomorphism, etc. Currently CS education serves the latter group very well, while neglecting the former group. This is a shame, because plenty of people who find math frustrating can become great programmers and find great satisfaction in understanding programming and computer science better. Many of the most interesting fields of computer science aren't very mathematical.
When I came to school I hated math, despite being relatively good at it. By now, my interests have changed and I'll graduate with a minor in math and a major in computer science, but largely in spite of my experience with collegiate mathematics classes rather than because of them. The way to get people to appreciate math isn't to force them to take classes on something they don't find interesting. It's to give them opportunities to see how it can be interesting or relevant to them and let them come to it when they're ready.
For myself I became more interested in math when I wanted to learn about graphics programming and machine learning. The first requires linear algebra and the second requires a lot of probability and statistics, which themselves require a solid understanding of calculus. By coming to mathematics this way I was able to see it's relevance to me and my interest in it grew the more I learned. Previously, when I was forced to take the standard multivariable calculus -> linear algebra sequence I did just enough to get by, since I really didn't care about the material. Once I had this small positive exposure to math that was useful to me it was much easier for me to appreciate more abstract math as well. But the important part is that no one made me learn this stuff! Had this been part of the curriculum I would have hated it, but since I was allowed to learn it when I was ready for it I found it very beneficial.
- yodsanklai 12y ago> Many people go into computer science because they want to know how computers work .. Very few (but definitely some!) go into computer science because they want to know about Turing Machines I'll be a little provocative, but students don't necessarily know what is useful for them. It's like those kids that want to learn to play guitar solos like Eddie Van Halen but refuse to learn any music theory. Besides, when you look at the recruiting process of some prestigious companies, it seems that industry values employees that can show good mathematical skills. It's not simply an academics thing.
- eli_gottlieb 12y ago>Besides, when you look at the recruiting process of some prestigious companies, it seems that industry values employees that can show good mathematical skills. Industry usually values going in-depth on algorithms, data structures, and not much else. I've occasionally worked at or interviewed with companies who consider knowledge of things like Curry-Howard or Turing machines interesting side diversions, and very rarely seen companies that actually use such theoretical knowledge (functional programming shops or compiler houses, usually). You'd think ML theory would be very useful, but much of the time, ML implementations are trained off-the-shelf to just fit a linear model of some kind to whatever-the-hell data you've got -- and if it can't fit a linear model, fuck it.
- j2kun 12y agoFor what it's worth, the education that Devlin is suggesting is not theoretical computer science or type theory. It's the more traditional mathematics courses.
- eli_gottlieb 12y agoOnce you add the topology section to the Curry-Howard Isomorphism via homotopy type theory it all starts to merge anyway!
- james1071 12y agoAgree-am sure that learning the hard stuff pays dividends years later.
- jbergens 12y agoDo you have any example math questions during recruiting? I have seen more discussions about CS theory questions in recruiting. And this is still only for a few jobs most companies only care about your programming skills (and soft skills like people skills which maths doesn't help at all).
- j2kun 12y agoThe counter is that a student (in part) wastes the graphics class because he/she did not have a solid foundation in the prerequisite topics. I was shocked how many of my friends in graphics were programmatically "multiplying matrices by hand" over and over again instead of relying on the abstraction. I agree with Devlin here: it's a cultural difference that they don't consider mathematics "as real" as they do programming, and their programs suffer for it. So maybe what CS departments need is a class that surveys the higher-level courses, and motivates the foundational classes they will need to take for each subject.
- marrs 12y agoMany people go into computer science because they want to know how computers work or because they want to know how to program that demo they just saw, or more applied things along these lines. Then they're in the wrong place. They should download a copy of SICP and a Lisp interpreter, and get busy hacking. Read open source software, contribute to a project that you like. Get a job, be productive. A music student doesn't go to university to learn how to play an instrument - he first becomes a musician, then he goes to university.
- 14113 12y agoA good metaphor that I like to use is to relate computer science as it is now to physics, engineering and maths. All three have a degree of overlap, but each of them thinks about the same problem entirely differently, with different purposes. The mathematicians try to build abstract formalisms, which physicists then apply to explain real-world phenomena, which are then exploited by engineers to build artefacts. Of course, that's a huge simplification, and in reality there is huge overlap - mathematicians often perform the "modelling the real world" aspect, physicists often work with highly advanced abstract mathematics (general relativity anyone?), and engineers often do very fundamental research into physical phenomena. A similar hierarchy can, and should (I believe) be applied to what I'll call the "computing sciences": Maths remains where it is, while computer science replaces physics, and software engineering replaces general engineering. Under this model, it would seem ludicrous for someone to study computer science and complain that they were not being taught to build programming artefacts. A student studying physics would be laughed at if they complained that they weren't designing enough cars, or building enough bridges.