Guide to High School Computer Science
  • 💻Introduction
    • windows & Python Development
    • macOS & Python Development
    • Visual Studio Code Settings
    • Set up Github
    • Author Page
  • 🧠Prerequisite Skills
    • Keyboard Typing
    • Files & Directories
    • Use of Command Line
    • Git & GitHub
    • Markdown
    • Starting Your Python Project
  • 🐍Python Programming
    • 🍎Python Basics
      • What is Python?
      • Procedural Programming & Programming Paradigms
      • String Formatting
      • Data Types
      • Input & Output to Console
      • Working with Numbers
      • Useful Built-in Functions
      • Math & Random Module
      • Boolean Data Object
      • Comparison, Logical, and Membership Operators
      • If Statements
      • Binary Decisions
      • Multiple Decisions
      • Nested Conditions
      • [EXTRA] Bitwise Operators
      • [EXTRA] Python Style Guide
    • ⏮️Iterations
      • Introduction to While Loops
      • Infinite Loop
      • Controlling Your While Loops
      • Introduction to For Loops
      • For Loops w/ Numeric Sequences
      • For Loops w/ Strings & Lists
      • Iterable Functions w/ For Loops
    • 📦Collections
      • Strings
        • String Basics
        • String Indexing
        • String Slicing
        • String Operators & Functions
        • Basic String Methods
        • String Methods Extended
        • String Methods Document
      • Tuples & Lists
        • Tuples
        • List Basics
        • List are Mutable
        • Adding Items to a List
        • Removing Items from a List
        • Search & Reverse a List
        • List Comprehension
        • List Methods Document
      • Sets
      • Dictionary
      • How to Store Multiple Data Items
    • 💡Defining Functions
      • Functions
      • print() vs return
      • Pre-determined Arguments
      • Nested Functions
      • Map & Filter
      • [Extra] Dynamic Arguments
    • 💾File I/O
      • How to Save Text to an External File
      • Reading CSV in Python
      • Reading JSON in Python
    • 🔨Basic Python Projects
      • Basic Calculator
        • Improving the calculator
        • Exercise Set 1
        • Exercise Set 2
        • 💎Streamlit Application #1
      • Basic Password Generator
        • Exercise Set 3
        • Exercises Related to Math
        • 💎Streamlit Application #2
      • A To-Do Task List
    • ⏳Introduction to Algorithmic Thinking
      • Big-O Notation
      • Basic Algorithms
        • Linear Search
        • Binary Search
        • Basic Sorting Algorithms
      • Recursion
      • Brute Force Algorithms
      • Greedy Algorithm
        • Time on Task (CCC 2013 J4)
        • Dijkstra’s Algorithm
      • Divide and Conquer
        • Merge Sort
      • Dynamic Programming
    • 🤯Object Oriented Programming
      • Class & Objects (Definitions)
      • OOP in Python
      • Encapsulation
      • Polymorphism
      • Inheritance & Overriding
      • Override Magic Methods
      • Case Study: 2D Vectors
      • Case Study: Deck of Cards
      • Exercise
      • Abstract Data Types
      • Case Study: Static 1D Array From Java
    • Competitive Programming
      • Is This Sum Possible?
        • Is the dataset sorted?
        • Searching for a value
        • Determine if the difference between an integer from the array and the target value exists
        • Sorting Algorithms
        • Using Two Pointers
      • Two Sum - LeetCode
        • Generate all possible pairs of values
        • Subtract each value from the target, see if the difference exists in the list
      • Longest Common Prefix - LeetCode
        • Compare all possible prefixes
        • Create the longest common prefix with the direct neighbour
      • Length of Last Word - LeetCode
        • Compare all possible prefixes
      • Where can I go from one point to another?
      • Sample Outline
    • IB Recipe Book
  • 💾Python & Databases
    • Intro to Databases & Data Modeling
      • Common Data Types in SQL
      • Introduction to ERDs
      • Primary Keys and Foreign Keys
      • Database Normalization
    • What is SQL?
      • Getting Started
      • SELECT Queries
        • Selection with Conditions
        • Selection with Fuzziness
        • Selection and Sorting in Order
        • Selection without Duplicates
        • Selection with Limited Number of Outputs
      • AGGREGATE Queries
        • Counting Rows
        • Sum, Average, Min/Max Queries
        • Working with Aggregate Queries
        • Power of using Groups
        • Exercise
      • Interacting with Multiple Table
      • Inserting Data
      • External Resource
  • ☕Java Essentials
    • Basics
      • Starting Java
      • Data & Variables
      • Handling User Inputs & Type Conversion
      • Arithmetic
      • IPO Model
      • Basic Built-in Methods
      • Exercise Questions
    • Conditionals
      • Boolean Operators
      • Compare Strings
      • If Statements
      • If Else Statements
      • Making Multiple Decisions
      • Using Switch
      • Flowchart Symbols
      • Exercise Questions
    • Iterations
      • While Loops
      • For Loop
      • Exercises
    • Java Type Casting
    • Strings
      • Common String Practices
      • String Formatting
      • Java Special Characters
    • Collection
      • Arrays
      • For Each Loop
      • ArrayList
      • Exercise Questions
    • Static Methods
      • (Aside) Clearing your Console
    • Randomness in Java
    • Delayed Output in Java
    • Java Output Formatting
    • Java Style Guide
  • 🛠️JavaScript Programming
    • Our Programming Editor & Workflow
      • Hello, world!
      • Commenting & Variables
      • Data in JavaScript
      • Operators
      • String Formatting
      • Getting User Input
    • JavaScript Exercise Set 1
    • Making Decisions
      • Comparing Values
      • Combining Boolean Comparisons
      • Creating Branches
    • JavaScript Exercise Set 2
    • While Loops
      • Infinite While Loop
      • While Loops and Numbers
      • While Loops and Flags
      • While loops w/ Strings
    • JavaScript Exercise Set 3
    • Subprograms & Functions
      • Creating a Function in JavaScript
      • Function with Input and Assignable Output
    • JavaScript Exercise Set 4
  • 💾Topics in CS
    • Computer Environments & Systems
      • Computer Components
        • In-depth Explanations
      • File Maintenance
      • Computer & Safety
      • Software Development
      • Bits & Binary
    • Careers related to Computer Science
    • Postsecondary Opportunities
