When I enrolled as a freshman in college, I registered as a linguistics major but I had a notion that I would minor in computer science. Computer science seemed interesting and well-paying and I didn’t even know computational linguistics was a thing at the time. I just liked computers. I never had a problem switching between Macs and PCs. I liked to peak inside computers and replace the RAM and things like that. I had poked around with HTML editors. The classes on things like graphic design and artificial intelligence and stuff seemed really cool.
I looked up the prerequisites and found that to minor in CS you had to actually get pretty far in math, at least through Calculus C and one or two courses of Linear Algebra. So, naturally, I signed up for Calculus A my fall term.
A lot of things went wrong. I was new to college and maybe took advantage of the “attendance is not required” part too much. I was too proud to admit I didn’t understand, so I never asked the TA or a tutor for help. I had gaps from my high school education, particularly surrounding trigonometry. Things like Khan Academy and Wolfram Alpha didn’t exist at the time. Hell, YouTube and Wikipedia were still in their infancy. I flunked that class.
So I took Calculus A again the next term. I went to class this time but I didn’t go see a tutor. I flunked again.
My reasoning at the time went like this: computer scientists are smart people and they got paid a lot, and the prerequisite says “Calculus A” right there on the course description for the very first CS class, so they must use all this really hard math. Maybe I’m just not smart enough to learn math, so I can’t learn to program or learn computer science. Maybe I’ll just stick to linguistics.
I took some philosophy classes on artificial intelligence (is an artificial brain conscious? are we conscious??), and I took a class on computational linguistics where I did learn to program (in Prolog, an absolutely obsolete language even ten years ago). But “real” computer science? No. I wasn’t smart enough for that. I had flunked calculus. Twice.
I gave up.
About two and a half years years ago, I was in a graduate-level corpus linguistics class when I learned about regular expressions and for-loops for the first time. Learning about regular expressions rekindled my passion for computer science, and really made the link between CS and linguistics clear to me. I started reading about the field of CS and AI and NLP. And I learned that Estonian first graders are now being taught to program.
I don’t care what kind of education system you have, even genius-level 7-year-olds don’t know calculus C or linear algebra. This was a revelation to me. I could learn to program. I mean, people young enough to be my children were programming. And they didn’t need higher math. They didn’t even need their times tables.
I started doing Khan Academy and Code Academy and pretty soon NLTK. I took intro to computer science classes on Coursera and Udacity and all those other moocs. I made a few simple programs, including my twitter bot and a few things to automate tasks for my research. I even built a computer.
This term, I enrolled in the second term computer science class offered at my university. Yes, it’s for freshmen. But my hacked-together, self-taught CS skills are really somewhere between 2nd and 3rd term CS, so this is where I belong. Besides, the class uses C++ and I’ve never used any object-oriented languages before (I typically use R, Python, or JavaScript).
The prerequisites for this class are things like knowing what a for-loop and an array are, and also Calculus B. I was a little worried, because despite my best efforts on Khan Academy I’m still hovering around trigonometry and pre-calculus. But I cracked open the textbook today and was greeted with this:
The book assumes no programming experience and no math beyond high school algebra. So why the @#$% are the prerequisite for this class another programming class and two higher level math classes?
This seems like a case of using math to “weed out” people from a popular major. Statistics is used similarly to “weed out” people from psychology. But ultimately I think it’s really damaging. Coding, even just a little bit of coding, can be really useful. It helps you automate simple tasks and helps you understand these machines we use every single day at a deeper level. Yet our universities are preventing students form learning to code by setting up these unrealistic expectations of higher math knowledge.
This is a problem. Maybe 50 or 75 years ago computer science and math were more linked (since you needed to be Alan Turing or at least understand binary), but not so much anymore. I was discouraged for over six years because I honestly believed the university (and its not just one, many universities do this) knew what they were doing when they made calculus a prerequisite. I still have insecurities and impostor syndrome over it. How many other bright potential programmers are like me, who just give up? What if the reason there are so few female programmers has to do with all the stigma surrounding girls and math??? I can’t imagine I’m the only person (male or female) who has encountered this barrier to CS.
So the point is, GET OUT THERE AND CODE! You can do it!
You must be logged in to leave a reply.