CS 400

Data representation

There are many, many ways of representing data within the computer. There are representations for numeric data, text data, image data, sound data, and much more. And within each type of data, there are likely to be many different ways of representing data of that type.

This collection of videos is meant to provide you with an introductory level understanding of some of the many ways in which data might be represented. The coverage is not meant to be comprehensive, by any stretch, but it should provide a solid foundation upon which your future understanding may be built.

Since all data representation within a computing system is accomplished using the binary number system, you will find this series of videos much easier to follow and understand if you have first completed the Numbers for Computing videos!

If you wish to access the slides used in the videos, they are available for download.

It is strongly recommended that you watch these videos in the order indicated below.

Video thumbnail
1 Overview

Video: ~8 minutes

This video reviews some of the key concepts from the Numbers for Computing series (which you should definitely have watched before starting this series) and establishes the basis for the videos that follow.

Video thumbnail
2 Binary-coded Decimal

Video: ~16 minutes

This video introduces binary-coded decimal as a mechanism for representing decimal values using only the zeroes and ones of the binary number system. It's not a particularly common approach, but it's a good place to begin because it is relatively intuitive and requires us to consider the underlying limitations of binary representations.

Video thumbnail
3 Signed Integers

Video: ~9 minutes

This video examines the role of signs in numeric representations and the problems that signs pose for the computer. Signed-magnitude and complementary representations of numeric values are introduced.

Video thumbnail
4 9's Complement

Video: ~27 minutes

Although it is not actually used inside modern computers, understanding 9's complement as a means of representing integer values is an important stepping stone to understanding the 1's complementary representations that are commonly used. As such, it is highly recommended that you watch this video before moving on to the discussion of 1's complementary representations.

Video thumbnail
5 1's Complement

Video: ~10 minutes

This video builds upon the 9's complement understanding established in the previous video to develop an understanding of the 1's complementary representation that is actually used inside some modern computers. In essence, 1's complement is simply the binary version of 9's complement.

Video thumbnail
6 10's Complement

Video: ~6 minutes

As with 9's complement, 10's complement is not actually used by computers. However, it's an important basis for understanding 2's complement. This video introduces 10's complement by building upon the understanding of 9's and 1's complement in previous videos.

Video thumbnail
7 2's Complement

Video: ~18 minutes

This video builds upon the 10's complement understanding established in the previous video to develop an understanding of the 2's complementary representation that is actually used inside some modern computers. In essence, 2's complement is simply the binary version of 10's complement.

Video thumbnail
8 Exponential Notation

Video: ~7 minutes

In order to understand how computer's represent non-integer values, it's important to review your understanding of exponential notation. That is the objective of this video.

Video thumbnail
9 A Decimal Floating Point Format

Video: ~31 minutes

This video explains an illustrative example of a floating point number format that is based in the decimal number system. Obviously, such a format is not practical for use inside a binary computer, but as with previous coverage, it's helpful to understand a decimal-based model before jumping into the binary-based models in which we are most interested. This video explains the model format and how to convert values stored in that format into their more familiar signed-magnitude representations.

Video thumbnail
10 Assembling Floating Point Values

Video: ~15 minutes

This video uses the decimal-based model format for floating point values that was presented in the previous video and explains how to generate representations of values in that format.

Video thumbnail
11 Floating Point Arithmetic

Video: ~12 minutes

This video examines the mechanics behind performing arithmetic on values expressed in our decimal-based model floating point format.

Video thumbnail
12 Binary Floating Point Formats

Video: ~22 minutes

This video takes what we've learned in the previous several videos and transfers that knowledge to an understanding of binary-based models for representing floating point values, such as the IEEE standard floating point representations.

Video thumbnail
13 Wrap-up of Numeric Formats

Video: ~9 minutes

This video provides a last overview look at numeric data representation techniques, considering some of their pros and cons.

Video thumbnail
14 Intro to Non-numeric Data

Video: ~23 minutes

This video provides an initial overview look at non-numeric, multimedia data, such as text, images, video, and audio.

Video thumbnail
15 Textual Data

Video: ~19 minutes

This video introduces the concept of a character sets and provides a brief survey of ASCII, Latin-1 Extended ASCII, EBCDIC, and Unicode.

Video thumbnail
16 Common Character Sets

Video: ~14 minutes

This video delves into greater detail with respect to commonly encountered character encodings, such as ASCII and Unicode.

Video thumbnail
17 Image Data

Video: ~8 minutes

This video offers a high level overview of representing image data within a computer, with details left to subsequent videos.

Video thumbnail
18 Bitmap Images

Video: ~15 minutes

This video offers a closer look specifically at bitmap (or raster) image representations, including the underlying concepts and terminology.

Video thumbnail
19 Object Images

Video: ~9 minutes

This video offers a closer look specifically at object (or vector) image representations, including the underlying concepts and terminology.

Video thumbnail
20 Compression

Video: ~31 minutes

This video offers a broad overview of data compression concepts and terminology. It introduces compression ratios, endeavors to distinguish between lossless and lossy forms of compression, and explains the idea of keyword encoding as a means of compressing textual data. It is intended to set the stage for the more specific videos on compression that follow.

Video thumbnail
21 Huffman Encoding

Video: ~12 minutes

This video explains the properties of Huffman codes and how they can be used to compress text.

Video thumbnail
22 Run-length Encoding

Video: ~15 minutes

This video examines run-length encoding as a compression mechanism, with a particular focus on its use in compressing image data.

Video thumbnail
23 Video Data

Video: ~16 minutes

This video offers a cursory overview of some of the concepts and techniques that are employed in the representation and compression of video data. It is highly recommended that you ensure you first have a solid understanding of the previous videos in this series before viewing this one.

Video thumbnail
24 Audio Data

Video: ~11 minutes

This video offers a cursory overview of some of the concepts and techniques that are employed in the representation of audio data.

Video thumbnail
25 Internal Data Formats

Video: ~10 minutes

This video takes the material covered throughout this entire series and begins to tie it to the daily experience of computer users and programmers.