Classroom Public page

FND-101 Equipment and Setup Guide

840 words

Everything you need before week 1 starts. ~90 minutes of setup. All free; no hardware required beyond your laptop.


Laptop requirements

Any modern Windows, macOS, or Linux laptop will run FND-101. The course is entirely software-based; no hardware kit is needed.

Minimum specs:

  • Operating system: Windows 10 or later, macOS 10.15 or later, or a current Linux distribution (Ubuntu 20.04+, Fedora 35+, Debian 11+, or equivalent)
  • CPU: any 64-bit processor from the last 10 years
  • RAM: 4 GB minimum, 8 GB comfortable
  • Disk: 5 GB free (Python, Git, a text editor, WSL2 on Windows, and your lab files fit well within this)
  • Display: 1280x720 or higher
  • Internet: needed for downloading tools and reading; optional thereafter

NOT required:

  • No hardware kit
  • No GPU
  • No root or admin privileges on Linux/macOS (all tools install as user-mode applications)

Software to install

Six tools. All free. Plan ~90 minutes total including downloads.

1. Python 3

FND-101 uses Python 3 for quick one-liners in week 2 (character encoding) and for scripting practice.

  • Windows: download from https://python.org/downloads; during install, check "Add Python to PATH"
  • macOS: Python 3 may already be installed. Check: python3 --version. If not: install from https://python.org/downloads
  • Linux: Python 3 is almost certainly pre-installed. Check: python3 --version. If not: sudo apt install python3 or equivalent.

Verification: open a terminal and run python3 -c "print('hello')". It should print hello.

2. Git

Git is the version-control system used for all lab submissions.

  • Windows: download Git for Windows from https://git-scm.com/download/win. During install, accept the default options. This also installs Git Bash, a Unix-like terminal that works for all lab commands.
  • macOS: run git --version in Terminal. If Git is not installed, macOS will prompt you to install Xcode Command Line Tools, which includes Git. Accept the prompt.
  • Linux: sudo apt install git or equivalent.

Verification: git --version should print a version number.

After install, configure your identity:

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

3. A text editor

Any text editor that works in plain text mode (not Microsoft Word, which adds formatting). Recommended:

  • VS Code (https://code.visualstudio.com/): free; cross-platform; good for beginners
  • Sublime Text (https://www.sublimetext.com/): free to try; fast
  • nano: pre-installed on most Linux/macOS systems; minimal but sufficient
  • vim: pre-installed on most Unix systems; requires learning the modal interface (week 9 lecture covers the basics)

Verification: open your editor, create a file, type some text, save, and confirm the file exists on disk.

4. A terminal

  • macOS: Terminal (pre-installed, in Applications/Utilities) or iTerm2 (https://iterm2.com/)
  • Linux: any terminal emulator: GNOME Terminal, Konsole, xterm, etc.
  • Windows: see WSL2 below

5. xxd (hex dump tool)

  • macOS/Linux: xxd is pre-installed. Verify: xxd --version or xxd /dev/null | head -1
  • Windows in WSL2: xxd is included in most Linux distributions via the vim-common package: sudo apt install xxd

Alternative if xxd is unavailable: hexdump -C file.bin produces equivalent output.

6. A hex editor (graphical, optional but recommended for week 2 and the capstone)

A graphical hex editor makes the byte-by-byte annotation in the capstone easier:

  • Windows: HxD (https://mh-nexus.de/en/hxd/): free; portable; no install needed
  • macOS: Hex Fiend (https://hexfiend.com/): free; open-source; mac-native
  • Linux: Bless (https://github.com/bwrsandman/Bless): free; or install with sudo apt install bless

Windows students: install WSL2

Weeks 8-9 assume a bash shell. On Windows, the most reliable way to get a real bash environment is WSL2 (Windows Subsystem for Linux). Without it, Windows students will find the shell labs significantly harder.

Installation (Windows 10 2004+, Windows 11):

  1. Open PowerShell as Administrator (right-click the Start menu, select "Windows PowerShell (Admin)")
  2. Run: wsl --install
  3. Restart your computer when prompted
  4. After restart, Ubuntu will finish installing and ask you to create a username and password
  5. Open "Ubuntu" from the Start menu to get a bash terminal

After WSL2 is set up:

  • Install Python and Git inside WSL2: sudo apt update && sudo apt install python3 git xxd
  • Your Windows files are accessible from WSL2 at /mnt/c/Users/YourName/
  • For the labs, keep your files inside WSL2's home directory (~/fnd-101/) rather than on the Windows side, to avoid path-separator issues

Verification: open Ubuntu from the Start menu. Run python3 --version, git --version, xxd --version. All three should work.


Accounts to create

  1. GitHub or GitLab account (free): for pushing lab submissions. Create at https://github.com or https://gitlab.com. Use your real name; this account will accumulate your lab history across the academy.

Reading material to bookmark

  1. Pro Git at https://git-scm.com/book/en/v2 (week 10 primary reading)
  2. The Linux Command Line tutorial at https://linuxcommand.org/lc3_learning_the_shell.php (weeks 8-9)
  3. Joel Spolsky on Unicode at https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum/ (week 2)
  4. The academy's silicon-level reading guide at /handouts/cross-chapter-silicon-level-reading-guide.html (optional forward reading after weeks 3-6, for students curious about the physical layer)

Petzold's CODE is the course's primary reading anchor. It is not free online, but it is widely available at public libraries.


Folder structure

Set up your working directory before week 1:

~/fnd-101/
├── lab-1-1/       (binary worksheet)
├── lab-1-2/       (hex dump)
├── lab-2-1/       (UTF-8 encoding)
├── ...
├── capstone/      (created in week 12)
└── journal/       (weekly reflection journal)

Estimated setup time

Step Time
Install Python 3 ~10 min
Install Git ~10 min
Install text editor ~10 min
WSL2 install (Windows only) ~30 min
Install xxd + hex editor ~5 min
Create GitHub/GitLab account ~10 min
Bookmark reading materials ~5 min
Total ~90 min (Windows); ~45 min (macOS/Linux)

Where to get help if setup fails

  • The academy's Discord channel (link distributed at course registration)
  • The instructor's office hours (schedule shared at course start)
  • Ask on the GitHub/GitLab community forums for Git issues

Setup problems are common and not a sign you cannot do the course. They are actually the first debugging exercise. Ask for help early.


Setup guide v0.1.