An Education System That Works

Most or all governments in the world employ an education system that can be described as multi-stage lecture-based, and it works like this. There are about a dozen stages of increasing density and complexity, each has a duration of one year. During each stage, there are a bunch of courses about a variety of topics. Each student then must attend daily lectures, solve many assignments, study these courses, and pass all the exams with sufficiently high grades. Only then the student can move on to the next stage of the system and go through this whole process again, except that with courses that demand more time and effort. This system is implemented by building and maintaining many schools and colleges and hiring teachers for all the courses in all the stages and staff for doing the managerial and maintenance work. This is more or less the same system that has been used for hundreds of years, before the invention of any electrical machines.

Does this system work? Continue reading

Most Popular Programming Languages in a Meaningful and Reasonable Way

Many people are curious to know what the most popular programming languages are in the sense that they are being actively used to write code. This is usually done annually. If look this up in your favorite search engine you will probably find many lists or charts. Among the most prestigious websites that produce charts of the most popular programming languages is IEEE Spectrum. Their list for 2016 can be found here.

While they use many sources to reasonably sort languages by popularity, the list of languages they show is not really meaningful. Continue reading

Taxonomy of Problem-Solving Techniques

Computer science is essentially the study of computational problems and how solve them using the minimal amount of resources. A computational problem is a specification of the relation between input and output. A solution to the problem is an executable algorithm that realizes that relation. That is, given a particular input to the algorithm (which is really an instance of the problem), the algorithm will process it and produces the required output(1). Sorting is a typical example of a computation problem. Some problems can be solved quite easily even by people who know very little about computer science, while others may require a tremendous amount of ingenuity and/or experience. Continue reading

Find the Truth

Humans somehow construct opinions that may conflict with each other. How do you determine that something is true? Seriously, how do you determine that a statement is irrefutably true? If you can say that a particular statement is irrefutably true then those people who disagree can be fairly called illogical. More importantly, we can confidently build knowledge upon it.

Continue reading

That’s Why the World is so Messed up

In this article, I would like tell you about my personal opinion regarding why the world is so messed up. I do not intend to offend, insult, or attack any person or group of people in particular, and everything I mention or say here is just for the sake of making a point. Of course, since this is a blog about computer science and mathematics, I will be using an example from elementary mathematics to explain why the world is so messed up. Let’s start with watching this video: Continue reading