Video Collections about How Computers Works

I am teaching Computer Application Course (KOM201) this semester for first year Computer Science students in my university. Perhaps many of you raise a question about the existence of this course, given we are living in a modern world. It is valid reason to assume the students (especially computer science students) already know the application of computer. Right?

Not necessarily. As the matter of facts, several computer science courses, mainly in architectural level or operating system, will require deeper understanding around the working mechanism of computers (and most of the times, its history of improvements). Yes, almost all CS students familiar with hard drive, flash drive, or memory, but the knowledge their inner mechanism is varied.

So, I decided to collect several good videos that can be a good start to learn about this fascinating structure of this wonderful machine that makes our life far more interesting. If you want to contribute to this list, you can kindly told me via the comments below.

The Birth of the Computer

George Dyson gave us a brief history of computer.

What is (Quantum) Computer?

The first 2 minutes of this video is about computer in general, explained in a nutshell. If you confidence enough, you can continue watching to quantum computer. The Kurzgesagt composing very good song in this video.

How do Hard Drives Work?

This video will explained about how data stored in the hard drive. After you watched this video you will attend your hard drive more carefully.

How do GPS Work?

How the tiny chip in your smartphone can located you on Earth 24 hours a day?

What is The Internet and Who Invented It?

Although it is only spreading in early 90s, the Internet has a longer history than that.

Internet of Things

IoT is a hit and this video explained simply about how it can works.

A Day Made of Glass

A day made of glass is a good illustration of the ubiquity and pervasiveness of computer in the future. The unpacked version has an explanation about the possibility of using the mentioned technologies. Surprisingly, most of them already able to build, but it will be very expensive.

Some Trivia about Computer Screen

Another Resources

  • There are many TED speakers that give a talks about new trends in both hardware and algorithm in computer science.
  • HowStuffWorks published a good tour of computer components.
  • If you looking for more spesific information, you can visit Toms Hardware.

Puzzle : The Emperor’s Wine

You are the ruler of a medieval empire and you are about to have a celebration tomorrow. The celebration is the most important party you have ever hosted. You’ve got 1000 bottles of wine you were planning to open for the celebration, but you find out that one of them is poisoned.

The poison exhibits no symptoms until death. Death occurs within ten to twenty hours after consuming even the minutest amount of poison.

You have over a thousand slaves at your disposal and just under 24 hours to determine which single bottle is poisoned.

You have a handful of prisoners about to be executed, and it would mar your celebration to have anyone else killed.

What is the smallest number of prisoners you must have to drink from the bottles to be absolutely sure to find the poisoned bottle within 24 hours?

Taken from The trick of this puzzle is surprisingly easy for computer science students.

Preview : IPB Reality Browser

Screenshots from IPB Reality Browser’s alpha version (name subject to changed when I find a better one). Developed on Android platform. (Hopefully) works on Android 2.2 and newer. The augmented reality part screenshot is not available because a silly reason : I take the screenshot in my house not in IPB environment :mrgreen:.

I currently use sample location data for this apps because I unable to get a complete data from IPB. All data is stored in SQLite database. The apps is still far (sigh) from finished. There are more requirement that not yet implemented (compass, icon, location description) and documentations to be done.

This slideshow requires JavaScript.

Constant barrage of interruptions

Latest CodeProject News letter contain an article entitled Why Programmers Work at Night?. It is a well known facts that programmers often prefer to do “serious work” in the middle of night. The main purpose is to avoid distraction and interruptions from others. The article also contains the reason why programmer hate distraction :

Working on large abstract systems involves fitting the whole thing into your mind – somebody once likened this to constructing a house out of expensive crystal glass and as soon as someone distracts you, it all comes barreling down and shatters into a thousand pieces.

This is why programmers are so annoyed when you distract them.

Sadly, now, I mostly works at home. So I have to face constant barrage of interruptions T_T. I hate every minutes someone play music aloud even in the middle of the night. If you want to listen to music so much, why you don’t use the great invention called earphone or headphone!!

Just a little request : when you see a programmer using headphone/earphone and so focused to the monitor, don’t ever distract him/her just for trivial matter. The headphone is there for a reason.

Ok, let’s face it….

Merah Putih – Source code

Below is processing code for program in my previous post. A lot of explanation already given in this post. To run it, you can paste the source code into online processing sketch. Feel free to experiment with various color and flower size :D.

//Screen size
final int SCREEN_HEIGHT = 400;
final int SCREEN_WIDTH = 400;

//Flower parameter
final int MIN_DIAMETER = 1;
final int MAX_DIAMETER = 10;

//RGBA value range : 0 - 255
int min_red, min_blue, min_green, min_alpha;
int max_red, max_blue, max_green, max_alpha;

int x, y;

void setup()
   smooth();        //Enable anti-aliasing

   min_red = 220;
   max_red = 255;
   min_green = 0;
   max_green = 0;
   min_blue = 0;
   max_blue = 0;
   min_alpha = 10;
   max_alpha = 150;

   x = 0;
   y = 0;

void draw()
   int r, g, b, a; //Flower color
   int d;          //Flower diameter

   //Bangkitkan satu nilai acak
   r = (int)random(min_red, max_red);
   g = (int)random(min_green, max_green);
   b = (int)random(min_blue, max_blue);
   a = (int)random(min_alpha, max_alpha);
   d = (int)random(MIN_DIAMETER, MAX_DIAMETER);

   fill(r, g, b, a);
   drawFlower(x, y, d);

   x = x + 10;
   if (x > width) {  //Newline
      x = 0;
      y = y + 10;
   if (y > height/2) { //Change colour
      max_green = max_blue = 255;
      min_green = min_blue = 240;

void drawFlower(int x, int y, int d){
   ellipse(x, y, d, d);
   ellipse(x + d/2, y - d/2, d, d);
   ellipse(x + d/2, y + d/2, d, d);
   ellipse(x - d/2, y + d/2, d, d);
   ellipse(x - d/2, y - d/2, d, d);