News for hackers. Stuff that matters.
Re:Why won’t anyone teach me math? by tacoluv on Friday February 11, 2022 @11:19AM (#30303189)
My 2 cents: The author presumably goes to Princeton - the ivy league is in general a tough place to "start learning" things, especially STEM. Few of the staff would teach you the basics of anything, mostly because you are attending a research college, where teaching is the professors' side gig.

I went to an ivy league school, and a large portion of the people in the CS program did competitive programming/knew number theory and discrete math from high school etc. All the problems we got as homework were really intense - I'd consistently do more than 60-70 hours of studying outside of classes to keep up. Mind you, for me CS was/is like crack - I feel like I'd have put in even more time if I didn't need to sleep or want to hang out with my friends.

There are some intro classes, of course, but the quality of those varies a lot.

Edit: I don't mean to discourage people with this post. I was actually one of the few people who didn't have much of a CS/quanty background in my CS classes. My advisor told me to have a backup major in case I fail the tougher required classes, but I made it through.

Re:Why won’t anyone teach me math? by Waterluvian on Friday February 11, 2022 @11:24AM (#30303282)
I went to the University of Waterloo and took a "Intro to CS for non-math students" course. The thing was designed and taught by CS faculty, so naturally they taught you the basics of programming using math.

I spent more time re-learning high school math than actually learning programming. And not because it was directly related, but because some lessons were like, "write a function in Java that factors a quadratic." So 90% of that tutorial was me re-learning what the heck a quadratic is and how to factor it.

The experience really sucked and I gave up on university programming courses and just started learning it all practically and on my own terms.

Edit: Enjoy this wonderfully styled course page: https://student.cs.uwaterloo.ca/~cs125/S08/Resources/Admin/C...

Re:Why won’t anyone teach me math? by criddell on Friday February 11, 2022 @12:23PM (#30304104)
I think you also need to consider just what is meant by “computer science”. Is it programming?

My daughter is studying comp. sci. right now and there seems to be a ridiculous amount of math and math proofs and very little programming in her program (she’s still in her first year). The spend a considerable amount of time proving stuff using big-O (and theta and omicron etc…) and surprisingly little time applying those ideas.

I think what you wanted (and what should be offered to everybody) is a course designed to teach programming and programming concepts.

Re:Why won’t anyone teach me math? by feoren on Friday February 11, 2022 @02:06PM (#30305662)
> ridiculous amount of math and math proofs ... [vs.] a course designed to teach programming and programming concepts

Math, big-O, and proofs are programming concepts. If you want a shallow understanding of whatever programming languages and frameworks are in vogue this year so you can be handed down constrained requirements in a code mill where you are evaluated on how many lines of code you write per day, take a coding bootcamp. But know that after a few years your skills will be out of date and you will have a hard time keeping up with the field. If you want to solve hard problems that haven't been solved before, pay attention to that math and those proofs. I'm honestly just sick of people complaining about CS degrees for not spending enough time teaching React JS or Ruby on Rails. CS degrees are for people who want to solve problems that are actually hard and new.

Seriously, do we ever hear physics majors complaining that they have to learn all this math that they're never going to use, in order to study the foundational cosmology of the universe? Why don't they just show me how to work the damn telescope!?

Re:Why won’t anyone teach me math? by derefr on Friday February 11, 2022 @05:06PM (#30307579)
> CS degrees are for people who want to solve problems that are actually hard and new.

No; not any more than theoretical-physics degrees are for people who want to solve "hard and new" automotive-engineering or pharmacology problems. That there exist lessons from a given academic discipline that have practical application within a given profession, does not mean that you need to become an academic of that discipline (i.e. someone who can advance the state of the art in that discipline — which is what "getting a degree in X" means, if you're doing it right) in order to become a professional in said profession; or even to advance the state of the art of the profession (rather than of the associated academic discipline.)

In schools for professional (rather than academic) disciplines — e.g. medical schools, law schools, trade schools, etc. — the lessons from academia with relevant practical application to your field are taught together with the more practical material. For example, in learning to be an optometrist, you learn optics. That's physics! But it's only a certain part of physics, and it's presented through the lens (heh) of the problem domain that you care about.

Coding boot camps are shit, I'll agree. Software Engineering programs aren't. I'll take a professional Software Engineer over an academic Computer Scientist any day — especially to have on my team when working on entirely-novel problems. The professional has been taught the problem space, whereas the academic only knows the solution space. It's a lot easier to have a professional read a few books and papers to learn about the solution-space relevant to solving their problem; than it is to fix an academic's lack of appreciation of the constraints imposed by the problem being solved.

Re:Why won’t anyone teach me math? by barry-cotter on Friday February 11, 2022 @07:18PM (#30308682)
> In schools for professional (rather than academic) disciplines — e.g. medical schools, law schools, trade schools, etc. — the lessons from academia with relevant practical application to your field are taught together with the more practical material.

Teachers mostly don’t think their education degree made them better teachers and there’s no evidence they do[1]. It’s widely agreed that at least the third year of USAn law school is useless[2] and there are testing providers whose entire thing is teaching graduates what their law school didn’t but should have if it was professional training [3].

Professional schools are run for the benefit of the staff, so they teach what the admins and teachers want to teach. It has to have some relationship to the field but it can be completely attenuated. People learn to do their job at work, not on a university campus.

[1] It's easier to pick a good teacher than to train one: Familiar and new results on the correlates of teacher effectiveness

https://www.science-direct.com/science/article/abs/pii/S0272...

[2] https://www.businessinsider.com/third-year-of-law-school-is-...

https://forgottenattorney.wordpress.com/2013/02/01/the-usele...

[3] https://abovethelaw.com/2017/05/teaching-you-what-law-school...

Re:Why won’t anyone teach me math? by derefr on Friday February 11, 2022 @08:03PM (#30308944)
Education is IMHO uniquely problematic / a bad example of a professional discipline, because nobody knows what works. Academia is horrible at running RCTs on education methods; and industry is horrible at incentivizing good teaching (i.e. ineffective teachers, whether in kindergarten or college, never get fired just for being ineffective.) Our current "theory of education" is probably just 1000 P-hacked studies in a trenchcoat.

It's likely pretty easy to measure that lawyers from professional law schools win more cases than self-taught lawyers. Or that doctors from medical schools have higher patient satisfaction / produce higher average QALYs in their patient cohort than self-taught doctors.

I think a more closely analogous question to the one of CS vs SWEng might be: if a group of psychiatrists (professionals) and psychologists (academics) switch places, who performs better in the other context?

Re:Why won’t anyone teach me math? by seanmcdirmid on Friday February 11, 2022 @08:06PM (#30308956)
> if a group of psychiatrists (professionals) and psychologists (academics) switch places, who performs better in the other context?

The psychiatrist is an MD who can prescribe drugs. The psychologist wouldn’t have that kind of authority, so they can’t do the job of the former. A psychologist can actually do therapy, which a psychiatrist isn’t trained for. These are very different professions.

Re:Why won’t anyone teach me math? by barry-cotter on Friday February 11, 2022 @08:19PM (#30309020)
Psychiatrists in the US overwhelmingly have to be trained in psychodynamic therapy, aka Freudianism. The only thing we know for certain works in therapy and that has worked consistently is the client and counselor having a good relationship.

> Conclusions and Recommendations of the Interdivisional (APA Divisions 12 & 29) Task Force on Evidence-Based Therapy Relationships

http://societyforpsychotherapy.org/evidence-based-therapy-re...

> The therapy relationship makes substantial and consistent contributions to psychotherapy outcome independent of the specific type of treatment.

> The therapy relationship accounts for why clients improve (or fail to improve) at least as much as the particular treatment method.

Re:Why won’t anyone teach me math? by sdenton4 on Friday February 11, 2022 @08:48PM (#30309151)
omg, my least favorite thing in the education literature:

Prof does a 'study' where they teach a class with both hands vs with one hand tied behind his back. Each class has 200 students, and he finds that the one-handed class outperforms the two handed class with p=0.045 with N=200...

And I'm like NO! This is basically an N=1 study because the teacher is common across both classes. Have you never heard of pen-effects?!?!?!

Unfortunately, fixing the problem in the study design means convincing a bunch of your friends that one-handed teaching might be better and engaging in an experimental study together... But that's obviously way too hard.

Re:Why won’t anyone teach me math? by virchau13 on Saturday February 12, 2022 @12:25AM (#30310206)
Slightly OT, but if you want an official word for "USAn", you can try using "usonian".
Re:Why won’t anyone teach me math? by Aeolos on Saturday February 12, 2022 @11:55AM (#30314202)
> I'll take a professional Software Engineer over an academic Computer Scientist any day — especially to have on my team when working on entirely-novel problems.

Fully, 100%, whole-heartedly agreed!

I'm leading a multi-disciplinary machine learning R&D team comprising multiple experienced Computer Scientists, Software Engineers and one Electrical Engineer who jumped from EE to SWE to ML research.

All of them are efficient in their own way, but the EE blows everyone else out of the water in sheer _effectiveness_. He may not be the strongest programmer, but his solutions have an elegant simplicity, take the right trade-offs and solve the damn problem.

The CS members are exact opposite: they care about the solution more than the problem, leading to hard-to-maintain / partial / sometimes outright wrong approaches. If they don't find the problem mentally stimulating, they redefine it to make it so, and then solve that problem instead.

Problem: display one point in an image

EE/SWE solution: calculate the xy pixel location and pass it to the renderer

CS solution: define a novel normalized coordinate space, so (0,0) and (1,0) are two specific locations in the image (not center, not corner, but two content-sensitive locations); for every image in the database, calculate a 4x4 "normalization" matrix to map pixel coordinates to normalized coordinates; now calculate a 4x4 "location" matrix with the location of the object in this normalized space; problem solved.

Note how this not only fails to solve the original problem, but it also creates multiple new ones.

Our team then had to point out that all of our user data, generated data, rendering code, user interface, user manual are standardized in pixel coordinates (_industry_ standard, with strict regulations), and that no, defining a new coordinate space, migrating terrabytes of data, and convincing the industry to switch over is not going to happen.

So yes, give me an EE/SWE problem-solver over a CS academic any day of the week!

Re:Why won’t anyone teach me math? by hedora on Friday February 11, 2022 @07:05PM (#30308581)
The problem space changes every few years, though. What does the career progression of these "professional Software Engineers" with no understanding of the solution space look like? Do you just fire them each time the problem space changes?

What about tech debt? Are they writing shovelware or something? Over time, as requirements drift, how do they even know their stuff is way off of being a reasonable solution?

Re:Why won’t anyone teach me math? by kortilla on Friday February 11, 2022 @09:41PM (#30309426)
> Over time, as requirements drift, how do they even know their stuff is way off of being a reasonable solution?

CS doesn’t even start to scratch the surface of reasonable solutions though. CS programs don’t teach you anything about architecture, technical debt, testing, source control, bug tracking, etc.

Re:Why won’t anyone teach me math? by feoren on Saturday February 12, 2022 @10:08PM (#30318743)
> CS programs don’t teach you anything about architecture, technical debt, testing, source control, bug tracking, etc.

Bug tracking you can learn in a day. It's more about which tool your company is using than anything fundamentally difficult to understand.

Source control you can learn in three days, and I was (briefly) introduced to git in my CS degree. How source control systems work under the hood with diffs, Levenshtein distance, etc. -- that's the kind of thing CS covers. A CS major understands source control way better than someone who's just been using it for a while.

Testing is more of a habit or practice than a subject to learn about. And you absolutely learn to test your own code if you don't want to fail your assignments, because the professor sure is going to test it.

"Technical debt" is a communication term that was invented to help business people correct misconceptions about how software engineering works. If you mean they don't learn how to make maintainable software, I agree that's not a focus. Maybe it should be. But of course nobody in the industry seems very good at that either.

"Architecture" is a tremendously vague term. Are you talking about large-scale, multi-system architecture? The MVC architecture? A web tech stack? Most of those things are either just putting together things you already know, or a subject that you can learn about in a CS degree if you want.

Re:Why won’t anyone teach me math? by kortilla on Monday February 14, 2022 @11:37AM (#30334056)
> Bug tracking you can learn in a day.

No you can’t. You can learn how to use a specific bug tracking tool in a day. That’s not related to learning how to write/use/organize/prioritize bugs.

This is something that all of my junior engineers sucked at at Google and it took months of prodding to get them to write useful bugs and years before understanding how to prioritize bugs.

> Source control you can learn in three days, and I was (briefly) introduced to git in my CS degree. How source control systems work under the hood with diffs, Levenshtein distance, etc. -- that's the kind of thing CS covers. A CS major understands source control way better than someone who's just been using it for a while.

This is completely wrong. Knowing how a diff is generated is completely useless when learning how to use git, perforce, whatever. 99% of learning source control is about the concepts of that particular tool and how to manipulate them (e.g. branching, rebasing, squashing, merging, cherry-picking, etc).

> Testing is more of a habit or practice than a subject to learn about. And you absolutely learn to test your own code if you don't want to fail your assignments, because the professor sure is going to test it.

This is what someone who knows nothing about testing thinks testing is. Running code before you submit it is a specific type of test, and it’s a pretty bad one. Making code testable involves architecting your code in specific ways and knowing when to use fakes, mocks, functional tests, unit tests, fuzz tests, performance regression tests, etc.

To claim it’s just a habit or practice you follow just right before you submit is a joke. This is one of the hardest thing to train new grads on when they join a company. Part of it is they have notions like yours implanted by completely out of touch CS professors and grad students.

>Technical debt" is a communication term that was invented to help business people correct misconceptions about how software engineering works.

CS doesn’t teach people how software engineering works either. That’s the point.

> Most of those things are either just putting together things you already know, or a subject that you can learn about in a CS degree if you want.

No, you cannot reasonably learn about these things in a CS degree because they are completely uninteresting from a CS academic perspective so the professors don’t care about it. A professor who teaches you about the lambda calculus is just as qualified to teach you about making a maintainable and scalable service as the professor who taught you newtons calculus.

The whole point is that CS only has a small intersection with writing software at the leading tech companies and an even smaller intersection with writing software at normal businesses. It’s useful for distinguishing between new grads but it’s garbage compared to industry experience.

I say this as someone who got a phd on the CS side and then went to Google. They are just completely different universes.

Re:Why won’t anyone teach me math? by derefr on Friday February 11, 2022 @07:56PM (#30308904)
I think you've misunderstood the terms I used.

By "problem domain" I mean the things that impose constraints — for a structural engineer, that'd be e.g. building materials, soil, weather, etc. The things that have tolerances.

By "solution domain" I mean the space of human ingenuity that we can apply in our designs, in order to make something possible that wouldn't be possible with a naive approach. For a structural engineer, that's things like "suspension-bridge cabling" (more general principle: tensegrity) and, I dunno, "flying buttresses."

The problem domain of building software — the parts that impose constraints — are things like what factors lead to robustness (or lack thereof) of a language runtime under production load; programming-language error-rate as a function of language-syntax UX design; evidence-driven software project scope analysis; the trade-offs involved in attempting to scale a process horizontally vs. vertically; the effects of state on ability to scale; etc.

Someone who understands these things knows how to engineer software, the same as someone who understands material tolerances knows how to engineer a structure. If they only know that, then they can't draw you a building (that'd be an architect) — but they can take that architect's blueprint, and tell you whether the building described by it will fall over, and whether there's any simple thing you can do to solve that, or whether you need to draw a different building.

But note that you learn the solution space naturally, over time, as you're exposed to the solutions people use in the field. A machinist will learn the tools of their trade as they run into them in the shop, and as other machinists demonstrate them, and as books refer to them, and as job-lots demand them. None of this requires academic rigor. It's just learning on your feet.

A SWEng might not be aware of the academic result proving some more-optimal data structure exists for something. Just like a machinist might not be aware of a not-yet-commercialized maser CNC lathe. But they don't need to be, either. Very rarely does solving novel problems require novel tools. You can build the part you want to build with the machines you already have in your shop, and maybe one new one you buy off eBay. You can write the code you want to write with your not-so-optimal data structures, and maybe one new one you find in an ecosystem library.

Every once in a while, getting things done might require you read a journal paper written by an academic. But let's be very clear: it doesn't take a degree in some field, to be able to read — and make use of! — journal papers from that field. We've got educational vloggers — people who perform on camera for a living — operationalizing stuff they saw in journal papers all the time! If they can do it, a professional in an adjacent field to the academic discipline can certainly do it.

Re:Why won’t anyone teach me math? by kuang_eleven on Friday February 11, 2022 @04:45PM (#30307380)
Interestingly, I think I am as close to an example of your last point as you are going to get. I was a Physics major, and nearly all of my classes were focused only on the strongly theoretical part of physics. When I then joined a research team in experimental cosmology, I did lament that I never got any real instruction on research methodology, relevant statistics, etc.

It's surprisingly how little actual fundamental, theoretical Physics you need to know to do Physics! I'm not saying it's not important, the point of being a Physics major is not only to train you to be a researcher, but for the sake of the knowledge itself.

It's very similar to CS in that regard; almost none of formal CS is useful when doing software engineering, and when it is useful, the skills are in knowing to recognize a problem and how to research it, just like Physics!

Re:Why won’t anyone teach me math? by sjtindell on Friday February 11, 2022 @11:17PM (#30309901)
Thanks for the input, a great example.
Re:Why won’t anyone teach me math? by warent on Friday February 11, 2022 @05:16PM (#30307668)
It's a packaging / communication problem.

"Computer science" is a term that no longer fits the mental model of the general population's idea. Basically nobody is thinking "Computers? Of course! You mean the lambda calculus, Turing machines, how these theories relate."

Most People are thinking about about the internet, websites, games, apps, robots, and so forth. Indeed one can build all these things without any concept of how busy a beaver really is.

Then you have a smaller subset of people who (allegedly) understood what "computer science" is from the outset, and they turn their nose up at anyone who misunderstood what this "Computer science" was. Even worse, they often feel somehow superior. How dare you be ignorant?

Practicality and value: these things can exist outside the realm of dense theory. Anyone who says otherwise is trying to feel better about the years and/or money spent on a very challenging and painful degree.

Re:Why won’t anyone teach me math? by FactolSarin on Friday February 11, 2022 @07:04PM (#30308562)
As someone who is self-taught as a programmer, I came into the field with a serious case of imposter syndrome. There was so much theoretical stuff I didn't know. Then I got into my job and it turned out it didn't really matter and my practical experience doing hackathons and personal projects set me up for a lot of success. There are times and I wish I had a better theoretical underpinning, but it's honestly pretty rare
Re:Why won’t anyone teach me math? by Alan_Dillman on Friday February 11, 2022 @06:43PM (#30308387)
This. It has really split into two domains, but the terminology is often muddled.

It is like the difference between a person who pours concrete foundations, and a person optimizing concrete formulas. Society needs both, but the skill sets are different.

Re:Why won’t anyone teach me math? by xeromal on Friday February 11, 2022 @08:36PM (#30309090)
Yup, I took CS and had to go through all the rigors that entailed, but I really ended up being a construction worker. I don't mind! Really! But I think if I could do it all over again, I'd take a software engineering BS degree where most of my time was spent engineering solid software.

I did take design patterns classes and such in college, but imagine taking 200,300, and 400 level design patterns classes and learning how to architect scalable systems in the cloud or on-prem.

Of course there would be programming classes too, but I think there's some room for a program that I'm imagining. Boot camps don't cover the engineering and architecture parts so it would be somewhere between a bootcamp and a CS degree where you're writing operating systems and big endean and Big O notation

Re:Why won’t anyone teach me math? by feoren on Saturday February 12, 2022 @10:10PM (#30318756)
Except society doesn't actually need both "people who can solve new and interesting problems in an automated way using computers" and "people who build only easy, normal, routine, well-understood solutions to known problems using computers", because the latter is called compilers.
Re:Why won’t anyone teach me math? by connectsnk on Friday February 11, 2022 @03:01PM (#30306302)
>If you want to solve hard problems that haven't been solved before, pay attention to that math and those proofs.

You are right that these people will have a hard time later. What also needs to be understood is that paying attention to something in which you have no curiosity is hard. I never paid attention to Maths / Stats / Probability and now I am having a hard time trying to learn machine learning / AI. But now my curiosity for these technologies is dialled up all the way to 9 and in my free time, I am relearning all these concepts I missed.

And what I have discovered is that these concepts were easy. The university presentation of it was done without any motivation. It took a useful and easy subject of math and made it hard.

Re:Why won’t anyone teach me math? by ivan_ah on Friday February 11, 2022 @08:59PM (#30309199)
> the university presentation of it was done without any motivation. It took a useful and easy subject of math and made it hard.

Amen!

I like the way you have worded this. In particular for first-year math courses, they are super useful and should be seen as "basic science literacy" and much more people should have access to this knowledge (not just people who take 3-4 years of courses in a STEM major). I've been working on products to make this happen. Links in profile.

The "basic science literacy" I can see everyone benefitting from (in particular devs): (1) math modelling skills from high school math functions, (2) vectors because EVERYTHING, (3) PHYS101 (mechanics) for the predictions-using-models skills, (4) CALC for understanding concepts of rates of change and accumulations, (5) PROB because important building blocks for modelling data, and (6) STATS so you learn how to infer model parameters from data.

It's not a coincidence the above list of 6 are part of most UGRAD degrees (either in first or second year). These are the basic tools that everyone benefits form knowing. I am really enjoying the "unbundling" that is happening of the basic science literacy teaching and the credentialism.

Re:Why won’t anyone teach me math? by thrwy_ywrht on Friday February 11, 2022 @03:58PM (#30306916)
>But know that after a few years your skills will be out of date and you will have a hard time keeping up with the field

This totally depends on what type of engineer you want to be. It's quite possible to be very successful, have a great career and make a ton of money as a software engineer without ever tackling problems that are "hard" or "new".

Re:Why won’t anyone teach me math? by otikik on Friday February 11, 2022 @04:45PM (#30307385)
The two alternatives that you are presenting (flavour-of-the -week JavaScript versus multiple semesters of Big O notation) are just the two extremes of a wide spectrum.

What you call “shallow”, others might see as “practical”.

It’s possible that this person has chosen study path that isn’t the right one for them. That’s a tricky spot to be in especially in these times. I suggest a little more empathy, and a little less venting.

Re:Why won’t anyone teach me math? by bdlowery on Saturday February 12, 2022 @04:52AM (#30311475)
I love spending so much time doing Big O analysis! Great use of my time! I’m sure I’ll need to know semesters worth of Big O Analysis for my job.

Oh… I just need to know the basics? Damn, such a great use of my time.

CS degree in a nutshell.

Re:Why won’t anyone teach me math? by urthor on Friday February 11, 2022 @03:56PM (#30306901)
How often do proofs come up in industry though?

Usually I find proofs are what you bring in the consultant for.

I'm not going to hand on heart vouch for anything like that as a generalist.

Combinatrics, Big O and set theory absolutely. Everyone is far better off with those.

Re:Why won’t anyone teach me math? by mcguire on Friday February 11, 2022 @04:04PM (#30306988)
Computer programming is applied formal logic. No, really, it is. I'm completely serious.
Re:Why won’t anyone teach me math? by hnfong on Friday February 11, 2022 @04:10PM (#30307036)
You can reassert this tautological statement all you want, but when AI-assisted programming tools start compiling pseudo-natural-language into C++, you'd better accept the fact that either:

1. The definition has no bearing to what's happening in the real world, or

2. "Computer programming" ceases to exist as a productive activity and you need to invent a new name for AI-assisted programming.

Re:Why won’t anyone teach me math? by mcguire on Friday February 11, 2022 @05:24PM (#30307732)
But that is part of the point: there is no programming tool to compile natural language into code. Instead, a programmer has to convert the natural language into a formal language that a compiler can deal with. You know all those nifty refactoring tools? They're treating the program as a construct in a formal language---they can make specific changes without altering the meaning.

Oh, and there is nothing tautological about it, at least as far as most programmers seem to work.

Re:Why won’t anyone teach me math? by hnfong on Saturday February 12, 2022 @02:27AM (#30310692)
> no programming tool to compile natural language into code

Pretty sure you missed a couple news articles recently...

https://news.ycombinator.com/item?id=30179549 https://news.ycombinator.com/item?id=27676266

They're not exactly reliable, but you probably could say the same for the earliest compilers (from programming languages to asm/machine code).

I'm not saying they will definitely be usable in the short term future, but that future is probably coming sooner or later, and I don't think a fragile definition (programming==="applied formal logic") is worth reiterating over and over again as if it were some fundamental truth.

Re:Why won’t anyone teach me math? by MaxBarraclough on Friday February 11, 2022 @06:35PM (#30308329)
I don't think anyone is going to dispute that though, except perhaps on a point of detail: it took Hoare logic to bridge the gap between imperative programming and 'ordinary' mathematical logic.

If I'm reading them right, urthor's point is that the average programmer doesn't directly benefit from being skilled in developing formal proofs about code. (I rambled at some length on this topic recently. [0]) Very few software development workplaces value correctness so highly that they invest in formal methods.

That said, I think the case can be made that learning about formal methods is useful in instilling a sense of how rigorous software development can be, and perhaps to develop a healthy contempt for hand-wavy sloppiness. Perhaps it's also helpful to learn that informal requirements, formal specifications, and implementations, are three different things. I think this may be true even if we rarely use formal specifications in practice.

[0] https://news.ycombinator.com/item?id=30000146

Re:Why won’t anyone teach me math? by roenxi on Friday February 11, 2022 @05:30PM (#30307785)
Breathing is applied formal logic. The range of things that can be reduced to applied formal logic is pretty much everything if we accept that "applied formal logic" doesn't mean formal mathematical proofs.

If we could strip out of reality the bits that can be understood as a practical application of the basic branches of math there wouldn't be anything left. Nevertheless most people get a long way in life without needing to engage with that (which is lucky because there is too much to learn in one lifetime).

Re:Why won’t anyone teach me math? by baq on Saturday February 12, 2022 @02:41AM (#30310754)
I get the OP’s point: it doesn’t matter what you think about usefulness of knowing how to formally prove anything, the point is that you’re doing it every time you program a computer, so might as well 1) be aware of that 2) learn a thing or two about how it’s done by pros.
Re:Why won’t anyone teach me math? by roenxi on Saturday February 12, 2022 @05:49AM (#30311723)
Should I study knot theory to tie my shoelaces? Should tailors and cup-makers study topology? Should it be mandatory to study economics before buying groceries?

Looking at code as applied formal logic is not a useful view outside of some rather obscure communities. Even code as a recipe is more useful view in practice.

Re:Why won’t anyone teach me math? by baq on Saturday February 12, 2022 @06:24AM (#30311937)
I’m not saying you should get a phd in logic. I’m saying knowing what your inputs and outputs are supposed to be and writing test assertions is basically checking whether your theorem/lemma is true in disguise (unit of code works as expected) and knowing a bit of theory from that domain can’t hurt. Even if it’s only de Morgan’s laws, which you’ll admit is a rather low bar…
Re:Why won’t anyone teach me math? by roenxi on Saturday February 12, 2022 @06:56AM (#30312116)
> writing test assertions is basically checking whether your theorem/lemma is true in disguise

But that is almost the polar opposite of treating a program as applied logic. If there is one thing that is not reasonable when dealing with logic, it is "proof by multiple test cases that seem to work, I think".

And I don't clear the low bar for de Morgan’s laws, I've completely forgotten what they are. And on looking them up, that doesn't look like an important component of programming. A programmer could reasonably get away with not knowing them. Probably going to learn them by rote over a few years, but that is hardly "applied logic" in any sense that is worth talking about.

Re:Why won’t anyone teach me math? by mechanical_bear on Friday February 11, 2022 @04:36PM (#30307297)
Computer Science isn’t about industry. If you are dead set on being the best in industry go take an Information Systems degree, or similar.
Re:Why won’t anyone teach me math? by urthor on Saturday February 12, 2022 @03:20AM (#30310966)
I think if computer science degree weren't about industry, there'd be far fewer terminal undergraduates floating around the world.

If people came for the science, everyone would ride off, discover something, and get a PhD.

I just see formal proofs as something you get a genuine scientist to do. If you're someone focused on rigorously correct proofs, you get a rigorous PhD.

I don't pretend that I'm up for that, or that I'm qualified to produce quality work in that space.

But I also don't believe any of my fellow terminal undergraduates are the right sort of people to do this work.

Let's face it, we all had a close encounter with the mathematical proofs, and ran in the other direction as fast as we could!

Re:Why won’t anyone teach me math? by mechanical_bear on Sunday February 13, 2022 @03:52PM (#30325564)
I didn’t run, I double downed lol. CS Piled High and Deeper here…
Re:Why won’t anyone teach me math? by ajsnigrutin on Friday February 11, 2022 @05:38PM (#30307850)
Yep, I look at this as a builder vs an engineer.

A lot of modern entry-level programming is the same as builder-work... take a brick, take some cement, spread the cement, put the brick in the right place, and in the corners, cut a brick to size. Yes, sure, we need a lot of those people doing random programming jobs too.

But, if you want to build something bigger than a doghouse, you also need a lot of math and calculations, before you even touch the first shovel, to calculate if the whole project is even theoretically feasable. Stuff that works in low scale, sometimes breaks horribly, with larger amounts of data, and i'm not talking facebook scale, but going from 10 to 500 users. If you want to go higher, things become even more broken for someone who just "lays bricks", and a lot more thought and math is needed to make things actually work (and scale).

Re:Why won’t anyone teach me math? by mechanical_bear on Friday February 11, 2022 @04:35PM (#30307278)
Exactly! Computer Science is the study of computation, not the study of programming. Sometimes we use computers and programming in order to better understand computation. Just like Biology is the study of Life, not the study of how to use a microscope better.
Re:Why won’t anyone teach me math? by fivea on Friday February 11, 2022 @04:49PM (#30307427)
> Math, big-O, and proofs are programming concepts. If you want a shallow understanding of whatever (...) take a coding bootcamp. But know that after a few years your skills will be out of date and you will have a hard time keeping up with the field.

I'm sorry to break it to you, but your personal belief on the virtues of ivory tower feats doesn't hold any water in the real world. At all.

The most important competency, by far, is being able to onboard. Whether it is onto projects, frameworks, programming languages, architectures... Being able to jump in and get up to speed and fix things and implement features is what matters.

No one cares at all if you know an algorithm by heart. Plenty of critical services are built upon crude O(n²) brute force implementations that are good enough, and no one bothers to waste 5mins to even switch the underlying container.

You're talking about a field where premature optimization is recognized as one of the worst and most fertile sources of problems. And who exactly is behind this problem? Precisely these short-sighted theorists, who believe big O musings has critical importance when it has close to none beyond superficial analysis of "should I use an array, a linked list, or a hash set"?

I know people with a boot camp and experience with a framework who landed jobs in FANGs, and I know PhDs in computer science that can recite inconceivable algorithms who can't get a job in the industry. How do you explain that, if waxing lirically about computer science is supposedly so critical?

Re:Why won’t anyone teach me math? by heavyset_go on Friday February 11, 2022 @06:10PM (#30308125)
I know it's en vogue to shit on boot camp students, at one point I did as well, but my experience with working with such students is that after a few years, they are on par with their peers who studied CS in college. Yes, they probably won't work in research roles or roles that require heavy math skills, but when it comes to your typical software engineering role, they're fine.

Also, runtime analysis isn't that difficult of a skill to pick up.

Re:Why won’t anyone teach me math? by pessimizer on Friday February 11, 2022 @06:25PM (#30308246)
I don't know that they're shitting on bootcamp students. I've taught people how to program who later became productive working programmers. I couldn't have taught someone all the stuff I learned in CS. It would have taken forever and I'm not smart enough. I do hope the people who wrote the low-level libraries that the people I taught use went through a CS program, though.

Runtime analysis isn't that difficult of a skill to pick up if you have a decent university-level math background. You can be a productive programmer without that.

Re:Why won’t anyone teach me math? by hnfong on Friday February 11, 2022 @03:58PM (#30306912)
I'm not saying you're wrong, but... I'm just sick of narratives like yours that basically encourages "pure maths people" taking over "computer science" departments and pretending that their work has "real world applications" on the one hand, taking advantage of the tech boom in recent years, and on the other hand claim that CS degrees are only for research purposes and you industry people asking for job relevant training can bugger off.

It's a really narrow mindset to put math specifically on a pedestal. A lot of hard problems with computers don't involve heavy pure math. A lot of those problems get categorized as "software engineering" and as such it is often claimed not relevant for "computer science". But given the importance of software in today's world, academic institutions seem woefully disinterested in setting up "software engineering departments", and woefully disinterested in promoting "software engineering" degrees as an alternative to the typical CS degree as a entry ticket towards a software engineering career.

You must learn this (mostly) useless skill to do enter a profession that where you're probably not going to use the skill. It's classic gatekeeping.

You might argue that research universities are not supposed to be vocational colleges, but that's a hypocritical lie too -- they basically have to be, otherwise they'd be out of an important source of funding (tuition). The existence of bootcamps are evidence that these fancy "math" people pretending to be computer scientists are basically incapable of teaching anything useful to people wanting to learn to program computers. If bootcamps are so trivial, why couldn't universities offer (for example) summer courses that do the same thing? We're not talking about CS majors here -- we're talking about non-CS non-math majors who might want to learn more about programming. Is it reasonable to force feed them CS type pure math as well ? (read the parent posts again -- Quote: 'I went to the University of Waterloo and took a "Intro to CS for non-math students" course.'

Physics majors are called physics majors, not "telescope science" majors. If there's a "telescope science" department I expect them to teach, in addition to theoretical physics, practical courses on how to operate telescopes. My not so humble opinion is that CS departments are a misnomer, but they kept the name because CS degrees are popular, the field is flush with research moneys, and they're happily eating the profits from the software engineering cake while having their math cake too.

The pure math specialists in CS departments churn out starry-eyed students who in turn perpetuate the myth that CS is (only) math, and the impression that hard problems in software engineering is not a worthy intellectual endeavor for a research university. This attitude is going to hurt us in the long term. No amount of strawman arguments about ReactJS bootcamps is going to change this fact. Those bootcamps are evidence of a total failure of academic institutions to actually do research on and teach software engineering.

------

In case it matters, I learned all those Big-O and algorithms shit in high school, and I'm not criticizing it based on ignorance of what they are and how useful they are. If anything, those concepts are too trivial to deserve so much "screen time" in the curriculum. I have friends who work in CS departments and publishes on FOCS (you know what it is, right?) etc. I'm reasonably informed about what I'm talking about, and I'm aware that many CS researchers just happen to like to research on math-ish topics (which is of course not their fault). But what I'm trying to say is that there is a fundamental, institutional problem with people snobbishly brushing off real world software engineering problems as if they are somewhat inferior. Get off the high horse already. You don't really need to learn the concepts of limits of sequences to infinity to count 3 nested for loops and know that maybe it will be slow for large inputs. Math will actually not tell you how slow it will be -- FYI sizes under 100 is usually acceptable for O(n^3). Claiming that "trust me, this math thing is so much more fundamental" is a really poor excuse for teaching (mostly) irrelevant concepts while pretending the degree is relevant to industry.

And yes, I don't have a CS degree because I already saw through this bullshit 20 years ago when I was in high school. I made sure to learn the stuff I needed to know and skipped the kool-aid. Got a degree in law (it's an undergraduate degree here), and surprise, I actually learned a few things about law -- and they didn't shove pointless math down my throat. I mean, if they wanted to, they could model precedents as an directed acyclic graph and make a couple theorems out of it, right?

Re:Why won’t anyone teach me math? by seba_dos1 on Friday February 11, 2022 @06:57PM (#30308505)
...but CS is math. A branch of it, to be exact. A lot of hard problems with computers don't involve CS, and vice versa. What's more, in many places there are separate CS and IT degrees that you can pursue.

Your claim about gatekeeping is later contradicted by the fact that you actually didn't have to obtain that degree at all. I didn't have to either.

I do agree that "Computer Science" is a somewhat misleading name though. It's pretty much as if we called astronomy "Telescope Science" and then wondered why people that come studying it expect to learn about building telescopes, with others arguing that you need to know a fair share of physics in order to build a good telescope anyway (which of course is true, but...).

Re:Why won’t anyone teach me math? by hnfong on Saturday February 12, 2022 @02:22AM (#30310673)
Yes. But also, names are important. CS used to be mostly math for historical reasons. But it doesn't have to be that way, and we have actually solved a lot of the math problems in these couple decades (P!=NP is, of course, nowhere in sight...). We've found a lot of new problems that don't necessarily involve math, and I don't think we should invent a dozen more new names for these fields just for keeping the historical baggage "pure" for maths. I think we probably need to ask ourselves, if CS really is (and should be) just maths, why not just do all the CS research in the maths department and make CS do something that actually relates to real world computers and computing?
Re:Why won’t anyone teach me math? by yellowcake0 on Saturday February 12, 2022 @05:27AM (#30311632)
> ...but CS is math. A branch of it, to be exact.

And biology is just self-replicating organic chemistry.. and chemistry is just the physics of outer electron shells.

Re:Why won’t anyone teach me math? by ALittleLight on Friday February 11, 2022 @09:08PM (#30309254)
If someone is studying physics to become a physicist they would be a fool to complain about learning all that math. If someone is learning physics to be a telescope operator then it seems like they have a reasonable complaint.
Re:Why won’t anyone teach me math? by folkhack on Friday February 11, 2022 @02:34PM (#30305998)
This is exactly why I think the distinction between computer science and computer engineering is incredibly important.
Re:Why won’t anyone teach me math? by chaosite on Friday February 11, 2022 @05:22PM (#30307713)
Yeah, Computer Engineering is that twilight area between Computer Science and Electrical Engineering where you care that your algorithm is PSPACE-complete but also need to know how it's affected by parasitic capacitance, right?
Re:Why won’t anyone teach me math? by anfilt on Friday February 11, 2022 @05:39PM (#30307855)
Lol made me laugh, that is one way to say it.
Re:Why won’t anyone teach me math? by anfilt on Friday February 11, 2022 @05:38PM (#30307854)
I went to school for computer engineering. It's a hybrid of EE and CS. It's not a not a programming only degree.
Re:Why won’t anyone teach me math? by sizzle on Friday February 11, 2022 @03:30PM (#30306634)
Very articulate, explained what has been on my mind for a while. Boot campers need to level up their learning to compete in the future.
Re:Why won’t anyone teach me math? by overkalix on Friday February 11, 2022 @06:20PM (#30308197)
Amen brother.
Re:Why won’t anyone teach me math? by throwawaynay on Friday February 11, 2022 @04:01PM (#30306946)
Math is math, not programming.

No it's not about react or ror.

It's about solving actual real life problems. 99% people don't do CS to do academical research, but to work on life change products(and that's more likely to come from user research and fast prototyping, than from theoretically perfect fundamental research).

Some people build millions dollars software products, solving real life problems, without having a clue what big-O, quadratic functions, or even a lot of actual theoretical programming concepts are. And I personally know a bunch of those people. Some people know almost everything there is know about CS theory and never build anything useful to anyone.

Physics have literally nothing to do with CS or SWE. I think this is just pointless elitism.

Re:Why won’t anyone teach me math? by closeparen on Friday February 11, 2022 @01:00PM (#30304737)
Computer Science at my school had two branches, theory and systems. Discrete Math and Algorithms are just two classes out of ~17 in a major. They are the two theory classes everyone takes, but there's a whole world beyond that even in the theory track. It continues to be baffling that people on Hacker News think Algorithms == Computer Science.

Personally, when I chose electives I chose systems electives: Operating Systems, Databases, Networks, Programming Languages, Graphics, etc. In these classes the bulk of the work consisted of programming in C.

Re:Why won’t anyone teach me math? by gmadsen on Friday February 11, 2022 @01:26PM (#30305131)
programming languages is pretty theoretical. Or at least if taught from a logic and lamba calculus view point.

I suppose it could be systems if you are building a compiler or vm, but that to me is different that programming languages.

Re:Why won’t anyone teach me math? by sporkland on Friday February 11, 2022 @03:43PM (#30306754)
As with most CS stuff there's the standard split here: type theory, languages and grammars and pumping lemma on the theoretical side and recursive descent, lex/flex/yacc/bison, programming language exposure lisp, prolog, assembly, etc on the practical side. Dominance frontiers and register allocation algorithms were some of the places where they really started to intersect for me. I guess also regular languages, regular expressions and balanced parens is another place where they intersect.
Re:Why won’t anyone teach me math? by chaosite on Friday February 11, 2022 @05:29PM (#30307777)
So in my CS program, those were split into several separate courses.

You had an (mostly theoretical) Automata and Formal Languages course, which had regular/context free languages (including regexs), grammars, and pumping lemma. lex/flex/yacc/bison, recursive descent, and LL(1) LR(n), LALR were in a Compilers course. Programming Language exposure to a functional language (ML) and a logic language (Prolog) plus some other stuff was the Programming Language course.

Type Theory, lambda calculus, and so on is relegated to advanced graduate courses that are given when a faculty member feels like it.

Re:Why won’t anyone teach me math? by mcguire on Friday February 11, 2022 @04:13PM (#30307067)
You realize lisp is based on the lambda calculus and prolog is based on formal logic, right?

The theory and practical realms are very tightly intertwined in programming/computer science/whatever you want to call it as long as it isn't "information technology".

On the other hand, the portion of "math" that is applicable computer science/software development/whatever is pretty distinct from much of the "math" in math departments.

Re:Why won’t anyone teach me math? by closeparen on Friday February 11, 2022 @02:02PM (#30305617)
We wrote some programs in lambda calculus, but I mainly remember working on an ML interpreter. Type checking, exceptions, free variables, etc.
Re:Why won’t anyone teach me math? by mcguire on Friday February 11, 2022 @04:14PM (#30307078)
"Historically, ML was conceived to develop proof tactics in the LCF theorem prover (whose language, pplambda, a combination of the first-order predicate calculus and the simply-typed polymorphic lambda calculus, had ML as its metalanguage)."

-- https://en.wikipedia.org/wiki/ML_(programming_language)

Re:Why won’t anyone teach me math? by Retric on Friday February 11, 2022 @12:50PM (#30304555)
Computer science is programming the same way structural engineering is construction.

The goal is to be able to efficiently solve non trivial problems.

Re:Why won’t anyone teach me math? by vkou on Friday February 11, 2022 @03:28PM (#30306612)
No, a compiler is to programming as what construction is to structural engineering.
Re:Why won’t anyone teach me math? by mcguire on Friday February 11, 2022 @04:18PM (#30307103)
"It is the most common way of trying to cope with novelty: by means of metaphors and analogies we try to link the new to the old, the novel to the familiar. Under sufficiently slow and gradual change, it works reasonably well; in the case of a sharp discontinuity, however, the method breaks down: though we may glorify it with the name "common sense", our past experience is no longer relevant, the analogies become too shallow, and the metaphors become more misleading than illuminating. ... On the historical evidence I shall be short. Carl Friedrich Gauss, the Prince of Mathematicians but also somewhat of a coward, was certainly aware of the fate of Galileo —and could probably have predicted the calumniation of Einstein— when he decided to suppress his discovery of non-Euclidean geometry, thus leaving it to Bolyai and Lobatchewsky to receive the flak. It is probably more illuminating to go a little bit further back, to the Middle Ages. One of its characteristics was that "reasoning by analogy" was rampant; another characteristic was almost total intellectual stagnation, and we now see why the two go together. A reason for mentioning this is to point out that, by developing a keen ear for unwarranted analogies, one can detect a lot of medieval thinking today."

-- https://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD103...

Re:Why won’t anyone teach me math? by Retric on Friday February 11, 2022 @06:54PM (#30308474)
I didn’t use an analogy, that requires comparing dissimilar things.

Some comparisons are just literally true, for example Honda vs Acura is the same as Lexus vs Toyota. Their both high end car brands owned by a parent company that also puts out mass market cars. That’s a description of strategy not trying to extract meaning from caparison between dissimilar things.

Re:Why won’t anyone teach me math? by Retric on Friday February 11, 2022 @06:12PM (#30308146)
Compilers don’t build crap on their own, and machine code is still a thing.

Anyway, a farmer can build a shack without talking to a structural engineer, and a banker can muddle through coding an excel spreadsheet. But trying to muddle trough via trial and error isn’t enough to build the Burj Khalifa or a modern OS. Thus we want to use formal methods to minimize risks, costs, etc. That’s what gives rise to CS and engineering disciplines, not simply trying to staple math onto a field.

Re:Why won’t anyone teach me math? by barkingcat on Friday February 11, 2022 @01:58PM (#30305562)
an exercise of "write a function in Java that factors a quadratic." is neither computer science nor programming.

The course described doesn't seem to match your description of comp sci either.

Which matches my experience of a technical course in Waterloo. They need to update their pedagogy.

Re:Why won’t anyone teach me math? by saurik on Friday February 11, 2022 @07:22PM (#30308701)
^ This is the best comment of all the various replies, as it directly addresses the actual content of the thread: it wasn't that "oh no I had to spend so much time learning the mathematical basis of computer programming and I just wanted to throw together a shopping cart in Ruby" it was "most of my time was wasted learning about the task I was given as the goal of the program--which happened to be math but could have been something inane like the physics of a roller-coaster--instead of about the meta-task of how to actually analyze, automate, or implement arbitrary tasks".
Re:Why won’t anyone teach me math? by baq on Saturday February 12, 2022 @02:51AM (#30310804)
The problem is, people don’t learn well when they’re taught general things and are told to specialize on their own. People learn best from examples and then generalize using their general purpose jumping to conclusions machine called the brain.

I agree simple math problems may not be the best exercises to program, but the point is you should be doing a lot of such specific (but diverse) exercises to get the general idea.

Re:Why won’t anyone teach me math? by jacobolus on Friday February 11, 2022 @04:38PM (#30307319)
Computer science is a (poorly named) branch of mathematics. Expecting it to primarily teach programming practice per se is like expecting a biology degree to consist primarily of practical medical training. (Of course CS is helpful for programming, just as biology is helpful for medicine.)
Re:Why won’t anyone teach me math? by criddell on Friday February 11, 2022 @07:20PM (#30308692)
There’s more than one type of program. Some schools have developed CS programs that follow an engineering-type syllabus.
Re:Why won’t anyone teach me math? by analog31 on Friday February 11, 2022 @06:29PM (#30308275)
As others have mentioned, CS is not programming. My mom taught programming at a community college. I learned programming in high school.

I think that some of the paradoxes of CS vs programming have to do with a single academic discipline trying to serve conflicting needs, such as:

1. Teaching programming to students who have never programmed before. This is handled differently by different fields. For instance math majors are expected to have a fair amount of high school math in the bag before starting college, but psychology majors have rarely taken psychology in high school.

2. Students with an actual interest in CS itself as a field of study.

3. Students who know that they want to get a college degree in something but are hoping for a career in programming.

4. Competitive students who know that CS is the "hot" major right now.

And high school guidance counselors are pretty much in the dark about it. On the other hand, every college major teaches you more stuff than you will use at your first entry level job. "Why do we need to learn this" is a constant refrain. For instance most engineers will never use their college math after college.

For me, way back in 1982, I skipped CS altogether and studied applied programming by majoring in math and physics.

Re:Why won’t anyone teach me math? by weaksauce on Friday February 11, 2022 @12:32PM (#30304253)
computer science is not programming though it often involves doing that. it's a math degree with many different topics all related to computing and math. So yeah if they wanted to learn how to program java that's a completely different track. they generally don't teach you much programming or other practical things at a university track. you need to know it but it's ancillary to the degree.
Re:Why won’t anyone teach me math? by ghaff on Friday February 11, 2022 @01:17PM (#30304982)
It depends on the school to a significant degree. At some schools, CS is associated with the math department. At others it's in the engineering school and may even be some variant of a CS/EE degree.
Re:Why won’t anyone teach me math? by l33t2328 on Friday February 11, 2022 @12:40PM (#30304381)
A computer science degree isn’t a math degree any more than a physics or chemistry degree is a math degree.

Classes like Computer Organization, Operating Systems, Networking, Databases, Software Engineering Fundamentals, the first year programming sequence, etc. could hardly be considered math courses.

Re:Why won’t anyone teach me math? by weaksauce on Friday February 11, 2022 @01:30PM (#30305197)
> Classes like Computer Organization, Operating Systems, Networking, Databases, Software Engineering Fundamentals, the first year programming sequence, etc. could hardly be considered math courses.

so a math degree has to have every single course be a math course? do they not take literature?

Networking had me prove the theoretical limit of networks using calculus and other things, databases had us using relational algebra and other proofs... it certainly wasn't `select * from users;` kinda course. it's a math degree at least at my university and most reputable ones it is. are all classes 100% pure math? no of course not but the emphasis is math.

Re:Why won’t anyone teach me math? by l33t2328 on Friday February 11, 2022 @03:23PM (#30306550)
And a physics class will have you prove facts about momentum using calculus. A chemistry class may use basic elements of group theory, and it won’t be a “pour this chemical into that beaker” kinda course.

They’re not math degrees, and neither is CS. The emphasis isn’t math in a CS program at any reputable university; the emphasis is computer science.

Re:Why won’t anyone teach me math? by fredophile on Friday February 11, 2022 @06:11PM (#30308132)
The University of Waterloo, which came up elsewhere in the comments, is one of the top CS universities in Canada and gives out B.Math degrees with a CS major.

When you say, "the emphasis is computer science" what exactly does the term "computer science" mean to you? I'm not trying to be a jerk here. I think the term "computer science" covers several related, but distinct, disciplines so it's helpful to know exactly what the other person is referring to.

Re:Why won’t anyone teach me math? by salamandersauce on Friday February 11, 2022 @04:20PM (#30307123)
My databases course was very much a "select * from users" kinda course. Oh there was a little bit about good practice for relational DBs and what not but I wouldn't call it a math class. Obviously this is going to depend on your school, program, etc. I took a lot of math and CS besides my discrete math CS course and algorithms I wouldn't really call them math courses any more than I would economics or chemistry. Sure there's math sometimes but it's not the focus.

General electives like a math major having to take a literature course is very different from a core required piece of the major being literature.

Re:Why won’t anyone teach me math? by weaksauce on Friday February 11, 2022 @06:08PM (#30308107)
> My databases course was very much a "select * from users" kinda course.

to be frank that doesn't sound like a very rigorous school for computer science... that sounds more like an information science curriculum instead of a proper computer science one. I'm talking university of california style learning or the equivalent.

Re:Why won’t anyone teach me math? by l33t2328 on Friday February 11, 2022 @06:18PM (#30308181)
> university of california style learning

Oh give me a break. CS 122 from UCI is exactly a “select * from users” kinda class. Sure, it has some sparse elements of theory sprinkled in, but pretending it’s some form of math class is outrageous.

Re:Why won’t anyone teach me math? by mcguire on Friday February 11, 2022 @04:22PM (#30307135)
Computer Science degrees also require literature. And some math, but not all.

But then UT Austin may not be a reputable university, computer science-wise.

[Certainly, they've redone the curriculum since I was there, and I don't like what they've done.]

Re:Why won’t anyone teach me math? by ska on Friday February 11, 2022 @04:43PM (#30307363)
> A computer science degree isn’t a math degree any more than a physics or chemistry degree is a math degree.

1 of these things isn't like the others.

There are places where theoretical physics and applied math are put together, and places where CS is put with math.

Upstream comment mentions Waterloo, where CS is as far as I know still part of the math faculty (e.g. multiple departments), not engineering. In that specific sense, every CS degree they give is a math degree - but other places give B.Math also.

This isn't just pedantry, the reason is that the boundaries are pretty fuzzy, and don't really work with the sort of absolute line you are hoping to apply.

Re:Why won’t anyone teach me math? by fredophile on Friday February 11, 2022 @02:00PM (#30305582)
Theoretical computer science predates modern computers by decades. Everything else is just implementation details.
Re:Why won’t anyone teach me math? by mcguire on Friday February 11, 2022 @04:26PM (#30307166)
Is AI computer science? Are the people going to OSDI (https://www.usenix.org/conference/osdi21/technical-sessions) doing computer science? How about SIGGRAPH (https://s2021.siggraph.org/)?
Re:Why won’t anyone teach me math? by fredophile on Friday February 11, 2022 @05:19PM (#30307687)
Was anyone arguing that they aren't? I'm sure you had a point behind these questions but I honestly don't get it. Could you please explain it?
Re:Why won’t anyone teach me math? by mcguire on Friday February 11, 2022 @05:28PM (#30307775)
"Everything else is just implementation details."

Except that those details seem to require a considerable amount of work.

Re:Why won’t anyone teach me math? by fredophile on Friday February 11, 2022 @05:59PM (#30308037)
Everything that falls under the umbrella of the term computer science can, in my opinion, be put into one of three categories: theoretical comp sci, algorithms, and coding. Theoretical comp sci is math. You don't need computers to do it and this is the foundation everything else is built on. Algorithms are all the specialized knowledge that fields like AI, machine learning, rendering, databases, etc use. You still don't need computers to make an algorithm. You need theoretical comp sci if you want to compare algorithms or determine if your desired result is even computable. Finally, you've got the implementation of those algorithms. This category is closer to doing a trade than anything else. This category includes all the stuff like choice of languages, should I use OOP, and other software engineering considerations Of the three, this is the category that most computer science graduates spend most of their time on.

The third category is mostly, if not all, implementation details. The fact that this is most of the work doesn't change that. I'd argue that most of the second category is implementation details as well.

Re:Why won’t anyone teach me math? by l33t2328 on Friday February 11, 2022 @03:26PM (#30306589)
Theoretical computer science is such a small portion of computer science that it’s a bit of a joke to pretend it’s most of the field.
Re:Why won’t anyone teach me math? by fredophile on Friday February 11, 2022 @04:12PM (#30307057)
In the post I originally replied to you mentioned a bunch of classes. Each of them, with the possible exception of software engineering, is a small portion of computer science. You could spend your whole career as a programmer and never touch a database or networked code. Even though theoretical computer science might be a small part of CS, everyone needs to use it to some degree even if they don't realize it. Can I compute X? That's theoretical computer science. Is algorithm A faster than algorithm B? Theoretical computer science again.

You also compared CS to physics and chemistry which is a bad comparison. Physics and chemistry don't have an equivalent foundation to theoretical comp sci. I'd also argue that comp sci isn't a science at all. What I do on a daily basis as a programmer is closer to plumbing than it is to science.

Re:Why won’t anyone teach me math? by mcguire on Friday February 11, 2022 @04:27PM (#30307176)
"Physics and chemistry don't have an equivalent foundation to theoretical comp sci."

Either that's not true, or there are an awful lot of physicists and chemists out there wondering why they took so many math courses.

Re:Why won’t anyone teach me math? by fredophile on Friday February 11, 2022 @04:39PM (#30307331)
Physics and chemistry use math but are not math. You can't point to an area of math and say "this is physics" or "this is chemistry." There is no chemistry without chemicals. There is no physics without physical processes. In contrast, there are areas of what we now call computer science that are math and predate computers.
Re:Why won’t anyone teach me math? by Jensson on Friday February 11, 2022 @07:45PM (#30308847)
You have mathematical physics, which is math. It is about treating physics as math, meaning you have axioms for the different laws of physics and then explore the topic that way. It doesn't care about experiments at all, it is just pure math. They still haven't properly formalized all of current physics that way, so it is ongoing work.
Re:Why won’t anyone teach me math? by spiffytech on Friday February 11, 2022 @06:59PM (#30308516)
There are lots of "computer science is not programming" comments here, which I agree with - it's a theory curriculum, and there's a reason universities now offer a separate degree in Software Engineering.

But my experience was that you can get a long ways into a Computer Science degree before anyone tells you that you're studying the wrong thing for career prep. It reminds me of a student I saw who was in Electrical Engineering because he wanted to be an electrician. The university was happy to take his money, and nobody told him he was in the wrong place.

It's important for teenagers to have guidance when choosing the educational path that's right for them. I know that at 17 I was extremely ignorant about Computer Science vs Software Engineering vs Computer Engineering. They all sound the same when you're inexperienced, just know you like computers, and don't know anyone who understands the difference.

Re:Why won’t anyone teach me math? by ajijwww on Friday February 11, 2022 @08:21PM (#30309029)
This is the greatest folly of people getting into programming. When I was in school for CS the dropout rate was precipitous basically until your junior year. This is a good thing in my opinion.

The truth is computer science is the science of computation not how to perform specific computation. General CS education follows the line of most STEM degrees, minus the degree for more advanced math like PDEs except when you're in a specialized scientific computing sub-degree. We all had to take 3 semesters of calculus, 2 semester of discrete math, and one semester of probability. ALL of these are important to various fields of CS.

Programming is rarely discussed. Most ABET programs give you one to two semesters warm up and that's the last time you see programming except for a few elective courses. Programming is a means to an end for a CS major. Once your algorithm is verified mathematically on paper you head over to the terminal to implement it and play around. Programming first then designing is like a mechanical engineer building a car and then drawing the blueprints.

The vast, vast majority of computer science even today can be done on paper (with enough paper, of course). programming is a means to an end. If you want to be a programmer get a job out of high school because it takes virtually nothing except drive to succeed. Getting a CS degree for the purpose of being a programmer is like getting a mechanical engineering degree to be a machinist. Sure, you can do machining. Just like you can do programming as a CS major. But the CS degree is so, so, so much more than programming.

Everything your daughter is learning w.r.t. math, logic, proofing, etc is CRITICAL to the generalization of ideas into algorithms that are language and implementation dependent. A mathematically verified pure algorithm can be implemented anywhere, by anyone, at any time not unlike a complicated math formula. This is why the weed out is a good thing. People who just want to be programmers leave the program and become programmers. No sense in wasting time in a CS degree if your aspirations are to become <language> expert.

Re:Why won’t anyone teach me math? by dlsa on Friday February 11, 2022 @05:30PM (#30307783)
I've taught 10 year olds to program. I have no idea where this need for complex math and that supposed requirement in programming comes from. Those kids have built all sorts of things. Non-trivial things. They haven't even studied algebra yet.
Re:Why won’t anyone teach me math? by another_story on Friday February 11, 2022 @06:39PM (#30308357)
Computer science is not programing, though. Programming is the tool used to do computer science in the same way a science lab is filled with tools to do science. You have to learn the underlying CS principles.
Re:Why won’t anyone teach me math? by Izikiel43 on Friday February 11, 2022 @07:41PM (#30308824)
The course is computer science, not computer engineering. Comp Sci is mostly about algorithms, data structures, big O, graphs and proofs.

Programming is secondary.

Source: Comp Sci major

Re:Why won’t anyone teach me math? by dekhn on Friday February 11, 2022 @01:08PM (#30304858)
comp sci is not programming- it's mathematics that is useful for computing. It's also not a science...
Re:Why won’t anyone teach me math? by kamaal on Friday February 11, 2022 @11:39AM (#30303499)
The real question is in asking, what are you going to use the programming language to build?

If you are going into a Math heavy domain, you are going to use a programming language to solve math problems, and hence involves learning Math.

This the same problem, with whiteboard leetcode style problems in interviews. Most people fail to understand why they have to put in months to years of practice into a domain to which doesn't concern with their everyday work.

On the other hand there is tremendous shortage of people with skills for real world problems and applications.

Re:Why won’t anyone teach me math? by Waterluvian on Friday February 11, 2022 @11:42AM (#30303529)
Yeah. I've been writing code as a job for a decade now and have never needed to factor a quadratic equation. I really just needed a course that helped me get introduced to programming (which I ended up using a LOT in the domain I went to school for: geography and remote sensing).

(Every time I write something like this I immediately feel defensive about being an impostor. Someone saying, "how can you not know that? You should know that. You must not be doing _real programming_.)

Re:Why won’t anyone teach me math? by tacoluv on Friday February 11, 2022 @11:56AM (#30303704)
I have been thinking about it too. I think you definitely need people who are more algorithmically inclined in software, but you also need people who can "engineer".

My current take is that the tech industry is so young that we are still struggling with proper definitions of titles and division of labor.

In my experience, after school I could do all the hard mathy/algo/data structure things, but I had no idea what REST even meant. So all startups instantly rejected me, while FAANG was very excited to have me. I felt like a huge imposter also, because if I were smart, how come I didn't know all the cool stuff that people at hackathons know.

Re:Why won’t anyone teach me math? by Waterluvian on Friday February 11, 2022 @12:05PM (#30303836)
Thank you for sharing. I love this comment because it feels like you and I are opposite sides of the same coin.

When I graduated I had no clue how to correctly statistically validate a complex robotically collected set of bathymetric data or how to mathematically explain Universal Kriging. But I did know how to design and build the data collection workflow, web portal, processing software, and PDF generation. So I was ridiculously effective at my job, but any time I was near the other roboticists, I felt like an absolute fraud. They'd be writing algorithms and formulas on a whiteboard and it was all Greek to me.

Re:Why won’t anyone teach me math? by andrewprock on Friday February 11, 2022 @01:52PM (#30305503)
I think you are describing two different activities.

You can make something, and

You can engineer something.

If what you are building is a complex distributed software system, if you are not aware of algorithms and the implications they have on the system, then you are not engineering, you are just making. And whatever it is you are making is going to fail a lot sooner that if you were aware of the algorithms and the implications.

Re:Why won’t anyone teach me math? by ipaddr on Friday February 11, 2022 @04:35PM (#30307280)
You would be surprised by how easy a system designs itself according to it's constrains.
Re:Why won’t anyone teach me math? by mlyle on Friday February 11, 2022 @11:51AM (#30303643)
> Yeah. I've been writing code as a job for a decade now and have never needed to factor a quadratic equation.

A lot of people never touch algebra again.

Some of us end up touching it a lot.

This is a bit of a tricky thing, in that:

- A whole lot of practitioners have very limited continuous math and deep CS needs, so some of these requirements are artificial barriers to some extent for many jobs.

- But is it reasonable to give them CS degrees without at least basic competence?

- Plus, part of the point of a university education is to round-out students and expose them to many things...

Re:Why won’t anyone teach me math? by mamcx on Friday February 11, 2022 @12:25PM (#30304146)
> - But is it reasonable to give them CS degrees without at least basic competence?

Yes, when we truly understand "competence".

A lot of "math" as talked here, is not part of what make a programmer competent FOR programming.

It only make you competent for THAT segments of math.

That is something that many has a hard time understanding: Programming is NOT math. Equally as math is NOT programming.

If you are studying FOR programming/CS, math is ASIDE. Is not the focus.

Similarly, if you are FOR math, programming is ASIDE. Is not the focus.

Re:Why won’t anyone teach me math? by mlyle on Friday February 11, 2022 @12:52PM (#30304586)
> A lot of "math" as talked here, is not part of what make a programmer competent FOR programming.

Basic algebra is quite useful. It's reasonable to expect most programmers to be able to do simple algebra when it comes up. There's a whole lot of reasons:

- Analysis of algorithms and work done generally involves manipulating algebraic expressions and factoring.

- Reordering numeric expressions in code means understanding the composition of operations and invertibility.

- A whole lot of work can often be avoided by being able to derive an equivalent expression.

Yes, continuous math isn't "CS math" but it's a reasonable thing to expect a programmer to be competent in.

Re:Why won’t anyone teach me math? by mamcx on Friday February 11, 2022 @10:31PM (#30309689)
> Basic algebra is quite useful

Similar, Perform music is too. And learn about accounting. Or law.

But IS still "aside". Sometimes, here in THIS function, I need to apply to algebra. But that is not the majority of the tasks, neither, learn algebra help me much about the whole endeavor (maybe only if I'm building an algebra library).

> but it's a reasonable thing to expect a programmer to be competent in.

Any person too?, maybe. I heard identical arguments in other fields. No joking, even in a law firm.

Curiously, by people that probably are better at THAT that the actual problem they have, in their niches, where -despite not be my job- I could have better idea...

Re:Why won’t anyone teach me math? by mlyle on Friday February 11, 2022 @10:43PM (#30309741)
> But that is not the majority of the tasks, neither, learn algebra help me much about the whole endeavor (maybe only if I'm building an algebra library).

Sorry-- I completely and totally disagree with you. The core things I learned about mathematical structure in algebra classes have informed my entire programming career: pure functions, commutativity and associativity, factoring and composition. Both discrete and continuous math are necessary to be a computer scientist. Yes, you may be able to do some things without them... but you're going to be limited.

> Any person too?, maybe. I heard identical arguments in other fields. No joking, even in a law firm.

Algebra is basically required for a secondary education at this point, let alone college. Yes, it has broad applicability. Even in law: we expect many lawyers to be competent at calculations that are best addressed with algebra.

Re:Why won’t anyone teach me math? by fredophile on Friday February 11, 2022 @02:16PM (#30305782)
If you want to learn to program go to a bootcamp or a 2 year college program. A degree in CS should be about much more than programming.
Re:Why won’t anyone teach me math? by mamcx on Friday February 11, 2022 @10:32PM (#30309695)
> A degree in CS should be about much more than programming.

Sure, but CS is still about "Computing", not algebra or calculus!

Re:Why won’t anyone teach me math? by mlyle on Saturday February 12, 2022 @01:17PM (#30314894)
We're basically talking about machines that are the embodiment of applied mathematics. Yes, a lot is discrete, but a lot is very well approximated with algebra and algebra is an important tool to have at hand when tackling discrete math.
Re:Why won’t anyone teach me math? by Waterluvian on Friday February 11, 2022 @11:58AM (#30303729)
To be clear, this course was exclusively "CS for NON CS/math majors." If you were in CS, you were not allowed to take it.

They also offer a lot of "math for non mathies" courses, which would have been a great place to teach quadratics.

Re:Why won’t anyone teach me math? by BiteCode_dev on Friday February 11, 2022 @12:19PM (#30304030)
Yes, but I doubt you had write code to factor a quadratic equation because it's a solved problem and you have libs that will do it for you.

Imagine if you had been given an exercise of such a low level nature for every single topic you might touch in IT in the future. You would have had to code a function to do UTF8 decoding, JPEG rendering, TCP/IP error correction, font rasterization, ray tracing, PEG parsing, an USB driver, data diffing, model training, etc.

Also, you don't learn much about programming by creating a function to factor a quadratic equation. You seldom learn about types, side effects, algo complexity, or even about collections, iteration, branching, memory, debugging, etc.

You just learn to badly translate a very specific, narrow problem to the language you use.

Re:Why won’t anyone teach me math? by mlyle on Friday February 11, 2022 @12:30PM (#30304223)
> Yes, but I doubt you had write code to factor a quadratic equation because it's a solved problem and you have libs that will do it for you.

Actually, I have, because I've done a fair bit of embedded development and "toss this massive lib on" is not always a reasonable solution. Inferring the structure of plant in controls is often a polynomial factoring problem and it's not something that one tosses Singular or FLINT at on small hardware. But aside from that...

Factoring a quadratic by hand is something I expect a CS major to know how to do, because they might very well be doing algebraic manipulation to develop solutions to real world problems.

And someone who knows how to factor a quadratic by hand knows a number of formulaic (suboptimal) steps to perform it-- the exact kind of things that's easiest to translate to code before you have gotten into that mindset of explicit thinking.

So--- declare and manipulate variables to do the quadratic formula. OK, what if we want to confine ourselves to integers, what can we do? Can we loop and search solutions in some meaningful way like a human would?

It's a completely reasonable space to explore as an early programming problem for someone who's familiar with it.

I'm teaching a secondary student to program right now. In his core math class he's doing a lot of trig. In turn, we're doing a whole lot of exercises like "make these dots chase the other dot using atan2 and sin/cos".

Re:Why won’t anyone teach me math? by BiteCode_dev on Friday February 11, 2022 @12:53PM (#30304619)
> Actually, I have, because I've done a fair bit of embedded development

Can't argue there :)

> Factoring a quadratic by hand is something I expect a CS major to know how to do

Agreed, I'm more concern about teaching programming while asking such a task. Once you have solid foundation, you can have valuable insights by doing this exercise about float based maths, moving variables around, naming things, translating maths to code. But before that, I think it would hinder learning.

> And someone who knows how to factor a quadratic by hand knows a number of formulaic (suboptimal) steps to perform it-- the exact kind of things that's easiest to translate to code before you have gotten into that mindset of explicit thinking.

I disagree, because it takes 2 abstracts things and mix them together. It's a harsh first step. As a teacher, I get better results when I map coding to some concrete reality first. Later on, yes, you can mix.

> I'm teaching a secondary student to program right now. In his core math class he's doing a lot of trig. In turn, we're doing a whole lot of exercises like "make these dots chase the other dot using atan2 and sin/cos".

This is what I'm talking about. I have terrible results with those for anybody who doesn't really love maths. But creating small games and analysis the text of their favorite song are instant hits.

Re:Why won’t anyone teach me math? by mlyle on Saturday February 12, 2022 @08:36PM (#30318257)
> This is what I'm talking about. I have terrible results with those for anybody who doesn't really love maths. But creating small games and analysis the text of their favorite song are instant hits.

He def doesn't love math. But he just finished the swarm thing and it's awesome.

Re:Why won’t anyone teach me math? by fredophile on Friday February 11, 2022 @02:20PM (#30305847)
I can't think of a single time I've needed to implement a linked list but knowing how to do it is still useful.

A quick search tells me that factoring quadratic equations is covered around grade 8 or 9. I'm guessing that the instructor assumed that everyone would have enough math to know how to do this or quickly refresh their memory so they could focus on the programming aspects and not the problem solving.

Re:Why won’t anyone teach me math? by Jtsummers on Friday February 11, 2022 @12:29PM (#30304219)
> Yes, but I doubt you had write code to factor a quadratic equation because it's a solved problem and you have libs that will do it for you.

It is not totally unreasonable to expect students in an intro to CS course to have some basic competency in algebra (university dependent). Giving them a problem in a domain they're already familiar with (or that where familiarity can be expected) lets them, in theory, focus on the algorithm/data structure side without having to also be taught the domain. Most of the exercises in a first CS course are solved with libraries (standard in some languages, or 3rd party in others). That doesn't mean it's not useful for developing the knowledge the course is aiming for.

Do you also think we shouldn't teach arithmetic and should only teach using calculators? (You may, actually, I know people who think that way.)

Re:Why won’t anyone teach me math? by BiteCode_dev on Friday February 11, 2022 @12:54PM (#30304637)
No, but I do think an intro to programming should be done without math. You can mix them later, once the students know what's up.
Re:Why won’t anyone teach me math? by Jtsummers on Friday February 11, 2022 @01:05PM (#30304811)
It's silly to make a universal statement like that, that's why I qualified it in my own. Whether or not math should be present in the assignments depends on the university and the background of its students. MIT's SICP could use calculus in its course because the students were either also in calculus or had already taken calculus when they got to the course. It was expected in their situation. Waterluvian, helpfully, clarified that the course they were talking about was for non-CS majors, so whether or not a basic algebra concept is appropriate would depend on the background of those non-CS majors. Are they all STEM majors or 99% STEM majors? Then you can assume they know algebra. Are there more humanities and arts majors? Then you can't, or shouldn't.

Besides, most intro to CS courses also include basic algorithm analysis (that may not be true for the non-major version of the course) which means the course will require the use of at least arithmetic, probably some algebra, and some basic calculus. So why not write programs that make use of math when you're already assuming the students are competent in basic math?

At least at the universities I was familiar with, a non-major first CS/programming course was generally targeted to STEM, but not CS, majors, so again familiarity with algebra would be a reasonable assumption (at GT, these were taken by the various engineering majors and used Matlab as the language of instruction, I think they previously offered Fortran).

Re:Why won’t anyone teach me math? by whimsicalism on Friday February 11, 2022 @12:19PM (#30304042)
Is factoring a quadratic equation supposed to be some example of some obscure math principle that is useless?

I feel like I'd be more on board if you said something like "compute an integral", etc. Factoring is just.... a single equation.

Re:Why won’t anyone teach me math? by thrwy_918 on Friday February 11, 2022 @04:01PM (#30306961)
>Is factoring a quadratic equation supposed to be some example of some obscure math principle that is useless?

I've been a successful software engineer for over ten years, yet without looking it up, I don't even know what "factoring a quadratic equation" means, let alone how to do it.

Re:Why won’t anyone teach me math? by Jtsummers on Friday February 11, 2022 @04:12PM (#30307059)
It's from high school algebra, it's a specific instance of "factoring" where the equation has the form: ax^2+bx+c=0 and you want (x+r_1)(x+r_2)=0. "factoring" is the general process of finding what things multiply together to produce a term. Which is where we, in software, get the notions of "factoring" (described well in the context of Forth with Thinking Forth or Starting Forth, can't remember which, maybe both) and "refactoring".

Code refactoring and factoring in algebra are related in the sense that they aren't meant to change the system (that is, its meaning or behavior), but instead are meant to change its appearance. In particular, in the above, if you can factor it out you end up with the two roots (what I termed r_1 and r_2) of the equation, which are useful for various other things.

Re:Why won’t anyone teach me math? by raegis on Friday February 11, 2022 @06:07PM (#30308100)
> "factoring a quadratic equation"

This is hard to understand because it doesn't make sense. Quadratic polynomials (or more generally, algebraic expressions) are factored. Equations are not factored.

Re:Why won’t anyone teach me math? by whimsicalism on Friday February 11, 2022 @08:08PM (#30308964)
?

x^2 + 2x - 3 = 0 = (x+3)(x-1)

This is not factoring?

Re:Why won’t anyone teach me math? by TillE on Friday February 11, 2022 @04:08PM (#30307019)
It's something you learn in middle school or high school math. Pretty good bet that a college freshman would be familiar with it.
Re:Why won’t anyone teach me math? by tehjoker on Friday February 11, 2022 @01:01PM (#30304748)
It's a single equation taught in high school. I'd expect nearly every adult who'd been through high school to know it or at least have basic familiarity.
Re:Why won’t anyone teach me math? by ghaff on Friday February 11, 2022 @01:21PM (#30305052)
I expect you're relatively young. I know what you're talking about but don't remember exactly what it looks like and doubt I could derive it--and probably haven't used it in decades.
Re:Why won’t anyone teach me math? by WastingMyTime89 on Friday February 11, 2022 @01:54PM (#30305525)
I’m not young but HN has an international readership and you have to factor in that for people coming from countries where a heavy focus is put on mathematics the average level in the US is hard to fathom. I learned how to solve quadratic equations during my second year of highschool and by the end of it I could basically do it in my sleep, same things with basic derivation. It’s the same for everyone around me.

The idea that you might not know how to do it as someone working in a STEM related field wouldn’t come to me.

Re:Why won’t anyone teach me math? by whimsicalism on Friday February 11, 2022 @05:18PM (#30307680)
This is not an international difference, everyone coming out of a non-urban public school system will know how to factor a quadratic equation. It is typically taught year 1 of highschool.
Re:Why won’t anyone teach me math? by ghaff on Friday February 11, 2022 @06:39PM (#30308363)
And those of us who may not have done it in multiple decades may just not remember.
Re:Why won’t anyone teach me math? by mcguire on Friday February 11, 2022 @04:31PM (#30307222)
Don't look at me; I have a PhD in CS but it took me four semesters to get through the required two semester calculus course as an undergrad. (Fortunately, the linear algebra course was mostly matrix algebra and logic and I are best buds.)
Re:Why won’t anyone teach me math? by FredPret on Friday February 11, 2022 @12:05PM (#30303842)
> I have never needed to factor a quadratic equation

I think this very much depends on what you end up specializing in. I bet a lot of the code we write every day has a dependency buried somewhere where all sorts of equations end up getting factored.

Re:Why won’t anyone teach me math? by andrewprock on Friday February 11, 2022 @02:23PM (#30305891)
Yes, saying "I have never needed to factor a quadratic equation" is akin to saying "I have never needed to fly on an airplane".

Both statements can be true, but neither negates the utility of the activity.

Re:Why won’t anyone teach me math? by ww520 on Friday February 11, 2022 @02:10PM (#30305695)
That’s what programming is. Programming is applying computerized solutions to different problem domains. To make a successful problem, you have to learn about the targeted domain and sometimes become an expert in it. In this case the problem domain is quadratic factoring.
Re:Why won’t anyone teach me math? by colinmhayes on Friday February 11, 2022 @06:05PM (#30308084)
This isn't helpful for say econ majors who want to build econometric models though. The class sounds like it is specifically for non cs majors so it doesn't really make sense to get into theory that might not apply to their studies.
Re:Why won’t anyone teach me math? by ww520 on Friday February 11, 2022 @09:00PM (#30309207)
Right. Sometimes we are forced to go outside of our comfort zone. A software engineer might not care much about insurance actuary, bank money transfer, railroad signal rules, or econ supply/demand curves. But when the job calls for creating programs to do those areas, he better learns those fast, on the fly. That class taught an important reality of software development. You have to be willing to learn something you're not familiar to get the job done, and how well you understand the problem domain directly affects how well the program is developed.

So the class was not tailored for the econ major, but at the college level, students need to learn that no one is going to hand a solution on a silver platter for your problem.

Re:Why won’t anyone teach me math? by strangemonad on Friday February 11, 2022 @01:35PM (#30305262)
Long story short, if you want to do something off the beaten path, you need to get to know some of the faculty.

I also went to Waterloo but as a cs undergrad. I was also a student rep on the undergrad curriculum committee (this was all some years ago).

You’ll notice that all the non Math / CS major classes are completely different offerings. Non math majors can only take those “other” cs classes and likewise math majors can’t take them and must take the classes intended for CS students. Unless things have changed, very few faculty tech these non cs major CS classes (mostly sectional lecturers).

My overall impression (at the time) was that these classes weren’t that great. They mostly taught you to program (in Java) but exercises were grounded heavily in math problems but didn’t really teach math.

If you really want to get a good sense of “computer science” (the discipline) rather than just learn to program, I’d try and get to know the profs that teach 135 and see if you can get a specific override exception. You could possibly do the same for 136.

Going deeper down the cs course tree is a bit harder. Part of the challenge is the depth and pacing you want to offer majors doesn’t always align with the broader overview non majors are looking for. Eg you might want a single course covering algorithms and data structures rather than 3-4 courses and you might not care about the math involved to prove amortized costs.

If you want to go beyond 135/136 there are a few possible paths that come to mind and involve finding cross appointed faculty and seeing if they might sponsor you for an override into their class offering. If you’re in psych, the cog Sci route would get you to know people who are cross appointed with AI folks, arts used to have cross appointed faculty with the computer graphics lab (Craig Kaplan is a friendly face in the CGL). Physics obviously has overlap with the quantum computing lab. I don’t know any of current the undergrad ce advisors but J.P. Pretti might be able to point you in the right direction

Re:Why won’t anyone teach me math? by mcguire on Friday February 11, 2022 @04:28PM (#30307203)
Roughly the same was true at UT Austin when I was there. They introduced CS-for-non-majors classes, but I don't know anyone who would have touched them with a 10-foot pole.
Re:Why won’t anyone teach me math? by artificial on Friday February 11, 2022 @11:38AM (#30303479)
I like learning files and sockets once the syntax is a familiar and then branching out to error handling followed by more advanced topics and then circling back around to testing. Project based learning resonates best with me, hands on cements knowledge rather than pure theory.
Re:Why won’t anyone teach me math? by ska on Friday February 11, 2022 @04:35PM (#30307273)
A couple of things worth considering

1) CS::software development is a bit like physics::mechanical engineering

2) CS at waterloo definitely skews to the cs-is-part-of-applied-math thinking in many ways. Other university CS programs are very different.

I'm not saying a "practical programming for non math/cs types" course isn't a good idea, just that really isn't what you signed up for.

Re:Why won’t anyone teach me math? by fredophile on Friday February 11, 2022 @01:44PM (#30305394)
I can't say I'm too surprised. Waterloo is unusual in that they offer a Bachelors in Math in addition to the more standard B.Sc. and B.A degrees. Computer Science majors there graduate with a B.Math.
Re:Why won’t anyone teach me math? by alibero on Friday February 11, 2022 @08:00PM (#30308931)
Waterloo also offers a BCS which has fewer math requirements than the BMath: https://cs.uwaterloo.ca/current-undergraduate-students/major...

The BMath option is only required if you want to have a double major in CS and a different area of math. Otherwise the BCS is strictly more flexible: you have 5 fewer math courses and 5 more electives (which you may use to take math courses if you really want to). From my experience most people are graduating with BCS unless they really like math.

Re:Why won’t anyone teach me math? by fredophile on Friday February 11, 2022 @08:44PM (#30309126)
Interesting. At the time I was picking universities that wasn't an option they offered.
Re:Why won’t anyone teach me math? by 908B64B197 on Saturday February 12, 2022 @12:34AM (#30310257)
> The thing was designed and taught by CS faculty, so naturally they taught you the basics of programming using math.

I would have honestly made the same assumption that students interested in programming would have no problem with high school level math. Maybe an intro course aimed toward the business school wouldn’t be as math-heavy?

6.001 was notorious for starting out with examples from calculous and required some proof reading. But it wasn’t aimed at anyone. It’s tougher to enroll in 6.001 than most other intro courses.

Re:Why won’t anyone teach me math? by inetsee on Friday February 11, 2022 @06:13PM (#30308150)
"Enjoy this wonderfully styled course page"

I have the Tranquility! extension on my browser, which turns that web page into something quite readable. The web page as it is is the complete opposite of something readable.

https://addons.mozilla.org/en-US/firefox/addon/tranquility-1...

Re:Why won’t anyone teach me math? by alasr on Friday February 11, 2022 @04:15PM (#30307079)
IMHO CS, software engineering and computer programming are very different but closely related fields. Each field focus and work on different (but complementary) set of activities in order to efficiently solve a computation-based automation problems. Based on the scale and complexity level of software artifacts, you'll see an individual, a small team or very large team are working on a given challenge/problem[1].

CS is, with mathematics as its foundation, focused more on the abstract and computational aspects[2] of a computational problems/challenges. As expected, CS solutions are usually very generic and independent of any specific programming language, it presents its solution in abstract forms and along with some code (written in some programming language). From CS's point of view, the coding part of its solution is primarily[3] for demonstrating that the solution of a specified problem is computable and efficient (for some practical purpose) and can be verified independently if needed.

Now, computer programming languages are just one of the tools which helps us write those codes to "communicate" our solutions to computers and fellow programmers (who, as part of the team, need to understand in order to help developing and maintaining the software program). And, there're other alternative programming languages available which practically does the same job (though some of them are more appropriate and suitable than others, due to reasons/concerns outside the scope of a particular programming language[4]).

Having said all the above, I think I understand the core of the problem(s) you (and students in similar position as you) described here, in your post. I think I've faced similar challenges while trying to understand some non-CS course (for example, accounting and finance). Being new to any field of STEM/business/..., it's easy to get pulled into non-important areas of studies instead of focusing on the core ideas/concepts of the course. And I believe it's always course instructor primary responsibility making sure that core concepts/ideas are made very clear at the course and individual lectures level and, similarly, corresponding supporting concepts/activities which make up the course and its core concepts.

NOTE:

I've few more thoughts on the subject; however, I think, my current post is already getting too long so I stop this post, at this point.

---

[1] - Btw, as you may already know, team size alone doesn't indicate that they're working on a easy or difficult problem. Sometimes it's just a consequence of some financing/time constraints or inefficient team management.

[2] - For example; data model, data structure and algorithm.

[3] - Other benefits are secondary and can be considered as bonus.

[3] - Reasons/concerns related to either CS or software engineering.

Re:Why won’t anyone teach me math? by spicymaki on Friday February 11, 2022 @11:55AM (#30303696)
Here is my take:

This class seems to be a filter class. A class designed to sift out students that would not cut it in a engineering/science curriculum. They are not designed for students to learn, they are designed as a barrier. That in itself is fine if it happens early enough so students can regroup and reevaluate what to do next with their lives. What I don't like about this is that there is a mismatch between what colleges are saying they want to do and what they are actually doing. They should actually state that in the name and description of the course. I wish schools would be transparent so they don't waste the money and time of the students. This won't happen of course, we will just continue the kabuki dance.

Re:Why won’t anyone teach me math? by pevey on Friday February 11, 2022 @01:37PM (#30305293)
That is often given as an excuse for this common experience, but it is not really intended. Top schools are assessed on their graduation rates. It is part of the rankings they are obsessed with. It serves no one--students or schools--for students to be weeded out in these intro courses.

The truth is just that even top schools in the US (and I suspect, ESPECIALLY top schools, more so than middle-tier schools) are really, really bad at teaching STEM, even to students very interested in learning. I still have clear memories 20 years later of my awful Calc 3 (multivariate) class. In one lecture, the prof spent the entire time on one problem on the chalkboard. He never looked at his notes. At the very end, he looked at his notes and then at the solution on the board and then back at his notes...and stuttered that the solution on the board was incorrect. Somewhere along the way he made a mistake. "But you get the idea," he said. No, we didn't. Just awful. We were completely on our own. All this guy cared about was his research. We were a distraction to him.

Re:Why won’t anyone teach me math? by softwarebeware on Friday February 11, 2022 @04:10PM (#30307035)
> That is often given as an excuse for this common experience, but it is not really intended. Top schools are assessed on their graduation rates. It is part of the rankings they are obsessed with. It serves no one--students or schools--for students to be weeded out in these intro courses.

Unless I misunderstand what you're saying here, it really is intended. "Top schools are assessed on their graduation rates" so if they don't admit students that will not graduate from the major into the major in the first place, they improve their graduation rates. Therefore, it does serve the school. And it probably serves the student too, since they only spend a quarter or two getting weeded out, rather than a few years and then hit a dead end.

Re:Why won’t anyone teach me math? by xxpor on Friday February 11, 2022 @12:43PM (#30304446)
Yes exactly. I didn't go to an Ivy League, but it was still pretty good.

The 100 level big classes were waaaaay harder than classes for the actual major. Lots of dumb problem sets that were huge just to be huge. Lots of time writing lab reports with error calculations etc.

The one hack I figured out was that if you didn't include an error calculation in your lab report, they only took off 1 point. Given it took 20+ minutes to write it up in the format they wanted using the Word equation editor (this was before I knew Latex), the -1 was absolutely worth it.

I never, ever, had to spend 60-70 hours a week outside of class doing work though. That's insane.

Re:Why won’t anyone teach me math? by bsder on Friday February 11, 2022 @07:12PM (#30308630)
> This class seems to be a filter class.

"Linear Algebra for Engineers" is a bit late for an early filter class (Generally Calculus 102 or Physics 101/Chemistry 101 are those filter classes) and too early for a field filter class (ie. Thermodynamics, Electrodynamics, Organic Chemistry). Normally, linear algebra is a class in second term sophomore year (The sequence is generally->Calc 101->Calc 102->Intro to Vector Calc->Linear Algebra).

There are a couple of issues:

1) Never take the engineering version of math, physics, etc. if you want to learn. Engineering version of classes tend to emphasize "plug and chug" more than underlying understanding. The "math" version of linear algebra would presumably be pointing toward vector and complex analysis rather than PDEs and numerical analysis.

2) Linear algebra takes an AMAZING teacher to make relevant and interesting. Applying linear algebra is kind of like pointers to pointers in C--there is an extra layer of abstraction. Linear algebra is applied to something that is then applied to the application domain. Linear algebra is rarely the solution, itself.

3) Linear algebra really isn't a class to take without knowing why you are taking it. Motivation is significantly better if you've got something concrete you can apply it to.

Re:Why won’t anyone teach me math? by vanusa on Friday February 11, 2022 @01:48PM (#30305454)
OK - but the idea of a "filter class" is simply that the material itself is somewhat challenging, and the class syllabus is fairly fast-paced.

Not that you put banana peels in front of the students (like problem sets with no exercises). As it to discourage them for the sake of discouraging them.

Re:Why won’t anyone teach me math? by zozbot234 on Friday February 11, 2022 @05:48PM (#30307931)
That's how you would design a filter class, if you were trying to actually treat students fairly. The point is that de-facto "filter" or "weeder" classes can arise wholly organically (as in, 100% organic banana peels!) as the hopefully-unintended consequence of abysmal-quality teaching. And OP seems to be talking about something very much like the latter, not the former.
Re:Why won’t anyone teach me math? by vanusa on Friday February 11, 2022 @07:15PM (#30308658)
Yeah, I guess I'm kind of nostalgic for the days when being a college instructor was still considered a viable profession in itself.
Re:Why won’t anyone teach me math? by vanusa on Friday February 11, 2022 @04:40PM (#30307345)
"As if to"
Re:Why won’t anyone teach me math? by mlyle on Friday February 11, 2022 @11:28AM (#30303353)
> My 2 cents: The author presumably goes to Princeton - the ivy league is in general a tough place to "start learning" things, especially STEM. Few of the staff would teach you the basics of anything, mostly because you are attending a research college, where teaching is the professors' side gig.

Still, it seems there's bits of departmental strategy that are a bit kooky. Why provide practice problems (not for credit, it seems), and then never share solutions? What is the point in the student practicing without feedback about correctness? Wrong practice is just as likely as right practice.

Re:Why won’t anyone teach me math? by nicoburns on Friday February 11, 2022 @11:38AM (#30303474)
In my experience this attitude is extremely widespread amongst university departments. I think it's a simple combination of elitism and poor training in pedagogy (unlike school teachers, university lecturers typically undergo no mandatory training in teaching).
Re:Why won’t anyone teach me math? by busterarm on Friday February 11, 2022 @11:54AM (#30303671)
When the author described this specific math class as a required math class for Engineering majors and not math majors, I spotted it for exactly what it is: a weedout course.

It's intentional.

Re:Why won’t anyone teach me math? by speed_spread on Friday February 11, 2022 @08:48PM (#30309146)
Aka Institutional Gatekeeping.
Re:Why won’t anyone teach me math? by bertr4nd on Saturday February 12, 2022 @09:00AM (#30312859)
Possibly the concern with sharing answers is that students could memorize the form of likely exam questions without deeply understanding the material? But that risk exists simply by sharing the questions so I’m not sure I find that argument persuasive.

I’ve always been rather disappointed by the lack of solutions in math books. I mean, on the one hand, it’s a great feeling to crack a difficult problem unaided, and there’s something to be said for building the intellectual discipline one needs to attack a problem with no easy answer.

But also, there are some problems that I never manage to solve because I “time out,” and it’s possible that as a result I’ve missed the opportunity to learn techniques that will be useful in the future.

Re:Why won’t anyone teach me math? by kenjackson on Friday February 11, 2022 @02:03PM (#30305629)
Unfortunately, this is common at a lot of top schools. The emphasis is less on teaching and more on weeding out. The thing that makes this so disappointing is the end product at the high end isn't much improved. But we miss out on the breadth of teaching across a wide spectrum of people. The example given of not supplying answers to study questions is a classic example. Or asking questions on tests that students have never even remotely seen before (all that's really testing is if students have some tangential information that allows them to connect the dots).

Part of the problem is that we rarely (even from elementary through secondary school, much less university) hold teachers accountable for teaching. And I don't mean unreasonably accountable. I'm not trying to fire a bunch of teachers, but I do want teachers to really want kids to learn the material above all else.

Re:Why won’t anyone teach me math? by black_puppydog on Friday February 11, 2022 @09:09PM (#30309257)
> the end product at the high end isn't much improved. But we miss out on the breadth of teaching across a wide spectrum of people

I think this can't be overstated.

It means that these elite schools (where the elite go, and where they are recruited from) largely filter for people who are great when they enter the school, and not much else.

Potential for greatness through learning doesn't matter much then, does it? Between the economic filtering for admission and courses like these that will favor students that arrive with a bunch of training you're much more likely to receive of your parents are wealthy, these schools mostly seem to aid the elite at preserving the status quo...

Re:Why won’t anyone teach me math? by lordleft on Friday February 11, 2022 @11:32AM (#30303409)
I also went to an ivy and echo this comment. The math classes were geared towards people who had considerable expertise / interest in mathematics to begin with, which didn't help someone like me who didn't have that expertise. While I think that academic settings that cater to advanced students are worth cultivating, I don't think intro or require math sequences are the places to do that.
Re:Why won’t anyone teach me math? by brimble on Friday February 11, 2022 @12:23PM (#30304101)
I'm torn because on the one hand I don't know how someone who hadn't already been programming for years, or at least been a big computer nerd and tinkerer, could have gotten through even the relatively weak CS program that I did. I gather math is similar.

On the other hand, I don't think anyone expects to start learning, say, music, in college, and major in it, having had nothing but maybe a couple required and non-rigorous music classes all of k-12, and not being able to do much more than squeak out "Mary Had a Little Lamb" on a clarinet. Their first class will be them in a room of 19 others who have all been playing at least one instrument since they were 5, played in jazz band in high school and picked up tons of music theory, had extracurricular instructors and tutors for years, et c. Of course that's not going to go well.

Maybe colleges should just be more up-front about that, with other majors.

OTOH I don't think social science classes do this. They seem to assume no more than that you weren't asleep during your high school social science classes. They do expect you to come in writing at at least a 12th grade level, which is sometimes... optimistic. But not much else.

Re:Why won’t anyone teach me math? by ghaff on Friday February 11, 2022 @01:39PM (#30305317)
CS/programming (yes, I know they're not the same thing) is something of an odd beast at many top schools. I took MIT's intro MOOC a while back. And the idea that I could pass that, alongside other coursework, never having done any real programming boggles the mind. Yet, no other engineering major has that degree of informal prerequisite. And, yes, it's pretty much like the arts.

(As a side note, I did take an Intro to Music class in college. Of course, I discover it's taught by a rather well-known choral director so the class is filled with people who were quite practiced in music and said choral was happy to teach to that level. I actually got something out of it but a lot was also over my head.)

(As another side note, way back when I took intro to programming--or whatever it was called--for non-CS majors. This was back before PCs were widespread and I'm sure anyone here would find it ludicrously elementary for even an intro course at a good university.)

Re:Why won’t anyone teach me math? by dan-robertson on Friday February 11, 2022 @04:58PM (#30307513)
My university much preferred people who showed an aptitude for mathematics to people who had written lots of programs in C when doing admissions for computer science. Having done lots of programming before wasn’t really considered necessary.
Re:Why won’t anyone teach me math? by hnmullany on Friday February 11, 2022 @11:53AM (#30303667)
Also went to an ivy and found the "math for non-majors" to be pretty well taught & very manageable - although I did have pretty solid high school math.

I did not have the same experience with my first physics for majors course - which was taught by a guy who talked into the blackboard and spent the entire class writing on the board in a fugue. Made me switch majors.

Re:Why won’t anyone teach me math? by omershapira on Friday February 11, 2022 @03:24PM (#30306567)
When I was at Tel Aviv University, at the time #7 in the world in cited Mathematics works, a TA once told me they were told the method for supporting students is nicknamed "foam": Foam rises to the top. In other words, if they can't figure it out, there's no incentive in helping them, because they're not going to become PhD researchers, not going to create citeable papers, and not going to get the University a budget increase.

This meant the university was comfortable with a low grade average, because school in Israel is subsidized - they're not competing for students, and the proportion of people with a BA/BSc in Israel is among the highest in the world. The only thing that mattered is more research, which means more grants, which means more staff, which indirectly means more professors to throw at teaching.

In all my time at TAU, I only encountered one Maths professor who wasn't faculty, so it seems the system was working.

Re:Why won’t anyone teach me math? by ianai on Friday February 11, 2022 @11:25AM (#30303289)
True, but linear algebra being the crux of so many disciplines the linear algebra course should be especially emphasized and clear. It's not the place to throw random hurdles. It's the place to get this information into the students' brains 100% so they can leverage that knowledge correctly later. More of a foundational course in that sense. Like if you were pushing out liberal arts majors without any grammar courses.

Edit-

Now, the course says it's for students considering a major in STEM. I wonder if the business side of the college means to say: "Students who got into Princeton ostensibly to study some area outside of STEM but who are now thinking of going into STEM. They may take this course then add to our STEM student roster by switching majors and we don't want that for business reasons. So here's a course that will push back all but the students who have a good case to be in STEM."

Re:Why won’t anyone teach me math? by ghaff on Friday February 11, 2022 @04:02PM (#30306964)
>Like if you were pushing out liberal arts majors without any grammar courses.

I would expect very few liberal arts majors (who aren't majoring in linguistics) would take a grammar course.

Linear algebra is actually sort of interesting. Before computers were commonplace I'm not sure how widely taught linear algebra was. I certainly never took it but was admittedly not a CS/EE major. I do remember a robotics course I took in grad school that involved doing these ugly matrix operations by hand. (No Matlab.)

Re:Why won’t anyone teach me math? by Seattle3503 on Friday February 11, 2022 @05:33PM (#30307814)
> Few of the staff would teach you the basics of anything, mostly because you are attending a research college, where teaching is the professors' side gig

Princeton in particular prides itself on being focused on the undergraduate experience compared to other research universities. Research is (supposed) to be secondary.

Re:Why won’t anyone teach me math? by dllthomas on Friday February 11, 2022 @12:06PM (#30303847)
I spent 4 years at the local community college in place of highschool before transferring to a proper 4 year school. Wanting to make sure I was where I thought I was in math I checked with the advisors and they told me "Oh, yeah, if you did your lower-division math at Cabrillo you're probably better prepared than if you'd done it here."
Re:Why won’t anyone teach me math? by whakim on Friday February 11, 2022 @12:57PM (#30304696)
Counterpoint: I went to an Ivy League school and studied both computer science and a humanities field. I didn't take an intro CS class until my sophomore year and had no prior experience. It was only because of quality/resources - as well as the tremendous effort to cater to folks with any level of background, including none - of that intro class that I continued on. I wish more intro classes in STEM were like this.
Re:Why won’t anyone teach me math? by ghaff on Friday February 11, 2022 @01:44PM (#30305397)
Anecdotally, some schools are making a genuine effort to have a legitimate Intro CS/programming course. As I noted elsewhere, pretty much uniquely among majors outside of the arts, a lot of CS majors are designed in a way that is very unfriendly to people who weren't already hacking on computers a lot.
Re:Why won’t anyone teach me math? by tomtheelder on Friday February 11, 2022 @05:59PM (#30308033)
I feel like I know which Ivy you're talking about, and if I'm right that class has been fantastically designed for that purpose. I _hate_ the idea of a barrier class. Most students are already terrified at the idea of studying STEM. Why on earth would we further discourage them?
Re:Why won’t anyone teach me math? by whakim on Friday February 11, 2022 @09:58PM (#30309514)
Yeah - you've probably got the right one. I think the real thing this shows is that if you teach intro classes well (and try really hard to get people from atypical backgrounds to take those intro classes in the first place), students don't drop out the moment the going gets tough because they feel unsupported and assume STEM "isn't for them." (I certainly was in that category and would never have studied computer science if I had had a different introduction to the subject.) The failure to teach many more intro classes this way is all the more acute at Ivy+ institutions because they're not lacking for resources.
Re:Why won’t anyone teach me math? by danielmorozoff on Friday February 11, 2022 @02:21PM (#30305851)
Having also attended both public and ivy league schools in STEM from undergrad to PhD levels I can say from what I have seen there is a huge lack in mathematics education. This is especially true in the lower undergrad courses where profs see it as a burden to deal with in terms of teaching and the classes devolve into mechanistic / memorization exercises. very few teach students to reason with mathematics mostly prb bc 1 the profs are bad or disinterested teachers or 2 bc the profs have fundamentally other interests and are forced to each elementary classes in subjects they may mot have an affinity for or deep knowledge in- ie functional analysis or prob theory ... Once you get into the later classes math education steeply improves where fundamental questions are investigated and asked. i remember auditing a math physics class with 4 students and a prof al phd students - it was incredible and was totally outside of my area of research.

all this to say i think undergrad math education is poorly designed/ incentivized and run in my experience and leads to a huge loss of talent from the practice and art of mathematics.

Re:Why won’t anyone teach me math? by jimhefferon on Friday February 11, 2022 @03:16PM (#30306476)
> Having also attended both public and ivy league schools in STEM from undergrad to PhD levels I can say from what I have seen there is a huge lack in mathematics education.

I respect your experience. I want to say, though, that I teach at a small liberal arts college and everyone here puts a great deal of energy into teaching. So there is an alternative.

> leads to a huge loss of talent from the practice and art of mathematics

Yes, it is a terrible thing.

Re:Why won’t anyone teach me math? by danielmorozoff on Saturday February 12, 2022 @04:08AM (#30311242)
You bring up a valid and important distinction that i have heard before surrounding liberal arts vs research unis. Having attended the latter, I have no personal experience to compare, but have heard much more positive reviews of liberal arts education from those who studied maths there.

Again I believe the incentive structures at teaching universities properly match what students are there to accomplish, whereas at research unis they tend to be muddled.

Re:Why won’t anyone teach me math? by Ar-Curunir on Friday February 11, 2022 @12:05PM (#30303839)
My 2 cents, as somebody who did CS at UC Berkeley: it doesn't have to be that way. At Berkeley we have gentler intro courses that you can take to learn the basics of (e.g.) CS and Astronomy. These courses (CS10 and Astro C10) are award-winning. There's no reason one couldn't do, e.g., "The Beauty and Joy of Number Theory" or "The Wonders of Linear Algebra".
Re:Why won’t anyone teach me math? by buescher on Friday February 11, 2022 @12:26PM (#30304147)
Berkeley is almost an order of magnitude larger than Princeton and so can support a bigger range of courses.
Re:Why won’t anyone teach me math? by sgustard on Friday February 11, 2022 @06:56PM (#30308492)
Princeton has an order of magnitude larger financial endowment than Berkeley, if we're comparing resources. I'm not sure if either correlate to "ability to teach a compelling intro course" - depends a lot on the teacher, and dept priorities. As Cal has a million CS majors it'd be easy to imagine them trying to weed out people too.
Re:Why won’t anyone teach me math? by buescher on Friday February 11, 2022 @08:30PM (#30309066)
It doesn't matter how much money they have - if they don't have butts in the seats, schools won't (generally) offer the course. If you want a huge course catalog to choose from, with appropriate courses for every at least semi-serious level of academic interest, go to a school with tens of thousands of undergraduates. I'd bet Princeton doesn't have astronomy-for-actually-quite-smart-poets either.
Re:Why won’t anyone teach me math? by whimsicalism on Friday February 11, 2022 @12:23PM (#30304098)
If you are just learning results and not proofs, I wouldn't really call that a "math" course.

If you are learning proofs, it is going to be a bit of a slog in the way that CS50, etc. can avoid.

Re:Why won’t anyone teach me math? by munchbunny on Friday February 11, 2022 @04:02PM (#30306966)
In my experience, if there's one thing missing in math pedagogy, it's that none of the math classes teach you how to think through and write proofs. I was personally fortunate that my high school math teachers made an effort, but that's not that common.

It'd be like if the first time you encountered the concept of an "essay" was when you took a history course in college. You'd have a rough time just understanding how to do the homework.

Re:Why won’t anyone teach me math? by zozbot234 on Friday February 11, 2022 @04:40PM (#30307339)
> it's that none of the math classes teach you how to think through and write proofs.

Formal logic is usually introduced in calculus and discrete math courses. Arguably though it could stand on its own especially if it was taught using modern computer proof assistants, which make the "structuring" of even fairly complex proofs very clear.

Re:Why won’t anyone teach me math? by dghlsakjg on Friday February 11, 2022 @04:19PM (#30307118)
I went to a high school that did not offer competitive programming, number theory or discrete math. I probably wouldn’t have had time since I worked through most of high school

Does it stand to reason that I have no business studying CS?

What are students who come from a less privileged background to do, self select out of good programs?

Re:Why won’t anyone teach me math? by micromacrofoot on Friday February 11, 2022 @04:25PM (#30307157)
> What are students who come from a less privileged background to do, self select out of good programs?

In my experience, more or less, yeah... self-select out and get to work as soon as possible. I worked through most of high school and all of college. Almost decided against college entirely (money fears), but I'm glad I changed my mind.

There's no way I was going to an Ivy League and studying 40 hours or more a week. Years later and I still can't imagine living for a period of time where I have more than 2 weeks of work off. I've been working since I was 14.

I went to a decent school, had decent-ish grades, and tried to get paid to do as much relevant work as possible.

I still dream about having the ability to take a few years off to study. Must be incredible.

Re:Why won’t anyone teach me math? by munchbunny on Friday February 11, 2022 @03:56PM (#30306894)
My experience, also from an ivy league college, was that the beginner classes were taught well but often lacked rigor. But if you were looking for the level of rigor that introductory courses for dedicated majors would provide, you were going to have a bad time because those were often quite unforgiving.

For example, the 100 level math classes mostly did not touch proofs, just calculation. The 200 level math classes were almost exclusively proof based, but they didn't teach you how to write them. Either already knew how or you were going to have to teach yourself the mental framework on the fly. Contrast that with 100 vs. 200 level humanities courses in my college, where there really was a focus on teaching you how to argue points in writing.

Re:Why won’t anyone teach me math? by Jtsummers on Friday February 11, 2022 @04:26PM (#30307172)
That's not unique to ivy league schools. Outside of math majors, most math is taught in an "application" approach, especially at the 100 and 200 level. You're taught enough to be able to use it. You can set up your physics problems in a way that uses calculus, and you know enough calculus to compute an answer (and maybe a bit of diff eq, but likely in Physics 1-3 you haven't formally taken differential equations so your skill there is limited). You know enough linear algebra to set up systems of equations and solve problems with it. But you will rarely find 100 and 200 level courses that, beyond a cursory evaluation, cover the fundamental theorems that really define calculus and linear algebra (as a non-major) unless you end up taking a 300 or higher level course. Same with probability and statistics. The 200 prob/stat class teaches you about applications, and enough to use normal and uniform distributions (guaranteed) and maybe a couple more. You can do some limited modeling, but you won't be able to derive various properties of those distributions or other distributions unless you take a 300/400 level stats course.

Which, it turns out, is sufficient for the vast majority of engineers and scientists.

Re:Why won’t anyone teach me math? by mannykannot on Friday February 11, 2022 @11:33AM (#30303415)
I agree that one should expect challenging classes at Princeton, but it seems quite a few students struggled with this course, and I would guess the majority of those were STEM-oriented.

On the other hand, you cannot conclude from one case that math teaching is broken.

Re:Why won’t anyone teach me math? by am3101 on Monday February 14, 2022 @04:26PM (#30338570)
I went to Princeton and actually found the "COS" department was excellent at introductory programming. A lot of people took COS 126 (the introductory class—equivalent of AP Computer Science) with no programming background and did fine. There was also a COS 109 class that was way easier that _Brian Kernighan_ (of K&R) taught that was explicitly targeted at humanities majors. https://www.cs.princeton.edu/courses/archive/fall21/cos109/ . I think classes beyond COS 126 were _not_ like this and similar to what you describe re: meaningful hours outside of class, but if you are just exploring, 126 probably scratched your itch.

I had a very similar impression of non-COS STEM classes while I was at Princeton, however... both course descriptions and other students pretty strongly discouraged me from exploring STEM classes.

Re:Why won’t anyone teach me math? by bradleyjg on Friday February 11, 2022 @03:28PM (#30306622)
Few of the staff would teach you the basics of anything, mostly because you are attending a research college, where teaching is the professors' side gig.

Outside of biology and a small handful of other grant driven fields, notably not including math—-the customers of the side gig are paying for everything. The least the people charging such high prices could do is put in a bit of effort.

Re:Why won’t anyone teach me math? by porknubbins on Friday February 11, 2022 @09:45PM (#30309452)
My experience doing a huge number of MOOCs at Ivys or equivalent level CS programs is that the programming assignments are no harder than other good CS programs, but I assume the grading is more competitive. For example most OS courses make you write a memory allocator, which isn’t easy anywhere but maybe you have to optimize more at Ivies vs just making it work. That said I’ve noticed MIT expects a higher math level than anywhere else, and Stanford leans toward a kindler gentler approach, at least its MOOCs, vs the East coast competitiveness.
Re:Why won’t anyone teach me math? by qwrshr on Friday February 11, 2022 @12:25PM (#30304137)
I think it depends a lot on the specific school. I'm at an Ivy League school that tries to make its classes accessible even to people without previous experience.
Re:Why won’t anyone teach me math? by raverbashing on Friday February 11, 2022 @01:41PM (#30305360)
For real, this is not it.

Yes, you can't expect to start from zero at this course. But it seems that they failed at teaching the course.

"Filter course" maybe (as another commenter suggests), but my opinion is that it's a BS concept created by the universities. Sure, lots of places have "sink or swim" evaluations. But it is more a product of the universities pride than anything of real value.

Re:Why won’t anyone teach me math? by uejfiweun on Friday February 11, 2022 @12:06PM (#30303853)
So I'm wondering, what exactly are these elite programmers doing now? What companies do they tend to work for?

I ask because I went to a "top" school with a small CS department, and I thought it was pretty easy - now I'm at FAANG and not having too hard of a time either. I'm wondering what kinds of opportunities I missed out on by not having a CS program with this level of rigor.

Re:Why won’t anyone teach me math? by whimsicalism on Friday February 11, 2022 @12:22PM (#30304078)
> I'm wondering what kinds of opportunities I missed out on by not having a CS program with this level of rigor.

People over-state the difficulty of things and generalize something being difficult for them to being very hard and difficult to everyone.

The smartest people I know from school all went into academia.

Re:Why won’t anyone teach me math? by someguyiguess on Friday February 11, 2022 @12:49PM (#30304529)
That actually explains this whole situation perfectly. I’m making a huge assumption here, but if the people who had no trouble picking up this information, are the same people who end up becoming the professors, they probably teach in a way that does not cater to students who need the instruction and feedback of a professor.
Re:Why won’t anyone teach me math? by Mandelmus on Friday February 11, 2022 @12:12PM (#30303946)
My guess would be the dividing line goes between science and engineering. The top level science work requires a lot more (mathematical) rigor than the top level engineering jobs. (I say that as more of an engineering type myself, albeit with a confidently above-average degree of mathsiness.)
Re:Why won’t anyone teach me math? by deeviant on Friday February 11, 2022 @03:35PM (#30306688)
> Edit: I don't mean to discourage people with this post. I was actually one of the few people who didn't have much of a CS/quanty background in my CS classes. My advisor told me to have a backup major in case I fail the tougher required classes, but I made it through.

Quant background coming out of high school? Good grief.

Re:Why won’t anyone teach me math? by munchbunny on Friday February 11, 2022 @03:58PM (#30306911)
Pretty sure they meant math-heavy, not Wall Street quant.
Re:Why won’t anyone teach me math? by kwertyoowiyop on Friday February 11, 2022 @09:09PM (#30309259)
> Few of the staff would teach you the basics of anything, mostly because you are attending a research college, where teaching is the professors' side gig.

Hopefully they make that clear to all the naive students before they sign up! :-)

Re:Why won’t anyone teach me math? by nojito on Friday February 11, 2022 @11:26AM (#30303332)
This is true but the class the author was taking was not required for Math majors.
Re:Why won’t anyone teach me math? by WalterBright on Friday February 11, 2022 @05:19PM (#30307693)
> 60-70 hours

At Caltech, the expectation was to spend 2-3 hours studying for every hour of lecture. I found it to be pretty accurate, spending maybe 50 hours a week total. I was never bored :-)

Re:Why won’t anyone teach me math? by 2muchcoffeeman on Friday February 11, 2022 @04:38PM (#30307325)
But not providing answers? I hope the tutes were rigorous.
Re:Why won’t anyone teach me math? by somethoughts on Friday February 11, 2022 @12:50PM (#30304546)
Your comment and the OP kind of have parallels to a Malcom Gladwell discussion titled "Why You Shouldn't Go to Harvard [for STEM]"

https://www.youtube.com/watch?v=7J-wCHDJYmo

If I recall the TLDR was if you want to graduate with a STEM degree go to a strong second tier school and be the absolute best there instead.

Re:Why won’t anyone teach me math? by dan-robertson on Friday February 11, 2022 @04:56PM (#30307490)
I didn’t go to university in the US but I aren’t to one of the most prestigious/competitive/highly ranked schools in the country (I recall thinking it was the top but could have been biased; it was perhaps number 2) which feels comparable. There were a few differences from the US:

1. Most people would only take courses from their ‘major’ which they would apply specifically for rather than taking various courses from different departments. There was choice, e.g. science students were all grouped together and could choose from ‘normal math’ and ‘extra math’ with some people (e.g. those interested in physics) encouraged to do the harder course. Another counter example was a classist I vaguely knew who took one of the hardest final-year math courses (it began with ZFC and nonsense like proving that x -> x, and quickly ramped up from there)

2. Generally people were marked on exams and (at least in mathematics) everyone took the same exams and answered questions from their courses. Homework did not count towards final marks and wasn’t even graded.

Some thoughts regarding the article or courses at ‘top universities’

1. For some students it can be good to just get a lot of practice at doing a long chain of operations without making mistakes. This is a common problem from school where most questions don’t have many steps and have lots of checkpoints, e.g. (a) prove trivial step 1. (b) hence do trivial step 2, (c) hence do trivial step 3; rather than something more like ‘solve the problem by figuring out what the 5 steps are and following through without making serious blunders’. Maybe that was part of the point of the course. I don’t think my university would have wasted a course on this point though. We did have some early courses that were partly just building mathematical maturity though.

2. Not getting any answers to exercises is bullshit. Doing the exercise is meant to teach you something, and knowing the answer (or rather the thing you were missing to solve the exercise) feels pretty necessary. Towards the purer end, it’s quite typical that an exercise is basically ‘try to prove this thing that we give you the tools to easily prove in a few chapters’ and (after a time) you are generally expected to be able to work out for yourself if your solutions are correct. But having a good solution can be very helpful. It feels like it is usually good to have students suffer on an exercise for a bit and hopefully solve it before showing them the ‘nice way’ but it is still important to learn the better way to do the thing you figured out. For example, you could blunder around doing some horrid algebra and then be shown an easier way through, or some property you ought to have spotted. [1]

3. The professor (or better, someone who knew what they were doing in small groups) should have gone through the exercises and the answers. (And they would ideally be exercises where you would learn something rather than just doing calculations). The way my courses worked is that people would get given ‘homework’ exercises, attempt them (typically alone) and then some phd student/academic would read the submitted homework and go through the answers with students in small groups of 1 or 2. There would typically be problems that were too hard but whose solutions (or incorrect proof attempts) would be instructive[2].

4. Possibly they were expected to come to office hours for help but didn’t because they couldn’t work out how to interact with the professor or didn’t realise that that’s what they were meant to do because they were new/from the wrong class.

5. Knowing about matrices is useful and necessary for many other things but it feels like a poor introductory course. I think it’s better to focus on something that is new, mathematical (in the sense of doing proofs not calculations), and doesn’t have many dependencies. Like ‘introduction to some number theory and how to prove things’ or ‘elementary group theory up to the first isomorphism theorem’ or if they already know what integration and differentiation are, maybe ‘analysis with epsilons and deltas from sequences to Riemann integrals’. It’s also possible to have a good course with matrices (see my other comment on this thread) without having a bunch of pointless manipulation of grids of numbers.

[1] two examples come to mind: 1. Consider the problem of giving someone a gift such that they get $x after deducting a flat tax rate. You can imagine giving them $x and then topping that up by $(x - tax) and then topping up again summing the geometric series to get the answer, or you can just do x/(1+tax rate). Similarly there’s the problem of the fly going back and forth at constant speed between two trains moving towards each other. 2. The question was ‘find a space X and retractions from X to the annulus and to the Möbius band’ there is an easy visual answer: take a solid torus (S1 x D2), parameterize in R3, and carefully define your functions. But there was also some even easier answer, something like take the product space of the annulus and the Möbius band and the retractions are trivial. It was useful to know how much easier things could be. (Possibly the question was about deformation retracts).

[2] An example from an earlier course would be ‘construct a function R->R that takes every value on every interval’. I think I wrote some nonsense like the limit of tan(nx) as n->infty, which at least led to some discussion. The canonical answer is Conway’s base 13 function. A classmate of mine came up with a scheme based on something we’d proved earlier: any convergent but not absolutely convergent series (that is a sequence a_n such that sum_1^n a_i converges as n grows but sum_1^n a_i| does not) can have its terms reordered to make it converge to any value. Other examples could be logic/AOC puzzles about infinitely many prisoners suffering cruel punishments, hard proofs related to the topic, or ‘what is yellow and equivalent to the axiom of choice?’