Azure Setup and Account Access
Welcome to the Data Track! You have read the material and set up your environment, so today is about consolidation and preparation.
We aren't just learning "how to write Python"; we are reviewing how to structure Data Engineering projects. We will review your setups, refactor basic code into professional modules, and ensure you are fully prepared to tackle the Week 1 Assignment.
By the end of this lesson, students should be able to:
Validate* their development environment setup (VS Code, Venv, Git).
Refactor* basic scripts into modular, type-hinted code.
Diffrentiate* between humble print() debugging and professional Logging.
Understand* the requirements and potential pitfalls of the Week 1 Assignment.
Troubleshoot* common Azure login issues.
| Time | Activity | Duration |
|---|---|---|
| 0:00 | Welcome & Kickoff | 5 min |
| 0:05 | Live Kahoot Quiz (Knowledge Check) | 10 min |
| 0:15 | Workshop: Python Setup (Hands-on) | 15 min |
| 0:30 | Overview: The Core Language (Ch 2-5) | 20 min |
| 0:50 | Break | 10 min |
| 1:00 | Overview: Engineering Habits (Ch 6-9) | 20 min |
| 1:20 | Assignment Launch: The Data Cleaner | 25 min |
| 1:45 | Azure Access Check | 5 min |
| 1:50 | Q&A & Next Week Preview | 10 min |
| 2:00 | End | - |
Total: 2 hours
Goal: Verify understanding of Week 1 reading material.
csv.DictReader benefits, json serialization.Goal: Critical Path. No student leaves without a working local environment.
python --version (Must be 3.10+).Create it: python -m venv venv
Activate it: source venv/bin/activate (Mac/Linux) or venv\\Scripts\\activate (Windows).
Verify*: which python / where python must point to the venv.
Cmd/Ctrl + Shift + P -> Python: Select Interpreter.
Pick the one with ('venv': venv).
.gitignore -> Add venv/, .env, __pycache__/.Goal: Roadmap for the week. Easing into Python from your JavaScript background.
Key Topics*:
Variables*: Labels for objects, dynamic typing.
Strings*: F-strings (f"Hello {name}") vs concatenation.
Mutability*: The difference between list (mutable) and str/tuple (immutable).
JS vs Python*:
JS: let name = "Alice"; / const
Py: name = "Alice" (No var/let/const).
*Note: Python None is like JS null. We don't have undefined.
Key Topics*:
Conditionals*: if, elif, else.
Loops*: for item in iterable (foreach style) vs while.
Truthiness*: Explicit checks vs implicit (empty list [] is False).
JS vs Python*:
JS: Uses curly braces { } for blocks.
Py: Uses Indentation* (Whitespace matters!).
JS: === vs Py: == (Python checks value equality by default).
Key Topics*:
Definition*: def, parameters, return values.
Arguments*: Positional vs Keyword arguments (func(a=1)).
Entry Point*: The if __name__ == "__main__": idiom.
JS vs Python*:
JS: function myFunc() {} or const myFunc = () => {}
Py: def my_func():
*Habit: Python files run top-to-bottom. Always use if __name__ == "__main__": (like a main() entry point).
Key Topics*:
Syntax*: variable: type and -> return_type.
Complex Types*: list[str], dict[str, int], Optional[int].
Static Analysis*: How tools like mypy (or VS Code) use hints.
JS vs Python*:
JS: Dynamic (or TypeScript).
Py: def clean(val: str) -> int: