Michal Spano

Software Engineering | Open Source | FP

Basic Concepts in Computer Science | Michal Spano

Basic Concepts in Computer Science

August 27, 2022

A short introduction to some basic concepts in computer science.

Boolean Logic and Logic Gates

Representing transistors of two states - the binary representation $\Rightarrow$ true/false & $0/1$ - representing raw electrical signals.

In terms of mathematics - the field of Boolean Algebra (named after George Boole). Fundamental operators in Boolean Algebra: and, or, not $\to$ the values are only true/false.

Transistor may be thought of as an electrically controlled switch.

NOT operator Gate ($\neg$)

              / --- 1st electrode
--- control_wire 
              \ --- 2nd electrode

In order to reach an output from a transistor, there needs to be some input. A NOT indicates the negation.

AND operator Gate ($\land$)

We assume that the transistor only yields true, such that both of the inputs are true.

--- control_wire --- o --- o ---- output
                     |     | 
                     A     B

OR operator Gate ($\lor$)

We assume that the transistor yields true $\iff$ either of inputs is true or both are true.

                / --- A --- \
--- control_wire              --- output
                \ --- B --- /

Exclusive OR (XOR) operator Gate ($\oplus$)

We assume that the transistor yields true $\iff$ either of inputs is true only. A XOR Gate is created from a combination of other gate operators.

Representing Numbers and Letters with Binary

In a binary representation, we rely on the 2 possible digits: $[0, 1]$, i.e. a base-two notation.

Expressed mathematically (conversion bin -> dec):

\[(A)_{2} = (B)_{10} \equiv \sum_{i = 0}^{n = \bar{A}} A_{i}^{n - i}\]

where $\bar{A}$ denotes the number of digits of $A$, and $A_{i}$ is the $i$-th digit of $A$.

Conversion dec -> bin:

We rely on the modulo ($\%$) operator. Example given (no. 47):

remainder mod ($n \% 2$)
47 -
23 1
11 1
5 1
2 1
1 0
0 1

We then concatenate the digits to a binary notation from bottom to the top $\Rightarrow (47)_{10} = (101111)_2$.

Each 0,1 represents a single bit (b), hence a number made from $n$ bits belongs to the interval from $0$ to $(2^{n} - 1) \subset \mathbb{N}$, making $2^{n}$ total possible numbers.

*First bit - sign of the number; positive - 0, negative - 1.

Floating point numbers (float): sign + exponent + significant.

Representing textual data

  1. ASCII: 7-bit - 128 characters.
  2. Extended ASCII: 8-bits - 256 characters.
  3. Unicode: single universal encoding scheme - 16-bits.

Compilers and Interpreters

TL;DR