, 47 tweets, 13 min read Read on Twitter
Today I want to talk about a couple of things I dislike about my (sub)field.

🅰️ I hate closed sourced langs & the epitome: Matlab.

🅱️ I hate how coding is (not) taught to people.
High-level point:

Everybody in psych/neuro should be taught to code & taught an #opensource #openscience programming language.
Before I dive in to saying what I dislike about closed source langs & Matlab esp, I would like to make some clarifications/caveats because the last thing I want is to add confusion to an already tricky issue since some people (e.g., women, PoC) are told they "can't code" often:
1⃣ If you learned/were taught how to code in Matlab, it is not your fault. You are not the problem and I do not blame you. You might be an excellent coder or not, but it's not you.

➡️ This is an appeal to educators/people who have a say about what scientists/students are taught.
2⃣ If you think this is an attack on your skills: no. If you're confident in your coding skills, this isn't about you. If you made it thru & are great then you're great.

➡️ My argument is that the way Matlab's taught & the typical culture around it isn't ideal & can be improved.
So, on to first saying #openscource #openscience [for a primer on this see my previous thread on this account] are really important and a closed source language like Matlab is not open source nor open science. By definition, closed source is not open.

Does that mean science done using closed tools, closed data, closed source is bad?

Absolutely not. That is not the point #openscience makes at all. For example, a lot of science in the 20th century was closed, we still stand on their shoulders & build on their work.
Matlab is also not free in the 💰 sense. They ask for high fees from universities, much like journal subscriptions, for nothing that can't be found in the community for an open language and often done better.

So why pay and for a substandard service?

Keep your money, unis! 💸
Matlab also doesn't really feel or behave like many other languages, essentially not helping students have more general skills.

Generalisable skills is the whole point. Technology changes and if we can't adapt we're stuck or at least somewhat inconvenienced when we have to move.
Matlab provides a locked-in jail-style environment with a GUI/IDE that allows & doesn't warn against very bad habits, like using Matlab more like Excel than a coding language.

IMHO Matlab can make it harder than absolutely no programming knowledge to switch to another language.
Matlab's GUI/IDE never forces us to think about variables and data strictures deeply. They can always be visualised.

But an amodal representation in our minds is actually really important. Imagine if every time you had to talk about something you had to Google a picture of it.
Having a GUI/IDE is great but at some point in the learning process it must be avoided.

As children, for example, we initially count on our fingers, but that is not a way to graduate to doing arithmetic. Eventually we need to learn numerals, symbols, and abstract thought!
IMHO to learn and be able to code in the general case, we need to think of these things (for-loops, if-statements, data structures, variables) as coherent amodal concepts that do not always need a GUI.

GUIs are not all bad, but they can impair learning if used unwisely.
When moving away from Matlab, as many will do, the GUI/IDE crutches will be snatched away and we will have to learn to code all over again. This is painful but avoidable if a more appropriate language/culture (because of course each lang has one) had been used from the get-go.
Also the vast sums of money needed to use Matlab will mean that students who want to run their code off campus will struggle and probably have to obtain a pirated copy after their degree is over.

Or try Octave which doesn't always work cos Matlab is both closed & has no BNF. 😱
Finally, I want to underline my point from above — we need to bear in mind that:

👉 closed source means closed science! 👈

Everybody makes compromises for many reasons and some are very valid/ethical, but to deny that Matlab is not #openscience is pointless.
Coincidentally, as I was writing this @owainkenway mentioned my blog post linked at the top in an email to help others within @ucl make the switch to more open tools & languages.

So it's not all depressing as my and many others' effort to make a push here has born fruit.
Here are some pieces others have written on this topic:

💥 aforementioned @owainkenway who demonstrates that using Octave for Matlab just doesn't work:

"“You can do open science in Matlab, people can replicate it in Octave”


💥 @enthought have written: "White Paper: MATLAB to Python, A Migration Guide"... not sure why you need to fill in a form to get it? But it's useful nonetheless for those who need to go from Matlab to Python.

💥 @inferencelab has written a few posts on this issue:

"I’ve decided to break off a ~15 year relationship with Matlab. We’ve been through many important times together and it’s not been an easy decision to make, but I think this is the best"

💥 Nikolaus Rath [from outside neuro/psych]:

"as a programming language, MATLAB is a terrible choice. However, I found out that to some people this isn't actually obvious at all - especially when their first exposure to programming was through MATLAB."

End of part 🅰️ (recall the two related parts mentioned closer to the top of the thread) — more later on how we are failing students with respect to coding in another equally depressing way!

As usual, please feel free to ask any questions.
Time for part 🅱️!