Powered by GitBook
On this page
  • Order of Components to Choose & Important Considerations
  • 1. CPU Choice
  • 2. Choose a Case
  • 3. Motherboard
  • 4. RAM
  • 5. Hard Drive
  • 6. CPU Cooler & Thermal Paste
  • 7. GPU
  • 8. PSU
  1. Topics in CS
  2. Computer Environments & Systems
  3. Computer Components

In-depth Explanations

PreviousComputer ComponentsNextFile Maintenance

Last updated 1 year ago

Order of Components to Choose & Important Considerations

A very good website to help you organize your build a website called: .

1. CPU Choice

I personally like to choose CPU first because it helps us narrow down choices for our build.

The CPU choice determines:

  • Motherboard Choice: The socket family of the CPU will determine the type of the motherboard you buy.

  • RAM Choice: Most modern CPUs will state their preferred RAM configurations on their specification sheet.

  • CPU Cooler Choice: CPUs that are intended to be overclocked or just generally stronger won't come with a CPU cooler; therefore, you are expected to buy a standalone cooler.

  • GPU Choice: Depending on the CPU chosen, the processor may not have a GPU built-in. CPUs without GPUs in them will have no output to display (monitor), so your system will need a dedicated graphics card. CPUs that have integrated GPU are called either Accelerated Processing Unit APU.

The speed of CPU is determined by Hertz (Hz) most often to referred as "clock speed". The faster the speed; the faster the processing speed of the CPU.

More cores the CPU has, the CPU will be able to handle more process/applications at the same time.

A CPU Cache is often mentioned when differentiating processors because a larger cache memory helps the CPU store more important data within its own short term memory for faster processing.

2. Choose a Case

Choosing a case will determine the outer aesthetics of your build, but it will importantly determine the limits of what you can install as well.

The case ...

  • will state what of the motherboards it can support, so it determines your motherboard sizing.

  • will have a cooler height limits, so you can only use certain air-based CPU coolers.

  • will have radiator dimension limits, so you can only use certain .

  • will state a length limit for GPU cards, so you must get one that fits your case.

  • will state how many SATA based drives you can fit in your case. This determines your long term storage options for your case.

  • will state the form factor of the that it can support; this narrows down your PSU choice as well.

3. Motherboard

By now you have chosen a CPU and the case. The CPU chosen will determine your the socket type the motherboard must have. The case will determine the form factor (ATX, mATX, or ITX) of your motherboard.

Your motherboard ...

  • will state the best memory (RAM) configurations by stating the type of RAM it supports (speed limit, the RAM generation, and channeling).

  • will state the number of PCI connectors for extra component installations (graphics card, network card, and etc)

  • will state the number and the type of hard drive interfaces as well

4. RAM

Both the CPU and the motherboard will state their preferred RAM configurations. By following what is stated from the two components, you should be able to buy a proper RAM for your system.

The speed of the RAM (Hz) will determine how fast your RAM can communicate with your CPU for its processes.

The size of the RAM (GB) will determine the number of processes that can be stored for your PC.

5. Hard Drive

At this point, it is crucial to think about all the apps you intend to use on your machine and research the amount of hard drive storage your PC requires.

3 Common Types of Hard Drives

  1. NVME SSD --> these are currently the fastest commercial drives, these often install directly onto the motherboard

  2. SATA SSD --> these are often cheaper than NVME drives, but they will require SATA cables to install to the motherboard and it will have to be mounted to the case

  3. SATA Hard Disk Drive --> these drives are the cheapest out of the three and often can store a lot more data than the other two; however, it sacrifices speed for greater data storage

6. CPU Cooler & Thermal Paste

We have installed 90% of the necessary components of the computer. If your CPU did not come with a CPU cooler, you would want to apply thermal paste (little pea amount) onto your CPU and install a CPU cooler.

7. GPU

If you did not choose a APU, then you will also need a dedicated GPU (a graphics card). Best way to choose a GPU is to first narrow down the size limitations of the case and then consider the applications that you need to run on your PC.

8. PSU

A PSU is something that is installed at the end and all of the required connectors will be connected to the motherboard, hard drives, and GPU if needed. All the components from section 1 to 7 will have their "wattage requirements" or . At this point, you should be choosing a PSU with enough wattage to power your PC.

I personally recommend that you choose a PSU that has at least 100 wattage of wriggle room so that your PC can function still when it randomly uses little more power than intended. Having more wattage than the calculated maximum also allow us to upgrade our PC in the future.

Modularity:

To make your life easier, it is often better to get a PSU where you can control which wires to be installed.

This can range from:

  • non-modular (all possible cables are attached (nonremovable) on the PSU)

  • semi-modular (only the necessary cables are attached)

  • fully-modular (all cables are detached)

💾
pcpartpicker
How to Build a PC by LTT