# Learn this to learn any language - Part 1

## Unraveling the Foundations: A Primer on Computer Science Constructs

Delve into the fundamental constructs of computer science, breaking down complex terminology and exploring the essence of Von Neumann Architecture. This article aims to bridge the gap between conventional math and the unique logic of computer science.

## Definitions

Before moving on, we should define some terms to avoid confusion. This series shall assume...

No axiomatization without insight

--Christopher Strachey

### Ignore Math

Computer science is like calculus and non-Euclidean geometry; to understand it, one should break and assume rules that violate conventional math. Upcoming terms and customs might interfere with the math brain, but set it aside and learn computer science.

### Von Neumann Architecture

Above all, this is the foundation of any computer we will ever refer to. Understanding this architecture is crucial for comprehending the underlying methodologies and why things are the way they are.

## Defining Constructs

To explain the language in written form, we should be on the same page when I say some terms, so let's define a few ground rules. The following line in its entirety is called an *expression*:

```
x = 2003
```

A program is made of expressions ranging from simple, as above, and as moderately complex as below, which encapsulates many sub-units of expressions as well...

```
x = [i for i in range(2003) if i % 2 == 0]
```

The purpose of an expression is to operate with memory in [Von Neumann Architecture](ppr-fcpl-0-defs#Von Neumann Architecture),

...so in general, any expression can be reduced to a form of `L-val = R-val`

. Here:

`L-val`

is a form of an address or location of a memory cell`R-val`

is a form of a value to be stored in the memory cell referenced by the corresponding`L-val`

`=`

operand indicates the operation,*assignment.*~~Not essentially math's equal~~

It is optional to have either

`L-val`

or`R-val`

.

In each such case, it can be thought of as:

throw-away value

declaration (essentially reservation in advance) for a value of interest

**This is it**. Now all we have to do is to learn how to get the desired `R-val`

and how to indicate the CPU what our desired `L-val`

is.

next, we will look at getting desired

`R-val`

See you in the next article, till then, this is me, TheBE, signing off ๐.