Why do many educators not teach psych/neuro students at all levels some basic coding skills?

This is a massive disservice. And I will elaborate some of the reasons given and why they are bunk.
One of the big reasons is that formal societies like the BPS as well as other gatekeepers put pressure on psych/neuro/cogsci depts to teach certain specific things to (undergraduate) students otherwise no accreditation.
This leads to a situation where certain things have to be in the curriculum & it's zero sum because there is only so much you can teach per term... but coding should have a very high priority at the same level as stats.
And this is especially the case since stats itself IMHO needs some very basic coding skills in a post-SPSS #openscience world — but also just generally, I mean it's being taught to primary school kids in some countries, we can help our students by doing some basic stuff.
Another big one is people/educators think undergrads in psych/neuro, who are predominantly women, cannot learn to code. Literally, they think it's not possible. Essentially falling back on the "male geek" trope as a reason to not do their job and teach students something useful.
This unwillingness to see women as coders can be due to so many things: (internalised) sexism, lack of understanding how important coding is, laziness because they think teaching it is hard, lack of imagination so can't see how useful it is for, e.g., labs to have coders.
So what arguments do these powerful men have over the field, which is mostly less powerful women, actually have against teaching coding to students?

I will go over the ones I have seen and address them.

🗣️ "People choose psych as an easy undergrad, coding will make it hard and we will lose students."

Being a therapist/clinician isn't easy.

And stats, which we do teach, isn't easy.

So you'll prob not lose anybody quite the opposite they'll prob love it:
🗣️ "Students need GUIs, otherwise they they can’t learn."

Students might want GUIs but so what? Of course, GUIs are not all bad, they have their uses. RStudio is a very appropriate GUI/IDE to teach stats. Besides...
Often students tend to hate having to rote learn SPSS (a stats software monstrosity) menus — so do students really love GUIs? No, and nothing seems to stick with these menus anyway. I learned how to do loads of things without a GUI and I’m not special.
Also just to be clear: Rote learning has its uses when the thing being memorised is generalisable. The thing with very specific stats GUI menus is they are not, but multiplication tables, for example, are.
🗣️ "They just CANNOT learn to code. They just can’t."

They can actually. This is trash rhetoric.

English is hard. Not everybody is Maya Angelou or William Shakespeare. Not everybody is going to win a Nobel in Literature. We still learn basic English.
Maths is hard. Not everybody is Grigori Perelman or Maryam Mirzakhani. Not everybody is going to win a Fields Medal. We still learn basic maths.

Saying that some can’t learn to code is a ridiculous, pessimistic, and elitist argument that only results in skills gatekeeping.
Also, yeah, sure, some people can’t learn anything but the most rudimentary English or maths. So what? Does that mean nobody should be taught these things because some people can’t learn them?

The sooner we start teaching kids to code, the better! theguardian.com/technology/201…
🗣️ "Teaching students to code is zero sum and that means removing other parts of the course."

Well, yes and no. It’s possible to teach them coding as a direct means to an end, as I mentioned, see:
🗣️ "Teaching students to code is really hard and nobody in my dept knows how to teach them."

All teaching is hard. It takes time and is going to require sacrifices. It’s a massively undervalued and underpaid profession (no coincidence it’s undervalued and it’s feminised often).
🗣️ "We can’t expect clinical people to learn how to code."

We can and it’s really useful for them, they say so often themselves to me and on Twitter, e.g., here:
🗣️ "Who are you to say we should or could teach them to code?"

You don't have to listen to me. But I’ve taught psychology A-level students and undergraduates in class, as well as PhD students mostly by begging them to teach themselves. 😂

All the hype around coding helps!
🗣️ "We can’t teach them to code because scoping [or any other programming concept] is really hard and time-consuming to learn."

We can/do teach them w/out scoping. Pedagogical principle: teach, e.g., about 3 states of matter. Don’t go “oh, there’s also Bose-Einstein condensate”.
🗣️ "You can’t teach them how to code during a stats class because some students will have a “handicap” if they have not coded before."

It’s normal for the skills of students to vary. A teacher should cope. It’s also why we should shield students from, e.g., the male geek trope.
And that's a small recap of the stuff I raised in this blog post, in case you want to read it off Twitter in a less choppy way: neuroplausible.com/programming
To finish this off, I just want to say, check out the people who do indeed teach coding in psych/neuro.

Like @djnavarro! See here for some of her materials: psyr.org
Especially see this bit of a huge thread on teaching coding in psych/neuro from a while back:

And this bit again of the same huge thread on teaching coding in psych/neuro:


Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Olivia tweets progress.
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!

This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!