[CSCI150] Lecture 1: Digital Information Representations

Generally, I create a separate video about a separate subtopic so that it’s easier for me to edit and for you to navigate.

Introduction

  1. Contact:
    • [Best] Microsoft Teams, search for jgu or Jetic Gū.
    • Email: jgu@columbiacollege.ca, please include [CSCI150S10] or [CSCI150S12] in your email title.
    • Office hour: for the first two weeks, through zoom. Link and time published on the main course website https://jetic.org/kurs/csci-150/ 
    • Office hour by appointment: contact me first, always happy to help.
    • I check for anonymous comments on youtube as well as on the course website, feel free to ask me stuff here as well.
  2. Grading criteria
    • Multiple attempts for Assignments.
      • All assignments are due on Sundays, check the main course website for detailed time.
    • Single attempt for Exams.
    • Labs are more important than ever!
      • Read and follow instructions carefully.
      • To be submitted on Moodle.

Lecture 1: Digital Information Representation I

LS1 Part 1: Digital vs Analogue Circuits, Digital Integrated Circuits

Highlight:

  • Information Representation in Digital vs Analogue circuits (using voltage)
  • Advantages of Digital
  • Digital integrated circuits
  • What is SSI, MSI, LSI (roughly, exact numbers are not important)

LS1 Part 2: von Neumann Architecture, Embedded Systems

Highlight:

  • von Neumann Architecture is the most popular computer architecture now, examples include your smart phone, tablet, laptop, raspberry pi, desktop computer, and super computers.
    • Three major components:
      • Input/Output devices (I/O device): Keyboard, Mouse, Monitor, Mic, Headphone, Webcam, Hard Drive, SSD, etc.
      • Memory: memory sticks, my desktop machine has 64GB DDR4 (4x16GB)
      • CPU (Central Processing Unit): contains Control Unit and Datapath
  • Embedded Systems
    • Simpler than von Neumann machines
    • not general purpose, designed to do specific tasks much more efficiently than von Neumann machines
    • Fast, light-weight, usually not programmable
    • Examples:
      • USB Sticks
      • Smart lightbulbs
      • GPUs
      • Japanese high-tech toilets
      • Certain Printers and Scanners

LS1 Part 3: Binary/Hexadecimal System Conversions

Highlight

  • Number systems, decimal system
    • Base 10
    • Base digit left to the decimal point
    • From other base systems to base 10
  • Conversions
    • From binary to decimal using the binary table
    • From decimal to binary using the binary table
    • Between binary and hexadecimal
    • Between hexadecimal and decimal (through conversion to binary first!)

LS2 Part 1: Digital Number systems

Highlight

  • Digital Binary Systems
  • Fixed number of bits for every number, minimum a byte
  • Your computer is most likely 64bit, which means every number (or value) is represented in 64bits of binary
  • Bits & Bytes, 8 x difference

LS2 Part 2: Basic Arithmetics, Signed Integers in Digital Systems

Highlight

  • Binary addition and subtraction
    • Most importantly, individual carries and borrows. We’ll be seeing them in later lectures as well.
  • Textbook method of converting decimal numbers to binary
    • This method is slower than my binary table, and also easy to make mistakes.
    • Fractions are introduced here, but NOT required.
  • Signed Integers
    • The first bit of a signed integer is always the sign bit
      • 0 means not negative
      • 1 means negative
    • Counting in signed 3bit! (Smallest to Greatest)
      • 100 (-4), 111 (-3), 110 (-2), 101 (-1), 000 (0), 001 (1), 010 (2), 011 (3)
    • Representation range:
      • Unsigned N-bit:

            \[ [0, -2^n-1] \]

      • Signed N-bit:

            \[[-2^{n-1}, 2^{n-1}-1]\]

LS2 Part 3: A Case Study, of Analogue to Digital Conversion 

Highlights:

  • To convert a piece of analogue waveform to digital, first, you need to decide a sample rate:
    • Frequency is measured in Hz. 10 Hz means 10 repetitions in a second.
    • Sample rate is the number of samples per second.
    • For each sample, you measure the voltage during that time period. Say your sample rate is 1000 per sec, then each sample is 1/1000s. You would measure continuously for 1000 times every second, and obtain 1000 voltage values for every second.
    • Every voltage value is stored in binary code (if there are negatives, you must you signed code).
    • Bitrate is the number of bits needed to store one second of recording. Say each sample takes 8bits, at a sample rate of 16K, your bitrate would be 16Kbps=2KBps.
    • Bitrate can usually be used to measure recording quality. A higher bitrate usually means better quality (but necessarily if your sampling rate is lower).

LS3: Binary Coded Decimal, ASCII and UTF8, Parity Code

Highlights:

  • Binary Coded Decimals
    • Decimal numbers are represented as strings of single digit, with each decimal digit represented by 4bits of binary code.
    • 234 -> 2, 3, 4 -> (0010 0011 0100)BCD
  • ASCII for representing strings
    • 8bit for every character, the first bit is always 0
    • Every character, from ‘A’ to ‘Z’, ‘a’ to ‘z’, ‘0’ to ‘9’ and symbols such as ‘,’ ‘.’ ‘-‘ has an index in the ASCII table, which is the value used to represent them in a computer system.
    • E.g. an ASCII text file with “Aha” written inside, is stored on your hard drive as 416861h (binary: 1000 0001 0110 1000 0110 0001)
    • UTF8 is an extension to ASCII, which includes all accented letters as well as characters used in all computerised languages, as well as emojis.
  • Parity
    • An additional bit for every byte of transmission, used for error detection
    • The position of the parity is agreed upon by the two computers in communication. In this course, we denote it using underscore (e.g. 110101100)
    • Even parity and Odd parity
    • Does NOT correct error
    • Cannot detect error when there are more than one