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

- 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.

- [Best] Microsoft Teams, search for
- 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.

- Multiple attempts for Assignments.

## 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

- Three major components:
- 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:
- Signed N-bit:

- Unsigned N-bit:

- The first bit of a signed integer is always the sign bit

**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