What you need to know about character sets and encoding

This article is part of the sequence The Basics You Won't Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

My last article was about different data types and some tricks with them. We talked a little about characters as well. However, working with them can be a little bit strange due to the presence of a fancy term in computing called encoding. Today, my friend asked me to go and fix the subtitles for his movies. He had been telling me that some strange symbols appear all the time. So he tried reinstalling windows and changing all sorts of options but nothing seemed to work. He clearly had no idea what an encoding is. However, I guess that is normal since he doesn't have a CS background. But there seems to be a lot of developers out there (me, including, in the old days) who don't know what encoding means. Surely, they might have heard of UTF-8, but what is it? We have ASCII right? Well, I am going to address the issue of encoding in this article as I think it is fundamental to anyone getting his hands dirty with programming and computing. It seems not many programming basics courses cover this topic in much detail.
Continue Reading

How the binary nature of computers affects our data types

This article is part of the sequence The Basics You Won't Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

In the past few weeks, we have discussed the different ways computers deal with binary numbers in order to represent the numbers we are used to see - positive, negative and real. This time, we will take a step back from diving in the details of how the hardware deals with such issues and focus on how the design decisions, taken by computer architects, affect the way we represent data in our code. Particularly, we shall explore the different "features" that data types, that we use in our code, have hidden for us.
Continue Reading

Floating point numbers

This article is part of the sequence The Basics You Won't Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

Hey, it has been a while since I last wrote an article on these series. Last time, we covered negative binary numbers and the different ways of representing them in a computer. This time, we will explain how to deal with real numbers. More specifically, we will briefly discuss fixed point numbers and then we will move on to the core of this article - floating point numbers.
Continue Reading

Negative binary numbers

This article is part of the sequence The Basics You Won't Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

Computers store data using numbers and last time, we covered how they store positive numbers in binary. But our adventure will be incomplete if we don't present how to store negative numbers. This time, we will explore different variants of storing negative binary numbers and we shall see why do we store them that way.
Continue Reading

Introduction to binary numbers

This article is part of the sequence The Basics You Won't Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

Last time, we covered how does a processor work. We mentioned that he used instructions, which are encoded in numbers. But these numbers are stored in a computer in binary digits. Today, I begin a series on posts on how binary numbers work.
Continue Reading

How does the processor work

This article is part of the sequence The Basics You Won't Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

In the previous post on these series, I explained what computer memory is and what different types of memories there are. This time, we will cover how the processor works, what components he has and how he uses them.
Continue Reading

Introduction to Computer Memory

This article is part of the sequence The Basics You Won't Learn in the Basics aimed at eager people striving to gain a deeper understanding of programming and computer science.

For nearly two years, I have been leading programming basics courses. During this time, I have always wanted to deliver more knowledge to the students, than was intended in the course program. However, I haven't been able to find enough time during lectures to share this knowledge, so I decided to make a series of blog posts about fundamental topics in programming and computer science, which seem to be skipped in regular programming basics courses.
Continue Reading

Site Footer

BulgariaEnglish