[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. Each of these video take me at least an hour to record, edit, render, then upload, so some times they might be released after Tuesday. Thanks in advance for your understanding.

Lecture 0: Administrations


  1. What this course is about;
  2. Contact:
    • [Best] Microsoft Teams, search for jgu or Jetic Gū.
    • Email: jgu@columbiacollege.ca, please include [CSCI150] in your email title.
    • Office hour: 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.
  3. Grading criteria
    • Multiple attempts for Assignments.
      • All assignments are due on Sundays, check the main course website for detailed time.
    • Single attempt for Quizzes and Exams.
    • All quizzes due before the 12th week.
      • Take you time.
    • Exams must be completed during the assigned week.
      • You do get the entire week though.
    • Labs are more important than ever!
      • Read and follow instructions carefully.

Lecture 1: Digital Information Representation I

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


  • 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


  • 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


  • 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


  • 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


  • 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 


  • 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


  • 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