1. What is a computer?
According to Wikipedia, a computer is a machine that can be instructed to carry out sequences of arithmetic or logical operations automatically via computer programming.
A digital computer is just a digital system. It consists of combinational and sequential logic. It is just a big finite state machine! A computer does what software tells it to do!

2. What is computer software?
Computers have two main parts: hardware and software. It’s like piano (hardware) and music (software).

According to Wikipedia, computer software is a collection of data or computer instructions that tells the computer how to work.
Examples of software:
– Application Software
- Pupilpath
- Naviance
- Excel
- Zoom
- Discord
– Programming Languages
- Python
- Java
- C++
- C#
-System Software
- Operating Systems like Windows, Linux, iOS, Android
- Server
- Device Driver
Can you give more examples?
3. Hardware

a. CPU
Central Processing Unit – inevitably referred to as the “brains” of the computers. The CPU does the active “running” of code, manipulating data, while the other components have a more passive role, such as storing data. When we say that a computer can “add two numbers, a billion times a second” .. that’s the CPU. When you hit the Run button, the CPU ultimately “runs” your code.

B. RAM
RAM – Random Access Memory, or just “memory”. RAM is the working scratchpad memory the computer uses to store code and data that are being actively used. RAM is effectively a storage area of bytes under the control of the CPU. RAM is relatively fast and able to retrieve the value of any particular byte in a few nanoseconds (1 nanosecond is 1 billionth of a second). The other main feature of RAM is that it only keeps its state so long as it is supplied with power — RAM is not “persistent” storage.
Suppose you are working on your computer and it suddenly loses power and the screen goes blank. You understand that what you were working on is gone. RAM has been wiped clean, leaving you only with what you last saved to disk.

C. ROM
ROM – Read-only memory, permanently stores data on PCs and other electronic devices. It contains the programming needed to start a PC, which is essential for boot-up; it performs major input/output tasks and holds programs or software instructions.
Because ROM is read-only, it cannot be changed; it is permanent and non-volatile, meaning it also holds its memory even when power is removed. By contrast, RAM is volatile; it is lost when power is removed.

D. Persistent Storage
Persistent storage – long term storage for bytes as files and folders. Persistent means that the bytes are stored, even when power is removed. A laptop might use a spinning hard drive (also known as “hard disk”) for persistent storage of files. Or it could use a “flash drive”, also known as a Solid State Disk (SSD), to store bytes on flash chips. The hard drive reads and writes magnetic patterns on a spinning metal disk to store the bytes, while flash is “solid state”: no moving parts, just silicon chips with tiny groups of electrons to store the bytes. In either case, the storage is persistent, in that it maintains its state even when the power is off.
A flash drive is faster and uses less power than a hard disk. However, per byte, flash is significantly more expensive than hard drive storage. Flash has been getting cheaper, so it may take over niches at the expense of hard drives. Flash is much slower than RAM, so it is not a good replacement for RAM. Note that Adobe Flash is an unrelated concept; it is a proprietary media format.
Flash storage is what underlies USB thumb drives, SD cards for use in cameras, or the built-in storage in a tablet or phone.

File System:
The hard drive or flash drive provides persistent storage as a flat area of bytes without much structure. Typically the hard disk or flash disk is formatted with a “file system” which organizes the bytes into the familiar pattern of files and directories, where each file and directory has a somewhat useful name like “resume.txt”. When you connect the drive to a computer, the computer presents the drive’s file system to the user, allowing them open files, move file around, etc.

Essentially, each file in the file system refers to a block of bytes, so the “flowers.jpg” name refers to a block of 48KB of bytes which are the data of that image. The file system in effect gives the user a name (and probably an icon) for a block of data bytes, and allows the user to perform operations on that data, like move it or copy it or open it with a program. The file system also tracks information about the bytes: how many there are, the time they were last modified.
Microsoft uses the proprietary NTFS file system, and Mac OS X has its Apple proprietary HFS+ equivalent. Many devices (cameras, MP3 players) use the very old Microsoft FAT32 file system on their flash cards. FAT32 is an old and primitive file system, but it is good where wide support is important.
E. Input and Output devices

List of References:
https://web.stanford.edu/class/cs101/hardware-1.html
http://people.duke.edu/~bcl15/teachdir/ece496_spr13/1-intro.pdf
http://cs.sru.edu/~mullins/cpsc100book/module02_introduction/module02-03_introduction.html
https://web.stanford.edu/class/cs101/lecture01.html#/30
Cartoon found online