in Uncategorized

Open Letter To Kenyan Universities Teaching Computer Science

I’ve been having exams recently and thus been extremely busy studying for things I should really have been practicing all semester for, FML. Anyway, as always, around this time I got to complaining on exactly how we’re tested on the mastery of various subjects.

I do Computer Science at Maseno University.  Every semester we do on average 8 units. My school has a system that is like this: 30% of your grade comes from the work and C.A.Ts you do during the semester and 70% of your grade comes from the final exam you do at the end of each semester. This is how every single degree in my school is graded: Arts, Sciences and Education.

Never mind the stupidity of having the same testing criteria for every degree; I can only talk for my course. So on to my complaint. Every semester we do a programming language. So far we’ve been through Pascal, C, Java and Visual Basic. My problem is that with every one of these units, the main part of my grade (70%) has come from a written exam that asked silly questions like write a program that will provide the following output






And other such dull boring stuff. In almost every programming language, the code will look similar!! Last week, in a written test for Visual Basic, I was asked to design a form to take loan details and to name and explain 4 controls I had used to make my form. WTF???!!! It’s a written exam! I had to draw!! How many different ways can I explain what the ‘if-then-else loop¬† does’? It doesn’t differ from one language to the next.

How exactly are you going to test someone’s mastery of a programming language by giving them a written exam? I mean come on, any serious programming is done on a trial and error basis. Code, run, check for errors, fix errors run again. How is me writing snippets of code 15 lines long going to prove that I really can code? Or even explaining what key phrases mean?

I’m not an educator but I think the best way to teach coding is by actually having the student work on a project that’ll be a big part of his grade, or even weekly assignments that test and build on concepts learnt in class. The way we’re doing it now isn’t working for me. Maybe I’m just bright, I am, but I don’t feel like I’m learning enough and I’m doing Computer Science because all I want to do with my life is code

So let’s call this an open letter to Kenyan Universities teaching Computer Science. There’s got to be a better way, a more effective way. Anyway I’m going to go out and try to learn these things by myself. No, I’m not talking about reading from books (though that will help), I’m now looking for internship at a company or with someone who actually designs real programs, code that I can manipulate and play with. I’m making an open call to all my readers, if you know such a person or company, in Kenya preferably, email me (check the contact me page) or tweet me. I’ll really appreciate it. Peace!!

  1. I am not a lecturer but I went through the same system. I find your criticism of dry running code to be myopic. The questions / scenarios can be made complex, to that extent I concur, but there is no way I am going to give you a computer to write code. What the exams aim to bring out is the level of thinking given a problem and not the mastery of a language. If you have had a chance to attend an interview for a coding job (I've done this countless time) , dry running code is the order of the day, so prepare for more of it. I could go on …

  2. The problem is not written exams, the problem is that they are teaching/testing you in programming languages.

    Computer science is not about programming languages – or at least it should not be, it is about the theories behind (among other things) programming languages. These theories/concepts are very suitable to a written exam. Example: An illustration of a (simple) non-deterministic finite automa is shown and you are asked to draw the corresponding deterministic finite automa. The only way you will be able to create the correct diagram is if you have understood the conversion algorithm/method from a NFA to DFA.

    In short don't complain that the exams are in writing, but do complain that the teaching is not at level which is suitable to be tested by a written exam.

  3. I studied Perl and Python during my master's degree and I also think written exams are stupid. I don't remember in detail how my Perl class went but I'm fairly sure we had two written tests and no hands-on exam and that seemed ridiculous to me. The Python class was better as we had two take-home assignments for which we had to design rather complex (for us – I studied Information Management, not Computer Science, I'm sure you've done way more complex things in your classes!) programmes – I can't remember what the first one was but the second was a spell-checker. For my PHP and SQL class we had weekly take-home assignments and the final exam was an in-class assignment on the computer where we had to build a Web application.

    It's just impossible to evaluate that you are able to build a complex programme with a written exam – especially as nobody gets it right the first time and running the programme, finding and fixing errors are part of the process.

    Sorry I can't help with the internship, I hope you find something because in my opinion there's no better way to learn those things than by doing them, and doing them for real, not just to answer questions in an assignment.

Comments are closed.