So last week I volunteered with an NGO. I teamed up with a peer to interview a few engineering college students.
These kids were in their first year of engineering. So, we both decided to keep the qualification bar a bit low and not focus on advanced software engineering topics. TLDR: We still ended up eliminating 80% of the candidates.
When we asked the kids about simple programming concepts like “how does a website work or a database works” – we realized that those were too much for them to handle. Some didn’t even know the full form of SQL. Never mind. We moved on to what we thought would be much simpler – Number Theory. We thought wrong.
Here’s the problem that we framed for the kids. Design the logic for a function that would take a number as the input and determine whether the number is prime or not. We didn’t ask for code to be written. We just wanted to hear their high-level logic.
The answers floored me. Following are some lightly paraphrased explanations that we received.
Kid 1: I’ll first divide the number by 10 to check if it is zero.
Me: (genuinely confused if I misheard something) Why would you divide by 10?
Kid 1: Because zero is not prime. And that’s how I can detect it.
Me: (I sadly spent too many minutes on the above point with the kid trying to understand this logic. I finally gave up and moved on to a different point.) If the input number is 5 what would your function do?
Kid 1: I would divide it by 10.
Me: (Taking all of this in with a straight face.) And then what would be the result of 5 divided by 10.
Kid 1: I will get 2 as the remainder.
At this point I let my peer continue the interview.
Here’s what happened with another kid for the same problem.
Kid 2: I will write an if-else logic.
Me: (Feeling slightly optimistic) Good. And then?
Kid 2: I will check if the number is divisible by 2. If yes, then it’s not prime.
Me: (Surprised) But that’s the logic for odd and even numbers.
Kid 2: (Sad realization) Oh yeah. What’s prime then?
Kid 3: Check for divisibility from 0 to infinity.
My peer: How can we calculate till infinity? (Giving subtle hints) If we want to check for ‘n’ should we continue till infinity or stop before that?
Kid 3: ….. I don’t know
And this futile exercise sadly repeated in different forms with different kids. My goal is NOT to embarrass the kids. But this seems to be a systemic issue with our “organized education” sector. Each of these kids had marksheets with > 98%. How is it then they were unable to think on their feet and solve such a trivial problem? From what I hear, textbooks are not used by students in most colleges. They might as well be banned at this point. Professors share “ppts” and kids refer that. I have no issues with slides. But slides are meant to be terse/brief NOT verbose. Slides are NOT supposed to have full length sentences. A well-crafted slide-deck should use phrases along with visuals to aid in better/easier understanding. But they cannot replace books. Slides are not the right medium to be solely referring when you want to master a subject. It can be a supplement; a side-dish but not the main course. But we have raised a generation now that suffers from attention deficit. Being able to focus on a hard task for more than 15 mins should apparently be labeled a superpower. Get the kids to read books! “Cladius, you are biased towards books – you are an author.” Guilty as charged. I am biased. That doesn’t mean I’m wrong. Books are by far the most effective way of gaining someone else’s knowledge without having to invest the same amount of effort or experience as the authors. The author does the hard part – does the experimentation, gains the life lessons, and bothers to write the learnings down. All we have to do is the easy part – read it.
After the interviews my mind wandered back to my college years. I remembered discussing with my classmates about primes and the efficient ways to determine if a number is prime. I remember reading a book about algorithms in my college library in which this very topic was explored. Before having read the book I remember writing naive loops for divisibility checks for the number ‘n’ from 2 up to (n -1). The book mentioned an optimization. Just go up to square-root(n) + 1. Another concept mentioned in the book was why check for divisibility with 4, if divisibility by 2 was already tried. Oooh! We needed to check the divisibility only with primes up to the square-root. Then the book mentioned the Sieve of Eratosthenes. (If you have time check in which century the OG book that mentions this specific algorithm was written.) Reading such books was fun. It is what partially helped me think in that direction of incremental optimization of algorithms. Can we not achieve the same with ppts? Of course we can. I have no squabble with slidedecks themselves. But we cannot just be exam-focused and try to barely manage clearing the exams with cheat-sheets. We need to inculcate the habit of reading good-quality books and soak in the knowledge of experts in our field. Newton said he could see further because he stood on the shoulders of giants. I’m afraid as to what the next generation will do if they choose to solely rely on short-form content and ignore the wealth of information that is collecting dust in libraries. Anyway, enough ranting. Something positive happened as well on the day of the interviews.
As I sat for dinner with my family, a thought came to me and I decided to test my 9-yr old daughter’s thinking process.
Me: Grace, what’s a prime number?
Grace: (thinking for a few secs) A number that is not divisible by 2.
Me: No. That’s an odd number. What’s prime?
Grace: (thinking again – while I’m considering home-schooling) A number that comes in the table of 1 and itself.
Me: (slightly happy) Every number satisfies that condition. Correct the definition. Think.
Grace: Oh, a number that comes ONLY in the table of 1 and itself.
Me: Ok. Your teachers have exposed you to Scratch Jr and loops etc. Can you come up with an algorithm that takes input as a number and then determines if it is prime or not.
Grace: I’ll get the number from the user. Then I’ll add a loop. And then I’ll check if it comes in the tables of 1 and then 2 and continue till the number. But I don’t know how to check if it comes in the table.
Me: Ignore that. Why do you need to check for 1?
Grace: Oh yes, I’ll start from 2.
Me: Why do you need to check for the number’s own table? It’s obviously going to be present there.
Grace: (This was frankly the hardest part for her – after a lot of thinking and giving her concrete examples of ‘n’ she figured it out) I’ll go from 2 to one number less than the number.
Me: (Satisfied finally) Good.
I’m glad that the kid was able to think about this and solve the problem. Maybe it’s an unfair advantage for her that she’s at that age where she is being taught about primes in school. What I’m sad about is that how come a 4th grader is able to solve this problem and a bunch of engineering college students are not able to. How did we collectively fail our youth?
A humble request to all those in the education profession, please bring back book-reading and critical thinking in colleges. That’s the only way to battle this cognitive devolution.
Note: I know of course not everyone is like the college kids that I interviewed. A part of it could also be because they were nervous. I’ve had the pleasure of working with some really bright kids as well. But with every passing year they seem to become an endangered species.
What’s your take on this? Is this a real issue? Am I just over-reacting? How can we correct this?
Originally posted on LinkedIn here.