Tuesday, 30 September 2014

0

Week 1 to 2

What is CSC165?

The course is officially called Mathematical Expression and Reasoning for Computer Science, but what does that mean and what is that all about? By taking this course, we should be able to find the answer.

To keep track of my participation in this course, I will be keeping a course log/blog, which is what you are reading right now. This first one is going to be rather boring, since it is filled with introductory and background info, but they are necessary.

First, what is the relationship between math and computer science?

This is THE question to ask when thinking about how computers are used. There are many applications of mathematics in computers, such as algorithms, databases, computer graphics, artificial intelligence, programming languages, networking, and cryptography, which all use some math principles such as probability, set theory, combinatorics, and logic in one way or another. Perhaps we should try to think about: what CAN a computer do if we did not discover math beforehand? Let's ponder about that for a while... I guess it can be used as a decoration or art piece, to showcase the endless unrealized possibilities of human engineering... Now you can see that computer science and math are really two sides of the same coin.

How does one talk to a computer?

By talk, I really mean communicate, and by communicate, I really mean command. Yes, computers are our slaves.

I believe in the near future, we will be able to communicate to computers powered by artificial intelligence using natural language. However, computers are currently still poor at processing human's natural language, look at how constrained albeit powerful Google's search engine is after all these years of R&D. The reason for this is that, in our natural language, the meanings of words sometimes depends on the overall context of the sentence or subject at hand, which can be ambiguous, and requires an understanding or some assumptions of the culture behind the speakers to interpret. Computers lack culture, or rather, we just didn't program it into them? In reality, computers speak in binary. That's just the way they are "wired". Therefore, we communicate with computers through programming languages, which are technical, precise, and constrained languages. Programming languages act as an intermediary between binary and human languages.

Set Theory

Here we get to the meat of week 1's material... There are lots of math concepts and strict notations that go along with set theory. However, the most basic idea is that a set is a collection of things, and includes nothing. This means that empty sets exists, and every set with "things" in them also contain an empty set!