• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
Avinash Meetoo

Avinash Meetoo

Let us build a Smart Mauritius together

  • Home
  • About
  • Curriculum Vitae

Computing

Computer Science is not a Science

1 June 2016 By Avinash Meetoo Leave a Comment

20160601-fields-of-computing-final

A few days ago, I drew the following and posted it on Facebook:

20160601-fields-of-computing

The discussion which then took place was very interesting.

Selven Cheenaramen and Pascal Grosset were in the opinion that Computer Science is not a Science. Selven referred to Jonah Kagan’s post Computer science isn’t a science and it isn’t about computers which states that:

Computer scientists are concerned with questions like: How do you find the shortest route between two points on a map? How do you translate Spanish into English without a dictionary? How do you identify the genes that make up the human genome using fragments of a DNA sequence?

There’s a difference between the question, “How do you identify the genes that make up the human genome?” and the question, “What are the genes that make up the human genome?” The latter, a question posed by biologists, asks for a specific fact, while the former asks for a procedure (an algorithm) which can produce that fact.

Consider any science: chemistry, biology, physics, or even one of the “soft” sciences like psychology. All are concerned with answering factual questions about the world around us. In computer science, the goal is not to figure out the answers to factual questions, but rather to figure out how to get answers. The procedure is the solution. While scientists want to figure out what is, computer scientists want to know how to.

Jonah Kagan then states that, given that Computer Science is not a Science, then it is Mathematics:

Since the problems solved by computer scientists are defined separate from the real world, we can’t use the scientific method to analyze their validity. We can only analyze procedures within the realm of abstraction in which we have created them. Luckily, this type of reasoning is exactly why we have mathematical logic. Mathematicians, too, are concerned with the idea of truth in the abstract. Instead of running experiments, computer scientists define problems and procedures mathematically, and then analyze them using logic. This is the fundamental reason why computer science is not a science.

Given that the correctness of procedures is proved using mathematical logic, it might seem like computer science is really just a branch of mathematics, which it is, in some sense. In fact, much of the “math” we learn in school is actually computation.

He then explains that computers are not essential in Computer Science:

[T]here’s nothing fundamental about procedures that requires the use of computers. Computers aren’t the only tools that can be used to execute programs. For instance, elementary school students are perfectly capable of executing the long division algorithm. We use computers instead of small children because computers are fast and reliable […]

Aha. We just use computers when doing Computer Science because they are fast and reliable. If computers did not exist, we would have done the procedures by hand but the whole process would have been much slower and error-prone.

So it looks like Computer Science is not a Science and is not about computers. But is it? Jonah Kagan acknowledges that:

While at its core, computer science really is the pure study of procedures in the abstract as I described, in reality, the field has grown to encompass a wide variety of pursuits. Some computer scientists are concerned mostly with designing intricate systems that rely heavily on the specifics of computer architecture. Others study human-computer interaction, which actually does use the scientific method to determine what types of interfaces work the best for computer users.

It would be easy to dismiss the outliers and say they are not true computer scientists, that their work falls under the umbrella of some related but fundamentally different field. But I think the breadth of study within computer science is not necessarily a bad thing. It doesn’t need to be strictly defined.

[…]

In the end, its the rate of growth of the field that makes all this definition business so tricky. Computer science is still young, and always undergoing new growth spurts.

In other words, Computer Science might become a Science in the future.

Hansley Chadee then offered this very interesting perspective:

Artificial Intelligence is the bridge between all of this (Computer Science) and the natural world, including philosophy…

Aha. My interpretation of this is that, once, we, human beings, invent Artificial Intelligence (and it seems that Google Deepmind has already done so…) then Computer Science becomes a Science as we would have explained the functioning of the natural brain.

Noorani Bakerally then finally stated (I am paraphrasing as I cannot find his post on Facebook):

Do not forget that we, human beings, with our limited capacity, can only understand a small portion of nature. So there is surely more than Science…

Given these compelling evidence (and while AI is not pervasive yet), allow me to update my initial drawing:

20160601-fields-of-computing-final

Filed Under: Art, Computing, Education, Science, Technology

World Creativity and Innovation Day

21 April 2016 By Avinash Meetoo 2 Comments

20160421-panelists

Every 21 April, we celebrate the World Creativity and Innovation Day in Mauritius.

This year, the Mauritius Research Council organised a workshop on Creativity and Innovation and the the ICT Advisory Council, which I preside, was given a slot of 30 minutes. I quickly prepared a few slides like I like them to be (beautiful, memorable and witty) and I asked Logan Velvindron and Ish Sookun, both members of the ICT Advisory Council, to join me in a panel on Creativity and Innovation among Youth.

20160421-albert-einstein

The first topic was about having fun when learning and creating. I mentioned that school and teachers can be boring, especially in our age of having Wikipedia and YouTube in our pockets. I said that it was time for our education system to become fun again, where young people can enjoy creating and learning a lot of new things in the process. Both Ish and Logan explained how fun they have everyday at work and how important this is for them.

20160421-steve-jobs

The second topic was about not to be afraid to be different. In Mauritius, we have a culture of conformism. Women have specific roles to play. Kids also. And, of course, everyone should remain at his place. This is bullshit! Our world is created by people who think differently and who are not afraid to take risks and disrupt existing establishments… Logan and Ish told the audience how they discovered computers, decided to become geeks and do things differently from others. They were very thankful to have supportive parents who didn’t try to impose anything on them.

20160421-linus-torvalds

