### My background with this course
- 1996-2004: C/C++ was my _native_ language
-
2001: I took a course in _assembly_ and _digital circuits_
- didn't understand how it related to actual computers
-
2003: Took an awful course on computer architecture
- deathly afraid of systems courses
-
2005: 😱 assigned to teach _computer organization and assembly language programming_ in grad school
- ended up teaching it 8 semesters in a row
- 2007: 😱 took a qualifying exam on computer architecture
- read the entire textbook _and_ the sequel
-
2009: got Ph.D.
- this stuff was an important part of my research

-
2022-2024: Teaching this course after 13 year break
# Course Logistics
## Course Website
[https://ericmanley.github.io/Fall2024/CS130](https://ericmanley.github.io/Fall2024/CS130/)
#### What to do before coming to the next class
1. Read the [syllabus](https://ericmanley.github.io/Fall2024/CS130/syllabus)
2. From the [resources](https://ericmanley.github.io/Fall2024/CS130/resources) page
- If you don't have a JAVA SDK installed, install a Java SDK
- CS67 students - you can probably use the same one for both classes
- Download and run MARS - the MIPS simulator we'll be using
## Warm up exercises
Get in groups discuss and write down your ideas
1. Rewrite the following code with one arithmetic operator (+, -, etc.) per line
```python
pay = (salary + bonus) - (health_premium + taxes)
```
2. Rewrite lines of this form
```python
a = b + c
```
like this
```
add a, b, c
```
## Discussion Questions
1. What is the difference between computer _memory_ and the computer _disk_?
2. When using Excel spreadsheets, what causes something to be in memory? What causes something to be on the disk?
3. When writing a Python program, what causes something to be in memory? What causes something to be on the disk?