Online teaching

Multithreading Operating Systems, Master1 in Computer Science, University of Rennes 1.

Week 3

This week we will continue exploring the way data can be represented (and treated) by our computer machines. As a reminder, in the previous weeks, we have looked at a schematic representation of a computer machine, we have learned how bits are implemented in the computer memory from a physical point of view (watch again this video if necessary), and, from this basis, we have introduced the byte and the data words, and started to explore the way the computer memory is organized (see this video). We have also learned the role of pointers and addresses, and we have then begun to explore the possibility to store and manage different data types. Last week, we have started by studying boolean variables (stored in a data word containing several bits, and therefore several boolean values at once), together with the corresponding (bitwise) operators. We have also explored the standard data representation for integer variables, with the particular two's complement representation for the negative integers.

We'll start this week with another video recorded by Prof. Gaetano Borriello. This first video is about the floating-point representation of real numbers.

We'll not go too much in details of this representation, watching this introductory video will be sufficient for the purposes of our course. However, the interested student can watch the additional videos that will be suggested automatically by YouTube after having watched this initial one.

We are going now to change lecturer for a while, and watch two videos by Carrie Anne Philbin, which is Director of Education in Cambridge, and a Google Certified Teacher. We'll watch some of her videos deposited on the YouTube channel Crash Course in Computer Science.

In the next video, we'll give a close look at how the CPU works. We have already studied the way the computer memory can store information. But what about the instructions to be executed? Yes, they are also encoded as sequences of bits! In this video, we'll see in details how a small program can run inside the CPU.

Careful: Carrie Anne Philbin speaks quite fast, don't hesitate to pause and rewind her videos if some of the concepts are not immediately clear to you. And don't worry if you won't remember in detail the instructions presented in the example. The most important for you is to have a good view of how things work inside a CPU.

And to end this initial part of our course, we ask ourselves the following question: How the CPU is able to perform the operations? To given an answer, we are going to watch another video extracted from the Crash Course in Computer Science.

The binary representations that we have studied in the previous videos can be in fact treated by applying to them sequences of binary operators. The complexity of these operators depends on the instructions to be executed, and on the complexity of the data representation. They can nevertheless be seen as combinations of the very simple logic operators (encoded by logic gates) that are presented in this last video. These logic gates are at the core of CPUs.

This week we are also going to start with our Java assignments. The first one is now available: AirSimulation.pdf. The necessary Java classes named Customer and Aircraft, together with an initial version of the AirSimulation class, can be downloaded here. Rennes 1 student will have to submit their code by email by next October 6th, midnight (anywhere on earth).

Back to Teaching page     Back Home