1,961 karma · joined August 17, 2010
http://betterexplained.com/articles/linear-algebra-guide/
But to me, it's better to start with a context, a purpose for using matrices & linear algebra first, and learn what and how to use matrices in that context. The contexts that helped me included 3D graphics/games and later circuit simulations.
He already swapped out the old java version with this same javascript (GWT-based) one.
There are several other good simulations on that site, too, and many other good animated physics simulations here: http://phet.colorado.edu/
And for those asking what's the use - there's a lot of research on the PHET simulations about their benefits for learning. I myself used Falstad's simulation in my dissertation. Students who just finished their first circuits course used this sim and learned stuff in minutes that they hadn't learned all semester, like what happens when you add a capacitor to a DC circuit, or the difference between capacitors and inductors in an AC circuit, and the effects of changing capacitance, inductance, and resistance in a circuit. In a regular circuits class, you can get by with just memorizing equations, but this simulation helps you understand what the equations mean and what is actually happening in the circuits you learn about.
An example from Hans Freudenthal is from a standard physics question. If there are books on top of a table, what are the forces acting on the books? Most all students draw the downward force of gravity, but some forget about the force the table exerts upward back on the books. You can have students get on their hands and knees and put books on their back, or have them lie on their back and hold up books with their hands and arms. They 'embody' the table, in a sense. When you add a second book, you feel that you have to exert more effort (which correlates with force) to hold the books up.
Then depending on his interests and abilities, there are various beginner-friendly tools for making games below, from easier to harder and free to commercial.
I would talk with him first about what kind of game is he interested in doing. Something like flappy bird or an arcade game, or modding minecraft, etc. If you make it about learning to program for programming's sake, he may get tired of it quickly and not be interested in programming again for a long time, if ever.
free:
https://www.gethopscotch.com/ (ipad)
http://www.toyengineapp.com/ (ipad)
http://twolivesleft.com/Codea/ (ipad)
a little more advanced (text instead of graphical programming), works in browser to make HTML5 games:
windows only:
http://research.microsoft.com/en-us/projects/kodu/
commercial:
http://www.learntomod.com/ (mod minecraft with visual programming)
The common type is object, or perhaps more specifically, non-nil object (object!), if 0 is not treated as nil (value type).
If you try to interact with an object (add it to a number, call a method, etc.), your language has to decide what to do: fail because that method is not part of the type object, or force people to cast to the proper sub-type, or allow a kind of dependent typing/casting (if type(it)=int: it+1 else if type=char: it.uppercase), or (like boo, python, ruby, etc.) allow "duck typing": allow any calls/methods on the object, and check it at run-time instead of compile-time
There were several articles about it this past year:
http://www.slate.com/blogs/moneybox/2014/07/10/lone_geniuses...
https://medium.com/the-aspen-journal-of-ideas/the-myth-of-th...
http://www.theatlantic.com/technology/archive/2014/10/lone-g...
http://www.theatlantic.com/features/archive/2014/06/the-powe...
http://www.nytimes.com/2014/07/20/opinion/sunday/the-end-of-...
http://www.washingtonpost.com/blogs/wonkblog/post/how-thomas...
And a newer book called "Academically Adrift" found that students aren't learning much in college.
How do they get away with all this? One explanation is the signaling theory of education. A degree (and the prestige/selectivity/reputation of the school and program) is a proxy (signal) for IQ plus an indicator of persistence (toughing it out to make it through a degree program).
http://oli.cmu.edu/courses/free-open/statistics-course-detai... http://www.socr.ucla.edu/ http://cast.massey.ac.nz/core/index.html?book=general https://www.kno.com/book/details/productId/txt9780983804905
There's one based on IPFS and blockchain that's a distributed video sharing app, like Youtube: https://github.com/eris-ltd/2gather
And there are some other decentralized / alternative Internet projects listed here (including Firestr): https://github.com/redecentralize/alternative-internet/blob/...
"MOOC education is survival of the fittest. Every student is just one insignificant datapoint while the course is running. Do well, do poorly, struggle, drop out – no one notices. But when the MOOC algorithm calculates the final ranking, the relatively few who score near the top become very, very visible. Globally, talent recruiting is a $130BN industry. It’s “Google search for people” in action."
From "The Darwinization of Higher Education": http://devlinsangle.blogspot.com/2012/12/the-darwinization-o...
In contrast, there are folks who look at how can we help more students succeed in math and physics (without dumbing the courses down and grade inflation). Wright State (and now many other universities) created a pre-calculus course that teaches the math in context with many engineering examples. 90% of students who took this course went on to pass Calculus, compared to 60% of those who didn't: http://cecs.wright.edu/community/engmath
Yeah, you've invented the 'mean absolute deviation' (or 'average absolute deviation'), which might be better than variance or standard deviation (the square root of variance) in some circumstances. It's been debated for 100 years: http://www.leeds.ac.uk/educol/documents/00003759.htm
Part of the reason for using variance might be like you said, to give more weight to outliers.
Part of the reason variance and standard deviation might be more popular is because usually the spread of a set of data has a normal distribution. And there are all these formulas and calculations that were invented before computers that are easier to do with variance and standard deviation apparently. Manipulating equations with absolute values is trickier.
There are also some mental shortcuts you can take if you know the standard deviation of a set of data. If a car is rated 8 on average, then about 95% of all of the ratings are within 2 standard deviations of the mean. Thus, if you want to buy a car rated 8 on average and want to be 95% sure that the particular car you buy is at least a 7, check that the standard deviation of the ratings is less than 0.5. Probably not a great example. Imagine instead you are buying oranges that are 8 out of 10 quality-wise on average, and you want to be confident that 95% of the oranges are at least a 7, so that you don't have to throw out too many. See https://en.wikipedia.org/wiki/68%E2%80%9395%E2%80%9399.7_rul...
I don't know, here are some other suggested reasons for using variance & standard deviation instead of absolute mean differences: https://stats.stackexchange.com/questions/118/why-square-the... https://www.quora.com/Why-do-we-square-instead-of-using-the-...
Say you want to buy a car and want to choose a brand and model based on user ratings of quality and value online.
Cars A, B, and C all have the same average rating - let's say 8 out of 10. How to choose? You need more information, but all you have are the ratings.
You could look at the range of ratings. This is the difference between the maximum rating and minimum rating. But what if only one or two people gave a car a bad (low) rating of 1 or 2, whereas another car had a lot of low ratings of 3 and 4, but no one rated it a 1 or 2. If you just look at the range, it might not be a good characterization of the ratings on the whole, because just one person (data point) can skew the information.
You want to look at the spread of the ratings - how consistent or variable the ratings are. A car with a lot of 7, 8, 9 ratings is better than a car with ratings all over the place, that happen to average the same (8). When you buy a car with an average rating of 8 out of 10, you expect a car that is an 8. You want to minimize the chance of getting a lemon.
This spread can be calculated by looking at the difference between each individual rating with the average rating. If you add up all these differences though, the negative differences with the mean would cancel out the positive differences with the mean. With variance, this difference is thus squared to make them all positive (or zero). And so on...
I wouldn't interpret this as "education majors are stupid." I would interpret it as, all of us, even the best of us, are stupid in certain contexts with certain topics and certain time pressures. This is partly due to how we are taught and how we learn in school. Our knowledge is inert (inaccessible in other contexts) because it is often taught without context. The technical term for this is "transfer" - our learning often doesn't transfer. An older term for this is "encoding specificity" - our learning is "locked" to the context in which it is encoded. For example the myth that if you are drunk while studying you should be drunk when you take the test.
Here is a dramatic example that had a huge influence on reforming science education. On the bottom right of this page is a video clip of MIT graduates, in cap and gown, who, given a battery, bulb, and wire, can't make the bulb light. There's also a clip of Harvard students. https://www.cfa.harvard.edu/smgphp/mosart/video_archive_2.ht...
The full videos that go into why this is happening (because of how they are taught) and how we can address it (contextualized and constructivist instruction techniques like problem-based learning, simulations, etc.) are "Minds of Our Own" and "A Private Universe", which can be viewed online here: http://www.learner.org/resources/series26.html and here: http://www.learner.org/resources/series28.html
Another brilliant example comes from comedian Father Guido Sarducci's routine on the "Five Minute University" - how he can teach in 5 minutes what you remember 5 years after college: https://www.youtube.com/watch?v=kO8x8eoU3L4
You combine a power structure (control over others in some respect) with pseudonymity and you'll accelerate this problem. Even without a power structure, people will try to dominate, bully others, by posting more frequently than anyone else in an effort to drown out other opinions or contributions. The anonymity disinhibits this behavior further (called the "greater internet fuckwad theory"): https://en.wikipedia.org/wiki/Online_disinhibition_effect
If I were him, I would first ask around - family, local businesses, organizations, etc. to see if someone needs a website or internal database or something like that, and then learn what you need to learn to do it. Another option might be to find groups or small businesses or individuals that do coding and see if he can learn from them and help out.
What I wouldn't do is just try to learn programming for its own sake - such as taking a course or buying a book without any idea of how it might be useful. He'll just forget it and perhaps even decrease his interest in programming. Flip it around and find a project first, a reason to learn programming.
Agreed. One man's asshole is another man's best friend.
Also, and perhaps more commonly, people behave differently to different people and in different circumstances. I've never met someone who was an asshole to their boss, even if they acted assholey in general to everyone else.
Bullying is a bit easier to operationally define, focused on behavior, not attitudes or personality traits as much.
As an example, here's a summary of research-based best practices for teaching Calculus: https://edtechdev.wordpress.com/2014/06/03/calculus/
Two years ago he was arguing that "it's survival of the fittest; the process has no respect for the individual, but overall is extremely effective." http://devlinsangle.blogspot.com/2012/12/the-darwinization-o...
And before that, he was arguing that math is basically just a meaningless symbol game of memorizing: "more advanced parts of the subject are created and learned as rule-specified, and often initially meaningless, "symbol games." ....must be learned in much the same way we learn to play chess: first merely following the rules, with little comprehension..." https://plus.google.com/+DougHolton/posts/hJ35zfWYofF
Luckily, a few colleges and instructors are trying to actually teach and support student learning in these classes, instead of just acting as gatekeepers who don't have a problem with high failure rates: http://blogs.kqed.org/mindshift/2014/12/intro-college-scienc...
And this can help for pedagogical purposes, too. Another example is infinitesimals in calculus, which were dismissed in favor of Weierstrass's epsilon-delta definitions over a hundred years ago, but found to be more understandable to students in more recent studies: http://academic.brcc.edu/johnson/Projects/Calculus%20with%20...
But there is an ultra low cost (~$10) robot kit in the works (trade-off of course being less features/usability), but it's not available yet: https://sites.google.com/site/affordableeducationrobot/home
At $99 is the Pi-Bot http://pi-bot.org/
$50 Hack-E-Bot http://www.hack-e-bot.com/
$100-$150 littleBits http://littlebits.cc/
$99-$250 Finch & Hummingbird http://www.birdbraintechnologies.com/
$250 Arduino Robot http://arduino.cc/en/Main/Robot
$100-$150 Parrot Minidrones http://www.parrot.com/usa/products/minidrones/
and many others
Both forms of the hypothesis are pretty easy to refute and have already been refuted. See http://code.org and http://madewithcode.com for example. I just taught 2nd graders programming yesterday who don't even know how to divide, let alone any algebra.
And of course, there's always the radical idea that maybe you could actually teach them some algebra skills in the context of programming tasks. Just like some calculus students may need some remedial instruction and support.
Luckily, there's a whole field of research with several articles on this very topic. The field is called computer science education. See SIGCSE, for example: http://www.sigcse.org/
In fact, the field has already researched and debated this issue before, as well. There was a controversial article called "The camel has two humps" in 2006 that made the same claim as this post that a simple aptitude test could predict whether someone could learn how to program or not. The article (which was never even officially published) was later retracted: http://retractionwatch.com/2014/07/18/the-camel-doesnt-have-...
Both bots work with Arduino and the Minibloq visual programming environment: http://blog.minibloq.org/
The Statistics Online Computational Resource (SOCR) site is also amazing for actually learning and playing with common statistical tests and tools: http://www.socr.ucla.edu/
Collaborative Statistics is a free and interactive statistics textbook: https://www.kno.com/book/details/productId/txt9780983804905
You can also run Sage, R, Python, Octave (Matlab clone) and other tools right in the browser now: https://cloud.sagemath.com/