Why won’t anyone teach me math?
dailyprincetonian.com
dailyprincetonian.com
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 spent more time re-learning high school math than actually learning programming. And not because it was directly related, but because some lessons were like, "write a function in Java that factors a quadratic." So 90% of that tutorial was me re-learning what the heck a quadratic is and how to factor it.
The experience really sucked and I gave up on university programming courses and just started learning it all practically and on my own terms.
Edit: Enjoy this wonderfully styled course page: https://student.cs.uwaterloo.ca/~cs125/S08/Resources/Admin/C...
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.
(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_.)
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...
They also offer a lot of "math for non mathies" courses, which would have been a great place to teach quadratics.
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.
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.)
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).
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".
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.
He def doesn't love math. But he just finished the swarm thing and it's awesome.
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, when we truly understand "competence".
A lot of "math" as talked here, is not part of what make a programmer competent FOR programming.
It only make you competent for THAT segments of math.
That is something that many has a hard time understanding: Programming is NOT math. Equally as math is NOT programming.
If you are studying FOR programming/CS, math is ASIDE. Is not the focus.
Similarly, if you are FOR math, programming is ASIDE. Is not the focus.
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...
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.
Sure, but CS is still about "Computing", not algebra or calculus!
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.
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.
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.
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.
Both statements can be true, but neither negates the utility of the activity.
I feel like I'd be more on board if you said something like "compute an integral", etc. Factoring is just.... a single equation.
The idea that you might not know how to do it as someone working in a STEM related field wouldn’t come to me.
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.
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.
x^2 + 2x - 3 = 0 = (x+3)(x-1)
This is not factoring?
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.
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.
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.
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.
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.
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.
But then UT Austin may not be a reputable university, computer science-wise.
[Certainly, they've redone the curriculum since I was there, and I don't like what they've done.]
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.
Either that's not true, or there are an awful lot of physicists and chemists out there wondering why they took so many math courses.
Except that those details seem to require a considerable amount of work.
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.
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.
The goal is to be able to efficiently solve non trivial problems.
-- https://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD103...
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.
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.
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.
I suppose it could be systems if you are building a compiler or vm, but that to me is different that programming languages.
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.
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.
The course described doesn't seem to match your description of comp sci either.
Which matches my experience of a technical course in Waterloo. They need to update their pedagogy.
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.
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!?
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.
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.
Usually I find proofs are what you bring in the consultant for.
I'm not going to hand on heart vouch for anything like that as a generalist.
Combinatrics, Big O and set theory absolutely. Everyone is far better off with those.
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.
Oh, and there is nothing tautological about it, at least as far as most programmers seem to work.
Pretty sure you missed a couple news articles recently...
https://news.ycombinator.com/item?id=30179549 https://news.ycombinator.com/item?id=27676266
They're not exactly reliable, but you probably could say the same for the earliest compilers (from programming languages to asm/machine code).
I'm not saying they will definitely be usable in the short term future, but that future is probably coming sooner or later, and I don't think a fragile definition (programming==="applied formal logic") is worth reiterating over and over again as if it were some fundamental truth.
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).
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.
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.
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.
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!
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?
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...).
And biology is just self-replicating organic chemistry.. and chemistry is just the physics of outer electron shells.
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".
No it's not about react or ror.
It's about solving actual real life problems. 99% people don't do CS to do academical research, but to work on life change products(and that's more likely to come from user research and fast prototyping, than from theoretically perfect fundamental research).
Some people build millions dollars software products, solving real life problems, without having a clue what big-O, quadratic functions, or even a lot of actual theoretical programming concepts are. And I personally know a bunch of those people. Some people know almost everything there is know about CS theory and never build anything useful to anyone.
Physics have literally nothing to do with CS or SWE. I think this is just pointless elitism.
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!
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.
Oh… I just need to know the basics? Damn, such a great use of my time.
CS degree in a nutshell.
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?
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.
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?
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.
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.
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.
Teachers mostly don’t think their education degree made them better teachers and there’s no evidence they do[1]. It’s widely agreed that at least the third year of USAn law school is useless[2] and there are testing providers whose entire thing is teaching graduates what their law school didn’t but should have if it was professional training [3].
Professional schools are run for the benefit of the staff, so they teach what the admins and teachers want to teach. It has to have some relationship to the field but it can be completely attenuated. People learn to do their job at work, not on a university campus.
[1] It's easier to pick a good teacher than to train one: Familiar and new results on the correlates of teacher effectiveness
https://www.science-direct.com/science/article/abs/pii/S0272...
[2] https://www.businessinsider.com/third-year-of-law-school-is-...
https://forgottenattorney.wordpress.com/2013/02/01/the-usele...
[3] https://abovethelaw.com/2017/05/teaching-you-what-law-school...
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?
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.
> Conclusions and Recommendations of the Interdivisional (APA Divisions 12 & 29) Task Force on Evidence-Based Therapy Relationships
http://societyforpsychotherapy.org/evidence-based-therapy-re...
> The therapy relationship makes substantial and consistent contributions to psychotherapy outcome independent of the specific type of treatment.
> The therapy relationship accounts for why clients improve (or fail to improve) at least as much as the particular treatment method.
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.
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!
"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.
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.
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
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).
Also, runtime analysis isn't that difficult of a skill to pick up.
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 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.
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.
Programming is secondary.
Source: Comp Sci major
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 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
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.
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.
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.
1) CS::software development is a bit like physics::mechanical engineering
2) CS at waterloo definitely skews to the cs-is-part-of-applied-math thinking in many ways. Other university CS programs are very different.
I'm not saying a "practical programming for non math/cs types" course isn't a good idea, just that really isn't what you signed up for.
I have the Tranquility! extension on my browser, which turns that web page into something quite readable. The web page as it is is the complete opposite of something readable.
https://addons.mozilla.org/en-US/firefox/addon/tranquility-1...
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.
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."
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.)
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.
It's intentional.
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.
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.
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.
(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.)
On the other hand, you cannot conclude from one case that math teaching is broken.
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.
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.
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.
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.
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.
"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.
If you are learning proofs, it is going to be a bit of a slog in the way that CS50, etc. can avoid.
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.
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 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.
People over-state the difficulty of things and generalize something being difficult for them to being very hard and difficult to everyone.
The smartest people I know from school all went into academia.
https://www.youtube.com/watch?v=7J-wCHDJYmo
If I recall the TLDR was if you want to graduate with a STEM degree go to a strong second tier school and be the absolute best there instead.
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.
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.
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...
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.
I respect your experience. I want to say, though, that I teach at a small liberal arts college and everyone here puts a great deal of energy into teaching. So there is an alternative.
> leads to a huge loss of talent from the practice and art of mathematics
Yes, it is a terrible thing.
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.
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.
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.
Quant background coming out of high school? Good grief.
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.
Which, it turns out, is sufficient for the vast majority of engineers and scientists.
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?
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.
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?’
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 :-)
Princeton in particular prides itself on being focused on the undergraduate experience compared to other research universities. Research is (supposed) to be secondary.
Hopefully they make that clear to all the naive students before they sign up! :-)
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.
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.
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.
Any good definition of mathematical maturity would likely be so technical that you need mathematical maturity to understand it.
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.
Most colleges have classes designed to foster mathatical maturity, but that is done by how the class is taught, not what is taught in it.
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.
I don't think that that is an introductory course.
It also usually helps if it's an interesting problem...
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.
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.
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.
This wasn't even really intentional discouragement, but it was perceived as such. Hopefully, you learned the higher lesson.
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.
What I mean to say is that this issue stems from your misunderstanding of the meaning of the word “mature” and nothing else.
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.
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.
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.
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.
4 hours a night 6 days of week and I got a C. Less the 25% made it to end. Don’t think many of remaining passed.
Got a lot out of it though.
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.
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?
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.
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.
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).
No, it's usually basics like functions, graphs, and trigonometry. It's basically a remedial class for what students didn't learn in highschool.
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.
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.
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.
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.
https://en.m.wikipedia.org/wiki/Literacy_in_the_United_State...
"4 hours a night 6 days of week and I got a C. Less the 25% made it to end. Don’t think many of remaining passed.
Got a lot out of it though."
Actually is abstract algebra and not highschool level. Nobody teaches remedial classes in such a way that only 25% make it to the end.
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.
[1] https://chhaylinlim.wordpress.com/2014/09/24/average-iq-per-...
[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.
Are you arguing that it is actually skewed towards some cutoff point of "just smart enough to get the 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).
[0] https://math.stackexchange.com/questions/2105921/pdf-for-min...
That's a huge assumption. I could easily propose a half dozen other models each with a different conclusion. You would need to look at the data.
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.
There isn't a skew per se but possible inflation that gp intended to account for. See Flynn Effect.
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).
edit:
Or if you had the maturity to accept criticism like an adult.
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 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.
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.
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.
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.
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.
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.
[1] https://www.math.princeton.edu/undergraduate/placement/MAT20...
[2] https://www.math.princeton.edu/sites/default/files/2018-04/M...
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.
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.
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.
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:
https://en.wikipedia.org/wiki/Mathematical_structure https://en.wikipedia.org/wiki/Outline_of_mathematics
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.)
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.
For anyone wanting to learn about e.g. group theory, let me recommend Nathan Carter’s book Visual Group Theory http://web.bentley.edu/empl/c/ncarter/vgt/
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 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.
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”
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.
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.
- 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.
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!
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.
> 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.
> 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]]
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.
(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".)
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".
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.
> 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.
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.
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.
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.
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.
I always had better luck with just manipulating the numbers mentally.
But having that capability is pretty important for understanding other concepts. For example, many concepts in calculus.
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.
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.
God I hope they're not teaching one of them is correct and one of them is incorrect.
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.
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
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.
8 x 300 = 2400
Add two zeros
8 + 8 = 16
16 + 8 = 24
Also university-level math for everyone who doesn't get up to taking proof-based analysis.
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.
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.
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...
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.
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.
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!
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.
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.
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
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.
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.
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.
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.)
You're begging the question. Please substantiate.
Simply returning work shortly after the late work window closes should suffice, no?
Glad to hear you didn't actually do that. Returning digitally is still returning.
If she continues on to functional analysis she can just tunnel through.
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".
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.
Indeed, she says exactly that:
> MAT 202 is not a course that math majors typically take, but rather for underclassmen who are majoring in engineering or sciences.
>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.
Definitely NOT a math class
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"
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.
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".
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.
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.
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.
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!
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.
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.
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.
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.
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.
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.
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 :)
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 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.
Edit: clarification
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
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
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
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.
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.)
Man, what a lame excuse.
As if there were not hundreds of books with solutions.
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."
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.
> 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?
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.
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.
And really, shouldn’t this be how we approach most problems?
I know, I was referring to the homework.
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.
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.
If the person teaching a maths course needs to look the answers up, you are just fucked.
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.
You're right, of course, but then it seems like the question is the following: which of the two should the class serve?
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.
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.
Yes - math education can be awful, but this snowflake needs to lose the entitlement.
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.
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.
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'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].
[1] https://twitter.com/sibinmohan/status/1480583840858996743/ph...
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.
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.
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.
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.
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 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.
My email is in my profile.
"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.
Ah well, no use raging against reality.
For me, as a physics major, calculus didn’t “click” until I had to use it for solving physics problems.
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.
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.
preview: https://minireference.com/static/excerpts/noBSLA_v2_preview....
concept map: https://minireference.com/static/conceptmaps/linear_algebra_...
intro videos and SymPy notebooks: https://github.com/minireference/noBSLAnotebooks#contents
http://math_research.uct.ac.za/marques/LA.html
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 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...
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.
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.
The only thing special about math here is that this is especially transparent.
"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.
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 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?
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.
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.
You had a miserable experience.
I did not.
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.
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.
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.
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.
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.
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.
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.)
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).
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.
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%.
The percentage of professors I have met who complain that no one is attending their course office hours is close to 100%.
Engineering schools in the UC system explicitly state during orientation that office hours are the central to the educational experience.
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.
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.
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?
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.
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.
[1] https://www.amazon.com/Chapter-Zero-Fundamental-Abstract-Mat...
The hard part is guessing what would get you surprised enough.
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.
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 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
For more info, listen at https://techzinglive.com/page/1764/346-tz-discussion-better-..., offset 36:40.
> 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.
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.
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?
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.
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.
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.
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.
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.
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?
> 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.
>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.
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".
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.
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.
Question is will you sound educated outside of academia when talking the basics of the subject. It's hard to do with math, compared to humanities.
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.
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 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.
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.
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.
[0] #include <std-pro-pandemic-mitigation-disclaimer.h>
> 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.
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.
The teaching of different ways of making the journey is (often) the destination.
The easiest solution would be to provide solutions to problems. The lecturer obviously has the solutions.
It makes life easier for everyone. If you provide solutions you don’t even have to grade homework because students can grade it themselves.
People generating extra work for everybody sounds pointless.
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.
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 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.
Everybody wins in the end.
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'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.
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.
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?"
Examples:
* https://www.reddit.com/r/learnmath/
* https://www.reddit.com/r/cheatatmathhomework/
* https://www.reddit.com/r/MathHelp/
* https://www.physicsforums.com/
* 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.
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.
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.)
Fair enough. That was a VERY long time ago for me, and I don't have children, so that world is pretty closed off to me.
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.
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.
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.
- 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
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.
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.
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?
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.
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.
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.
https://www.forbes.com/sites/michaeltnietzel/2021/09/13/us-n...
(U.S. News & World Report's Best College rankings)
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?
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....
As a non-American, I’d like to know what this even means. Percentage? With 100 meaning aced, and 0 for “handed in a drawing of a spider?”
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.
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.
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.
Spivak at least has the nice property that it doesn't assume you know much.
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.
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.
https://www.manning.com/books/math-for-programmers
There is also the coding based Linear Algebra course that is available online (there's an accompanying print book).
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
http://billsix.github.io/modelviewprojection/intro.html
Most of it is done but I’m updating the content in web form weekly
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.
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.
It is what it is.
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."
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.
Humanities student complains that math class are not run as humanities classes
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.
apparently now available at
https://www.math.pku.edu.cn/teachers/anjp/textbook.pdf
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 / \ / \ / \
| 2 -1 5 | | x | | 7 |
| | | | = | |
| 1 +1 -2 | | y | | 3 |
\ / | | \ /
| z |
\ /
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.
MIT does this right. Students can boost their grade by submitting revised solutions after the initial marking.
Isn't it obvious that the course is not designed for her learning purpose?
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.
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 learned what a (mathematical) vector was offhandedly in college, but I think it was from talking to someone, not in a class.