In his article “What every computer science major should know”, author Matt Might discusses some CS
subjects and topics, and proposes that every computer science major should
know these concepts. I mostly agree with the view of the author.
I completely agree with Matt’s
proposal about the programming languages. In my opinion, every CS-major should
know at least two major paradigms of programming languages, structured
programming language (C) and object oriented programming language (C++ and
Java) paradigm. They may need to work on a different programming language or a
different paradigm in their latter life; but it should not be hard for them to
learn a new one after learning these two. I also agree with author’s view about
‘The UNIX Philosophy’. Being comfortable with UNIX systems will not only help
them in debugging there program, but also help them to design and develop
operating system level codes.
Discrete Math, Data Structures,
Algorithm and Computer Architectures should be in the core of the undergrad CS
syllabus. These courses provide the necessary concepts and tools to approach a
problem efficiently, which every CS student must know. Author’s suggestions
about these subjects are very clear and I completely agree with it.
However, I do not fully agree
with author’s view about Parallel Computing and Formal Methods. These concepts
are also important, but in my opinion these courses are more on the side of
specialized knowledge; rather than on the side of general CS knowledge that
every CS major should know. These courses should be in the list of elective
subjects. I want to add one more topic in the list, which is ‘Probability
Models’ concept. This subject may be covered partially in ‘Statistics’, but a
clear knowledge about probability models will help a student to approach and
formulate a problem more efficiently, mostly in the field of artificial
intelligence and computer networking.
No comments:
Post a Comment