Expressions and assignment
We can think of most computer programs as performing some sort of transformation on data. Our code may get as input the exam scores of everyone in the class and generates the average score as output. Or, in a transducer architecture, we may think about writing the program that takes the current memory state of the transducer and an input, and calculates a new memory state and output.
To represent data in a computer, we have to code it, ultimately as sequences of binary digits (0s and 1s). The primary memory of a computer is spited into 'words', which typically hold 32 or 64 bits; a word can be used to save a number, one or various characters, or a pointer to (the address of) another memory location.
A computer program, at the lowest section, is a set of primitive statement, also encoded into bits and saved in the words of the computer's memory. These instructions defines operations to be operated on the data (and sometimes the program itself) that are stored in the computer's memory. In that class, we will not do at the part of these low-level instructions: a high-level programming language such as Python lets us abstract away from these information. But it is very important to have an abstract model of what is going on within the computer.