VCA-FND-102 — Python and Automation
VCA-FND-101 gave students a model of the machine. VCA-FND-102 gives them a language to command it. The course teaches Python 3 as a professional tool — specifically as an automation language — a way to make the computer do repetitive or tedious work that would otherwise cost the student hours. Every student finishes the semester having built at least six working CLI tools and presented their own student-chosen capstone to the class.
Course Overview
The course is not structured around toy examples (print "hello world"; compute prime numbers;
make a calculator). It is structured around tools — things the student builds that
the student, or someone the student knows, will actually run. Students who experience programming
as automation-of-the-annoying develop a fundamentally different relationship with code than students
who experience it as disconnected exercises.
Learning Outcomes
On completion, students are able to:
- Read and write Python 3 syntax fluently: variables, types, control flow, functions, modules.
- Use structured data confidently: lists, dictionaries, tuples, sets; JSON serialization and deserialization.
- Read and write files, including CSVs, JSON, and plain text, with awareness of encoding and line-ending issues.
- Use the standard library for common automation needs:
os,pathlib,subprocess,argparse,json,csv,re,datetime,hashlib,logging. - Write a command-line tool with
argparsethat accepts input, reports progress, exits with meaningful status codes, and has a--helpthat would pass a code review. - Use
gitdaily: clone, branch, stage, commit, push, pull, merge, resolve a simple conflict. Open pull requests against a reviewer (the instructor). - Debug systematically: read a Python traceback, add
print-debugging, use a debugger, isolate a minimal reproducer. - Write a short README and a small set of unit tests for their own tool.
Weekly Schedule
| Week | Lecture | Lab |
|---|---|---|
| 1 | Python syntax — variables, types, strings, input/print | Temperature converter |
| 2 | Control flow — if, while, for, loop control | Guess-the-number game |
| 3 | Functions, scope, docstrings | Refactor Week 2 into clean functions |
| 4 | Lists and dictionaries | Class-roster tool that groups students by grade |
| 5 | File I/O — read, write, CSV, JSON | Log-file scanner: find all ERROR lines |
| 6 | Modules and imports; the standard library tour | Rewrite Week 5 using logging and argparse |
| 7 | Regular expressions — when to use, when not to | Extract IP addresses from a network log |
| 8 | Midterm — 2-hour practical: build an argparse-based CLI tool to spec | Proctored exam |
| 9 | Subprocess and shell integration | Disk-usage reporter that wraps du |
| 10 | Git intermediate — branches, remotes, pull requests | Submit Week 9’s tool as a PR |
| 11 | Hashing and integrity — hashlib | Directory-integrity checker (SHA-256) |
| 12 | Simple HTTP with requests — reading public APIs | Weather-report CLI using a free weather API |
| 13 | Testing with pytest; writing a README | Add tests + README to a prior week’s tool |
| 14 | Capstone prep — students select their automation target | Workshop-style instructor review |
Capstone — Automate Something in Your Actual Life
Each student chooses a real repetitive task from their own life — a homework-reminder tracker, a music-library duplicate-finder, a bus-schedule checker, a daily-chore rotator, a text-adventure game they wanted to make — and builds it as a Python CLI tool with:
- An argparse interface with
--help - A README describing what it does and how to run it
- At least three unit tests (
pytest) - Commit history in Git showing multiple increments
- A 5-minute demo and Q&A in front of the class
Students may not choose a capstone that has a library doing 90% of the work for them — the tool’s value must come from the student’s code, not just glue.
Technical-Typing Integration
Terminal typing speed is the unspoken bottleneck for every student who writes code. The course integrates cyberseals.net technical-typing as a running-in-the-background requirement:
- Benchmark by Week 6: 35 WPM with 95% accuracy on technical text
- Benchmark by Week 14: 50 WPM with 95% accuracy
Required Hardware & Software
- Linux environment — same setup as FND-101 (bench Pi or remote SSH)
- Python 3.11+, Git, pytest
- Code editor (VS Code recommended)
No textbook required. Supplementary: Sweigart, Automate the Boring Stuff with Python (free at automatetheboringstuff.com); Downey, Think Python 3rd ed. (free at greenteapress.com).
Certification Alignment
Python Institute PCEP PCAP (next-step)
Primary: Python Institute PCEP — $69 exam, covers the course’s syllabus in full. Students who complete FND-102 can sit PCEP within one month. Next-step: PCAP (intermediate Python) — ideal target for end of 10th grade.
Interested in VCA-FND-102?
Email academy@virtuscybersecurity.com with your register and why.