The third topic was about being a geek and the value of open source software for a country like Mauritius. I explained that open source software is free and this is very important for Mauritius which is not a very rich country. But I also explained how having access to the source code of software is essential for Computer Science teachers like me to create the new generation of top programmers which Mauritius will need in the future. Young people cannot learn complex programming just by reading a book or listening to a teacher: they need to see real source code of real complex software. Logan and Ish explained how they got involved in open source software and how we all now form part of organisations such the Linux User Group of Mauritius and Hackers.mu and the value those organisations have.

20160421-sheryl-sandberg

The last topic was about being a doer rather than a talker and that aiming for perfection, while sometimes a good thing, can sometimes prevent us from achieving. This is something I have noticed over the years in Mauritius: we love our committees. Doers are not revered though. This mentality has to change. I told the audience that we are as good as anyone from anywhere, whether it is the USA or France or India. But we should stop focusing on doing speeches. We should identify small but important problems and find feasible solutions for them.

After the panel, I got a question from Anibal Martinez who is collaborating with the Government to set up an incubator. He asked me how we can solve the Computer Science education issue in Mauritius.

I told him that in the short term, a lot can be done with ad-hoc training courses, such as the ones that I provide at Knowledge Seven. But this is not a viable model for the country. In the medium to long term, state-funded universities should find a way to revamp their Computer Science departments, which are absolutely substandard at this moment, to produce an adequate number of very competent computer scientists every year. The industry is ready to move up a level but there are not enough competencies.

Thanks to Ish and Logan for participating in the panel.

Filed Under: Computing, Education, Future, LUGM, Science, Society, Technology

Ten essential Computer Science books for students

1 April 2016 By Avinash Meetoo Leave a Comment

20160401-reading-book

A few weeks ago, someone asked me for a list of essential Computer Science books for young people studying at university with emphasis on the art of computer programming.

After much thoughts and checking multiple other similar lists, here is my top ten + two = twelve books to really understand Computer Science and to start thinking like a Computer Scientist:

Introductory

  • How to Think Like a Computer Scientist (Free)
  • Structured Computer Organization (Amazon)
  • Modern Operating Systems (Amazon)
  • The C Programming Language (Amazon)

Intermediate

  • Programming Pearls (Amazon)
  • Head First Java (Amazon)
  • The Pragmatic Programmer: From Journeyman to Master (Amazon)
  • Code Complete (Amazon)

Advanced

  • Design Patterns: Elements of Reusable Object-Oriented Software (Amazon)
  • Effective Java (Amazon)
  • Java Concurrency in Practice (Amazon)
  • Introduction to Algorithms (Amazon)

Notice that there is none of those “Learn X in Y days” books. Those are for those who are not ready to invest enough time and energy to excel. Unlike you, dear reader. Happy programming 🙂

Here are quite similar lists elsewhere: The Top 9½ Books In a Hacker’s Bookshelf and List of Recommended Programming Books (Part II). You’ll notice that a lot of books are the same as the ones I have in my list. We are speaking of top books after all…

Filed Under: Art, Computing, Education, Science, Technology

  • « Go to Previous Page
  • Page 1
  • Interim pages omitted …
  • Page 25
  • Page 26
  • Page 27
  • Page 28
  • Page 29
  • Interim pages omitted …
  • Page 31
  • Go to Next Page »

Primary Sidebar

Search

I am proud of

My family
My company
My music
My photos

I am active on

Facebook
FB Page
Twitter
LinkedIn
Reddit
Hacker News
Stack Overflow
GitHub
Wikipedia
YouTube
IMDB
Last.fm

All posts

  • April 2025 (1)
  • March 2025 (1)
  • February 2025 (2)
  • January 2025 (4)
  • December 2024 (4)
  • November 2024 (2)
  • October 2024 (1)
  • September 2024 (4)
  • July 2024 (1)
  • June 2024 (1)
  • May 2024 (4)
  • March 2024 (1)
  • February 2024 (1)
  • January 2024 (1)
  • December 2023 (2)
  • November 2023 (2)
  • October 2023 (2)
  • August 2023 (2)
  • July 2023 (3)
  • June 2023 (3)
  • May 2023 (4)
  • April 2023 (1)
  • March 2023 (3)
  • January 2023 (1)
  • December 2022 (1)
  • November 2022 (5)
  • September 2022 (2)
  • June 2022 (2)
  • May 2022 (1)
  • April 2022 (1)
  • January 2022 (3)
  • November 2021 (1)
  • September 2021 (1)
  • June 2021 (3)
  • April 2021 (1)
  • February 2021 (1)
  • January 2021 (2)
  • November 2020 (1)
  • October 2020 (1)
  • September 2020 (1)
  • August 2020 (1)
  • May 2020 (1)
  • April 2020 (3)
  • March 2020 (4)
  • January 2020 (1)
  • July 2019 (1)
  • June 2019 (1)
  • April 2019 (2)
  • January 2019 (1)
  • December 2018 (3)
  • November 2018 (1)
  • September 2018 (1)
  • August 2018 (1)
  • April 2018 (1)
  • December 2017 (1)
  • November 2017 (1)
  • October 2017 (1)
  • August 2017 (1)
  • July 2017 (1)
  • May 2017 (1)
  • March 2017 (1)
  • February 2017 (1)
  • August 2016 (1)
  • July 2016 (1)
  • June 2016 (3)
  • April 2016 (3)
  • March 2016 (3)
  • February 2016 (1)
  • December 2015 (1)
  • November 2015 (1)
  • October 2015 (1)
  • August 2015 (5)
  • June 2015 (1)
  • September 2013 (2)

Copyright © 2025 by Avinash Meetoo · Shared under an Attribution 4.0 International Creative Commons license · Log in