# 1: Parts of a Computer

## Expectations

### Learning Targets

* I can disassemble and reassemble a computer.
* I can describe the function of basic PC components.

### Assessments

* You will be asked comprehension questions to identify parts of a computer from their images, what their primary purpose is, and what their common problems are
* You will be observed disassembling and reassembling a computer and checked that you can identify all the components and that you can reassemble the machine correctly

## Components

![We'll reference the idea of a person juggling as an analogy to PC components](/files/-LJP-GggpCzlH4DXU9_F)

Imagine a person juggling while singing an old song from their childhood. Part of the juggler's brain is tracking the motion of each ball and the timing of each throw. Another part of the juggler's brain is recalling the song. His stomach is fueling his muscles. His nervous system is communicating controls from his brain to his arms. His eyes are taking in information. His voice is outputting the song. We'll use this as a reference as we go over hardware.

### Central Processing Unit

#### Description

CPUs or processors do math. They are a super complex series of logic gates made unbelievably small. What are logic gates? Imagine a wire with two light switches in a row. Since both switches are on the same wire, both need to be flipped to the ON position in order for power to flow through the line. That's an AND gate. If the wire split into two instead and each fork had its own switch, that would be an OR gate as only one or the other has to be enabled for power to flow. Processors have millions and millions of these complex arrangements made in microscopic sizes.

![This CPU doesn't have pins or a big metal heat sink on top of it](/files/-LJP6bt96w59APABQMJC)

According to our analogy, the CPU is the part of the juggler's brain that's calculating the path of each ball while also managing all the other signals through his brain. It doesn't cover all the functions of the brain in our analogy, but it is at the center of the comparison.

#### Problems with CPUs

CPUs use a lot of power and generate heat. Metal wires create a little resistance as electricity flows through them and that energy turns into heat. You must manage the heat that gets created by your CPU using a fan or other cooling system. If your computer collects a lot of dust, it will insolate

If a CPU is older it means it could be generating more heat while executing fewer commands. And if the CPU is slow, that means it must be connected to a whole bunch of other parts that are older and slower too.

#### Extra Information

In case you're curious and don't mind a little challenge, learn about the [Von Neumann Bottleneck](https://www.quora.com/What-is-the-von-Neumann-bottleneck-and-how-can-it-be-circumvented) and how computer engineers have gotten around it.

### Random Access Memory

![](/files/-LKJSyK0BMYcNuMRwbVb)

### Motherboard

![](/files/-LKJSq9it7X9zVt_eh3N)

### Hard Disk Drive

![](/files/-LKJT3FnA0OefrNuP1ko)

### Power Supply and Case

![](/files/-LKczR8kgApiDgpWQU0i)

### Peripheral Devices

![](/files/-LKczdVIght6Chx_mgXR)

## Additional Practice

* Look through [Tom's Hardware](https://www.tomshardware.com/) and read how the experts recommend you shop for components
* Create a Quizlet set and practice these terms

## APIs Make Life Easier

No one writes code totally from scratch. All programmers use a variety of preexisting systems that allow for easier development. We write code that interacts with other layers. That's an API or Application Program Interface. We can interact with our operating system, helpful resources or other apps.

### BIOS

The BIOS or Basic Input/Output System is firmware. It's something built right into your motherboard. It helps boot your computer up and gives something for the operating system to run off of.

![](/files/-LKwKKex8p0PlGDElM8l)

### Operating System

The OS is a big deal. It serves as a vital intermediary between software and hardware. Instead of having to program every little operation for each device in our computer, we can just use the commands provided by the operating system.

### Interpreter

The interpreter allows us to execute our written Python code. It's our interface with the Operating System which is in turn interfacing with our hardware.

### Libraries and Packages

Part of what makes Python so great are all the tools and frameworks available. Want to build a web application? Use Flask or Django and you'll be up and running in minutes. Do you want tools for data analysis? Machine learning? Robotics? There's an ocean of open-source tools ready to give your app superpowers.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gilmour.online/compsci/pnr/1-hardware-layers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
