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.
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.
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.
> 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!?
> 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.
> 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
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?
> 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.
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
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.
> 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!
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?
> 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.
> 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.
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.
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.
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!
"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.
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
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.
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
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.
>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.
> 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.
>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".
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.
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.
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.
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.
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.
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).
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.
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.
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…
> 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.
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!
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).
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.
> 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?
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.
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.
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?
...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...).
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?
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.
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?
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.
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.
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.
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.
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.
"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)."
"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."
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.
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.
^ 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".
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.
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.)
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.
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.
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.
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.
> 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.
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.
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.
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.
> 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.
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.
> 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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_.)
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.
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.
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.
> 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...
> 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.
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...
> 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.
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.
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.
> 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".
> 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.
> 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.
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.
> 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.)
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).
>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.
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.
This is hard to understand because it doesn't make sense. Quadratic polynomials (or more generally, algebraic expressions) are factored. Equations are not factored.
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.
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.
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.
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.
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.)
> 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.
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.
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.
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.
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
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.
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.
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.
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.
> 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.
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.
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.
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.
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.
> 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.
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.
"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.
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.
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.
> 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.
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).
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.
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.
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.
> 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...
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.
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.
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.)
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.
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.
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.
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."
>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.)
> 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.
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."
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.
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.
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?
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.
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.
> 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
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.
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".
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.
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.
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.
> 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.
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?
> 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.)
> 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.
> 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! :-)
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 :-)
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?’
I wonder if some universities should pay more attention to the impact of discouragement on some students.
I remember attempting a grad class called "Hard problems in combinatorial optimization". I was struggling so I asked the professor for advice on getting my footing in the class.
His answer was that I may just not have the "mathematical maturity" for the material. I was so discouraged that I dropped out of the program.
What I didn't realize at the time was the particular meaning of that term. His advice was well intended and accurate.
But what I heard was that I was hopeless in this topic area because I wasn't smart enough.
So much pain could have been avoided if we just extended the conversation by a few minutes, or he invited me for a discussion over coffee.
> His answer was that I may just not have the "mathematical maturity" for the material. I was so discouraged that I dropped out of the program.
There's a problem with making a statement like that and not following it up with what you need to do gain the needed "maturity". Even adding "maybe you should take this course over here and come back to this one in a semester..." could make a world of difference.
I think usually it boils down to teachers in advanced schools were the kind of pupils who got most things easily and have no clue how to explain things more than <list of set comprehension>. Got me to think that these universities are more magnets from strong ex-pupils to similar minded new pupils that will fit in without much pedagogical efforts.
The average IQ of math majors is absurdly high, more than two sigma above the mean[1]. In an organization like that the smartest person is likely going to be a breathtaking five sigma above the general population mean[2]. I get the impression that people in math departments like it that way, so weeding out persons of more ordinary intelligence is more of a feature than a bug. I doubt many would admit to that, but it fits the observables.
[2] Assuming gaussian distribution with no skew, which is probably a bad assumption, but I'm spitballing here. Suffice to say math departments at elite colleges have many extremely bright people.
I wouldn't say feature, but they're probably not naturally inclined toward spending more time raising the average level instead of enjoying the few genius newcomers.
There's a small sadness in this but I can't word it out perfectly.
ps: I mean I would understand very much that these people just want "new buddies to play hyperstimulating math games with no drag whatsoever" but from school I expect just a few pointers. The rest is on me (us).
IQ has no skew by definition. That said, I think there are a number of IQ boosting mutations and innate mathematical aptitude is likely correlated to possession of one or more of these rare(ish) mutations.
I misread the point they were trying to make, I took the 5 std to be a sign they were pulling from general population IQ. On second reading it’s clear that is not their intended point.
In any case the resulting intermediate distribution from selection criteria bias would be a Chi distribution (I think - it has been a while.) 5 standard deviations on a normal distribution is 175 IQ or top 1/700K which is insane.
A few additional biases, Physics majors have higher average IQs, and not everyone smart enough to do the math has the desire or the opportunity.
The point I was making is that IQ score has been normalized, when imagining the intermediate distribution of IQ it would make more sense to look at composite probabilities of factors that led to the IQ score and consider the probability that those same factors lead to a sufficient innate ability in math.
Let's say every mathematician draws an IQ from the IQ distribution and a luck score from the luck distribution. Then, the highest sum of numbers wins a Fields medal.
That would be distributed according to the distribution of the maximum of N Gaussian-distributed random variables, and according to this[0] stack overflow answer, it's skewed downwards, below its mean. (Its mean, of course, is much higher than the mean IQ+Luck).
The more selection criteria depends on cut-off (which it is in the university setting), the more likely selection from normal distribution is going to be skewed. Then Fields medalists are selected from long tail of already skewed population, all bets are off.
This is a really deep point. A math professor at The University of Chicago wisely pointed to me as this being a super important thing to keep in mind when teaching (I've gone into secondary education). Often the material you are and how well the student is receiving has a much smaller impact on the student than what the emotional experience of it communicates to them about their own capabilities, including their chance at continue to struggle through the material in the hopes of fully grasping it. Especially in the latter years in school, it seems you find a lot of teachers who almost revel in making their courses "impossible" for kids, which can sometimes be very motivational for extremely high-achievers but absolutely devastating to a well-intentioned student who is having a challenge with the material.
Another UChicago student here (former math major). I think the UChicago math department took education seriously in a unique way that I wish they got more credit for; the Inquiry-Based Learning classes, the summer classes for Chicago public school teachers, and the Research Experience for Undergraduates were all pretty special, I think.
Also, the math classes all had a shared policy of "you can work with anyone you like on a problem set, as long as everyone's name is listed on there when you hand it in." I loved that, and I did all my problem sets in groups while I was there, and I think I learned more because we were always explaining things to each other and arguing about solutions. I heard a rumor at one point that this policy was the direct product of Peter May's bad experience at Princeton, which required students to work alone when he was there.
TFA does seem like a pretty stinging indictment of Princeton's math department.
You think Mathematicians in general have people skills? Most Mathematicians i met were good people but they definitely kinda lived in their own world, they were super helpful, but only if you explicitly asked for their help.
The issue today, IMHO, is that every university is looking for professors who are "good at research" (meaning, they can win grants), and teaching is not even a secondary or tertiary thought (if a thought at all). The last four professors we hired in our STEM department could barely speak English (I am in the states), let alone get points across or create examples. You know what they can do well? Write grants that get awarded.
Research and teaching are both important, and a smart university tries to use its professors' talents most effectively.
I studied at the VU, where Andy Tanenbaum, writer of a ton of famous CS books teaches. Of course I followed his classes. His books are excellent, but his classes are basically him reciting his books from memory. The jokes are literally identical.
At some point, more and more of his classes would be taught by Maarten van Steen instead; he's an excellent teacher who really knows how to engage the students and make them think about problems, instead of merely telling them the answer.
There was another professor who, as far as I know, didn't do any research at all; he just taught a ton of classes.
A professor who is great at one thing is not necessarily good at something else.
People skills? The informal prereqs/expected background for a class should be listed in the syllabus. Lack of "mathematical maturity" is a non-answer, they should make it clear what sort of math knowledge that refers to.
I disagree. 'Mathematical maturity', to me, means:
There is no specific advanced prerequisite knowledge, but you need to be able to follow something technical.
As an example: you'd reasonably expect a student with mathematical maturity to know what a set, the Cartesian product of two sets, and a function are. That's high school level math.
From there you can define a ring and a module over a ring, in like 5 mins.
So at that point the Prof, strictly speaking, told you everything you need to know to start studying modules.
Of course, many students will be like whaaaaaa?! When a ring is defined. But here's the point: Mathematical maturity does not mean that you already know what a ring is, but when the Prof defines a ring, you are following along.
Anyway, my point is that there is nothing specific that you need to know.
Mathematical maturity should be well defined if you are using it as a prerequisite. Mathematicians, of all people, should be good at coming up with such precise definitions.
Some people are better with math than others. Undergrad math majors thought the major was pretty easy. Many of us in engineering majors--who weren't that bad at math (it was a good school)--could no more have graduated with a degree in math (or physics) than have flapped our arms and flown.
Maybe the class did have pre-req? I mean i think it is obvious that a class called "Hard problems in combinatorial optimization" is aimed more at future Mathematicians/Computer Scientists than people who want to take it for the fun of it.
I felt this in Spain. In my little local university it seemed like they were gatekeepers. Some professors were hostile and treated you like if you were dumb.
It didn't help that I went to uni at 24 IIRC while I was working my ass off, so I wasn't that happy to put up with the BS.
It seems less like gatekeeping and more like "I'm struggling for my life to climb this mountain on my own, and I'm not strong enough to drag up your dead weight up behind me. I'll train you if you seem to have the aptitude and drive to eventually become a useful partner in my struggle, but I'm not going to waste my life energy on people who will never be anything more than dead weight."
Calling it gatekeeping seems like a fish complaining that the birds are gatekeeping the sky. The sky is open for anyone, but only if you have wings to fly.
Maybe they should teach self esteem and resiliency in the face of criticism and failure, because you will definitely be criticized and you'll definitely fail. You will face setbacks and discouragement at many points in your life. More often than not, your biggest critic will be yourself. That much is certain.
This wasn't even really intentional discouragement, but it was perceived as such. Hopefully, you learned the higher lesson.
You can have plenty of self esteem and resiliency and also decide based on evidence that an activity may not be the best use of your time. If you respect a teacher's evaluation of your performance in a subject and the teacher's evaluation is that you don't have the maturity to learn from them, it may make much more sense to try other things than insist on forcing them to teach you anyways. People don't have to intend to say cruel things in order to be cruel-- for example, you don't have to intend to hurt someone who recently miscarried by talking about your successful pregnancy and its definitely not considered the fault of the person who is grieving. Similarly a professor doesn't have to intend to be discouraging in order to be discouraging.
I think we can reasonably argue that the statement is overdetermined. Charitably, perhaps the professor did mean mathematical maturity in the sense of "try learning some background first, and give yourself the time to let your skills and intuition develop." Uncharitably, perhaps the professor did not, and meant mathematical maturity in the sense of, "you have an inherent deficiency that makes this an inappropriate undertaking for you."
I think where the fruit of this discussion may be is deciding to what degree an authority figure like a professor has a responsibility or an obligation to their students and advisees to make themselves clear which way they intend their statements to be interpreted. Personally, this begets a discussion of the nuances between the obligations and responsibilities of communication between (1) strangers, (2) peers/colleagues, and (3) authority figures and their charges.
I think this happens a lot. For some reason people have a really strong tendency with math to attribute it to innate talent. Of course talent matters, but people get hung up on it and discount other factors. The word "maturity" is supposed to help indicate that it's a matter of having and digesting the right experiences, but it honestly isn't great, because maturity can be driven by experience, but it can also be dictated by biology. If someone is isolated from human contact between the ages of ten and twenty, they will emerge fully mature in some ways and immature in others. We need a less ambiguous way of saying that somebody hasn't yet had the exposure and practice that will prepare them to tackle certain material.
I wonder if the whole "weeding out" theory extends to college education in general, and like you ask, how constructive to society that is.
I, very briefly and quite honestly, attended a lower tier state school that was an absolute joke. Shortly after I started, there was an outreach program for local high school kids where if they showed a high school ID, they got admission for the upcoming year. The head of my dept dismissed it and quipped, "It's ok. Anyone that wasn't meant to be here will just drop out after a year anyway and we have their money."
I, thankfully, ended up at a much bigger P5, well-known university. One of the controversies was the engineering departments were trying to get as many students as possible to the point of exceeding infrastructure and admitting lower quality students into the program. Upperclassmen I talk to said, "that's why everyone hates <1st semester math for engineers> and <2nd semester math for engineers>. They immediately weed out those that don't qualify."
"Weeding out" is what college admissions should be doing, not the departments. When the departments weed someone out, they've wasted at least a year of their life and a year in tuition, and demoralized them.
This is what really the "college for everyone" mentality has led to. If the kid shouldn't be there, or should have started in junior college first, we need to be more upfront about that earlier.
I disagree with that. Even if someone fails all their classes in their first year the experience will teach them much more about life than any job would. The real problem is that US universities cost a lot of money so the cost of failure is insane.
>"Weeding out" is what college admissions should be doing, not the departments. When the departments weed someone out, they've wasted at least a year of their life and a year in tuition, and demoralized them.
Admissions can't weed people out, they can only copy the weeding that highschool has done. If you rephrases the question that way, as in, "should highschool teachers be responsible for college admissions," then the idea of letting people join a major they haven't proven themselves capable of doesn't sound so bad after all.
> [...] may just not have the "mathematical maturity" for the material.
LOTS of non-math-major science/engineering students face that problem as soon as they start grad school.
It's a consequence, IMHO, of math curriculums failing to focus on the fundamentals rigorously enough. There's too much focus on what we used to call "plug-n-chug" mathematics where students learn just enough to apply formulae to get their problems solved. It might seem like "just enough" but it ends up pushing out higher mathematics and keeps students from being able to apply more advanced mathematical concepts that they would have gained from a much deeper dive into Real Analysis, abstract algebra, differential geometry, etc, and the grind of the theorem-proof cycles. Many of us felt this right away upon taking graduate level courses.
I wish that I had been counseled to take additional math courses before (or even at the beginning) of grad school. It would have reduced my suffering A LOT and I would have gotten more out of the degree.
I thought I had it - lots of real analysis and abstract algebra proofs - but then in grad school I hit a 400 level numerical methods class that I simply lacked the mathematical sophistication for. Just completely at sea - an experience which I lacked the academic maturity to deal with.
I obviously don't know your specific situation, but often this is the result of idiotic cost cutting measures by universities.
As a lecturer, I've had several job interviews where half of the questions were some variety of "are you ok to put up with having way too many students and not enough time?". I had the luxury of not having to take these jobs, but obviously someone ended up taking them.
I thought about this a lot. In college I often failed and teacher would look at me dumbfounded (followed by the traditional "it's trivial"). Very discouraging indeed. Years later I revisit some things, and without struggling too much, I get insights and ideas and overall easier time actually solving things. So in the end it does look like some "maturity" was lacking. Now it's bothersome that schools can only operate on people with magic maturity and other people are left on the side (the school as semi-comb theory) and I wish we could have some pedagogical light on what is that missing maturity and how to grow it explicitely.
That sounds like either an absolutely terrible teacher, or a terrible program. Why were so many people enrolled in a class that less than 25% would pass? I'm not American so I don't really understand the course names but I guess a class just called "Algebra" shouldn't be too hard? Stuff like basic groups/rings/fields or is it a more advanced class?
The title "College algebra" in the US indicates material that is well pre-groups/rings/etc.; it is about the basic skills of computations involving manipulation of variables, often involving such topics as solving linear and quadratic equations, and perhaps inequalities.
At least at my university, the reason that such classes have a high failure rate is that the university is incentivized to have high enrollment numbers by admitting students who do not have the background to succeed at college mathematics at the level of calculus or above, and so need some pre-calculus courses; but someone who does not have a solid grounding in pre-calculus mathematics will often struggle to learn it when it is taught at a rapid pace at the college level—especially by professors most of whose teaching experience is with college-level math.
My high school AP calc course started out somehow getting behind in the first week. After that, the teacher kept assigning homework for material we wouldn't even cover until the day it was already due to be turned in. It was pretty brutal for someone like me who was accustomed to coasting through all of my other courses.
I took a bit more math in college. It wasn't easier; the professor simply kept pace with the material. If you needed help, you had to go to a TA or the professor out of class hours (an option that wasn't really available for a high school setting).
I can easily imagine that many students who were exposed to college level math for the first time in one of those courses would flounder and drop out (though I didn't witness much of it myself).
But what incentivises the students to take a class that so many won't pass? I don't really understand the American university system but surely the sensible choice would be to take a course you're most likely to pass?
I guess its possible to learn stuff from a course you fail, but you should be able to find a course that you're likely to pass and learn something from?
It's mandatory for the degree, that's the motivation. It's typically required for all students who didn't score high enough on entrance exams or take enough math courses in high school. They also likely don't talk to their advisor and say, "I want to take something else, like prob/stat or calculus, to substitute for this requirement." STEM majors will find it easier to substitute another course than non-STEM majors (because they likely have the background to skip it from HS course work). Engineering universities and the like usually send their first year students straight to calculus, though.
It's a "weed out" class. When a huge number of people want to be STEM, but there is no way they're going to last, it's better to have a tough class that sets that expectation early, so they have time to pursue a more achievable major. In my case, huge State university, Freshman year Physics was the weed-out class. It was not advanced or (to me) particularly difficult, but there was a LOT of content, we moved very fast, and the workload was punishing. If I recall correctly, our first class was over 1000 people in a huge auditorium forum. By the time we took final exams, we were down to around 100 people.
I've never heard of so many failing a college algebra course, at my second university it was around 25% failing and mostly because they'd relaxed the entry requirements in order to increase enrollment.
However, for non-STEM and non-Business majors college algebra is rarely a prerequisite for any other courses so you can still continue your major without it, you do need to pass a math course before graduating though. They also have other math courses that can be used that aren't college algebra and may be easier.
At my university, CS was called math-CS, it required intenses calculus courses with a similar failure rate.
Of those who failed : ¼ retook the course, ¼ pivoted to the bussines-CS program (given by the CS department) , ¼ pivoted to bussines-IT (given by the business and management school) and as far as I know, the rest disappeared from the university.
Maybe I'm massively out of touch but I'm pretty sure a good teacher could teach that stuff to almost anyone.
Like this stuff isn't particularly complicated, I'm not a very good teacher but I did teach some undergrad seminars during my PhD and I think even my worst students were capable of understanding functions, graphs and trig.
That's not the issue. College algebra courses are super compressed, they're basically trying to teach the whole of junior high + high school math in a single semester. That's barely teaching, and the natural outcome of such a cursorily taught course is to act as a 'weedout' course.
Yup. My observation (having not had to take College Algebra myself, but knowing people who did) is that it's a class to make sure people who fell off the math train back at operations on fractions or factoring or whatever, don't get any farther.
I was a tutor in business school on behalf of the MBA program. Basically, there was a small group of students who were... not prepared with respect to math. We're talking really simple algebra, maybe the simplest of differentiation (e.g. maxima of a simple quadratic function).
One of them told me one day "I don't understand graphs." I tried but it's impossible at that point to make up for an apparent total lack of at least high school level arithmetic/math.
I mean, what do you want them to do? Invest resources in splitting up material into multiple courses when they should have learned it before even coming to college? It's not their fault public schools suck.
State universities kind of do have this responsibility. My school is doing more or less this, restructuring some of the math sequences that have a high failure rate, like precalc/calc 1.
Also state universities are where most of the public school teachers and administrators trained, so they probably deserve a little of the blame for the state of public schools.
IMO the only stuff a student "should have learned" is stuff that they can't get onto the course without knowing. Allowing someone onto the course, for which "x" is a prerequisite, who doesn't know "x" is entirely the university's responsibility.
All public schools do not suck but especially urban schools can have a lot of problems and many of the students don't have a great home environment either,
You are in touch with your kind of people, the kind who graduate from university.
If you were doing a PhD you were at the kind of university that has a PhD programme. Probably it was one of the 200 or so US universities out of a thousand that are selective, rejecting more students than they accept. I doubt there was a single student in your seminar who wasn’t in the top 30% by academic aptitude of their age group.
> According to the U.S. Department of Education, 54% of adults in the United States have prose literacy below the 6th-grade level.
> What I didn't realize at the time was the particular meaning of that term. His advice was well intended and accurate.
I had a similar experience - and while it was a blow to my confidence I’m happy that he didn’t tiptoe around it with feel-goodisms. What I was doing as a student, and what had ben successful so far, was not working and doing more of it or doing it harder wasn’t going to help.
Honestly leaving that program was the right thing to do, I probably shouldn’t have been in it, though I’m confident a few years later I would have been successful, but I lacked the maturity and mathematical sophistication to get it then.
Maybe they are interested only in future Ph.Ds and Professors. Anybody else is a burden to be sent somewhere else as soon as possible. Maybe they think they're doing a favor to those students because they won't be wasting their time on subjects that are too difficult for them to grasp in the short time of a university class.
> His answer was that I may just not have the "mathematical maturity" for the material.
What a clueless, absolute piece of shit..
Clearly he lacks the emotional maturity to deal with students (or just people in general) and unequivocally should be fired as a teacher and restricted to doing research.
I’m not sure that college students - or, to call them by their age group, teenagers - are really appropriately assumed to be “adults” at all times. Obviously we don’t think that when it comes to alcohol and partying - universities step in and make heavy-handed decisions we’d never apply to full adults all the time (example, shutting down a house & evicting residents for having a party where an assault happened). So why not apply that same “not yet fully mature adults” logic when it comes to something with massive social benefits, which society has in interest in promoting: more mathematically literate university graduates?
How did you interpret “immature” as “not smart enough”? A baby is not mature, which doesn’t mean he won’t grow up. “Immaturity” means that there’s room for improvement and that that improvement is attainable.
What I mean to say is that this issue stems from your misunderstanding of the meaning of the word “mature” and nothing else.
Assuming OP was an undergrad, it’s totally fair to assume that the prof in question was trying to euphemistically say that they weren’t good enough for the class, especially since “mathematical maturity” is something of a term of art in the field. I don’t think it’s worth putting down teenagers for not understanding the nuances of every single bit of terminology in a field they’re dipping their toes into, the expectation should be that professors be more empathetic to that.
"mathematical maturity" would be a combination of "not smart enough" and "haven't studied enough". Highly talented people can reach high levels of maturity very quickly, people who are just a bit above average can reach a reasonable maturity through hard study, and below average talent means it is very unlikely that the person will be able to comprehend university level theoretical math.
A teacher who doesn't know you will not know if you're not smart enough or just didnt study hard enough, and probably doesn't care much, especially for an undergrad. For a phd student, they may care if they think they've identified a "diamond in the rough" that can be turned into a gem with some work, but that is quite a bit beyond basic linear algebra.
> “mathematical maturity” is something of a term of art in the field
Fascinating, it sounds like "MM" is tacit knowledge, which begs the question why it isn't explicitly taught.
In mathematics, mathematical maturity is an informal term often used to refer to the quality of having a general understanding and mastery of the way mathematicians operate and communicate. It pertains to a mixture of mathematical experience and insight that cannot be directly taught. Instead, it comes from repeated exposure to mathematical concepts. It is a gauge of mathematics students' erudition in mathematical structures and methods, and can overlap with other related concepts such as mathematical intuition and mathematical competence. The topic is occasionally also addressed in literature in its own right.
It's been a long time, but IIRC I recognized that my understanding of the term was vague but that all interpretations boiled down to, if I wasn't ready now I never would be.
I'm not claiming that my response was entirely rational or measured. I'm not blaming the professor, and I'm not justifying my own reaction. I was just saying what my reaction was, in case it shows a pattern of student experiences that's worth addressing.
If you have reasonable people skills, you may well have correctly inferred what the lecturer was communicating: overly questioning the words can be damaging. As I have matured, I have learnt better to trust my intuitive reading of what someone says, especially when I detect that the meaning of their words is divergent from what I believe they think beneath the surface.
Stubbornness, tenacity and self-belief are useful skills for success - perhaps you gave up too quickly? Unfortunately, soft skills are very rarely taught well. We all rely upon our subconscious learning and a good amount of luck to gain necessary skills, and those skills are often learnt by osmosis while very young. I also think the meta-skill of being able to teach yourself soft skills is not common either and it - although we can make an effort to improve that meta-skill even though it is somewhat self-referential.
Here's the class description for MAT 202, "Linear Algebra with Applications" at Princeton.[1] Here's a problem set with answers.[2]
It's painful to read. Problem 2: "Find the matrix A describing the following linear transformation from R2 to R'2 : First rotate clockwise by π/6, then scale by a factor of 2, then reflect about the x2 axis." Anyone who programs video games recognizes that as a stack of transformations. You set up the matrix for the rotate, the scale, and the reflection (which is a scale of -1 on one axis). You multiply the matrices to get the result. This is a pain to do with pencil and paper. GPUs have hardware for it.
Books on graphics programming cover this problem. But they usually do it much better, with graphical examples.
The presentation here is done very abstractly, without any motivation.
Most of linear algebra has graphical representations. It takes a useful and relatively easy area of math and makes it harder.
This is apparently on purpose. The class description says:
The calculations are relatively simple once you understand what you need to compute, but it can take time to master the abstract concepts well enough to understand what that might be. The challenge in 201 (a calculus class) is usually how to finish a problem as the technical complications mount, whereas in 202 the challenge is often in seeing how to start the problem.
Right. In calculus, problems usually involve trying to integrate something, where you get stuck and need to transform the problem in some non-obvious way to make forward progress. It's puzzle-solving. In linear algebra, the actual operations are mostly matrix adds and multiplies. It's setting up the problem that's hard.
It's annoying to see this for a useful area of applied math. If you're headed for abstract algebra, where intuition breaks down, this approach might be useful. But if you want to use ordinary linear systems to get work done, which is common in engineering, it's not.
As a high-schooler I did a summer course at Columbia about "graphics programming". In the morning, the instructor would cover the very basics of the theory of what we were trying to model, from the physics of it to the math required to represent the physics. The point of it was that, starting from scratch, we would build our own little ray-tracer in C++.
The course lasted 4 weeks (and was intensive, we were in class 5hrs a day if memory serves me right). It may have been the most unique and interesting educational experience of my life. There was so much motivation to LEARN the math and physics, and I vividly remember going home and looking at objects, and thinking about the angles that the light would bounce off of objects, etc. Plus, there was something truly empowering with starting from a completely blank sheet of code and building something like this, fully understanding what each part of the code was doing.
It was this course that introduced me to vectors and vector operations, as well as matrices, before I fully dove into them in school. It was absolutely perfect. Ever since I've had a soft spot for linear algebra, and am often disappointed at how frequently I've encountered it completely in the abstract, when it may be one of the topics in math that you can most readily connect to interesting, non-trivial real world problems.
This is the only way I've ever learned anything mathematical, at least beyond school-level maths. I wish it were more common to find courses - even online courses - that 'motivate'[0] maths with engaging projects, which for most of us here would mean coding projects. (The same goes for mathsy areas of programming: information theory, the prereqs of compression or computer graphics, modular arithmetic, linear algebra, set theory, topology, etc.)
And it's not just us, either. So many people I speak to have had the same exact experience. I have mathematician friends who agree with this, based on their experience of teaching maths. I think mathematical pedagogy is just broken, with teachers getting high on the perceived difficulty of their special wisdom.
[0] ...to use the semi-slang my university lecturers used. In other words, give you a reason to want to learn it.
I share a similar experience. I have a course on Numerical Optimization, and I feel that I have learned more linear algebra, and matrix calculus in 2 weeks than I did my whole undergraduate course. I also delved a bit into differential geometry to argue the correctness of the implementation of my gradient functions using the finite difference method.
Honestly, this has been the most fun I have had in a course in a long time. It's difficult at times, and there are many things one needs to learn, but this is how learning should be done imho.
That's really cool. If you have any pointers to any resources along those lines, I'd be really interested.
And I absolutely agree. It's a tragedy that maths is taught in such a dry, unengaging way. I think far more people would enjoy it and excel at it if only it were taught in a way that motivated them. Your experience is one of a million demonstrations of that.
For what it's worth, there are a couple of Wikipedia pages which I found to be great jumping-off points - effectively 'sitemaps of mathematics' - to explore mathematics and what parts you may not know yet:
They also present 'ways of looking' at mathematics which I find can be eye-opening with any subject. I don't know if you're a lumper or a splitter (https://en.wikipedia.org/wiki/Lumpers_and_splitters), but I'm a lumper, so it helps to see connections and unities between things deep down. (Anyone who's ever read the annoyingly separate study areas of automata vs state machines, and the replicated abstractions and principles – despite them being literally the fucking same thing – will probably see what I mean.)
Out of a problem set of 12 problems, you picked the only one that is similar to games programming.
Problem 1 teaches about the rank of a linear transform giving different number of solutions.
Problem 2 from this single problem set is the only one you base a critique of an entire course upon. It is a simple 2D problem to teach that 2D problems often have nice matrix formulations.
Problem 3 is a 3D projection, also nice for geometric intuition.
Problem 4 is about rank, the image of a linear transform, and the kernel of a linear transform, extremely important concepts to go further in math, nearly zero use for games programming, and nearly as unused for engineering.
Problem 5 is about basis changes, also of great use in theory.
Problem 6 is about a least squares solution to a higher dimensional transform. Not used in games.
Problem 7 is about finding the determinant of a special arbitrary sized matrix. The determinant map is crazy important in higher math, and this is an entry to starting to think about that.
Problem 8 is about eigenvalues and diagonalization.
Problem 9 is about understanding the relationship between characteristic polynomials of linear transforms and how that relates to rank.
Problem 10 is about looking at quadratic forms as matrices, and being able to compute interesting things from this relation.
Problem 11 is about singular value decomposition, very useful in higher math, very useful in many engineering places, and I've never once seen it used for games.
Problem 12 is a matrix formulation of a dynamical system, and solving the resulting ODE.
The point of all 12 problems is to teach general linear algebra. The students are not being taught game programming. The book types you list teach pretty much none of this.
I took linear algebra the same semester as computer graphics - the first half of CG was all about 2D stuff - Bresenham's line-drawing algorithm, things like that. First half of LA was pretty much everything I needed to know to understand matrix operations in OpenGL, which was the second half of CG. Worked great! I still remember most of the relevant stuff 20 years later.
The second half of linear algebra was a bunch of stuff about eigenvectors and eigenvalues. We never were given an explanation why you'd care about them, and I still have no idea why you'd care about them.
Eigenvectors and eigenvalues are (among other things) connected to something called diagonalization. In math, this is incredibly useful because it lets you describe a matrix as being put together from simpler, easy-to-understand matrixes.
Eigenvectors and eigenvalues are also a major focus of quantum mechanics. For example, when you measure the energy level of an electron in a quantum mechanical system, the measurement itself is a linear operator on the underlying wavefunction (linear operator = think "like a matrix"). The eigenvalues are the different energy levels of the electron, and the eigenvectors are the wavefunctions which are states of the electron with the corresponding energy level. You can experimentally verify that the eigenvalues correspond to spectral lines (the rainbow you see when you look at the substance through diffraction grating).
There are a ton of other things going on with eigenvalues and eigenvectors, they're used all over the place. If you want to understand a Markov process, for example, it can be described in terms of linear equations, and if it has a steady-state, it's an eigenvector.
Decomposing things into eigenvectors turns what used to be a complicated problem of coupled variables (the matrix), into a list of simple single-variable problems. It turns a matrix equation into a list of scalar equations. I hope this helps :)
Eigenvectors tell you which vectors are taken to a scalar multiple of themselves via a linear map. Eigenvalues tell you what those scalars are. That means some subspace is fixed by your linear map.
I'll pile on another common application of eigenvectors and values that hasn't been mentioned: principal component analysis in statistics/machine learning.
> It's painful to read. Problem 2: "Find the matrix A describing the following linear transformation from R2 to R'2 : First rotate clockwise by π/6, then scale by a factor of 2, then reflect about the x2 axis." Anyone who programs video games recognizes that as a stack of transformations. You set up the matrix for the rotate, the scale, and the reflection (which is a scale of -1 on one axis). You multiply the matrices to get the result. This is a pain to do with pencil and paper. GPUs have hardware for it.
> Books on graphics programming cover this problem. But they usually do it much better, with graphical examples.
With all due respect to your impressive graphics programming experience, I think even you would have something to learn from this class in general and this problem specifically.
The columns of a matrix are where the basis vectors of the domain are mapped. As such, this problem can be done by keeping track of what these operations due to the vectors e_1 and e_2. In particular, it is easy to this problem in your head, never multiplying any matrices along the way.
It's worth pointing out that Mathematics is a "purist" scientific pursuit - it focuses on the theory for people for whom the theory is the point. The practical applications are for the engineers.
Arguably even computer science suffers from the same problem. Keeping your domain as an example, it will go one level higher - and teach you why this math is useful for i don't know rotating a 3d object in space - but not actually teach you any of the libraries (OpenGL, Direct3D, Unity, Unreal) to actually get it done.
In either case you come out with a degree with a lot of theoretical understanding, but you are useless to practical applications without further training.
This is by design, but it's debatable if it's a good design. Humanities does a better job of welcoming laypersons and giving them SOME basic awareness of history/politics/philosophy/psychology to survive in the world. Math and Computer Science do no such thing, and so we have people who have no idea how to do their taxes, or automate a basic repeatable process on their computer. Maybe we should fix this.
"Mathematics is a "purist" scientific pursuit - it focuses on the theory for people for whom the theory is the point. The practical applications are for the engineers"
Yes, and it tends to be taught that way. But this is "Linear Algebra with Applications", being offered to non-mathematicians. That should be taught less abstractly.
> If you're headed for abstract algebra, where intuition breaks down, this approach might be useful.
I don’t even buy that. Instead of trying to take away the examples and spatial content of a very concrete subject like basic linear algebra, much better would be to give people a lot of concrete (geometrical and otherwise) examples so that their algebra course is better grounded, before just dumping them into abstract definitions and expecting them to symbol-twiddle their way to solutions of unmotivated problems.
I don't understand what you don't like about that problem. It's not very computationally intensive. Basically it tests if you know what these matrices look like, if you know how matrix multiplication works, and if you know that matrix multiplication is composition. These are all important ideas to reinforce. There aren't graphical examples because it's a single problem on a list, not an explanation in a textbook chapter.
> Problem 2: "Find the matrix A describing the following linear transformation from R2 to R'2 : First rotate clockwise by π/6, then scale by a factor of 2, then reflect about the x2 axis."
> Anyone who programs video games recognizes that as a stack of transformations. You set up the matrix for the rotate, the scale, and the reflection (which is a scale of -1 on one axis). You multiply the matrices to get the result. This is a pain to do with pencil and paper. GPUs have hardware for it.
Did you... look at the actual transformations? They are incredibly simple; nothing about this problem is even minorly challenging to do with pencil and paper. The matrix for "scale by a factor of two" is [[2 0] [0 2]]. The matrix for "reflect about the x_2 axis" is [[1 0] [0 -1]]. Watch me compose them in my head: [[2 0] [0 -2]]
I agree that that appears to be bullshit. When I think back to my courses, I had one in ‘vectors and matrices’ which is roughly equivalent to early courses in what American universities call ‘Linear Algebra’. I think it included:
- a refresher on matrix multiplication and eigenvectors/eigenvalues for those who hadn’t learned them in high school
- inverting arbitrary matricies (done with the horrific formalism and rigour that first year undergraduates sometimes like to see)
- basis transformations
- special matrices (orthogonal, unitary, hermitian, etc)
- suffix notation (by far the best bit)
- bilinear/quadratic/sesquilinear forms
- tensor products/contractions/basis changes (but without using tensor notation—it was all done with suffix notation thankfully)
And an exam question might be like:
- invert or diagonalise a 3x3 matrix of nice numbers. Or do Gaussian elimination to a 4x4. (These would be warm-up/small questions). If you get eigenvalues, maybe make a geometric interpretation.
- do some algebra with some variables known to be some kind of special matrix to prove something. (I.e. apply a property of the special kind of matrix to do the algebra)
- do some suffix notation algebra (in particular using some kronecker deltas or antisymmetric tensors and associated identities)
- something about bilinear/quadratic/sesquilinear forms/algebra
They mostly tried to avoid bullshit exam questions that were just computation. There were some other opportunities to do a bit of matrix computation like solving/linearising/sketching certain ODE systems, or computing Jacobians.
In second year we had a course that was actually called ‘Linear Algebra’ which touched on (numeric) vectors and matrices but mostly talked about linear maps, had lines of juxtaposed symbols with juxtapositions having different meanings between different symbols, and mostly involved statements like ‘let V be a vector space over F and let e_1,e_2,…,e_n be a basis for V’. I think the exams did not involve any computation and maybe involved producing some of the proofs from the course or applying them to something.
> In linear algebra, the actual operations are mostly matrix adds and multiplies
I’d say this misses the point of the subject by a mile. Linear algebra is the study of finite dimensional linear maps. Saying it’s about “matrix adds and multiplies” is like saying the study of algorithms is about “filling arrays and comparing numbers”
I am sorry for the snark, but do you always judge the presentation of a course based on ten sample problems listed on its website? Because if you do then you probably would not take any of my courses: the publicly accessible old exams also do not generally explain the course material very well...
Sorry for the snark but the sample problems listed on the website are a huge part of how the prof is presenting the course to prospective students. Why wouldn't you use that to form judgements?
If I understand you correctly to be saying the way you are currently doing that will put people of your courses consider maybe whether that's one small part of your presentation of your work you could improve to really good effect!
Unfortunately it seems like no one has been willing to teach the author what mathematics is. Attempting to learn mathematics as some sort of pattern matching, which is where having large sets of questions and answers to study is useful, does not work; it isn't mathematics.
Now it's possible I'm misunderstanding the problem here: I am assuming that during lessons students have been given answers to problems worked in class, so that they can see what an answer looks like, which is probably one of the most important parts in learning introductory mathematics. Indeed, learning to validate one's own answers is not only the most important lesson in this stage of learning mathematics; it's also the only way to actually learn mathematics as it's the only way actual math gets done.
(ETA:) So I guess what I'm saying is that the author is right that no one has taught her mathematics, but as a symptom of this she doesn't even understand what form actually learning mathematics would take.
Imagine learning to code again. You're shown one for loop, a class header file, and a cartoon of a data structure. You write programs by hand on paper, submit them, and never get any feedback. And you're forbidden from looking at open source code. Some amount of struggle and self validation is fine, but unnecessarily wasting absolutely all your time on dead ends is a waste.
This type of bullshit is normal in crappy STEM classes. Universities are so concerned with keeping secrets that they won't give you the information in the first place. It's a sign of bad course design that's unfortunately common.
I took a couple classes that were like that, but I swapped the class for another subject those semesters and waited until it was offered again by a better professor. Same material, except I actually learned it instead of getting stuck at the starting gate.
Right, but at the pace that many of these courses go, and with how the material continually builds throughout the semester, not getting answers until a week after the quiz, and hence two weeks after the lecture taught the material, is setting up a lot of people for failure.
By having access to multiple worked examples of problems, students at least have a fighting chance of learning how to solve problems _in parallel_ with the course material, rather than having to wait days or weeks to even know what they did wrong, while getting more and more lost.
Remember, these are Princeton students, some of the most brilliant and motivated minds of their generation, and the averages are _abysmal_. That indicates there's a greater systemic issue.
I had an organic chemistry professor who would not return anything until the end of the semester, homework, quizzes, test, nothing. I had the impression she was a procratsinator and just didn't do the work. It was beyond frustrating. She also got her ph.d from Princeton coincidentally!
I did this at Loyola New Orleans (an intro physics lab class) and I'll tell you why. I didn't trust the kids to not lose their work. They could come to my office and collect it and if they challenged their grade, I had all the material to hand with me. Online reports were graded on Canvas at any rate.
The most lenient late policy I've experienced in my (ongoing) university experience has been that you can submit 1 day late for a 30% penalty. Most of my classes lock the dropbox immediately at midnight.
Simply returning work shortly after the late work window closes should suffice, no?
Unstated premise: the most brilliant and motivated minds of their generation ought to all be able to grasp mathematics. I for one don't believe this premise. University level mathematics requires a level of abstract thinking that most people are simply incapable of.
I respectfully disagree. Learning mathematics is just as much a craft as learning an instrument, or how to paint, or how to write prose, or how to layout a PCB; it requires a lot of hard work, but if you're consistent AND have the right tools, you can learn it just like any other subject.
Believe it or not, the number of practicing mathematicians and PhD students who have the innate grasp that a Terry Tao does are few and far between. The vast majority have to work hard to earn their skill.
Someone who is tone deaf will never be proficient with a violin, or a theremin.
No amount of hard work would have allowed Stephen Hawking to succeed at sports.
Some pursuits are simply unavailable to those without the requisite immutable attributes. This is not politically comfortable, but it is true. I think the only legitimate question is whether mathematics is such a pursuit, and I'd like to be proved wrong on that point, but trying to convince me that anyone can do anything they put their mind to is wasted effort as it is so plainly contradicted by the available evidence.
Note that the contradictions you mention are _physical_ in nature; it is true that there are some functions that some bodies can perform that others cannot. Mathematics is not one of those things.
Is the brain not a physical thing? Do you believe that all human brains are physically and functionally equivalent such that one brain should be able to learn to do anything that another can?
What about those people in this world with genetic abnormalities that affect brain function? Would you expect someone with Prader-Willi syndrome to be able to become competent at mathematics if they only worked hard enough at it? At what point does “hard enough” become “virtually impossible” or even “definitely impossible”?
Why, sure - from the physics standpoint all the human brains are essentially the same, they all consist of the same protons, neutrons, electrons... (Also, they are close enough to being spherical.)
While I feel your point is incredibly pedantic, perhaps I should have qualified with some form of "at least X% of people that do not have rare genetic disorders can learn math, X >> 50". However, I think such statements are usually implicit when talking in generalities.
Got it. Your previous statement didn't really seem like you were speaking in broad generalities and instead seemed more absolute, like math is something that could always be learned by any human brain. Clearly that's not the case, which was the point of gpp, I think.
You might be surprised. My daughter took first year university linear algebra last year and graded assignments and tests were often returned weeks later, in some cases well into the exam preparation period. I told her this was unacceptable and she should complain, but you can imagine why a young, shy first year student might not be able to get over that potential barrier.
Another thing that one might not have considered is the perception of women and math. Of course your daughter might not want to protest against unfair mathematics teaching structures given that her struggle is societally used to represent that all women struggle at math. <relevant xkcd comic here>. I would also hesitate to protest unfair practices in situations where I was a minority because I know anything short of quietly excelling is a negative representation of my entire demographic.
Grading the homework is not the same thing as providing feedback. A big red X tells you that something is wrong, but not what you can do to fix the problem or even why that thing is wrong.
Okay, so go to office hours or a math center (if available, apparently quite common).
I certainly don't want to be misquoted as claiming that mathematics must be learned in a vacuum. Just that access to a large collection of questions and answers is not helpful. Your own argument goes through just as well to show that access to the answer isn't helpful either: you know you got the wrong answer but you don't know why.
For proof based homework typically a grader will tell you which step failed with a short note saying why ("this mapping is not well defined", "here is a counterexample", etc)
It is cryptic at times bit ultimately developing rigor and intuition is something that in my experience will always involve a certain amount of struggle and confusion that no professor can or should alleviate
> Attempting to learn mathematics as some sort of pattern matching, which is where having large sets of questions and answers to study is useful, does not work
This is actually a really good point, but unfortunately this is actually how public education through high school tried to teach math. I remember the agony I experienced as a 3rd grader for not being able to memorize "multiplication tables". Instead I took the approach of trying to understand what the mathematical meaning of multiplication is. This was to my extreme academic & mental detriment as we were not graded on understanding, but instead graded on how fast we could answer math questions.
I felt like a total failure. It's much faster to memorize vast multiplication tables and recall them from memory than trying to understand first principles.
Obviously, my concern over this was totally pointless as I've never been in a career environment where I was told "just memorize the answer, don't bother trying to understand anything".
I don't know what the answer is, but we're currently going through this with our kids, but the opposite. There is now a push to not memorize the multiplication table, but treat multiplication as repeated addition. So to get 6 * 7 you do 6+6+6+6+6+6+6 or 7+7+7+7+7+7 (I forget which is 'correct' as it's been a few years).
That's good because it gives understanding, but when you're trying to multiply 2 4 digit numbers, it's really useful to have your tables memorized!
We're now going into a new school and their biggest advice to new students is to memorize their multiplication tables, as they'll have trouble otherwise. Maybe they should do understanding followed by memorization?*
I picked up this trick intuitively as a very young kid, perhaps 7-8
I break multiplication and division up into chunks of 1's, 5's, and 10's so that it's mostly just adding a zero to the end, or doing that and then cutting it in half.
I never learned multiplication tables, long division, lattice multiplication or anything else. just did this in my head.
So say you want to find 86 * 32
86 * 10 = 860
860 * 3 = (2400 + 180 = 2580)
2580 + (86 * 2) = 2752
It starts to break down for bigger numbers depending on how "uneven" they are but it's been pretty useful in general
Multiplication tables memorized in school usually stop at 12x12. They're super useful for doing the exact thing you demonstrated, in your head, very fast, using some tricks to turn the problem into smaller problems (with memorized answers, so they're solved almost instantly).
Memorizing that multiplication table was a more valuable use of time than the vast majority of time I spent learning mathematics. It's useful daily. Can't say that for much else.
Unfortunately it is according to some of the common core grading rubrics (in the US).
5 x 3 can be understood as five groups of three items, or three groups of five items, and students at a particular grade level are "encouraged" to use one interpretation over the other to the point of taking off points when they naturally use the commutative property (and or choose to chunk differently). I forgot what it was exactly but I read about a parent (rightfully) complaining about this.
I don't think this is anywhere in the common core standards, but probably the teacher/school was using some pre-packaged rubric and the teacher didn't bother to override using better judgment.
> Instead I took the approach of trying to understand what the mathematical meaning of multiplication is.
There's not much to think about tho, is there? You take 3 boxes of 4 apples each, how many apples is there?
Or were you thinking about groups, rings and fields of integers? I highly doubt it at that age ;)
Ultimately you need to know multiplication tables instinctively to be able to do algebra, so they make you learn them. I don't think there's any way to skip it, just like you can't be good at football without doing a lot of cardio.
For the record - I also hated memorizing multiplication tables and thought I will be a writer because clearly math isn't for me. Fortunately in the next semester we had word problems and I loved that part of math.
I think there is. For example, multiplication is not visually intuitive on a number line, but it is very intuitive shown as a grid of row x columns. Doing the math out helps build an intuition for things like commutative properties and what not.
Multiplication on a number line? I guess you can take X and repeatedly jump by it Y times.
> Doing the math out helps build an intuition for things like commutative properties and what not.
Well yes, but that's the things in boxes example. Doesn't matter if there's 3 boxes of 4 apples each or 4 boxes of 3 apples each. That takes like 1 lesson and most kids understand it intuitively anyway.
I remember we had 1 lesson of introduction and then a whole semester to learn multiplication tables and use them to solve simple word problems with multiplication. I'm not sure how that time could be better spend thinking about multiplication in abstract.
> Multiplication on a number line? I guess you can take X and repeatedly jump by it Y times.
Of course you can, but it's not intuitive to most. Most notably it requires understanding that in 3+4 you start at 3 and move 4 spaces to the right. In 3x4 you start at 0 and move to the right 3 spaces 4 times.
Kids absolutely do not grasp commutativity immediately. That they can solve 3x4 is 12 and 4x3 is 12 is not the same thing as understanding with confidence that nothing changes between these swaps.
> Most notably it requires understanding that in 3+4 you start at 3 and move 4 spaces to the right. In 3x4 you start at 0 and move to the right 3 spaces 4 times.
That's a weird way to describe it. Doesn't make it more understandeable and isn't useful for solving problems. So why bother? We were taught the definition of multiplication (it's just repeating addition). So if you have 3+4 it's starting at 0 then jumping by 3 and then jumping by 4. If you have 3*4 it's the same as 4+4+4 which is starting at 0 and jumping by 4 three times. Or vice versa.
I don't think we had that jumping on number line on that lesson, probably not since it's kinda obvious and provides little value when you know the definition. We had a lot of word problems and whoever was the fastest would explain how to solve it to others. So basically somebody was the first to realize you don't need to do 2+2+2+2+2+2 when you can calculate the solution as 6+6. Kid got reputation boost for being smart in front of others and others stole the technique to be the fastest the next time. This got me into math.
That is entirely the point. The number line is awkward for multiplication.
But mapping the relationship between multiplication and the area of rectangles is very visually intuitive. Geometric reasoning is powerful. Being able to use your understanding of multiplication rules to derive the formula for the volume of a cube, or a cylinder, or whatever is probably more insightful than realizing some arithmetic tricks.
> That is entirely the point. The number line is awkward for multiplication.
Strong disagree. The number line is one of the best tools for understanding multiplication of numbers (not just whole numbers, but any decimal). The problem is that it is no longer taught. Example: American rulers have both metric (cm) and Imperial (inch) units. You can use it to visually multiply and divide by 2.54.
To generalize multiplying positive numbers x and y, (1) Mark x on a number line, (2) create another number line with the number 1 placed where x would be on the original line, (3) find y on the new number line, and (4) the corresponding point on the original line is the product x*y. The point: Multiplication is scaling (stretching, shrinking, whatever you want to call it). The Common Core tries to address this.
As a kid, the row x column thing never made sense to me. I was horrible at understanding visual metaphors, I don't think I "got" the row x column thing until well into high school, and even then it was "I have to think about it".
I always had better luck with just manipulating the numbers mentally.
Visual explanations of geometry, trig, and calculus made sense.
But as a kid I never got the multiplication thing. Even now as an adult I understand what they are trying to do, but it isn't "obvious" to me.
Then again I am one of those people who doesn't read comic books because all the pictures get in the way of the words. Heck as a kid I read illustrated books and didn't realize until I had finished the book that it even had pictures.
The principles of multiplication are pretty straightforward. However, especially before calculators were commonplace (one can probably debate if there's sufficient value in memorizing multiplication tables today), there was a lot of benefit in doing multiplication and other simple operations quickly and mentally. There are a ton of basic things that we memorize without necessarily knowing how to get there from first principles off the top of our heads.
This is true with programming as well. Sure you may look up APIs or specific syntax but if you had to look up every detail every time you put fingers to keyboard, you'd be really slow.
>I felt like a total failure. It's much faster to memorize vast multiplication tables and recall them from memory than trying to understand first principles.
and this is why kids are taught to memorize these lookup tables. When doing algorithms such as long division or multiplication these lookup tables can make the process much faster.
I think there are shades of correctness to your answer (at the upper echelons of math study, as it were, there will be no answer book for you to check), but the act of confirming your answers should be transitioned in and taught; which from this author's perspective hasn't happened. Further, there should be education, refinement, and strengthening of learning to validate one's own answers before leaving them to flounder in a 200 level STEM-focused course.
(Honestly, I'd probably have a better relationship with math if it were taught to me in the method you seem to require as "actual math".)
> I am assuming that during lessons students have been given answers to problems worked in class, so that they can see what an answer looks like, which is probably one of the most important parts in learning introductory mathematics
As someone deeply familiar with/scarred by courses just like this one, in-classroom introductory mathematics pedagogy at elite institutions can vary wildly because mathematics graduate students and professors are incredibly specialized in their fields of study and accustomed to very specialized types of intuition - with perhaps more of a disconnect from the introductory student's learning experience than in any other field. Language barriers can exacerbate this. Proofs are thrown on a board, time management on the lecturer's part is nonexistent, and examples are inevitably skipped over as "an exercise for the student."
In contrast, many computer science programs recognize this tendency and optimize for pedagogy. I remember my university's CS department hiring and paying upperclass CS students to guide other students through their first times debugging code outside of the authority structures of official teaching staff. No similar program existed for the mathematics department, and arguably it should have - but who would volunteer? Once a mathematics major, you're pulled into a realm that's quite isolated from the broader student experience!
Learning by example is a thing in math too.
Learning theorems and methods is not sufficient, they are tools and you need training to master them.
Not everyone is able to generalize from one class example to other situations. For that you need to work with other examples. Not only the problems, the answers too.
Also if no one liked this course there is certainly a problem that can't be dismissed in a handwave like you did in your answer.
Richard Borcherds, a field medal winner, stated that he approaches new topics by doing a lot of examples before trying to understand the theorems and such. There is no "right" way to do math, contrary to what OP claims.
> Not everyone is able to generalize from one class example to other situations.
I found the same thing in my tutoring experience. I had several students in physics whom I couldn't "reach" no matter how hard I tried to present "theory" using the equations in full generality (symbols instead of numebrs). I taught them this way because they this is the way I learned and because it seems OBVIOUS to me that learning the abstract thing is more powerful/efficient way to get through it.
Imagine spending dozens of hours with them and they still didn't "get" anything to the point I was feeling discouraged and was like this person will never pass this exam that they have next week. I felt bad because these were friends and I really wanted them to succeed (more friends in STEM, more STEM conversations with friends).
Lo and behold, these same people whom I thought were "physics dumb," were able to pick up all the material in literally minutes, as soon as we started the exercises (one person) or having tried some exercises on their own (the other person). I don't mean "imitate the steps"-know, I mean completely solve 80% of the problems on the practice exams and adapt the use of equations as needed for each problem. I mean it's still PHYS101, so there are only 10 or so equations, so they didn't turn savants or anything, but the transformation was so sudden and drastic that I realized people simply have different learning approaches.
Some people like the abstract/general approach. Some people like the hands-on approach. The latter kind of people often think they are "not good at X" but really they would have no problem picking up X if they had learning resources suitable for them (often lacking in traditional textbooks and courses). I think that's why Khan Academy videos are so popular. Sal does a fair bid of hands-on approach, and many people need that!
My feeling is that what you say is true to a varying degree, dependent on the course in question. Maybe more particularly the level of the course. For proofs based math where the goal is to write a proof, I'm more inclined to agree with you. Especially since there can be more than one "correct answer" and seeing one may or may not help you at all in understanding why/how another one would be constructed.
But for lower level "grind and chug" Maths classes (High-school algebra, intro Calculus, non-proofs-based Linear Algebra, etc) I think there is value in having access to "the answer". Certainly at least for a subset of the problems one works on, IMO.
> But for lower level "grind and chug" Maths classes (High-school algebra, intro Calculus, non-proofs-based Linear Algebra, etc) I think there is value in having access to "the answer". Certainly at least for a subset of the problems one works on, IMO.
I think there is a value in introducing the concept of verifying your answers early, as your ability to perform calculations is beyond useless if that isn't something you are thoroughly familiar with.
If you're just doing the calculation but not the verification, you're skipping half the exercise.
Sure but those two positions are not mutually exclusive. I don't think I ever took a Maths class that didn't introduce the idea of verifying your answers. But at the lower level, most of them used books that provided answers for some but not all of the exercises.
If nothing else, this is an advantage from a time efficiency viewpoint, as you can more quickly identify the problems you got wrong, and focus your review time on those. Those presumably being the ones most likely to highlight some misunderstanding of the material.
If time were infinitely available maybe the distinction wouldn't matter, but things being what they are...
Definitely agree with this. At least for me when taking undergraduate math, once you get to the proof based stuff, often times seeing the answer was in no way helpful. You either knew you proved it correctly or you weren't able to do the mental gymnastic it required to get there and seeing an answer was likely not going to help. I usually just had to re-read the book and try different things, take a break maybe, or something before I would finally get the intuition or whatever to really grasp it.
For calculation based math, which this course sounds like and based on a sample test I looked at, more or less is, having some subset of answers would definitely be helpful. I am not sure why they would make it more obtuse than it needs to be. I thought the course I took on multivariable calculus and linear algebra were quite easy but the number of people who dropped math entirely after those was pretty drastic. I don't think you really need to make these classes unnecessarily hard to weed people out. They'll do it themselves anyway.
Teaching yourself math by producing answers and then validating them seems like a great way to possibly completely fail at learning math. What if you are making some fundamental mistake, and now all that time you've spent studying reinforces that mistake? We see this in software all the time; people will latch on to bad patterns and stick with them for years.
I think that is the whole point of not giving answers.
You should be able to solve a problem in multiple ways and prove correctness.
It takes loads of time, but that is the only way to truly learn.
Most of students given answers will solve a problem in one way see that answer matches the correct solution and stop there. That is not the way to learn anything.
It is the same with software, it takes a lot of time to get good at.
In software it is easy to get correct solution with wrong approach, but often people just stop at "make it work" where they should step back and "make it work, make it right, make it fast".
> Attempting to learn mathematics as some sort of pattern matching,
The math I did before university was doable with basically pattern matching ; I then still had a close to photographic memory (I could skim materials and recall them exactly) and got A’s in math because of mostly that. I could do exams by filling in methods I memorised. There was no understanding. Then in uni I got a good scare as none of that worked anymore; now I had to actually know what I was doing. That was obviously much better but I was not prepared for that at all.
The course is "Linear Algebra with Applications" - and the OP explicitly wanted a course to learn linear algebra for non-math majors. It's not about "doing mathematics" in the sense of doing novel math, it's about learning basic linear algebra and being able to apply it to a non-math field.
IMHO for everyone who wants or needs to "learn actual mathematics" there are at least ten people who need "applied mathematics" in the sense of being able to apply well-known theorems from a well developed field (like linear algebra) and with zero need to ever prove anything novel, even trivial things; they need to understand the concepts and know how and where to look up the appropriate formulas to do the linear algebra calculations they need for their non-math domain. This OP wanted a course for the latter need and this course failed at this goal.
For a random example I heard recently; there's applications of differential equations in pharmacokinetics, so people studying pharmacokinetics need a sufficient math background for that. However, the appropriate math background for these students involves the general concept of differential equations and being able to understand a couple specific equations which characterize their physical domain, and do calculations involving them. For that use case there is no need for a skill in "doing math" - all the mathematical properties of those particular equations are known and they can and should look them up instead of learning how to derive them from first principles, much less making any new assertions.
> Attempting to learn mathematics as some sort of pattern matching, [...] does not work; it isn't mathematics.
It's possible the author was in a "math for engineers" class
Where a math student may see a technique as a swiss army knife that can be used for loads of things, an engineer might only care for the one blade that lets them check the stability of their boost converter and pass their power supply design class.
>Brief Course Description: More abstract than calculus, this course aims to develop basic algebraic tools for work with problems involving many variables. Starting from systems of linear equations and vectors in 2-space and 3-space, this course develops ideas about length, angles and resolving a general vector into useful components, identifying features of linear systems or processes in order to choose a basis that is well-adapted to studying a particular phenomenon and move between different points of view to reveal the essential underlying structure. Companion course to 201 (Multivariable Calculus). Discusses matrices and linear transformations, linear independence and dimension, bases and coordinates, determinants, orthogonal projection, least squares, eigenvalues and their applications to quadratic forms and dynamical systems.
No. She was in a 202 class. "math for engineers" is usually locked behind a course of study or prerequisite classes so people who need those classes to graduate get them. Everything 200 and below is usually tagged as sophomore or below and is intended to be used cross major. 300 and up is when specialized topics start coming up.
You could argue it was "math for engineers" in that Liberal Arts / Social Studies don't require them and only the STEM programs do, I guess. You can graduate with a non STEM degree with just an Algebra course in most Universities in America. And those Algebra courses are usually just high school refreshers if you went to a good high school. Some of the non STEM require Statistics. But even there some schools do "Statistics for STEM majors" and "Statistics for non STEM majors"
> Attempting to learn mathematics as some sort of pattern matching, which is where having large sets of questions and answers to study is useful, does not work; it isn't mathematics.
You're right, but you need to know the basic mechanics pretty well in order to start to understand the deeper philosophies and ways of thinking that math _is_.
It's like learning to ride a motorcycle without ever having ridden a bike; Riding a bike is not riding a motorcycle, but you're going to really struggle to make progress past a certain point of learning since you're mastering the absolute basics of _both_ things at the _same_ time.
It's the same thing with math. If I never see what well-formed answers to problems look like, never gain familiarity with the symbology or jargon, then I can never start to even learn proper math because the professor can't communicate with me.
From what I understood, the HW/exams were graded, but solutions were not provided. I've studied math at two universities, and every professor provides solutions after they've been graded. And if they didn't, they would give you the solution to a particular problem in their office.
They may not give it as a handout, but more likely would solve the problems in class for everyone to see. But one way or other, they would give it.
> Unfortunately it seems like no one has been willing to teach the author what mathematics is. Attempting to learn mathematics as some sort of pattern matching, which is where having large sets of questions and answers to study is useful, does not work; it isn't mathematics.
That is exactly how I got through university math so I think you are wrong. I worked on what felt like millions of problems the teachers gave out and then on some more I found in books. Then I looked on the answers and tried to figure out what my errors were. Then I worked on more problems. What didn't work for me was looking at lecturers writing out proofs for various theorems on the blackboard. I had almost zero use for that.
> Unfortunately it seems like no one has been willing to teach the author what mathematics is.
You're assuming there's only one answer to "what mathematics is" and that it coincides with your view. You appear to be a fan of doing math, but far more people use math.
I'm not a mathematician. To me, it's a tool that can be used to solve the problems I care about. I don't get joy from spending hours proving results just to say I did it - but I understand that others do. In spite of that, if I can understand the conditions in which an algorithm will converge to the solution, I can benefit from studying math.
> Attempting to learn mathematics as some sort of pattern matching, which is where having large sets of questions and answers to study is useful, does not work
This is how mathematics works for most students.
They get a set of problems, then a (poorly explained) set of tools and they try to apply those tools to solve the problems during tests. Then they leave school and never use those tools again - they often completely forget about them. In Eastern Europe they even call it the "memorize->get drunk->forget" cycle.
Arguably, this is the experience of most people, in most fields of study. This pattern matching does not only happen in maths. Most Bachelor's and Master's thesis are basically a compilation of quotes from various books and papers - without any new ideas, or original research. Maybe I am cynical, but in my opinion you are discouraged to make any original research even while getting a PHD as well. Your thesis is more about quoting the "right people" (= quoting papers of the people who will be promoting you), than doing anything new, or original.
But coming back to the question of actual education: the article clearly shows the experience of most people at Universities. If they want to 'learn for the sake of learning' you will get very discouraged fast, your experience will be very miserable - the university is not there to broaden your horizons, it is just a combination of a testing facility and a diploma mill.
What is even sadder is that if you are laser focused to learn something that will be useful at work.. then you will get disappointed as well. The things taught at universities are often not even applicable at academia, not to mention "real" work. Writing a master's thesis teaches you how to write a master's thesis (assuming someone even properly teaches you how to do that, for me they just told us to write one, without even bothering to show few other ones as examples - I had to get those myself). It still teaches you something, but that something is not good enough for real academia or real work.
In addition, since lots of lectures are graded on basis of tests, universities often feel like a glorified highschool. And you know what? Probably we cannot have it better: most people wont make original research - because it is hard, so universities are stuck with the tests and papers (that are a collection of unoriginal quotes). Also you need to learn to walk before you run, how are you supposed to write a good original thesis, if you didnt write a single non-original thesis, what is much easier?
The main reason why the blog's author was disappointed is the systematic problem of rewards for university professors. They arent really rewarded for doing more than the minimum. They have their own rat race, with their own reward structure, that rewards "research", understood mostly are publishing quotable papers, sometimes getting grants. Changing the reward structure would help a lot - those who focus on teaching, should be rewarded better. Universities supposedly are for students, but most of the time it feels like students are an unwelcome afterthought for the research professors.
Also, professors seem to like to say that "if you want to learn a trade, go to college - university is there to broaden your horizons" - what is obvious bullshit, college seems to be the same as university, but just with a worse diploma at the end. [as a thought experiment: would the professors teach better, if their pay would be related to the salaries achieved by their students - ignoring GDPR, PII for a moment? if the professors could get a "share" of their students incomes, would they teach better? now in USA the students are obliged to pay their tuition with 0 impact on the quality of the received education, or in Europe receive free education]
Then we have those "good universities". USA has this corrupted system of admissions (probably so that students with best results dont take 100% of the available spots - universities want those sweet donations from rich people for taking in their children... so they use the admissions process to allow them in, what is completely not meritocratic). Yet in most good schools you are still supposed to know the subject before you even start to study it: if you go to study French, you are supposed to learn French in high school (reality is that: probably your rich parents sponsored you tutoring, there are very few kids who do it on their own), if you are supposed to learn programming - you are supposed to learn it before, on your own time...
Which kind of proves the point that universities fail at teaching. Those students who knew how to speak French before joining the university, or those who knew how to program before coming to a CS course -> they were already good before they even joined the university. Are they now "great" because they later got an university education? Or did they get into a good university, because they were already destined to be "great" and the diploma is just a rubber stamp? One could say that perhaps they were unrefined stones and the universities polished them into diamonds, but I somehow doubt that. Were your fellow students unpolished diamonds, or more like morons?
Coming back to this "pattern matching". This is how education work (life?) goes for most people - do repeatable things again and again. The running joke among programmers (who are a creative job) is that code is routenely copied from stackoverflow and glued together - isnt that the definition of pattern matching? The hard stuff is done by others (either those few very smart, or those laser-focused on one thing), so most of the time you try to find the pattern that solves your problem. For every programmer doing complicated algorithms, there are probably 99 adding a button to some CRUD [source my ass], what can also be complicated, but for other reasons :)
Attempting to learn mathematics as some sort of pattern matching, which is where having large sets of questions and answers to study is useful, does not work; it isn't mathematics.
You're making the student out to be some kind of simpleton. She's not.
She just wants what any decent textbook has: An answer key to the practice problems, so she knows whether her answers were correct or not. Being as they are, after all, practice problems. Meanwhile her instructor is telling her, in so many words, to buzz off.
That's what is at issue here. Not (as you presume) her being some kind of a lunkhead, who thinks it's all about "pattern matching".
Very few of the maths textbooks I've read have had the answers to the exercises in them. If the author wants to put in a worked example, that will be in the chapter itself, rather than the exercises.
In maths, you know when you've got an exercise right, and so you don't need the answer written out for you. If you're looking up the answer before you get that feeling, you're cheating yourself. You won't learn the material.
It would seem weird if someone put the answers in the textbook, like having the answers to a newspaper crossword on the same page as the crossword itself. You'd have to exert willpower in order to not look at them.
The whole point of the exercises is to play with the ideas until you understand what they're for. If you don't at least partly invent the subject yourself, you never really 'get' it.
Textbooks are really guides to how to reinvent the field, what order to think about things in, what are the cleanest ways to break up the patterns, what are the best notations to use, so you can reinvent it all at a reasonable speed rather than having to spend a whole lifetime on each problem.
If you literally can't do the exercises despite having read the chapter, then it's a bad textbook. Throw it away and get a better one.
Very few of the maths textbooks I've read have had the answers to the exercises in them.
Well it's been a while - by my recollection is that (at fresh and sophomore level at least), the better textbooks always did have answer keys in the back (at least for a significant subset of the problems). But as we all know -- the better textbooks are few and far between. And college is filled with lousy textbooks that get thrown at students for who knows what reasons.
To the extent that they think lousy textbooks are the norm.
> In maths, you know when you've got an exercise right, and so you don't need the answer written out for you.
No, I might think I have the correct answer but I cannot know until I have seen the correct answer. I can justify any false answer that's not obviously false for myself which is why I need to compare.
Attempting to learn mathematics as some sort of pattern matching... does not work
China (and other countries who put American math education to shame) disagrees.
For you, math may have been a deduction from first principles, but to us mere mortals, math is a decade-long slow reveal through wax-on-wax-off repetition.
Finding alternative proofs is not a valid way to confirm the original proof; so... no?
You appear to be absolutely correct that no one has taught you what mathematics is. There's definitely a failing here in mathematics education; unfortunately this is not a surprise at all.
Validating the proof requires understanding what it is you're trying to prove, understanding what are valid proof techniques, and understanding the premises. You then check every step against this knowledge. It isn't easy, and tbh I usually couldn't be bothered after spending hours on a problem, but this is where results are obtained in proportion to effort.
1) Gatekeeping. There are lots of professors in lots of disciplines in lots of universities, be they STEM, social sciences or arts and humanities, who are determined to keep out any student who hasn't followed the exact progression that they believe is necessary in order to take a course. Often there is no good reason for this. They're just petty.
2) Most academics are awful teachers, even worse course designers and have no formal training in pedagogy. This is why you get stupidities like the author describes where answers aren't given to problem sets, or courses based around lectures that are literally someone standing at the front of a lecture theatre reading from a text book in a monotone for an hour. Teaching and designing courses is not a priority for most academics as it is not what they are in academia to do, and being good at this usually won't help them in their career. They are often given little or no training in either course design or teaching by the university and so tend to fall back on trying to replicate how they themselves were taught. They then panic or are dismissive when faced with a student who asks questions or requires some guidance. Remember, the job of a teacher is to teach, not just to grade.
3) Some courses, even at a fairly low level, are so specialised that it only really makes sense for a major to take them, or they are not "stand alone" as they are intended to be completed at the same time as another related course with concepts from one helping illuminate concepts from the other.
Your first point is definitely something I experienced in university a few times. Mostly in STEM classes.
Your second point is very interesting because in general, the highest-tier schools tend to hire professors that are mostly academic researchers where teaching is more of a “side gig”. It seems this would directly translate to a worse learning experience.
I definitely had experiences where a CS professor at the local community college was a better teacher than the equivalent professor at my university. The community college teacher worked as a software engineer in the real world. Had to onboard people, train junior devs, explain concepts to stakeholders, etc…
From what I understand from reading this thread, most elite schools provide less in terms of instruction. The cheaper schools provide more “hand holding”. Just an interesting thought.
It's really interesting when you look at the UK system. Here we have former polytechnic universities that are equivalent to US community colleges and are more teaching focussed. Then you have your red brick and Russell group universities that are research focussed and where the teaching is often a bit shoddy as the academics see it as a distraction. Finally you have Oxford and Cambridge, which are very research focussed, the two most prestigious universities in the country, and also have a very intensive form of 2 or 3 to 1 tutorial teaching that is generally highly regarded, even if it does come perilously close to spoon feeding sometimes. So you can have high quality teaching at research focussed universities, but it certainly doesn't seem to be the norm.
I'm more and more convinced that the research and teaching sides of a university should be separated out at this point for most subjects, at least for undergrads.
Going to prestigious schools is about signaling and making connections, not receiving better instruction. One of my coworkers teaches cs at a community college, I've sat in on a class. The stuff he teaches is so much more useful than the stuff that was taught at my top 10 cs school it isn't even funny. He puts way more effort into teaching than almost any of my professors did, because to them, teaching was a nuisance. It's not what they signed up for. It's not why they're at the university. They're at the university to do research, the quality of instruction follows.
The highest-tier schools are not a place to learn, but a place to pay to get their fancy name on your resume/transcript. Actually learning anything is your problem, not theirs.
>courses based around lectures that are literally someone standing at the front of a lecture theatre reading from a text book in a monotone for an hour
Those are my favorite courses!
Then I can stay at home and read the text book myself
It is much better than professors who want everyone to engage in their lectures, so they do not give out lecture notes, and if you miss one class, you risk failing the exam
One unfortunate thing about undergrad is that students are punished for taking classes that push their capabilities or even classes in other disciplines (past the basic requirement version of these classes).
Many ambitious students are striving to make a career in the humanities (probably like this author), to go into investment banking, or to get into an elite law or medical school. These fields are so competitive that it’s not worth risking taking classes you might not get an A in.
This results in students filling their schedule with easy classes and professors and maybe not taking the classes they are interested in. Or worse, punishing students who don’t do this.
Some of the smartest people I know were 3.2-3.5 students because they did not play the game and took challenging classes across disciplines. Conversely I know some absolute morons who got I-banking jobs at elite firms because they only took fluff classes
Are they really morons if they're working their dream jobs? I don't understand why people think that an undergrad class is the only way to learn about something. There are far better resources nowadays on the Internet where you can learn something from scratch at your own pace, without the stress of deadlines and grades. That's the unfortunate truth.
Well, the few people I had in mind aren’t exactly tearing up the world of financial services to put it nicely. Maybe moron was too mean.
A related belief I have is that college students over-index on trying to get their foot in the door of whatever industry. For example, students who skip stats and CS classes because they might hurt their GPA might find themselves behind the students who did 5 years down the line. Even in the humanities and social sciences. Another example is all the junior engineers who are leetcode experts but don’t know what DNS is.
I actually agree with what you are saying. But why can’t college be the place to do that? You have a bunch of people together in one place who want to learn (and have the time), in theory guided by experts. Most people are highly social learners and need some accountability, and Khan academy videos aren’t going to cut it
When I was in school the math teachers were just out of control, didn't really understand the topic, thought screaming at the students was the best way to make up for that. We observed that they basically copied everything out of the teacher editions and couldn't really answer questions beyond that, so we started swiping all of the teacher editions and chucking them in a dumpster or throwing them on the roof of the building. They couldn't re-order them easily during the year because the textbook budget had already been spent, so they had to work from the student books instead - really improved their attitude.
Outside of the school systems there are some really well written books on basic and advanced maths and that is more the direction I went. I forget the title but there was one book in particular I bought that taught an algorithmic approach to math problems with an emphasis on how to solve problems with really large numbers so you can amaze your friends. I'm not sure I'd want to hang out with anyone that wanted to sit around doing math problems with me :), but it was a very effective book and more then made up for the public school system. So I guess bottom line is that there are resources available if you want to learn something new or need a refresher. You don't need an instructor led class to do it.
> For example, though we were provided with practice problems to prepare for our exams, we were never given solutions. My class consistently begged my professor for these, yet all he could say was that not providing them was departmental policy, and it was out of his control.
Wild.
EDIT: A response (and +1) to other comments: of course, there are many solutions to different problems on the internet.
But IMO, a big advantage of taking a class is to have shared context with a group of people, and thus interactive help (from other students, TAs, etc) working through specific problems together.
Being able to know if you were "right" seems to be an important part of this process. So having solutions to the shared problems you're all looking at seems important. (Withholding solutions seems like a method for instructors to reuse questions instead of having to write more every semester.)
To offer a different perspective a bit: For every person who desires to learn for it, there are also folks who want to do as little as possible and see no issue with just copying solutions to turn into homework. This includes groups who hold onto the solutions and will give them out to folks taking the classes. Professors had one of two ways to fix that: change questions every year, or just not allow solutions.
That being said, I seem to recall that when I took math classes in college, we had books that had even questions that the solutions were in the back, and the odd questions did not (they were only provided to the teachers). The questions were largely the same, so if a student had an issue with an odd question, they were able to just go to the cooresponding even question and work it out. I felt that was a reasonable compromise.
Many years ago, my univerity's choice of calculus book also had the solutions to half the problems (evens or odds, doesn't really matter).
Department policy was also one of "we won't provide you the correct answers" even after an assignment had been turned in because the book was used for multiple years. The publisher had a new edition every year, but the university stuck with the same book because it was used for Calculus I, II, and III, which for most students was 3 or 4 semesters between starting I and finishing III, usually due to a scheduling conflict requiring a semester off between them, or because they had to repeat Calc II since the math department's selection of instructors was particularly bad for that course.
Those same (usually bad) instructors were all too happy to follow the department policy and not provide any feedback other than "correct" or "incorrect".
On the other hand, the university book store carried, and put on the shelf right next to the calculus book, the publisher's "teacher's solution guide", in two very reasonably priced volumes, which had the answers for the other half of the problem sets, as well as the step-by-step process for most of them, which was the valuable part, as you could see where you were erring.
Math department policy was that you weren't allowed to have those, either.
You can guess how well that policy was followed.
Those that put the effort in and learned the material did well. Those that just copied from the solutions book and turned it in did not.
At the end of the day, if a university gives out grades, there has to be some sort of objective way of handing out a grade. What I have seen for the good courses is it is a mixture of exams, projects, and homework.
Some students are very good at taking exams, others, not so much. This can be due to a learning disability, stress over test taking, etc (or it could even be that person just is having a bad day!). Having homework and projects allows for students to have a different way of showing that they understand the coursework, and are able to apply the material.
It also gives the professor and TAs insight into the student. Why is a student doing so well on homeworks, and not the exam or project?
Some courses have it where if youre final grade on the exam is an A, you get an A (since it is a comphrensive knowledge base test of what you are expected to know of the material). But, let's say you don't do as well on the exam, you can have the homeworks average out the exam grade. Or you have a project, that can help equalize out the grades, because the application of the knowledge is important as well.
heh, I actually had this discussion with the professor I an TAing for. The (graduate) class is entirely a class project (it is an ASIC design class), and, if you finish the class project (you can tape out your chip), you get an A.
We have a set of homework assignments to help the students learn the tools (kind of a "hello world" script for the project), and I asked if we just tell them we don't look at them and they are entirely for your benefit. The professor said you if you do that, there will be a decent amount of students who will just not do the assignments and later on complain that they have no idea how to use the tools.
The solution we came up with is to have a set assignment due date so students feel like they have to do them.
Personally, I am surprised that graduate students need that sort of motivation to do the work.
Professors could change the numbers in the questions every year, without really changing the questions.
And then give the answers after the homework was handed in, if they want to grade the homework. Or compromise, by giving answers to half the assignments, and not grading those.
It's 100% because the problems come from a textbook and some other professors assign them as homework, as opposed to study, rather than writing their own problem sets.
If it's from the professor's own problem sets then actually WTF.
Textbooks written "for teachers" are the bane of every college student's existence if you dare to actually learn from them yourself. "Only solutions to odd problems -- cool guess I have to look on the internet or never be able to validate whether I got them right."
My mother was a professor of one of my college STEM subjects, and had used my textbook in my introductory class. My teacher was horrible, and she agreed. So she gave me her teachers answer guide, which not only provided answers to chapter questions but explanations (some including comments about where students might go astray, and why, and why that was wrong).
I gave up on lecture, and taught myself the subject by doing problems out of the back of our chapters. Aced the class, changed my prof next semester, changed my major to the subject the semester after that, and graduated with honors.
To this day, I am dumbfounded by an approach to STEM education that would withhold a critical tool to iteratively learn via problem solving.
It would be like XP without writing tests. You ship your knowledge to the exam, and pray it doesn't break. Seems ridiculous.
It puts the responsibility on the student, like it will be on the job. You have all the material on this planet at your disposal. Works in other countries: lectures and classes for two years and then one final exam. No quizzes, homeworks, extra credits, etc. Just the classes, lectures, you, your self-motivation, your peers, and all the knowledge of the world in books or the internet to help you learn the topic.
> STEM education that would withhold a critical tool
How does it do that? Are students locked away? Is there a secret police that storms into dorms and burns all material that students try to learn from? Does the Dean come in to break up illegal learning groups?
Cheaters, if they are good/hard to detect, would be more likely to be at Princeton than at a community college. By the time you get to Princeton, you're either good at studying or cheating (or being born to the right parents.)
It's highly likely that there is a large pool of exam questions, and every year, they are split into "practice" and "actual test". Providing a gold standard answer would lead to memorizing solutions in a way that providing all the questions does not.
It's likely the point is to talk to the professor about the ones you're having trouble with, or where your study group disagrees.
I always believed that if a course assignment needed a student to look up anything online (provided that their background was solid enough), let alone the solution, this would be something professors would feel moderately self-conscious about.
However, I found out the hard way that also in respected universities, the actual assignments in "hard" courses were long-known, extremely challenging problems that were not really meant to be solved at this level, especially on a weekly basis.
Folks handing them in were often using solutions that were quite obviously inspired from online sources, if anything because of the weird methodology needed to solve some of them, without the course teams caring at all.
I’d have more sympathy if this were someone from the inner city or rural America. But they’re in Princeton crying about not getting answers to problem sets. As if the first time they’re not spoon fed something, it’s time to trash the department. If you can afford Princeton, buy a linear algebra book with solutions. It’s as if a Math major said, “Oh I would love to read Hemingway but there is nobody in the English department to tell me what questions are on the test. How can a Math major learn to read? Where in the world might I find a clue about Hemingway?”
Yes - math education can be awful, but this snowflake needs to lose the entitlement.
I'm shocked with how inarticulate the author is. I'm not getting any idea of what math class they are taking or what they expected to get about it. You'd expect a humanities student to be able to explain themselves better.
The one well-developed complaint is the one about not getting the answers. On one hand that sounds almost calculated to provoke the reaction that you had, but on the other hand for every math class I've taken I turned in the problem sets and had them get graded with corrections that were useful.
Honestly I read the whole article and didn't pick up on which field of math either despite it being clearly stated several times. I think my brain couldn't accept the idea that someone was complaining publically about Linear Algebra being difficult.
If you read the article they say that they did achieve success in the class, but the experience could have been much better/easier. Only if you believe that an ivy league institution is there to provide a kind of S&M experience for its students does your comment ring true.
Princeton is 100% free if your parental income is below $65,000; you only have to pay for room and board (not tuition) if parental income is below $160,000.
Regardless, you're not paying for instruction. You're paying for networking, access to world-class experts in your field of study, a name-brand, etc.
I really wonder what percentage of difficulties that stem from math are due to its representation in the symbolic language used. By that I mean, so often, I am staring at a long, condensed equation. Factored to perfection by whomever was working on developing it. I stare at it for hours and just can't figure out what's going on.
Then after much tinkering with the parameters, exploring the limits, plotting graphs, slowly I look at it and recognize what is going on and realise "gosh that is actually really F**ing simple"
I wonder how much of "learning" math is really spent on decoding the representations we are provided, rather than understanding the concept they're meant to represent.
That is a really good point. I spent some time putting ml equations into code and the code representation always seemed so much simpler to me. Many math equations seem a bit like too clever one liners in code haha
That's exactly it! It's basic clean coding style where it's better to use meaningful names and sometimes write something in 2 or 3 lines that is more interpret able than to write a perfect one-liner that no one will be able to unpack.
In this regard I almost wish we had a de-facto standard in math of presenting the 'condensed' perfect form of the equation and a more chunkier version.
What I like is that recently I saw some researchers annotating the symbols in their equations [1].
This is how all of maths is. Before you learn it, it's incomprehensible frightening gibberish. After you learn it, you wonder how anyone can not understand ideas so simple and obvious.
How to get from one state to the other is the whole problem.
The terse symbolic language is someone's best attempt to communicate the beautiful simple idea in their head. More than any other discipline, I think, mathematicians write to be understood, to be clear.
Oh man, I can totally relate. I'm a self-taught programmer, and have been trying to learn math in the same way for the past couple of years. I've certainly improved a little bit, but learning math is very different from learning programming, and I'm frustrated. Every time I buy a book, I think I understand what I'm reading until the time comes to do the problems ... then I get hopelessly stuck and discouraged.
I've never encountered something I couldn't learn with a bit of consistent effort before. To make matters worse, I can already appreciate the beauty of math from a distance, yet it somehow remains totally inaccessible to me, and this despite my honest-to-god best efforts. I don't know what I'm doing wrong. It's a terrible feeling. =(
I harbor a secret fantasy of meeting a maths enthusiast who would take me under his or her wing, and help me struggle through problems for one hour each week.
Paul Dawkins has combined his 25 years of experience of teaching and turned his daily lecture plans into textbooks on the subjects he teaches (Algebra, Calc 1, 2, 3, and differential equations). These are the most approachable math texts I've ever found.
"Perhaps I could best describe my experience of doing mathematics in terms of entering a dark mansion. You go into the first room and it's dark, completely dark. You stumble around, bumping into the furniture. Gradually, you learn where each piece of furniture is. And finally, after six months or so, you find the light switch and turn it on. Suddenly, it's all illuminated and you can see exactly where you were. Then you enter the next dark room."
I find this rings true--I didn't really understand the purpose of some of the material in differential calculus (Calc I) until I studied integral calculus (Calc II), and I didn't understand some of the material in integral calculus (II) until I took multivariable calculus (Calc III). Funnily enough, it was only after taking a combination of real analysis and discrete math (two years into undergraduate studies) that I finally had the A-ha moment when my real analysis class taught me how to actually read and write proofs, and my discrete math class finally made sets clear. THEN Calculus's proofs and its set-based conditions finally made sense.
I could go on, but there's really something to the frustration that beginners in math have. It's ironical, but the best way to learn calculus is reproducing calculus's underlying proofs; but at the same time, the best way to learn how to read and write proofs is to use calculus as an example of a system you already know intuitively, and just need to learn the formal language of proofs to explain it.
I guess my point is that there are genuine structural challenges/interactions in math's component knowledge systems which make the difficulty of learning math natural, if not to be expected. All of this to say, chin up lads, the only way out is through, and sometimes you're running blind. But that's okay, Andrew Wiles did too and he proved Fermat's Last Theorem.
Thank you for the kind encouragement. Believe it or not, it's quotes like these that form my last line of defense against permanent discouragement. In truth, I'm not interested in math because it's easy, but because it's hard. I just wish I could consistently make some progress, even if it's small.
I am not a mathematician or math teacher and I would not call myself a maths enthusiast, but what were you trying to learn?
For the usual undergraduate courses, there are Schaum's outlines, which are cheap and usually OK for self-study. There are also explanatory books that you might find helpful, that might not form a whole substitute for a textbook - an example would be Div, Grad, Curl, and All That for vector calculus. It's a bit of a trick to find them on Amazon and through other searches, but you can get practiced at it.
Broadly speaking, I've been approaching mathematics from two different angles: CS, and the mathematical background that subtends it.
On the CS front, I'm interested in two main subjects:
- Distributed Systems (especially peer-to-peer overlays)
- Programming Language Design (in particular: type theory, algebraic effects, and -- more recently -- optimal beta reduction)
On the pure math side, I've tried to focus my efforts on topics related to the above. I've tried working through "introductory" books on each of the following subjects:
- Combinatorics
- Graph Theory
- Category Theory
Prior to that, I tried working through some more general books. This is where most of my small progress emerged:
- Thompson's Calculus Made Easy
- Stewart and Tall's The Foundation of Mathematics (Set Theory)
In all cases, the biggest blocker for me is the proofs and exercises. I rapidly get stuck on a problem, which of course prevents me from understanding the subsequent chapters.
Proofs are the great 'leveling-up' of mathematics. At my former university they had a bridge class for students to take when they made the leap from more mechanistic mathematics to proofs. I didn't have the benefit of taking it when I was a math major (to my regret, it was painful to level-up), but it looks like the text they use is publicly available:
The proofs in standard Euclidean high school plane geometry are a perfectly good introduction to how to write proofs. A good next step is just a college course in abstract algebra -- sets, groups, rings, fields, prime numbers, the fundamental theorem of arithmetic, the fundamental theorem of algebra, Galois theory (why with Euclidean construction it is impossible to construct a square with the same area as a given circle), why the square root of 2 is irrational, the Euclidean greatest common divisor algorithm, the Chinese remainder theorem, vector spaces, .... Here there are essentially no prerequisites.
The results proved in an abstract algebra course are often just embarrassingly childishly simple so that getting a solid proof is easy. For the issue of writing style for proofs, just pick that up from the text. E.g., usually say since instead of because. The proofs in abstract algebra and, really, the rest of math, are really essentially the same as in high school plane geometry but just written in a less rigid style.
If want a theorem proving course in calculus, first take calculus where theorem proving is not the main content, then take abstract algebra (where will use no calculus), and then take a theorem proving course in calculus, e.g., from W. Rudin, Principles of Mathematical Analysis. With this sequence, should never be without prerequisites or in doubt about the reason, point, value, or intuitive view of the material.
Yes, the Wiles quote is really good for describing research, but learning need be nowhere nearly that challenging.
The stuff I've done is 40 years ago now, but I've done some combinatorics and some graph theory. It's been so long that it's possible that I can't help you at all, but I might be able to talk in generalities, and maybe that's all you need.
Thank you so much - you have no idea how much this means to me. I'll be sure to shoot you an email next time I get stuck, which will happen more or less as soon as I decide to try again :'D
The Schaum's book of most interest to the original poster (Abigail Rabieh)is the following:
Schaum's 3000 Solved Problems in Linear Algebra by Seymour Lipschutz. Below is a precis:
"Master linear algebra with Schaum's--the high-performance solved-problem guide. It will help you cut study time, hone problem-solving skills, and achieve your personal best on exams! Students love Schaum's Solved Problem Guides because they produce results. Each year, thousands of students improve their test scores and final grades with these indispensable guides. Get the edge on your classmates. Use Schaum's! If you don't have a lot of time but want to excel in class, use this book to: Brush up before tests; Study quickly and more effectively; Learn the best strategies for solving tough problems in step-by-step detail; Get the big picture without spending hours pouring over long textbooks. Review what you've learned in class by solving thousands of relevant problems that test your skill. Compatible with any classroom text, Schaum's Solved Problem Guides let you practice at your own pace and remind you of all the important problem-solving techniques you need to remember--fast! And Schaum's are so complete, they're perfect for preparing for graduate or professional exams. Inside you will find: 3000 solved problems with complete solutions--the largest selection of solved problems yet published on linear algebra; A superb index to help you quickly locate the types of problems you want to solve; Problems like those you'll find on your exams; Techniques for choosing the correct approach to problems; Guidance on choosing the quickest, most efficient solution. If you want top grades and thorough understanding of linear algebra, this powerful study tool is the best tutor you can have! Chapters include: Vectors in R" and C." Matrix Algebra. Systems of Linear Equations. Square Matrices.Determinants. Algebraic Structures. Vector Spaces and Subspaces. Linear Dependence, Basis, Dimension. Mappings. Linear Mappings. Spaces of Linear Mappings. Matrices and Linear Mappings. Change of Basis, Similarity. Inner Product Spaces, Orthogonality. Polynomials over a Field. Eigenvalues and Eigenvectors, Diagonalization. Canonical Forms. Linear Functionals and the Dual Space. Bilinear, Quadratic, and Hermitian Forms. Linear Operators on Inner Product Spaces. Applications to Geometry and Calculus."
The secret trick is proving theorems. Prove the Pythagoras theorem or prove that quick sort is indeed a NlogN algorithm (the latter needs some real math skills). A proof counts only when you can explain even the most boring detail in the proof. Books on math only tell what proofs and in what order you need to learn. I'd compare math proofs to functions, and understanding of math is a lot like understanding how complex functions work down to assembly level.
Maybe try different maths. I majored in math in college and even though I have a degree I would say I am pretty terrible at it. Some areas I understood almost immediately at least at the lower levels I took them such as algebra and combinatorics, but real analysis after like basic limits completely eludes me.
This is a very vague article. The only fact I see is not providing solution to practice problems. That's not ideal but shouldn't be a dealbreaker. More details might be helpful.
I do find it surprising that the whole class could have such a low grade in linear algebra, which is one of the easier introductory math classes. But I've heard of grade deflation in Princeton is pretty severe, so I don't know what standard grades are there. IIRC Princeton also has one of the premier math departments in the entire world, so I would expect the program to be very difficult.
On the other hand, I think the interest of tenured professors in math at universities is almost entirely on research. This doesn't mean they can't be good teachers but the ones who are I think in general are thinking more of cultivating potential phd students and the like. A practical class for non math students I can easily believe would be completely blown off.
Well as a physics grad who struggled with first year LA and a parent of a current university student I can fill in some blanks. Linear Algebra specifically is a superpower these days and I was very excited to do the best I could to help by daughter get past the barriers I experienced and learn it well.
I failed. I found her course to be not only sink or swim, but actively hostile to student learning. As mentioned in another post, assignments and quizzes were returned weeks late with little helpful coaching. Assignments very often worked with higher levels of abstraction than presented in the lectures, for example the first time she saw a matrix of functions was on a homework assignment.
Furthermore there seemed to be no additional help for Linear Algebra. To my great surprise the math department had no facility for matching students with tutors. The university math help center was almost exclusively oriented towards calculus and had no resources for Linear Algebra. After weeks of searching online we finally got a call back from a third party tutor, only to be informed that this person (a grad student in math) couldn't help us because the assignments were "too specific to the particular course."
The _only_ place I've ever seen someone show any creativity and ingenuity in teaching linear algebra is 3Blue1Brown, but obviously even though he's got a whole linear algebra series it's not a complete university course, nor is it meant to be.
So yeah, it's a damn shame, and IMO inexcusable. Linear Algebra is the foundation of modern data science and machine learning. Math departments should consider it a sacred duty to bring as many students as possible to at least some level of comfort and familiarity, but instead they seem to treat it as an annoying distraction at best, or a weeder class at worst.
You're totally right that LA is a superpower! I wrote a book on Linear Algebra that might be of interest to you and your daughter in case y'all want to revisit these topics. In particular it covers a lots of applications.
I first learned from Lax's book which I felt was a bit too difficult for an undergraduate course. But in a graduate level class I learned from the lecture notes of Professors Sophie Marques and Fred Greenleaf which I was a huge fan of that you can find on this website:
It's a much higher level of abstraction than an introductory Linear Algebra course but I found them amazing for developing intuition. I believe they have also released them in textbook form which is probably more polished.
I get it. After working in tech for 10 years, I went back to grad school for statistics recently. I came to the realization with every math class that I took - after the first couple of lectures I had to say to myself, it looks like I'm just going to have to teach myself this class.
I think that's the deal with math. With some other subjects, you can get quite far by knowing the gist of the material. Since math classes are generally evaluated on one's ability to grind out problems, you have to just grind out a lot of problems - no shortcuts. Like learning to play the piano - there's only one way work your way to learn to play a mozart sonata or whatever - lots of grinding away at it.
Definitely think it's open to debate if this fact us USEFUL to anyone. For example, making Calculus II students learn to grind out loads of integrals by hand which can be solved by Wolfram Alpha in a fraction of a second may be of debatable value - - let the debates carry on... But I think under the current idea of what it means to "learn" math, to my eye it appears it really is the case that one has to teach it to onesself...
There's an additional problem that you kind of glancing hit at, which in the US at least, there are at least two maths.
Math for non-math major is grinding out some class of problems until you internalize the mechanism for solving that class of problems. You continue, adding a new class of problems on top of the old ones. This eventually culminates in something like calculus, where you do algebraic transforms until it's in a form you know how to mechanistically derive or integrate.
Math for math majors is usually about finding proofs. This also just requires a lot of work, but it has a very different feel that the math classes for engineering students (source: was math and CS major). I found that it wasn't very difficult to learn the same mechanisms someone programmed into Wolfram Alpha (though it was tedious), but being good at proofs requires 'mathematical maturity,' and this is something else altogether. There seems to be something innate here. I was decent at it, but it took a lot of work for me to get there. Others were better than I'll ever be and they were 15 years old while I was a college junior.
Some truth here, but some of what she describes (e.g. no example problems with worked solutions to learn from) are not sensible if you want people to learn. Imagine if programmers had only the definition of what a function does, but example code using it was banned from all documentation (and no Stack Overflow). Especially in a math class intended for non-majors, it's an odd policy.
The elephant in the room is there really isn't a huge amount you can do well and effectively in humanities if you don't know some reasonably serious math.
The replication crisis is a thing and it's a huge embarrassment for modern universities. Are you convinced by this argument using statistical analysis as evidence or not? You need an answer. You can't shuffle that off to someone else to think for you and take your learning on the matter seriously. We've seen that pretty conclusively now.
The math department needs to take its share of the blame for turning so many off this utterly essential pillar of education.
I think it’s a symptom of a larger problem. Teachers can’t not pass students, and so people make it to (and through) college without knowing the material from the classes they passed.
The only thing special about math here is that this is especially transparent.
This is the "go to" excuse for academics who are as lazy as all get out and refuse to make more than the bare minimum of effort in their thinking and preparation of teaching.
"The students are too stupid and or lazy and we're not allowed to just fail them even though we have taught them next to nothing."
Note that the replication crisis involves researchers, most of whom did very, very well academically having worked hard and been clever, before taking that success on to becoming academics. That's kind of how it works.
So no "We can't fail people" is a non-starter here. It's totally bogus and needs to be treated with withering contempt along with any academic pushing such errant nonsense.
This same class did the same thing to me at Princeton except I was an engineering major at the time. I had done well on the Calc AP exams in high school which the engineering department said placed me in MAT 202. On the first day of class the professor started summarizing "what we already knew" from high school about linear algebra and I had seen basically none of it with the exception of basic matrix multiplication. The rest of the week was ego-destroying as I attempted to get help from the professor and was repeatedly told (almost berated) that I should already know the answers to my questions from my high school courses.
I eventually dropped the course, left engineering entirely, and majored in a biological science. But the jokes on them because I self-studied a shit ton of math after I graduated and eventually went back to grad school doing ML+Physics. It turns out that I'm actually pretty good at Linear Algebra after all.
I believe there is a major misalignment of goals/incentives in undergraduate academia. As students we think the model is, we pay [quite a lot of] money to be taught useful knowledge in a rigorous way that means we will leave with real knowledge. Universities, on the other hand, seem to think the model is to churn out well qualified individuals in their field. There are two ways to accomplish that goal: doing the hard work of providing a real education to everyone; or doing the much easier work of filtering out those who don’t already "get it". This is why Universities don’t care that a class is reviled by all the students.
In my experience undergrads are almost universally seen as a nuisance by professors, especially at the most prestigious schools where professors see themselves as godly researchers. It also sounds like this class isn't even for students in the department, which usually means no one wants to teach it. Basically becoming a professor has almost nothing to do with ability to teach, so I'm not surprised when the least desirable classes to teach are taught by people who have next to 0 ability to do so.
> doing the hard work of providing a real education to everyone; or doing the much easier work of filtering out those who don’t already "get it"
I wonder how much of a problem this is in intro CS. Everyone knows that the camel has two humps, but are we inadvertently gatekeeping by not even trying to teach the low-scoring "hump" about the fundamentals of the discipline?
I thought it was common knowledge that this is the problem with intro CS. There are places that get much better results by making sure that either freshmen test out of the intro class or they all know equal amounts of nothing when they take it.
>For example, though we were provided with practice problems to prepare for our exams, we were never given solutions.
Strange. But it also may no longer be true, or not to the extent that it was when this student was enrolled in the course. From the course website:
"Try some old quiz problems for this course, but don’t just read the questions and solutions. Instead see if you can produce correct solutions to most of the problems in the allotted time."https://www.math.princeton.edu/undergraduate/placement/MAT20...
So clearly, now, there are archives of problems w/ solutions that can be reviewed after attempting a solution.
Apart from lack of solutions, I don't see anything "off" here. I don't see other criticisms of the teaching approach. I am also not surprised that one of the best math & physics universities in the world does not cater even its lower level courses towards students for whom they are optional and not part of their intended academic career.
In my school (which was not a top-tier program) courses for majors in those areas were also similarly difficult. The difference was that my Uni also offered a few "Math for non STEM majors" courses to choose from because they still did have requirements for all students in those areas. Basically a survey course of mathematical concepts and how they show themselves in the world & everyday life, along with practical applications of how they may need to use math in any way throughout their lives, things like how basic level probability & statistics will be useful no matter what they end up doing in life. And things like fractals, or the golden ratio, and other concepts along those lines that show up everywhere in life.
The course was designed to answer the question, with concrete examples, "Why should I care about math if I'm barely going to have to use it in life & have a calculator?" I think Princeton simply expects their students to understand the answer to that question without putting their students through the trouble of an entire semester on the topic.*
*Though clearly should address the "no solutions" issue if it has not been fully resolved already.
I went to Princeton 40 years ago and had to put up with the same crap.
The problem is the spectacular arrogance of the professors and their contempt for students. Anyone who gets to the level of ivy-league professorhood has reached the top of their profession, and has acquired an ego to match.
I'm generalizing here, of course, not all of my professors were full of themselves, but large numbers of them were, and more to the point there was a culture of disregard for the opinions of students. Over the years the University has sought to control, limit or suppress student ratings of courses, and professors were never penalized for getting a bad rating. They didn't care about the opinions of students because they didn't have to.
It's a lot like government. A person in this kind of organization does not advance by serving customers well. In fact, they often bristle at the idea that students, or constituents, are customers at all. Rather, they are sheep to be led or punished as appropriate.
Most of my friends at Princeton were considerably smarter than the professors who taught us, but we were young, lacked knowledge, depended on the good graces of professors to get the grades we needed for our future, and so lacked the tools to fight back against the substandard product we were being fed.
This, plus public conversations about courses or professors tended to be dominated by the few but prominent students who fawned, obsequiously like the courtiers, over the brilliant professors who filled them with inspiration and hope. We all threw up a little bit in our mouths when we heard this sort of embarrassment, but what could you say?
Again and again, I encountered professors who would assign readings that were unreadable, would promote their own work over better work by others, drone on about drivel, advance idiot theories, and treat the slightest challenge as an affront.
Nominally, Princeton isn't like that. Unique among universities, it has something called a "precept", which is a small group meeting once a week, led by a grad student or sometimes a professor, to debate and discuss the issues. It's a nice theory, but most students say little in precept, aside from a few suck-ups. We were so overwhelmed by the firehose of un-curated content gushed at us that virtually no one had done all the reading, and risked being exposed as the one who didn't know what he was talking about.
Things won't change until professors start losing their jobs over bad ratings.
All that having been said, my physics courses were pretty ok.
I'm not saying the courses that I took (or TAed) were all superb. It was a mixed bag.
The prevailing philosophy was summed up by one of my profs in my 2nd semester. He said, "You're expected to aggressively eradicate any gaps in your knowledge by whatever means you feel are appropriate."
Translation: You're going to have to teach yourself. But that doesn't mean teach yourself alone. If you have to corner me, or the teaching assistant, or your classmates, to understand the problem set, then do that. If you need to hunt down a book, then do that. The buck stops with you.
> Unique among universities, it has something called a "precept", which is a small group meeting once a week, led by a grad student or sometimes a professor, to debate and discuss the issues.
How is this at all different from the concept of a "section" that AFAIK exists in most every other university?
> Most of my friends at Princeton were considerably smarter than the professors who taught us,
Seems like a very confident, insufferable and non-falsifiable statement to me. Maybe this was more true 40 years ago than today.
It's possible that the concept of the precept is unique only in name, but it's one of the things that the university likes to think makes it special. I do think it's a bit unusual.
As for the statement that my friends were smarter, this is just my subjective opinion, like everything else I wrote. Still, I think their subsequent careers show they had serious intellectual firepower. You know some of their names. I was lucky to know them.
First the phrasing "teach me math" like it's a thing that is done to the student, or in this case, failed to be done, as opposed to something the student failed to do. An example alternate phrasing may be "help me learn math". I think this is a modern attitude that removes the student agency from the process. If the university failed to give worked solutions and the student feels they need it then there are other sources for worked solutions. I could understand lack of desire to spend additional money on a different textbook with worked examples when so much money was spent on the course in the first place. At the same time I could see reasons for a math course to push students to figuring much more out for themselves to ensure the early principles are deeply embedded into their brain.
> This struggle was reflected in our exam averages, which were, respectively, in the 50s, the 60s, and the 30s.
There's a big disconnect between STEM subjects and liberal arts in my experience. As an engineer, I was used to classes where exam averages were in the 60s (30's does seem kind of low), but I learned to only care about the curve and where I stood on the distribution.
Contrast this with liberal arts courses where generally an 85 on an exam meant a B and a 93 or 94+ meant an A. It's fair enough to say "this paper about social dynamics in medieval Italy is a B quality paper". It's harder to say "this is a 55/100" and here's how it stacks up against the curve in the way that many engineering and math courses allow. At the end of the day though, this translates to inflated grades in liberal arts as compared to math.
The other issue is that (pure) math at the university level is just harder. I suspect that many people who are good at number theory can probably wing it in a literature course. I doubt that vice versa is true. This isn't to downplay liberal arts degrees... the fact that you didn't have the toughest major doesn't make you less intelligent nor does it mean that the field is less important. In fact, in some cases it's the opposite. I know many people who did "tough" majors only to regret it when liberal arts folks with higher GPAs had easier times getting accepted to grad schools.
> I suspect that many people who are good at number theory can probably wing it in a literature course.
At the high end, humanities and 'softer sciences' courses can require a huge amount of reading and rote memorization. You end up skimming through entire tomes and trying to figure out what you actually need to read in detail, because it just isn't feasible to deal with the workload any other way. That's just as hard and painful as a course in number theory, just in a different sense.
> I suspect that many people who are good at number theory can probably wing it in a literature course.
You may be right, but the worst grade I got in school (as a Mathematics + CS major) was in some absolute throwaway, freshman-level liberal arts class (Intro to Japanese Popular Culture) I took in my third year!
Don't underestimate the value of staying within one's wheelhouse.
I got crushed by a class in environmental humanities. Not due to a lack of comprehension of the material but because I didn’t understand the technical aspects of writing literary analysis (extreme focus on close reading of the language used where I tended to focus on the abstract conceits). It felt equivalent to taking a class in graph theory without first taking a proofs/discrete course and everyone else in the class had. Great class though - I think about the texts all the time
Don't most universities have TAs around, especially for lower year courses, to help students falling behind? I remember in my undergrad when we had difficult courses, half the class basically camped outside our TAs' office before each assignment deadline to ask for help or clarifications.
I agree. I'm a profesor in the first year of the University of Buenos Aires. We have no official list of answer for the exercises (but there are a few unofficial ones).
The students can ask me or the TA abut the exercises. We prefer to see what the student has attempted, and find the exact spot where the student made the mistake. It takes more time, but it's more helpful than a nice ideal solution.
We also may recommend to make another exercise from the official list and come back in 10 minutes with a solution attempt, or make some custom exercise on the spot that is about the same subject. (Exercises about derivatives are easy to invent, integrals and linear algebra is harder.)
It's difficult to know, because sometime the course have 100 students, and each day different students make questions to each TA. My guess is 10%-50%, but it depends a lot on the major the students are.
One of the useful trick is to write an optional homework exercise in the blackboard. I get a lot more of answers than just selecting an exercise from the official list. Sometimes it's just an exercise from the list with different number and sometime it has an intermediate step to make it easier. But writing it in the blackboard increase the chance the students will write it down.
Another trick is to write an old midterm and then go to each desk to talk to the students about what they are doing. We usually write the solution at the end of the class, and have some discussion about it, but the useful part is the discussion with each student (or small group of 2-3 students).
Slightly off topic, but when I noticed that there was sort of a market for prior exams for the CS courses I was teaching, I made it my policy to provide students with all prior exams. I'd have preferred that no-one had them (easier on me), but given how much an advantage having a prior exam is, I can't find it justifiable to favor those with the social connections that gave them access to such exams, over those who didn't-people with friends, people who belong to fraternities and sororities, etc. etc. etc.
> I don’t see any inspiration for those of us who really want to learn math, or physics, or chemistry, but just don’t want to focus on it for 4 years.
Truth be told (in physics at least with no prior extensive knowledge beyond school) it takes about minium 1.5 years (3 semesters; 40hrs/week) of practice in order to get really started. The most diffucult part for me was getting used to the pace and regularly attending to the exercises.
The first two semesters were the most humiliating ones, I really struggled to translate simple concepts into mathematical sound equations, I've constantly missed a lot of nuance and lacked elegance in solving problems, a lot of my calculations appeared to me just brute-forced.
Only in my 2nd year in I realized that I had actually gained some "competence" in mathematical modeling.
So, yeah, in order to be able to play along with a band or orchestra one has to invest some time into learning the particularities of a given instrument. You can get some decent results after 3 months of practicing but really only after 1-2 years (without prior experience) it starts to really open up.
In college they did the same thing, so I pirated the book the teacher was using for the class so I could get the answers to the questions we were being assigned. It helped me learn the material with multiple examples and solutions. I think it should be required to give the solutions to homework; especially, with classes like differential equations and vector calculus.
I was an English major who took 300-level courses in math (and CS, physics, history, philosophy, and Chinese). For 25 years I've regretted not applying to places like Princeton and MIT. I'm sure I could have gotten into some of them. My own college was pretty second-tier. But articles like this make me grateful for choosing a teaching-focused place, where professors are promoted for teaching, and there are no grad students outside a few professional programs. I had tons of personal attention everywhere I went. It didn't help my career, but for someone who wished he could study eight years instead of four and major in everything, it was a pretty nice situation.
Years later I was doing a Classics Ph.D. at Penn, and I could tell the difference. Actually I think in our department the professors were universally excellent teachers and very accessible, but it's true if you were in first-year Latin, your instructor was a grad student, and if you were in classical literature, you mostly saw the professor in a 300-person lecture hall, with a grad student leading your discussion group. But a 300-level course would have been led by the professor---and I've met Ivy League professors where that would be even worse. :-)
EDIT: The article seemed pretty weak to me: I sort of agree with people saying she sounds whiny and entitled. I don't think she made much of a case that there's a systemic problem as hinted by the title. It's just a story about one bad math class. But at the same time I'm very sympathetic to curious students wanting to learn more outside their specialty. Trying to read generously, I think it's mostly an article about how universities that reward research can neglect teaching. I don't know if it's worse in math (or STEM), but certainly those subjects require you to know the fundamentals before you can go on, so being an outsider is tough. And I have never understood why some professors give tests expecting a top score of 50%.
My entire undergrad schedule was arranged according to getting the best-ranking math teacher on ratemyprofessor.com. I had enough painful experience and had to early drop a math class or two to learn this fact. Bad math teachers essentially forced me to self-teach, and I did not have the ability to do that with math, as I wasn't a natural in math beforehand. It got so bad that I happily took 8am classes despite being a night owl.
What it looks like now as an adult is just a failure of pedagogy and institutional incentives. I suspect the people teaching it had little reason to take the teaching part seriously, it was just something that got in the way of their research/grad studies.
I went to a well-known state school. There were other departments like this.
I'll use this thread to ask a semi-related question:
Over my years (probably more than most here), I have found no need for math beyond some simple algebra and statistics. This includes 30 years in a tech career. I'm now semi-retired and working in an even less mathy field. That said, I have always felt like I might have missed out on something important in my auto-didactic intellectual development by skipping math.
Given my situation, how would you try to convince me that I should learn math and how would I teach myself the actually interesting parts without getting bogged down by doing lengthy calculations that a computer could do. The standard curriculum is so heavy on the latter and mostly absent of the former.
> Given my situation, how would you try to convince me that I should learn math
I wouldn't. I would say, if you don't need math to accomplish anything you want to accomplish, and you're not interested in it anyway, why bother?
If you are interested in it anyway, then you should not need anyone to convince you that you should learn it. You should just go learn it.
> how would I teach myself the actually interesting parts without getting bogged down by doing lengthy calculations that a computer could do
First, if you don't understand the "lengthy calculations", you will have no way of knowing whether the answer the computer spits out to you is correct.
Second, doing the "lengthy calculations" is sometimes the only way to learn the "actually interesting parts". If you haven't done the grunt work of solving some problems from start to finish in a subject area, you don't really understand it. You might have a sort of vague conceptual overview of it, but you don't really understand it. So you need to decide whether a vague conceptual overview is enough for you (for many people it is, and if you don't need to know the subject for anything essential, it might be), or whether you want to really understand it.
I don't know enough to know why I should be interested.
>So you need to decide whether a vague conceptual overview is enough for you, or whether you want to really understand it.
That sounds like a much better way to start than by going back to calculating polynomial equations. How do I find materials geared for self consumption at a beginner level that teach concept and application first?
> I don't know enough to know why I should be interested.
Are you interested in finding out more, or not? :-)
> How do I find materials geared for self consumption at a beginner level that teach concept and application first?
I have no specific sources to recommend, but I would think that "academic" courses are not where you should be looking for something like this. You should be looking at books for the general reader by people who enjoyed trying to explain math to the general reader. Someone like Raymond Smullyan or Martin Gardner or John Allen Paulos.
> Given my situation, how would you try to convince me that I should learn math and how would I teach myself the actually interesting parts without getting bogged down by doing lengthy calculations that a computer could do.
I don't think I have enough information about you to answer this, but I'll make a suggestion anyway. Since you did 30 years in tech, try Donald Knuth's Art of Computer Programming. Despite the name, it really is a book for the math-oriented. He has thousands of exercises with complete solutions for each, and every exercise has a "rating" (estimated number of minutes to complete), and exercises that require more math are marked as such.
The first volume covers fundamental stuff, the second numerical analysis (with a nice discussion of random number generators), the third sorting algorithms, and the fourth combinatorics problems. You can jump into any volume without a strong background in math.
You can get them used and in great condition for a good price. Lots of people just buy them and let them sit on their shelf for years.
> Given my situation, how would you try to convince me that I should learn math
Learning math has been the only time that I have ever been truly humbled by the aesthetic beauty of an idea. I didn't intend on studying math, I wanted to be an english major, but the woman I was dating at the time was somewhat of a math prodigy and I wanted to understand her world more // impress her. This may seem silly to some of the more mathematically mature people here, but the moment I fully understood Cantor's theorem it felt like my mind was dunked into this sublime understanding that left me in a daze for a week. Russell sums this up pretty well,
"""
Mathematics, rightly viewed, possesses not only truth, but supreme beauty—a beauty cold and austere, like that of sculpture, without appeal to any part of our weaker nature, without the gorgeous trappings of painting or music, yet sublimely pure, and capable of a stern perfection such as only the greatest art can show. The true spirit of delight, the exaltation, the sense of being more than Man, which is the touchstone of the highest excellence, is to be found in mathematics as surely as poetry.
"""
> how would I teach myself the actually interesting parts without getting bogged down by doing lengthy calculations that a computer could do. The standard curriculum is so heavy on the latter and mostly absent of the former.
This wont be much of a problem if you're interested in pure math as numbers bigger than 10 are rare in that domain. I would recommend picking up an intro to proofs type book like [1]. The reviews are mixed but I would take that with a grain of salt as I suspect many of them were written by bitter students.
This isn't about convincing you to like math or anything like that. Just a bit of an exploratory thing. Check out some of the math and geometry videos that Vsauce has made. One of my favorites is A Proof That The Square Root of Two Is Irrational: https://youtu.be/LmpAntNjPj0
A common trick to get someone interested is to present something surprising. That surprise gets you attention that can be turned into understanding by explaining the mystery.
The hard part is guessing what would get you surprised enough.
In some universities (my experience is with European state funded universities) the effective goal might not even be to teach at all. Rather, the effective purpose is to function as a filter so that individuals with beneficial circumstances (whether it be talent, time, or being well prepared) can get good grades/credentials and others simply fail. Generally, there is little unstructured interaction between students and instructors.
One point in defence of this is, the skill/knowledge that is effectively trained is "how to learn", rather than specific courses and subjects.
I've been terrible at math in hs and then I started doing programming and realized that math ain't hard and actually liked doing it
I managed to improve and then I had math at higher edu institution
and oh boi, I instantly had no interest in doing it 4fun, just learn, pass and move on.
idk, I feel like there's too much stuff to be done (a lot of courses + you gotta learn other stuff like "real world" computer's related stuff) and there's lack of time for 4lulz messing with fancy topics like maths, but on the other hand I've been working + studying, so maybe that's why
> 36:40: Jason: You go to some .us site … that's about some school program, and then there's some beta link; and then you go to this big long stream of screenschots and information; and then you have to send an email to get a demo. I mean, talk about … the worst conversion funnel possible.
Justin: Even the fact that … you've had those hundred people is … great.
[…]
Jason: Given that we're almost making it impossible — you have to … run a spartan race to sign up for this course — … it's not bad.
[…]
> 39:15: Jason: What the system does is it says, … "You're in this course calculus or algebra or whatever it is, … here are five tasks that are unlocked for you to work on." Some combination overview tasks, and some are new lesson taught lessons on new topics. …
The problem is is that you don't really have a context for … "Why am I doing these tasks? … Where is this in the context of everything else on the graph?" And it doesn't give you a lot of freedom … to define your path.
So … what we're doing now (because there was a little bit of discussion … from some of our high school students about this) is … you'll go in and you will be able to pick from the graph what you want to do. … Here are all these different major categories, … I want to do something on differential equations or we do something on number theory and you just click on it and then it shows the graph
--
Thanks to audiotype.org for 1 minute transcribed for free, and revoldiv.com (from a reddit recommendation) that took a bit more to clean up so I just chopped a lot more out of it.
Mathematics is such a creative discipline, and so applicable to so many scenarios, but the way math is taught really obfuscates that. If I have motivation or context for why I'm learning something, I'm dramatically more likely to learn it.
The author appears to have a framing problem. Her education is not somebody else's responsibility - it's hers. If she legitimately wants to learn, she already has access to the sum of human knowledge at her fingertips - for free in many cases.
It seems to me that her quarrel is rather with the structure and delivery of one particular course she chose to take. This may not be obvious to a lot of young people whose only life experience has been tied to the education system, but you don't need a formal course to learn a subject.
> Her education is not somebody else's responsibility - it's hers. If she legitimately wants to learn, she already has access to the sum of human knowledge at her fingertips - for free in many cases.
Exactly. My first reaction to the article was, if you are interested in linear algebra, why don't you learn it over the summer in your free time, using one of the many sources available for free online? That's how I learned ordinary algebra. Why is paying expensive tuition to Princeton the only option?
> We are often told of engineering or STEM students exploring the humanities to their heart's content, but I feel that we rarely hear of students in the humanities being encouraged to take scientific or quantitative classes.
Hey, that's me! I graduated with a minor in English, major in Computing.
My two cents: I attended those courses because the discussions were fun, the topics were thought-provoking, and I wanted something of an academic vacation. The experience was altogether _social_; there was less an atmosphere of education and more an atmosphere of dialog. I didn't have to try in any of the humanities courses; not English, not philosophy, not Women's Studies, not a one. I didn't even bother to read the books on the syllabus for several of the courses, and I still managed honors-level grades because the necessary information flowed freely through discussion.
Whereas Computing, Math and Physics courses were less about experiencing the thoughts of others, if at all, and more about building a mental tool set to solve hard problems. I like to think that the practicing, the quizzing, was akin to having a budding musician play an instrumental piece in repetition: struggling through and repeatedly applying the tools of mathematics was a purposeful attempt to guide students toward mastery. As with instruments, many students found the practice to be miserable and found their way on to other things.
> I didn't even bother to read the books on the syllabus
You do realize by implication that you have not engaged at all with the non-trivial part of doing scholarly-level work in the "softer" disciplines, right? Any course can come with relatively "low" standards of assessment.
> Any course can come with relatively "low" standards of assessment.
Absolutely not.
There's no way I could have used the same practice-free methods employed in excelling in humanities classes to similarly excel in the sciences. In the hard sciences, it was imperative that I develop the skills to apply the fundamental knowledge tools to solve the problems posed. I couldn't bullshit my way through with wisps of knowledge gathered from fellow students.
These were the equivalents of 101-level classes, and passing a science 101 class, or even a bunch of them, is hardly equivalent to "excelling in the sciences". Doing actual scholarship, perhaps in understudied corners of the discipline where even basic reviews and surveys of existing work are hard to come by, is something entirely different.
... I was 1 course away from qualifying for an English Major. I didn't bother, because it's not what I'm passionate in. I assure you that I easily sailed through plenty of upper-division undergraduate courses. Likewise, I worked my way through a fair number of upper-division math and science classes; my specialization was in Theoretical Computing.
I did some "actual scholarship" for a few of the upper-division English courses; pouring through musty old volumes that were last reviewed by human hand a half century or more prior. The gotcha with this? So long as I cited appropriately, and aligned myself with the cultural and political viewpoints of the overseeing professor, I was easily assured an excellent grade. It was enough that it appeared that I did the work and parroted the correct thoughts.
IMO it has to do with the people around said math course, professors, students , etc... Some environments make academic life great, some others make it "miserable" as the author describes.
The advice I always give to young students (and a topic I'm writing about in an upcoming website that deals with abuse in academia) is find better people. There's (almost) always an alternative, find it and move to a better place; it's not always easy but it's easier than dealing with pricks for 2-4 years.
The article perfectly reflects my experience teaching STEM in the last semester.
Instructional material that led to rave reviews and amazing student outcomes the years before now results in similar reviews like “lost a lot of respect for the Math department after taking this course.”
The main complaint is "Why won’t anyone teach me XXX": "it seems like the instructor is expecting us to learn the material ourselves".
Sorry to say, but for many STEM topics that's the only way. You need to struggle, do, and solve the problem. And not only there: you won't learn figure skating / cycling / playing an instrument by watching a lecture (or video) on it. You have to actively do it. The instructor can lead you to the water but can't force you to drink. Just staring at the water and complaining does not help.
I wonder what these students will then feel like in their first job. You hire engineers because you have a problem that needs solving. This kind of graduate on the other hand expects that someone solves the problem for them and feeds the solution in small packets.
Also, of course, it's interesting to wonder why this is happening now and if it will go away. The connection to the pandemic seems clear, but how exactly?
Yep, that's something I heard from my kids while I was trying to help them with their math classes all throughout elementary school - "just teach me it!" If nothing else, learning math helps you get to the point where you can appreciate that there are things that you can't learn from just being told by somebody else who knows the "secret".
Sure, but none of that is an excuse to not provide students with worked problems or solutions for at least some of the problems they are given, after they have worked them.
> The connection to the pandemic seems clear, but how exactly?
Does it? If by clear you mean "relating to the anecdote you shared at the top of your comment", then sure - but that is far from my standard for "clear," at least.
But the material is not the problem. You have the whole world knowledge at your fingers, in books, the internet, etc. Schaum's outline will give you hundreds of worked problems. The problem is that the student sees no possible solution to this if she is not handed the solution by her instructor.
>Does it? If by clear you mean "relating to the anecdote you shared at the top of your comment", then sure - but that is far from my standard for "clear," at least.
It's a temporal correlation that all my colleagues observe as well. Average grades drop by 50% using the identical material that was always successful pre-pandemic.
So you find it more likely that lockdown, restricted gathering in learning groups, Zoom lectures, potential financial hardship had no impact on learning whatsoever? That's not quite up to my standard.
I do sympathise with her, she wants to learn the stuff but it seems like nobody wants to get her up to speed. It would make a lot of sense to give her the answers to the questions, tough having done such sheets it's often of little use.
This is also where I point my finger as a warning. This will sound awfully arrogant but I think it's true. You can always pick up the essay subjects on your own if you studied STEM. You can't pick up math subjects if you focused on essay subjects.
I'm no expert on history or philosophy but I did read books on those subjects on my own, cover to cover. Biology and physics, superficially I can read them, but it ends where the interesting, current topics begin, or where the math gets important.
I have an engineering degree and even with that I find it hard to pick up any old math book and just read it. Math books seem to just not work that way, the density of information is on another level. You're often asked to immediately apply a newly learned concept in the next chapter. With a history or politics text there's a lot of words but it's not building up as much as across. If you don't get something the first time, it will come again.
Reading one history or politics text is table stakes. When studying the softer disciplines at a high level, you may well be expected to go through dozens of them in any given course, and be able to refer back accurately, compare and contrast, criticize, and where feasible develop these ideas. It's not trivial work, it can be just as hard as STEM.
I don't doubt that there is real hard work involved. You might even have to learn several languages to do this kind of thing.
The thing that the article seems to point towards is that you can do humanities by using your existing tools, basically reading and writing, and grinding.
With mathy things that grind is building a house of cards, very fragile while you're building it up.
I sort of agree with you, and had the same experiences, but I think the difference is of scale and expectations.
You can bullshit your way through a 1st, 2nd, maybe even 3rd year humanities essay with layman theories, and get a C+ or even a B-.
But they're humoring you - you won't get into grad school with those marks. And you won't be able to actually work in the field without ideas backed by the same academic rigor we expect from the scientists - understanding deeply the work of all your predecessors and contemporaries, and adding your own interpretations not gleamed off twitter.
Whereas if you try to join a math or sciences class you with the same attitude, you will just fail. You can barely pass, eek out a computer science degree, or even just drop out without one, then teach yourself all the practical skills, and build a career. I don't know how long that'll last, but it's definitely the case right now.
My experiences as a math major at a prominent university were even worse. In upper-level courses, professors would work through one problem on the board for the entire class. Turns out, they'd do it wrong about half the time. The next class (usually a few days later), they'd spend 30 seconds saying how they made a mistake here or there. So your entire instruction set was incorrect, solidified in memory for days at best, then we're supposed to divine which part you did incorrectly in 30 seconds! And then many of the professors had what was, at best, a tenuous grasp of the English language - which matters a lot when teaching complex subjects in English to students. And we were supposed to learn in these classes? Jeez it was awful. And these are the people at the top of their field, paid to do research?
Engineering classes were hit or miss - some were great, taught core concepts really well. Others turned into awful mathematical formula applications / regurgitation with extremely dubious accuracy.
Needless to say I don't have a great respect for math as an academic discipline, despite really liking math.
> In upper-level courses, professors would work through one problem on the board for the entire class. Turns out, they'd do it wrong about half the time.
In my experience, such errors always were in the mechanical parts of the proofs, not in their main structure, and easy to spot and correct for the students, in the sense that at least one spotted them, and told the teacher.
1. The author seems to be arguing that the class was not well taught, given its goals.
2. The author disagrees with the goals of the class.
The goal of a math for non-majors class isn't to give them a chance to explore math. It's to force them to learn as much applied math as they can handle, and to figure stuff out independently.
I'm guessing it's presumed that students are doing one of the last math courses they will ever do, before going into a field where they need to be able to use mathematics. I bet that when there's a meeting between the science or engineering professors and the math professors, the the math department doesn't hear "give them more support so they learn what's on the syllabus properly", but "give them hell so they learn to figure stuff out for themselves, because after this they're on their own".
From the article:
> Princeton promises students a “liberal arts education,” and defines that as an education offering “expansive intellectual grounding in all kinds of humanistic inquiry.”
Yes, this probably isn't the goal of most of the math (and even most of the science) courses. They are more about grinding out highly proficient professionals. IMO there should be more courses where there's scope for students to just chill and do some intellectually engaging stuff, but when should that happen? I don't think it's possible to run a fun course when the students are stressing out over assessment in another course and expect the students will get much value out of it.
There's things like Terrance Tao's Masterclass, or Youtubers like Veritasium if you want to learn about science and don't care about a piece of paper.
I get that it's an issue that there's no piece of paper to earn to say you got a "expansive intellectual grounding" in STEM in a humanistic way, but if it's a credential it needs to be assessed somehow (or you get a Python Paradox - employers will take it as a signal for passion, then it will be swamped with people who just want to signal that they're passionate).
They could also make a third stream (2nd year math for non-STEM majors, as well as the math for STEM and math for math majors streams), but it may not be viable in terms of student numbers.
There isn't any supporting material in the article (the links to course review comments are behind an authentication wall) so it's hard to be sure, but it sounds like the answer is "because you had abusive teachers". By that I mean psychologically abusive people who derive pleasure from seeing students struggle in pain. It makes them feel better about themselves.
No, those aren't abusive teachers. That's the standard approach to teaching STEM subjects in most of the worldwide. I'd say the abusive part is the often-unspoken expectation that students are going to sneak around department policies to find ways to check their work other than handing it in.
That isn’t what the article says. It says the teacher’s hands were tied because of department policy. Why does the department have that policy? What set of circumstances led to that policy being set and what would be a better policy to both address the set of circumstances and to not hinder teachers?
Seems that is exactly what the article says. A professor that can get a job teaching undergrad math at Princeton can likely get the same job at any other university. So this professor is actively choosing to enforce this policy (it's their revealed preference).
A class doesn't become bad enough to write an op-ed about for that alone. There must've been multiple other issues for this class to have a 2.7 rating.
>For example, though we were provided with practice problems to prepare for our exams, we were never given solutions.
This gave me flashbacks to my time in University. Several of my professors wouldn't give out the answer key for study problems in both math and physics because "if you are using the correct process you know you have the right answer" which was a load of poo.
The elephant in the room is Covid. Was this a normal in-person course with OP living on campus or otherwise able to easily connect with other students? Heck, even just masks would probably make it harder to introduce yourself to people in an out-of-major course and look to study together. [0]
I say this because I wouldn't think missing answers to sample questions would be a big deal if you have a peer group to bounce things off of. Someone else would either know they got a problem right, or you'd work together to figure out who had the right approach, or some combination. And if you sill couldn't figure it out as a group, some of you would be inclined to go visit the professor some time.
Universities aren't so much a place for getting spoonfed learning but rather learning to collaborate with your peers. I can imagine this major aspect has been left by the wayside due to Covid, and been replaced with many more opportunities for students to fall between cracks.
> For example, though we were provided with practice problems to prepare for our exams, we were never given solutions. My class consistently begged my professor for these, yet all he could say was that not providing them was departmental policy, and it was out of his control.
> This begs the question: what interest does a department have in making it impossible to study?
Well... math is not about knowing solutions, it is about knowing how to find them.
You can't learn math by memorising all math books in existence because math is dynamic activity -- it is about training your ability to find solutions to problems.
Your math skill is trained by solving problems you don't know solution for, not by looking up the solution.
Your teachers did not make it more difficult for you to learn math -- they made it easier. They were forcing you to do the right thing.
The solution in itself is worthless.
If you are really after problems with solutions -- go find any book that already has problems with solutions listed. There is a lot of these, you can look up solutions to problems to your hearts desire.
Sounds like she would have enjoyed a stats class more. Applied math without as much emphasis on first principles and formal proofs. I didn’t like university level math (first year lvl) because I preferred programming and doing math without computer assistance seemed to involve a lot of wasted effort. Maybe I’ll revisit it with Lean.
What I've found, is that often teachers (really anybody who's understood the subject and is willing to teach) will try to teach both the subject AND how they have learned; i.e. they do not only tell you about the math but also the way in which they have arrived at understanding it (how they've related to it).
to use an analogy, when describing the math they tell one about a place where they are (a 'place' where the math is there, already understood) and how they got there (the analogue of route they took to get there e.g. "took public transport line 4, get off at station Example and walk until you're there").
This leaves little room for those who may prefer to ride a bike all the way there (the analogy has been stretched to the breaking point), cuz the teacher will knock you off the bike and insist that you ride the line 4 then walk, same as they did.
For most maths, at least the stuff you'd learn before or during an undergrad degree the interesting maths is the journey. The teacher is attempting to teach you to ride a bike, and the student is like "this is stupid, I already walked to the end of the road".
The teaching of different ways of making the journey is (often) the destination.
No, that’s not obvious at all. The lecturer can obviously sit down and solve these problems, but it doesn’t mean that she already had done so. Sitting down and writing clear solution that the students can follow is substantial amount of work.
I worked as TA at university, and one of my tasks was to grade homeworks and produce example solutions. The lecturer did only provide the problems, and writing down solutions was my job. It took nearly as much time as grading homework from 15 people in my group.
Provide exercises and release solutions one or two weeks afterwards.
The lecturer can write out questions. TAs write out solutions.
Everybody is happy. Nobody needs to grade assignments, students get a chance to work on problems without solutions, lecturer doesn’t have to deal with students coming to office hours asking about exercises.
Anybody who needs to grade assignments in technical courses is doing bullshit work.
You're missing the point. If you don't grade homework, most student won't even try to do it, and as a result, won't learn anything. The students are not there to learn anything, they're there to get credits for the diploma. If you don't force them to learn, most students won't.
Now, to be sure, in my preferred world, the students who are not motivated to learn, are promptly pruned from the rolls. But I don't get to decide that: the private schools make money by pretending to teach, so they're incentivized to retain paying customers, and the same is true in public schools, which are expanded and maintained by politicians who believe that high college diploma ownership rate is somehow good.
I guess what people are arguing is your assumption that if you don't grade homework, students won't try to do it.
I understand it's common in North America to have TAs grade homework. But in many places in Europe (top places), they do not grade homework but provide solutions. The only thing that matters is a semester project and a final exam.
That is a real-life counter-example to your assumption. The students indeed try to do the exercises in earnest. And TAs can be useful by providing in-person discussion, rather than grading exercises.
I was, in fact, a TA at a university in Europe, and, rest assured, not all students earnestly tried to do the exercises. Moreover, very few students are interested in in-person discussion: we had office hours twice a week, but few people ever came, except during the week before midterms and finals. I had many discussions about it with professors. One of them is pretty active in Facebook group for students, reminding them of the office hours, where they can get free one-on-one tutoring. Still, most of the time nobody comes to his office hours anyway.
I think the conclusion here is very simple: students are not there to learn, they are there to pass exams and earn the diploma.
I know we have seen students coming out of high school without a grasp on the basic math, never mind algebra. They just aren't fast enough at the basics to be comfortable going on. I would assume Princeton wouldn't have that problem, but I guess I could be very wrong.
I've often wondered if a course called "Just Numbers and some logic" would be helpful. I've been collecting a lot of different math and logic material and wonder how far someone could get before algebra? I just think one of the big problems is students don't really have basic math skills. Given some of the techniques and problems my school age relatives do, I think there are problems at the beginning.
So the author took one class that was unnecessarily difficult. That’s unfortunate and worth following up with the Math department on. But expanding that into a full-length article with the thesis of “Why won’t anyone teach me math?” seems like a stretch.
It seems like the issue was more that the class was not only bad for her but poorly structured in general - it would be a good thing for non math majors to learn topics like linear algebra but the department could set up classes differently to better teach them.
The article is from the Princeton university student newspaper, so I assume the author meant "Why won't anyone teach me math at Princeton?". It's specifically about the experience of liberal arts majors at Princeton, not some general thing.
I don't think she had an issue with the difficulty of the course, but rather the pedagogical approach. It seems she walked away feeling like she didn't actually learn very much, despite passing the course.
I went to Columbia and hands down the worst class I took there was Calc I. The professor (might have been a grad student) was just absolutely incapable of explaining concepts in plain English rather than mathematical proofs.
Luckily I had already taken Calc in high school -- I was taking this class in order to get an easy A to fulfill my science requirement, which as a humanities major I was pretty cynical about. Last time I ever made that mistake. But my heart went out to the students that were learning this material for the first time, because all of them struggled due to the poor instruction.
It was absolutely inexcusable given the high tuition costs at the school.
I left with the certainty that I would never take a math class again, and a lack of desire to explore other scientific fields for fear that I would have a similar experience.
That is one of the most tragic things I can imagine reading. A student who really, genuinely wants to study Maths, just for its own sake... and is dissuaded from doing so by myopic, short-sighted, inane policies. It makes you wonder "could you fuck up education any worse, if you were intentionally trying?"
On the other hand though... I believe a student with enough self motivation can overcome those inane department policies and learn the Maths by pulling in outside resources. Yes, it's more work, and yes maybe it's not "fair" that you have to do that in addition to attending (and paying for!) a class. But it's possible.
Consider the availability of free resources like Khan Academy, Paul's Online Math Notes, hours and hours of Youtube videos from people like Professor Leonard, Gibert Strang, etc. One can also often find problem sets with solutions by just Googling around and finding previous years course websites for various courses that have been taught at universities all around the world.
There are also online forums where you can go to get your answers validated, or get additional explanations about Maths problems. They vary in the extent to which they accept "do my homework for me" style questions, but almost any site will acknowledge somebody who has put in some work, come up with an (possibly incorrect) answer and says "Can somebody help me understand what's going on here?"
* https://math.stackexchange.com (note: but not so much Mathoverflow, which is more for research level Maths and is not a good place for straight up "do my homework" style questions at all)
And if one is willing to pay a bit, the Schaum's Outlines books and similar books provide a huge catalog of worked problems, along with problems and solutions. There's also Brilliant.org and other paid educational resources for Maths that can supplement ones university course(s). One can also look into hiring a personal tutor as an option.
Many (most? all?) universities also have something like a "math lab" or "learning center" or something where students can go for individual tutoring and additional support. My experience (albeit dated now) leads me to believe that these are probably drastically under-utilized.
Should universities do a better job with introductory Maths courses? Almost certainly. But I'd encourage anybody dealing with this to dig in and try to overcomes such shortcomings by using other available resources as well.
EDIT: inspired by @skywardavocado's answer, I also wanted to add that old-fashioned "study groups" are another valuable arrow in the ole quiver. If you join up with 2, 3, 5, whatever, of your peers to study together, chances are that somebody in the group will understand the thing that the others are struggling with, and can explain it. I didn't do a lot of this in college myself, probably to my detriment. But to the extent that I did occasionally join a study group, I'd say they can be wildly helpful.
> Consider the availability of free resources like Khan Academy, Paul's Online Math Notes, hours and hours of Youtube videos from people like Professor Leonard, Gibert Strang, etc. One can also often find problem sets with solutions by just Googling around and finding previous years course websites for various courses that have been taught at universities all around the world.
As a university professor, given the availability of all these resources, I'm not sure why you'd want to take advantage of them and take a university course if you're not interested in the credentialling. Universities are a place to learn the deepest knowledge of content experts, and I don't want to downplay that; but these content experts are usually not pedagogical experts, and they often tend to be less skilled at teaching less advanced material. That's not to say that there are no good introductory-level teachers out there—there are lots, and they do heroic work—but that a random university professor, even a very good professor, probably won't be as good at teaching introductory material. (With that being said, I don't regard Linear Algebra as introductory material—but, then, I'm not teaching at Princeton.)
Certainly, if I were advising a non-math major who wanted to take an introductory math class, I would encourage them to think very carefully about an auto-didactic approach to see if they like it well enough to continue. If you want to learn lots of mathematics, then a university math department is the place for you; but, if you just want to dip your toe into it, then it may well not be, because so many of those courses are set up as 'service courses' for people who don't want to be there but have to be, and that inevitably shapes the tenor of those classes.
As a university professor, given the availability of all these resources, I'm not sure why you'd want to take advantage of them and take a university course if you're not interested in the credentialling.
Fair enough. FWIW, my post was written from the perspective of being targeted at someone who has already chosen to take a university class, for whatever reason. But I agree with your point, and that approach is, in fact, my own. I mean, yes, I took some university maths classes in the past. But now as I want to learn new maths or re-learn maths I've forgotten, I prefer to just study on my own using mostly the exact resources I called out above. I wouldn't go pay to take a university class at this point in my life.
> It makes you wonder "could you fuck up education any worse, if you were intentionally trying?"
Of course you could. Take a look at K-12 schooling some time, where the prevailing educational theory is that "students must learn the math by themselves", and are expected to devise "their own methods" to do so, including "guessing" and doing calculations in their heads, not on paper. Is it any wonder that even "getting the right answer" has been de-emphasized, never mind "show your work"? This is what passes for math education these days, courtesy of "educators" who have never gotten a proper education at the college level in the actual subject.
Have you experienced this personally? I ask because this hasn't been my experience as a parent of a K-12 student. They are expected to show and be able to explain their work, and the teachers use that work to gauge the student's understanding of the material.
The school district my children were in fiddled with it. One of my kids got actively in trouble for the fact he could do the "real" math problem in his head and wasn't "estimating", despite also being able to estimate correctly on larger problems. It is the direction math education is going in the public school system, and it is the direction it has had for a while so it's not like this is really some sort of surprise. Standards will be lowered until all students pass. There are political currents in that direction, plus there's the ever-present fact that the easiest way to make a given school's performance go up is to lower the standards, and there are many entities with incentive to do that. If your local school still has standards, they may currently be the mountains still standing above the rising seas, but the seas are still rising.
In some ways I wish they'd just get on with it and leap straight to the logical conclusion of just officially eliminated the standards and passing all students guaranteed, so we can all get on with the task of dealing with the fact that such a credential would be worthless, instead of this long, drawn-out process of lowering standards while trying to pretend the standards aren't being lowered.
(I think the second derivative of this process has turned away from dumbing down. Pushback is really coming up in earnest. But it'll be a while before it so much as turns the first derivative back in the correct direction, let alone get to the point where the problem is largely fixed.)
It seems to be an issue in some school districts and because it's such a weird thing (to most of us) it ends up getting a lot of "air time", so to speak. Outliers doing bizarre things become representative when they get the majority of coverage.
I wish! I regularly got marked down for doing mental math or not following the exact sequence of steps and writing down every last petty instruction. Busywork was 50% of the grade for "Pre-Calc", so I had to take it 3 times...
I think math departments are for some reason especially miserable. One of the calc profs at my college wasted a whole class period on "RTFTB" - "read the fucking textbook" after somebody asked a relatively obvious question because of confusion. Have experienced intentionally discouraging practices in other departments of course, and there is something to be said for not telling the hopelessly ill-prepared "you can do it" while failing, but that's not the right way, and seemed particularly egregious in math courses.
I was trying to learn some math in my 50's. I hired a NYU math PHD to come to my office once a week for $100/hour (an NYU course was $6000/semester). I think it worked out well for both of us.
> For example, though we were provided with practice problems to prepare for our exams, we were never given solutions. My class consistently begged my professor for these, yet all he could say was that not providing them was departmental policy, and it was out of his control.
My experience 10 years ago was that you need to go in to the "offices hours", or whatever they are called at your university and walk through problems with the staff. Even if they can't share the solution to that particular problem, they can walk you through a similar one.
I feel bad for the author. One day she will buy a well written, well illustrated, accessible math book for $15 on Amazon and realize the debt she accumulated from Princeton was not worth it.
- A degree from Princeton (or other elite schools) is worth a lot of money regardless of what you actually learned there. For the rest of your life it follows you around and helps your career.
- You are likely to make connections there who will help your career even further
- You get access to many of the brightest minds in academia to learn from
- You get world class competition... for many people (myself included) I work harder when I'm in a class with smart people than i would if I were studying a textbook on my own
- You get a 4 year experience that many people would consider some of the greatest years of their life
It does not seem like she is getting her money's worth for about $300,000 (tuition, room, board @ Princeton for four years) assuming she did not qualify for financial aide.
Sadly, in my experience, these was the case in introductory STEM courses. They could care less whether you understood or not. There were plenty of people in line behind you, so your personal experience didn't matter.
This is a big reason why I encourage people to take as much STEM as possible at community college instead of public university. Faculty are focused on teaching, not research and publishing. You have a better chance of actually learning something.
It's really very simple. Math is a self-study subject. The axioms and relationships are described on paper in very clear language. How to reason and internalize those axioms is entirely up to the reader. Each mathematician or practitioner builds their own models and tools to absorb the content.
Princeton publishes a Mathematics Companion. It's a good book that covers a wide range of topics. The treatment per topic is rather brief and acts as a gateway into deeper study.
She seemed to make just one criticism in the full piece: no solutions were provided for practice problems. If that’s the only issue, pick up the relevant Schaums outline.
Well certain university courses in STEM are "weeder" courses, designed to be much difficult than they should be to push out the people who aren't serious or talented enough. I think this happens in particularly popular majors, where there are far many more people interested than spaces available. That's actually too bad--policy wise, artificially limiting the number of people with high-value skills isn't smart.
That's pretty much what is going on here. Math 202 is a weeder course for engineering majors, and all it really does is teach you the existence of various linear algebra concepts and how to compute them. There are no proofs, no consideration of why you might care about the eigenvalues of a matrix, etc.
That's a peculiarly bizarre form of wishful thinking. Nope, as a rule, the course is not a "weeder course" by it's very nature - it's just very badly taught. It's not a good idea to be so complacent about low quality of teaching.
If you are asserting that university departments do not run courses that are designed to remove students from the major, you are wrong. I'm not going to bother to try to prove it to you--look it up if you want.
I think he got the purpose of weeder courses wrong or at least partially wrong. It's often about getting people out of majors that they won't be sticking with before they have put in a lot of time.
In a lot of STEM fields there will be one or more required courses in the 3rd or 4th year of a 4 year bachelor's degree program that are significantly harder than anything in the first two years. You can go through 2 or maybe even 3 years in a major thinking that this is the field you want to make a career of, then you hit those harder course and discover that the field is probably not a good career choice for you after all and you should change majors.
Changing majors at that point might mean you will need a 5th or even 6th year to get you degree in your new major.
If your STEM program includes a required hard course in the first year or two, something to give a good taste of what you'll need to get through 3rd and 4th year, you can find out early that this is not the major for you and switch to something you are better at and still get your degree in 4 years.
That makes sense. They need to find the right balance between coddling and abuse!
I remember my low level CS courses being difficult, but not unfairly so. Except for when the second assignment in my CS 101 essentially asked for a recursive-descent parser, haha. Wooops.
Anyway…couldn’t a MOOC be just as good as an on-site course at filtering?
> In a lot of STEM fields there will be one or more required courses in the 3rd or 4th year of a 4 year bachelor's degree program that are significantly harder than anything in the first two years.
Sure, but then the "weeder course" should directly relate to that challenging required material - perhaps by introducing it in a simplified, approachable fashion but with high-standards assessment. The OP's linear algebra class does not seem to be anything like that. I stand by my opinion that the "generic weeder course" pattern is most often a convenient rationalization for what is, at its root, a badly taught course. This doesn't mean it can't become somewhat intentional, but that's secondary.
> For example, though we were provided with practice problems to prepare for our exams, we were never given solutions.
This made my jaw drop. Just find similar problems from the textbook that do have solutions, or check out other math books from the library, or use the internet. I feel like a Princeton student should be able to aggregate information from different sources, even if it's not their field.
I'm sorry that this course (and seeming department policy) gave such a bad experience. I've had similar experiences at top schools - most classes were about learning the material on your own, even if it wasn't explicitly stated.
On the other hand, there are lots of places to do math outside of formal schooling, and I thoroughly enjoyed those, even if it meant going through textbooks myself.
This type of experience was typical for me as an undergrad Chem major many years ago. Basically sink or swim, figure it out on your own, professors didn't care that O-Chem had a 50% fail rate. My P-Chem teacher told the class we could bring whatever materials we wanted during an exam, it didn't matter, he was going to "destroy" us.
The first part is so relatable, especially for engineering classes. Professors would take pride in making the material complex and exams as difficult as possible so the average score was in the 50s or even less, and then the university would make them grade on a curve and hand out the required number of As and Bs. What even is the point?
I went to Princeton and took linear algebra - at that time taught by none other than John Conway - of game of life fame. It was by far the best math class I've ever taken. This author's experience is likely valid, but I suspect the professor teaching the course had a large responsibility for its low rating.
The complaint here is about not having access to solutions for problem sets. On the one hand I can see why this would be annoying, on the other hand part of learning math is about coming up with your own questions and answers, a skill that is hard to develop if all the answers are just handed to the students.
There's a pretty solid literature on math pedagogy, and it's clear from that research that students need some way to tell when their answers are right or wrong, so that they can learn from the mistakes. For homework, that could mean getting problem sets back with the wrong answers marked. But it sounds like these were just practice problem sets, so the students literally had not way to tell if they were doing them right or not.
Reading the article am I the only one who had difficulty understanding what exactly the subject matter of MAT 202 was? She's indicated that she's taken courses up to linear algebra and then states that "she wanted to learn linear algebra". Is this a linear algebra course?
I mean, she said she had taken math classes "up to linear algebra" and she took the course to learn linear algebra so I would guess that it was linear algebra. Google confirms: https://www.math.princeton.edu/undergraduate/placement/MAT20... - Linear Algebra with Applications.
Thanks. Maybe I'm being pedantic but leading off with "so I selected MAT 202 - Linear Algebra with Applications" would have provided the article with some clarity.
> This struggle was reflected in our exam averages, which were, respectively, in the 50s, the 60s, and the 30s.
Is there some prior knowledge about university exams I should have in order to understand what these figures relate to? Standardized set of 3 exams maybe?
The grades are out of 100%, so these averages mean that the professor has to z-score the grades in order for any significant portion of their students to pass at all (the pass line in the USA is usually 65%). I'd consider this a strong sign of bad teaching.
It’s really not that difficult to find answers to math questions online. If not the exact same one, a sufficiently similar variant. Sounds like these kids deserve bad grades for lacking enough initiative / lateral thinking to use google.
Because it is expensive and if you are not putting loads of effort yourself, don't expect someone to do that for you.
I was imagining that I will get a mentor, I am capable, I am smart... but that is not enough and mentoring is really expensive thing.
I know we live in world where everyone feels like special snowflake but you really have to put "loads of effort" to become worthy to study under a master.
Yes I feel like I am special snowflake as well. But I did not get FBI roping down from helicopter to my apartment so I can help them save the world...
If you want to learn complex stuff you are on your own and really on your own until you can prove that you can work out hard stuff on your own and people super smart people will be willing to collaborate with you when you really contribute something...
It is as easy as thinking about torrenting - everyone can be a leech, to provide new stuff you real havee to have stuff....
In my undergrad years every major seemed to have what students referred to a "weed-out course." These courses were intentionally made difficult and often has inane non-standard grading policies (for example, in one, anything under 85 was considered an F). They were often taught on odd schedules (like one semester a year or something) and at unusual times. And they were often taught by difficult professors who did little, if anything, to help students succeed. If you were lucky, there might be a TA that might be able to help you, but students were often expected to form independent study groups and assist one another.
Basically if you couldn't pass this course - and in some cases department policy limited you to a single try - your chances of success in that major were slim to nonexistent, and you were encouraged by your advisor to find a different major. If you could pass the weed-out course, you could be reasonably assured you were ready to face the rest of your coursework, because nothing ahead would be as difficult as that course was. And, that you were reasonably certain this was what you wanted to do.
They weren't necessarily directly related to the major. For some of the engineering and science programs, a math course was often the weed-out course.
I can't say for sure that this was the author's experience, but her description of it sounds very much like a weed-out course.
I don't know if it's true of all schools, but I had a very similar experience at another Ivy League school. Took the first semester of linear algebra, got a very respectable grade, but really didn't learn much because the class wasn't structured to do that. It was there to make STEM majors prove they were good enough. I wasn't a STEM major, so didn't need to keep going with that kind of hazing.
Why not both? A particularly bad class demonstrating typical problems in an unusual intensity. Also an individual who had a particularly intense mismatch between her learning style and the course design.
My advice is to take the same course at a community college. In my locale the CCs are solely focused on teaching. The teachers are unionized, so it's a real career for them, and they're really dedicated.
Does anyone have good book recommendations on Math? I've always deeply enjoyed the subject, and I think I'd like to study on my own but I'm unaware of where to even delve into the subject.
My username comes to mind. Spivak's Calculus is hands down the best intro Calc book if you want to learn math for its own sake. His book on manifolds is also amazing but definitely not intro.
If you want stats I highly recommend Statistical Inference by Casella & Berger -- it's extremely dry but so many stats books out there try to "make it easy" but the simplification means that you can't actually grok what's really going on. HOWEVER if you want to actually apply anything in this book you'll need to grab something more practical as well. Going through an applied stats book after having done SI is like having superpowers.
Spivak’s Calculus is hands down an excellent book for a first course in real analysis, and I’ll die on that hill(it’s only real competition is Analysis 1 by Tao, in my opinion).
Anyone that says “it’s just a calculus book; it’s not good for introductory real analysis” is invited to go solve every problem in, for example, the chapter which defines integration, and compare the difficulty with problems in “traditional” analysis books.
If they know how to do (rigorous) proofs, then Spivak would be good. Otherwise it would be far too advanced. It's essentially an introduction to analysis.
That's fair. I don't really know what counts as advanced anymore. There just aren't that many books on theoretical math that aren't "graduate level" (which is way scarier than it sounds) -- Spivak was my Real Analysis 101 book as a freshman math major.
Spivak at least has the nice property that it doesn't assume you know much.
No one can have an enjoyable and helpful reading experience by picking a textbook or applying for a random course. Instead, reading the history of mathematics to learn about topics and their background would be a great way to capture the idea and a good starting point to find your favorite area. I recommend searching for Paul Lockhart's books, Mathematics in Western Culture by Morris Kline, and Famous problems of geometry and how to solve them by Benjamin Bold.
I've made it a hobby of reading beginner Calculus texts. I believe it to be a fascinating thing to explain and teach. Recently, the Teach Yourself series re-released their 1992, Calculus: A Complete Introduction. It isn't clever like Things Better Explained, with the visualizations, but does share excellent examples you already understand as unusual and then provides a pathway to using the integral. Like most good Calc books, just bring algebra!
I'd like to augment request one step further: Is there anything that kinda goes through the fundamentals all over again, but is programming aware?
I constantly assert that I'd have actually been successful with mathematics throughout school if I were able apply it in code (which was not a thing in my educational environment); not with my broken brain where I fuck up numbers on paper and use my fingers for arithmetic.
And somebody who posts here on HN recently published a book with a title something like "Mathematics for Computer Programmers" or something to that effect. I forget the username and the exact title though. If you search around you can probably find it.
Edit: here's that last one. A Programmer's Introduction to Mathematics
> I'd like to augment request one step further: Is there anything that kinda goes through the fundamentals all over again, but is programming aware?
This is the second time today I'm recommending Knuth's "The Art of Computer Programming". It really is a math book, and it includes answers to ALL the exercises. For example, the last 150 pages of Volume 1 are solutions to the exercises.
Not a book. But I'd recommend this website :- https://www.mathsisfun.com/ website. Everything is broken down into to smaller chunks. I stumble upon it when I was looking to revise my algebra concepts. But now I'm learning physics on it.
There are multiple entry points, depending on your goals.
However, if your goal is to learn mathematics for the sake of art, I recommend Kolmogorov's Elements of the Theory of Functions and Functional Analysis.
At least you had math. At my school, they only taught "History of Math," and didn't have any affiliations with other programs/schools to fill in the gaps. Pretty awful!
"The way the course was run did not at all set up students to succeed — or even learn math. For example, though we were provided with practice problems to prepare for our exams, we were never given solutions. My class consistently begged my professor for these, yet all he could say was that not providing them was departmental policy, and it was out of his control."
The calculus courses when I was in college (not at Princeton, in 1986-1990) were taught by assigned reading and problem sets in the text book, which were graded by TAs, and a run through the proof that a given technique worked in the lectures.
College isn’t designed to teach you anything - that’s what the internet is for. College is designed to weed people out and give degrees to the survivors.
this reminds me of Charley Bucket’s Teacher from Willy Wonka. “Our test we normally have on Friday will now take place on Monday before we’ve learned it”
You can get a tutor? TAs are pretty money hungry so almost any of them will do it for 25 an hour.
I had a Prof say "no matter how I clown around up here, you're going to have to teach yourself these things".
My perspective is that classes provide the motivation, then each student does what they do with it.
I don't think departments are financially incentivized to create happy customers, and I do still think this is a good thing after my own multi-year "sufferings."
> Unfortunately, it is difficult for students pursuing humanities and social science degrees to explore classes within STEM departments due to the inaccessibility of introductory courses.
People in humanities and social science tend to avoid these topics in high school, and would have a tough time with something like Algebra 12.
At my university it was sort of 2/3 there. They did start with basics, alright, but I had never done any proof before. Then there were other students, who somehow had some experience proving stuff. Some of them were from specifically MINTy boarding schools etc.. I think there was only once at my school, when a teacher tried to make us prove something and then never again. That was already the advanced math classes at school. Given that, I was woefully unprepared for what awaited me at university (also a quite prestigious one).
The lectures quickly ramped up and I was still unable to perform the simplest proof. Every time there was a proof in the homework, I sat in front of it for hours, not knowing what to do. I knew some facts about the problem, but just could not express my thoughts or see any way forward using the knowledge I have about the problems. Like sitting there, nd thinking: "Yes well ... so what now?" Then next week it would turn out, that I should have looked at the book and used some phrase (lemma? theorem? idk. whatever.) and I would think: "How the f am I supposed to know, that I could have used that?!". Basically I would have needed to consider things not taught or only taught in future lectures and things, that were not in the homework itself. Sort of "out of the box thinking". This was a big contrast to how I had gone threw my previous education at schools. I basically never had to do much to get good grades. Very low effort. I did not manage to flip the switch at university that well.
Add to that, that the handwriting of the lecturer was unreadable and he refused to have the lecture video recorded with a lie as an excuse ("The video would not be good enough to read anything."), so that I could not watch again later and take it a bit slower to maybe understand it. The lecturer made many feel disrespected during lectures and was generally disliked. I did not go see him or his helpers for asking about stuff that I did not understand. Only once or twice I did, together with another student, but came back with more questions than answers.
There were some extra hours, where a person tried to help us students, but that also did not help me much, because of how they explained things. It was not put in a way, that my brain would accept. My brain wants step by step, making real sure I understand each step along the way, not glossing over things, while the lecture felt like it jumped ahead way too quickly. Once I would get into the "I am confused." mode, I could basically forget understanding the rest of what was being presented. If I raised my hand, they would just give me an explanation, that presumes some other knowledge or fact I was not aware of and it would not help me.
So I pretty much felt like a loser, when some people only needed to see things once and already could do any homework problem. I barely made it through and never needed any of it again. I did ace some other more practical lecture's homeworks though, sometimes with full points, like making models of software or for solving problems, UML and stuff, while people with no problem in mathematical lectures had issues there. Probably also didn't do so badly at coding homework, when others struggled to implement something correctly.
Years later I know, that I am actually excellent at solving problems, when given all required input and when I know about the basics. I just don't have the mathematical education for solving math problems, that involve proving things, requiring stuff that is not given with the problem. I also understand mathematical problems better, when I write code to solve it. Perhaps that would have been the way to go for me, if it had been taught like that. It would have given me something to grasp, play around with, giving me motivation to make it work. No one ever taught me mathematics in a way, that worked well for me. I think it is up to me.
Years later I read about a little book "Introduction to Mathematical Thinking", which I bought. I don't have much motivation to deal with that stuff, but I did read part of it, trying to understand every little detail, to perhaps catch up on what I missed, finally understanding things, that I did not understand back in mathematics lecture and all that. Turns out, that they did not manage to teach me the actual meaning of even the mathematical implication arrow correctly. I know now, that the teaching wasn't optimal for me, because so much of the basics were either missing, or not properly understood and not given much time in the lectures. There was never a lecture, that took apart what mathematical implication arrow actually means and how it differs from an implication in philosophy or just any natural setting, when talking about what implies what in the real world. That is only one example, that probably confused me countless times during the lecture and threw me off. When/If I find more time to continue reading the book, I am quite sure, that I will discover more basics, that were missing. In hindsight, I am pretty sure, that those lectures were also meant to weed out students. Good that I stuck and finished my degree.
Looking back, sometimes mathematical things are very interesting, but I never wanted to become a mathematician anyway. Would it be great to know more math? Sure! It would be great to understand more and be able to express oneself more mathematically correct. Would it be applicable to my actual job? Rarely. I might never become a good mathematician, but I am a good engineer.
Software development is different from mathematics in many ways. Similar in some others. I have seen code written by math and physics professors. Lets just say that it was quite underwhelming and wouldn't fly in any code review with me on the review team. There are simply so many more things to look out for than merely the algorithm, which mathematicians writing code often have no eye for, that I would recommend any mathematician to better work with an actual experienced software developer, to get the actual code done. Unless the mathematician has taken extensive time to study up on how things are done in software development, the result of writing the code themselves likely will not result in great code.
So, Princeton did a really bad job
teaching a first course in linear algebra
for non-STEM majors.
I'll try to make some sense out of that
and outline how a student might defend
themselves.
First, as a ugrad, I looked at college
education as career preparation,
essentially trade school and had no
understanding of the issues of status,
prestige, new research results, etc.
Point: A lot of high end US research
universities concentrate on the status,
prestige, bright students, and financial
support they can get from new research
results, etc. They can regard teaching as
a bit silly: The research results are in
the library and available to anyone who
wants them.
Second I had been influenced by the US NSF
propaganda that STEM would make a good
career so wanted to major in physics. Uh,
in simple terms, the NSF was trying to
create a labor force for US national
security.
Soon I saw some really sloppy math in
physics classes, e.g., a just awful
attempt, basically 100% wrong, to prove
Stokes theorem, guessed that the physics
profs were so bad at math that if I stayed
a physics major I would be so bad at the
relevant math -- for Maxwell's equations,
quantum mechanics, general relativity --
that my STEM career direction would be in
trouble. So, I majored in math intending
to return to physics.
I went to grad school in math to get the
rest of the math I needed for physics so I
could switch to physics. That math
department was not much interested in
teaching me the math for physics.
I got recruited to work around DC, mostly
on US national security, and there studied
math on my own. How: Get a highly
regarded text, one section at a time,
study the material, study any example
problems, work the exercises. Lesson:
That worked pretty well, and I recommend
that students consider it.
Soon, on both my job and my independent
study, I ran into quite a lot of linear
algebra and learned a lot of it.
Then I returned to grad school. I got
accepted to Princeton, Cornell, and Brown
but sensed the contempt issue and went
elsewhere.
Presto, bingo, the department Chair taught
an advanced course in linear algebra;
yup, it was a flunk out course. I told
the faculty that I didn't think I needed
more linear algebra and wanted to get on
with material I didn't already know. The
faculty just gave me a patronizing smile.
So, I took the course. I didn't intend to
embarrass the faculty and/or the
department Chair but, in the end, I did:
The course had a lot of graded homework
and tests. Early on the homework grader
made a mistake on one of my solutions; I
corrected him and he made no more
mistakes. Unintentionally, I was totally
blowing away all the other students on
homework, tests, and the midterm. When
the prof got to the polar decomposition
result, I blurted out "That's my favorite
theorem!". The prof was so flustered he
didn't complete the proof.
Lessons: (A) There is a strong propensity
among US math profs to look for
essentially superstar students, to have
contempt for everyone else, and, in
particular, to look for any flaws and,
seeing one, to have contempt for the
student. A remark from WWII was that the
German military had a big weakness, that
the officers had to prove themselves
everyday. Well, in US college and grad
school math, there is a strong propensity
to do that to the students. There is a
grand, Kryptonite-strong, better than
anything even Spiderman has, way around
that -- will mention that below. (B) The
Princeton math department, partly due to
its neighbor the Institute for Advanced
Study where at one time were Einstein and
von Neumann, has a reputation as the best
pure math department in the world. That
Princeton prof A. Wiles solved Fermat's
last theorem likely plays a big role.
Then it is easy to guess that there is
high propensity to look for superstar
performance and to have contempt for any
students who hint about anything else.
(C) There really are flunk out courses.
(D) It's possible defend yourself from the
flunk out courses and to blow away the
other students and fluster the prof --
just learn the material before taking the
course. (E) The really difficult math
courses are theorem proving courses, and
there the exercises and the tests are to
prove theorems. There a student doesn't
really need answers or "101 Solved
Problems" because soon it can be clear
when do have a proof: The difficulty is
finding the ideas for a proof; checking
the correctness of a proof tends to be
relatively easy.
Before the linear algebra course, I'd
studied linear algebra and closely related
topics from several texts, some that
likely remain standard and good and some
that were more advanced and specialized.
So, here I'll outline what worked for me:
As a ugrad, I had taken a course in
abstract algebra. So, that was about
sets, groups, rings, fields, Galois
theory, vector spaces, quaternions, basic
number theory, the fundamental theorem of
arithmetic (each positive whole number can
be written in exactly one way as a product
of prime numbers) and the fundamental
theorem of algebra (the complex numbers
are algebraically closed, that is,
each polynomial of degree n has n roots
and, thus, can be factored into a product
of n linear terms). Quite a lot of this
material now gets used in cryptography and
error correcting codes.
For a while, there were some influential,
maybe popular, texts on advanced
calculus that did quite a lot of linear
algebra. One of these was Nickerson,
Spencer, Steenrod and from Princeton, and
there in the early chapters can learn
about vector spaces and subspaces, linear
independence, dimension, linear
transformations, inner products,
orthogonality, the Gram-Schmidt process,
etc. Another was from W. Fleming from
Brown and there can also learn about
convexity. Both of these texts then
continue on to the exterior algebra of
differential forms and, in particular,
careful proofs of Stokes theorem.
So, I got both of these texts and a few
others and dug in. Actually that list of
topics -- vector spaces and subspaces,
linear independence, dimension, linear
transformations, inner products,
orthogonality, the Gram-Schmidt process --
has good intuitive explanations where can
draw nice, helpful pictures, can be
covered in not many pages, and, really,
are, say, over 60% of what should get from
a first course in linear algebra.
I heard the linear algebra book by E.
Nering was good, got a copy, and worked
quite carefully through it. It was good;
likely still should be considered good.
Nering was a student of E. Artin, right,
at Princeton.
The main examples of fields are the
rationals, the reals, and the complex
numbers. But there are some more fields,
e.g., integers modulo a given prime
number. Linear algebra and its vector
spaces need a field, and Nering does
nearly the whole book assuming any field
and not just the rationals, reals, or
complex. So, Nering does a little extra
generality -- that approach makes some
arguments a little more delicate but
otherwise causes no trouble. Error
correcting codes has some applications of
linear algebra using finite fields.
Then I heard that the P. Halmos, Finite
Dimensional Vector Spaces was a good book
on linear algebra and a also a good
introduction to the math of quantum
mechanics. Right, that book was written
by Halmos when he was an assistant to J.
von Neumann at the Institute for Advanced
Study at Princeton (the town, not really
the university). The book can be regarded
as a baby step into more general Hilbert
space theory. So, I dug in and studied
carefully. It's a good book! Halmos is
one of my favorite authors. When I
noticed that his proof of the
Hamilton-Cayley theorem didn't work for
finite fields, I wrote him a letter. Got
back a really nice, enthusiastic response!
Apparently at least then writing a really
good book on linear algebra does not make
one a rock star -- don't get a lot of
mail!
Then did more in linear algebra --
numerical linear algebra, applications to
statistics, the fast Fourier transform,
optimization, computational geometry,
error correcting codes, and more.
Lesson: Those efforts in learning linear
algebra are why effortlessly and
unintentionally I blew away the other
students in that flunk out linear algebra
course.
So, for the OP and their "Why won’t anyone
teach me math?", if you wish, can learn
linear algebra like I did and outlined
above. Then can effortlessly blow away
the other students and even intimidate the
prof even in an advanced flunk out course
in linear algebra.
Sure, can learn from Nering and Halmos if
you want. Also looks good to me is
Hoffman and Kunze, Linear Algebra, Second
Edition, Prentice-Hall, Englewood Cliffs,
New Jersey, 1971.
There is also a text from G. Strang that
is recommended for a first text.
I will try to help get the frustrated
Princeton student started:
First, it is fair to say that a good start
on linear algebra is just solving a system
of linear equations. E.g., given numbers
a and b, find the set of all numbers x so
that
ax = b
Exercise: Show that depending on the
values of a and b, the set of all
solutions consists of none, one, or
infinitely many values.
The
ax = b
is one linear equation in one unknown, x.
Well for positive integers m and n, we can
have m linear equations in n unknowns.
So, here are 2 linear equations in 3
unknowns, x, y, and z:
2x -y + 5z = 7
x + y - 2z = 3
Why are they called linear? Good,
crucial question -- profound issue; will
come to that!
For reasons analogous to what saw with
ax = b
again the set of solutions of m linear
equations in n unknowns has none, one, or
infinitely many solutions.
Exercise: We have already treated the
case of m = n = 1. Treat the case of m = 1
when n > 1.
Assume the number of equations m > 1: For
finding the set of all solutions, the
standard approach is Gauss elimination.
Here is the key idea: If take a number a
and multiply one of the m equations by the
number a and add it to one of the other of
the m equations, then the set of solutions
does not change. That is called an
elementary row operation (ERO).
Exercise: Argue this point -- it's easy.
So, with Gauss elimination just apply EROs
to yield the equations with lots of
coefficients 0 that permit reading off the
set of all solutions easily.
How to do this? Do an ERO to have a 1 as
the coefficient in row 1, column 1 and 0s
in the rest of column 1. Now do an ERO to
put a 1 in the 2, 2 position and 0s below
that. Continue in this way and end up
with a triangle of 0s. Now can just read
off the set of all solutions.
Here start to see that get a lot more for
your time and effort than you expected.
Back to
2x -y + 5z = 7
x + y - 2z = 3
We rip out the variables x, y, z and write
all this as
So we have three matrices, the one on
the left has 2 rows and 3 columns so is
said to be 2 x 3. The next one has the x,
y, and z and is 3 x 1. The one on the
right is 2 x 1.
For the first two matrices, we define the
matrix product to yield essentially the
same thing we had with the 2 equations in
3 unknowns.
So we have just rewritten the 2 equations
in 3 unknowns. It turns out, however,
that working with the matrices is a huge
improvement, step up.
Vector spaces? A matrix with one row
and/or one column is called a vector.
Sometimes we can be more specific and call
the vectors with 1 row dual vectors.
Then if we generalize a little we can
prove the Riesz representation theorem
that gets used in quantum mechanics.
Point: Linear algebra is an introduction,
simple elementary special case, of a lot
more in pure and applied math.
Quite generally we say that a function F
is linear if
F(ax + by) = aF(x) + bF(y)
Here I have deliberately not given a
careful definition of the symbols F, a, b,
x, and y because (i) linearity is one of
the largest pillars of math and (ii) there
are lots of cases with different
definitions for the F, a, b, x, and y.
E.g., in calculus, both differentiation
and integration are linear. For more, in
electronic engineering and signal
processing, every time invariant linear
system just modifies the amplitude and
phase of sine waves.
The real world and applications of math to
it are just awash in linearity.
Well, matrix multiplication is linear!
And that's why the equations
2x -y + 5z = 7
x + y - 2z = 3
are linear.
Okay, suppose m = n. Then a matrix m x n
is square. Given a matrix U, suppose
for any x the length of Ux is the same as
that of x. Then all U can do is do rigid
rotations and reflections. Or suppose
given a matrix H where all it does convert
a sphere into an ellipsoid with mutually
perpendicular axes. Now given a square
matrix A, there exist U and H so that
A = HU.
The U is called unitary and the H,
Hermitian. In quantum mechanics, the
evolution of the wave functions is
unitary, and the measurements are
Hermitian. Principle components in
statistics is based on Hermitian.
The A = HU is the polar decomposition.
So, linearity is simple: All the linear A
can do is rotate and/or reflect and then
stretch and/or contract on mutually
perpendicular axes.
Fill in all the details, and that should
be 80+% of a first course in linear
algebra.
For more, take Gauss elimination and
specialize it slightly and get the simplex
algorithm of linear programming
optimization. At one time, Princeton,
along with Berkeley, played a leading role
in linear programming. Then linear
programming became the core of at least
one Nobel prize in economics.
Can use some of the basic theory of linear
programming to show the saddle-point
theorem of game theory, e.g., was done by
different methods by von Neumann.
To defend yourself from the propensity of
pure math profs to dump you into the
contempt bucket: Move to some advanced,
specialized material, find a loose end,
state and prove a theorem to tie off the
loose end, and publish the result. Can
work better than Kryptonite.
According to the author, the course is "for underclassmen who are majoring in engineering or sciences", but she is a humanities student who wants to "explore STEM fields."
Isn't it obvious that the course is not designed for her learning purpose?
"A humanities student"? She's a humanities student who had taken up through linear algebra! I have a CS degree and I never learned linear algebra in high school or college--I learned about the topic later!
The idea that a 200-level course should be unapproachable for an interested person with a stronger mathematics background than I have, with an ostensibly mathematics-based degree, is absolutely silly. I took 300 and 400-level classes in economics, in English, in history and philosophy. I never felt unwelcome or incapable.
> I have a CS degree and I never learned linear algebra in high school or college
Really? I mean, you probably did have linear algebra in high school, it was just "disguised" (you may not have seen matrices and vectors, but probably did solve linear equations of multiple variables). I'm surprised about the college thing, though. I thought every CS degree (in the US at least) required at least through linear algebra (linear algebra with applications, probably not linear algebra with proofs and theory).
I'm assuming the issue is that there isn't a math pathway for humanities students who want to take math electives. This is the closest thing she could find. This was the case at the Ivy I attended. There were classes designed to fill the one-course math requirement, but they were all below the level of the math I'd done in high school. There wasn't anything for someone who was decently good at math and genuinely interested in it, but not planning on a math-related major.
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.