@ Kennedy
Thanks for putting it so plainly. Have said this and it really pains me when i have to repeat it to my fellow country men.
The reason we have electricity in our houses today is because some students took their studies seriously and understood the
theoretical concepts of atoms and ions.
Using the concepts, someone developed the idea of an electrical current which we so much rely on today.

Please guys, let us ensure our universities teach enough theory and concepts to enable research and development. Private universities and middle level colleges are there to teach practical application of products that come out of research.
This country has and continues to waste very good brains because there are no funds allocated for research and development

Why are guys at CERN Large Hydron Collider (HLC), spending almost a trillion dollars just to isolate an antimatter?

Also, why do you think a key requirement for any software to be documented? (we learnt this in software development)
So that someone can use the manuals to learn the system without going to any class. Ideally, as a computer scientist, you can learn unix without going to anybodies class!

For those not in the know, computer science is made of three interalated discipline
1. Mathematics - Theories. This where everything starts from. Abstraction e.g Number theoretic, Logarithms---> Binary system
2.. Physics - Mathematics concepts are formulated into physical. Binary representation using voltages - on and off
3. Engineering - Using the physical presentation to develop models e.g A counting register

So as you see, computer science requires going beyond what is you see in the market.

To make more difficult, the mathematics, physics and engineering that related to computer science, are taught to students of mathematics at masters or phd level.
In addition to the core computer science subjects

Let us keep the discussion flowing





From: kennedy waweru <kenne2ke@gmail.com>
To: Skunkworks Mailing List <skunkworks@lists.my.co.ke>
Sent: Wed, February 23, 2011 11:34:44 AM
Subject: Re: [Skunkworks] Computer Science Curriculum Development

RAD!! thank you for putting this accross, I hope people will start to understand that which they so easily speak against.

I could not agree more here. People do not understand the objectives of an academic degree as opposed to a certification. I often find people comparing the two and throwing mud at one based on merits of the other.

My question would be simple
  • Who is Charles Babbage and who trained him about the concept of the computers today?
  • who is john von neumann and how much did he contribute to computing? how? can he be considered a computer scientist of an IT guru? mind you he was a mathematician by profession.
  • very soon we will see computers made of memristors, do you know that that concept was developed by an academician a long time ago?
The problem is that many people do not really get the objective of a computer science degree. The evidence of this is one who expects to be taught a certain programming language instead of the underlying programming paradigm. We have over 400 programming languages!!!! who's gonna teach you that??

But a good computer science graduate who DID NOT LIVE ON THE LECTURER'S NOTES ALONE can seamlessly transfer from one programming language to another in a matter of weeks! if he so wish. Just give him/her a book! But ideally, he/she should be exploring new ways of solving computer problems and leave the implementation to IT graduates. Ideally, he should not be too engrossed in Adroid features but its underlying theoretical applications.

Who develops all these programming paradigms? Who is expected to innovate (come up with new paradigms) if not the computer science graduate? Please, put the blame where it belongs and in my opinion it belongs squarely on us students. Just observe and see how many students really read books. Or simply visit the university libraries and they will tell you for sure that the peak times are during or right before the exams.
Ideally, programming languages concepts are taught and the most prominent are highlighted individually eg
  1. introduction to programming might cover unstructured leading to structured programming (universities choose a programming language of their choice to introduce such concepts). The learning outcome here is a graduate who can seamlessly code in any structured programming languages like C, pascal, COBOL, basic etc but more importantly understands the reasoning underlying such methods of solving computer related problems
  2. OOP and modular programming paradigms should also be taught touching the underlying concepts and hence highlighting the shift from C to C#, C++, Java etc event driven programming as a small concept based introduction
  3. functional programming concepts
  4. compiler construction etc
What is the expected result? Well, some of our own Linus trovalds! or even our very own bill gates!! That is a computer scientist for you. not a graduate who depends on other programming languages to code applications, an IT graduate should do that.

So please, understand the objectives of the course before bashing it and loading it with baggage it should not carry.

Of importance is also to distinguish between the objectives of IT degree and computer science degree. The products of these two degrees are meant to be different. So, if you wish to be and end user support and familiar with the latest technologies so that you can apply them then you might be better off taking an IT course and offcourse supplement it with certifications for every new technology.

Computer science is for scientists. You might develop a concept paper like Charles Babbage and john von neumann and let the engineers implement it and that is computer science for you, mind you many of these innovators were mathematicians.

Before you develop a course, please read widely on the objectives and compare with international standards like ACM and IEEE Computer Society. They have developed the minimum areas of knowledge that may be of help. This forum may just give you insights that at personal and completely unprofessional that are influenced by non-academic reasoning derived from such technical courses like CCNA and CISA that are tailor made for products of a certain company and hence do not equip you to innovate. Such courses have their place and academic courses have their place, it is important to consider their objectives carefully before you mix the two.