Fall 2026 · University of Texas at Arlington · Instructor: Amir Farbin
Course materials are distributed through this repository. Pull regularly — lectures and labs are pushed as the semester progresses.
| Path | What's there |
|---|---|
syllabus.pdf |
Course syllabus, grading breakdown, policies |
Lectures/ |
One folder per lecture: notebooks and/or slide PDFs |
Labs/ |
One folder per lab assignment, plus the GitHub setup guide |
sample.ipynb |
Minimal notebook to check your environment works |
requirements.txt |
Python packages used in the course |
We do all of this together in the first lab session. These are the same steps, so you can catch up or start over.
You need Linux, macOS, or Windows with WSL. On Windows, WSL is required — not a suggestion. Google Colab is an acceptable fallback if your machine can't handle the later assignments, but it is not a substitute for having a working setup.
-
Get a Unix shell.
- Windows: in PowerShell as Administrator, run
wsl --install, then reboot. Launch Ubuntu from the Start menu and set a username and password when it asks. Write the password down — everysudoneeds it. - macOS: open Terminal and run
xcode-select --install. - Linux: you already have one.
- Windows: in PowerShell as Administrator, run
-
Install the system packages. On Ubuntu/WSL/Debian:
sudo apt update sudo apt install python3 python3-pip python3-venv git
On macOS these came with the command line tools. Then close and reopen the terminal.
-
Make a course directory with its own virtual environment.
cd ~ mkdir -p Data-3402 cd Data-3402 python3 -m venv .venv source .venv/bin/activate
Your prompt should now start with
(.venv). That is a private Python for this course — nothing you install into it can break your system. Run thesourceline again in every new terminal; most "module not found" problems are just a forgotten activation.Do not use
sudo pip install. Current Ubuntu blocks it withexternally-managed-environment, on purpose; the virtual environment is the fix.Windows: keep all of this in your Linux home directory (
~), not under/mnt/c. Git and Jupyter are slow and unreliable across that boundary. Your Windows drives are visible from Linux at/mnt/c, and your Linux files are visible from Windows File Explorer at\\wsl.localhost\Ubuntu. -
Clone this repository and install the requirements. The clone is read-only for now;
git pullbrings you new lectures and labs as they are released.cd ~/Data-3402 git clone https://github.com/UTA-DataScience/DATA3402.Fall.2026.git cd DATA3402.Fall.2026 pip install -r requirements.txt
No
sudoon that last line — inside the virtual environment you are already allowed. -
Check that it works.
python3 -c "import numpy, pandas, matplotlib; print('ok')" jupyter labOpen
sample.ipynb, click the code cell, and press Shift+Enter.Ctrl-Ctwice in the terminal stops Jupyter.Every time you come back:
cd ~/Data-3402 && source .venv/bin/activate, thencd DATA3402.Fall.2026.
Several lectures and labs use datasets too large to keep in git (the SUSY dataset,
Kaggle competition data, image sets). Those are downloaded by the notebooks
themselves and are excluded via .gitignore — don't commit them.
Lab work is submitted through your own fork of this repository:
- you fork this repository once on GitHub, giving you your own copy under your account;
- you pull from this repository to receive new lectures and labs as they are released;
- you do your lab work in your fork and push to your fork, which is where it is graded.
Don't fork yet. The clone from Getting started is all you need to follow along, and
it is deliberately read-only — you can pull, but you can't push to it. We set up forks
together, step by step, in the lab session that covers git and GitHub, and that session
reuses the directory you already have: the existing remote is renamed to upstream and
your fork becomes origin. Nothing you do today has to be undone.
Labs/Git Hub Setup Guide (wsl & Mac Os).pdf is the written version of that session.
Read it then, not now — and note that it still shows a previous semester's repository
name in its example URLs.
All course communication goes through Teams — not email.