[kictanet] The Premier B.Sc. Computer Science Programme in Kenya
Rad!
conradakunga at gmail.com
Mon Nov 9 17:32:54 EAT 2009
Greetings all.
I'm glad that the Institute is looking to update the curriculum to make it
more relevant. Here are my (scattered) thoughts
1) I feel that the Computer Science Degree is too 'jack of all trades'. It
has object oriented programming, networking, operating systems, artificial
intelligence, data structures, functional programming, databases and many
other units, all of which are relevant but they are so many the only way to
get through is to consign them to single units, and some of these units
(like operating systems, programming, databases can easily be degree courses
in their own right).
Also most students know pretty early what scion of computer science they
wish to pursue so why force someone who has no interest or aptitude in
programming but wishes to concentrate on networks to go through the other
units
What I would suggest is as follows. Let us do what the engineers have done
have specialization: They have Bsc Electronic Engineering, BSC Mechanical
Engineering, etc. We can have the same with a twist Instead of plain old
Computer Science let's have
- Bsc Computer Science (Software Engineering)
- Bsc Computer Science (Operating Systems)
- Bsc Computer Science (Artificial Intelligence)
- And so on
What could be done is have the first one year have common fundamental
courses that touch briefly on the core pillars of computer science -- the
principles -- then from second year have the students specialize where they
wish to go career wise.
2) With regards to languages taught, like many of my colleagues while i was
at Uni I intensely resented C, C++ and Pascal as instruction languages and
loudly wondered why were doing such archaic languages and not jumping
straight to Java or C#. Of course with age comes wisdom and when using
higher level languages now I know exactly how things work at a lower level.
(At this point I shall digress and personalize issues and commend Ms Ronge
and Mr Orwa because I can safely speak for my year when i say we learnt data
structures and C programming whether we wanted to or not!) I would urge the
team to *resist the temptation/pressure to remove these languages* as
teaching languages as they teach many additional things besides the actual
programming like analytic thinking, design and discipline. They will also
appreciate how data structures we use every day work much better
However having said that, perhaps in third year something like Java or C#
can be brought in as well.
3) Functional programming is (if i recall correctly) two units and yet there
are many problems the industry is constantly facing especially today, most
notably parallel programming, concurrency and mutability (Again, with age
comes wisdom!) that functional programming addresses. If I recall correctly
the instruction was in Scheme and Prolog. Perhaps this can be updated to use
languages like F# or Python so that students can learn the concepts and
apply them immediately in their day to day work
4) Industrial Attachment should be a course unit on its own
5) When it comes to programming all the effort goes into the actual code.
Things like requirements gathering, documentation, design, testing, working
as a team, source code control, commenting debugging etc are not touched on
at all. As a result of these by the time a student who wants to program as a
career is finished they have 4 years of appallingly bad habits and practices
that need to undone for about 10-14 months (I've measured!) before they can
be useful team members in the industry.
6) There needs to be greater synergy between industry and academia --
hopefully some of what i have suggested will improve this disconnect.
Universities and industry need to set up some relationships with the
industry so that skills and knowledge can be cross pollinated.
Regards
Conrad
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.kictanet.or.ke/pipermail/kictanet/attachments/20091109/1fc507fb/attachment.htm>
More information about the KICTANet
mailing list