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 fromhttps://python.org/downloads - Linux: Python 3 is almost certainly pre-installed. Check:
python3 --version. If not:sudo apt install python3or 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 --versionin 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 gitor 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:
xxdis pre-installed. Verify:xxd --versionorxxd /dev/null | head -1 - Windows in WSL2:
xxdis included in most Linux distributions via thevim-commonpackage: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 withsudo 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):
- Open PowerShell as Administrator (right-click the Start menu, select "Windows PowerShell (Admin)")
- Run:
wsl --install - Restart your computer when prompted
- After restart, Ubuntu will finish installing and ask you to create a username and password
- 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
- GitHub or GitLab account (free): for pushing lab submissions. Create at
https://github.comorhttps://gitlab.com. Use your real name; this account will accumulate your lab history across the academy.
Reading material to bookmark
- Pro Git at
https://git-scm.com/book/en/v2(week 10 primary reading) - The Linux Command Line tutorial at
https://linuxcommand.org/lc3_learning_the_shell.php(weeks 8-9) - Joel Spolsky on Unicode at
https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum/(week 2) - 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.