The following reflects a tentative schedule, and may undergo changes as the semester progresses.
[08.25 - 08.27] (1) Introduction to the course (2) Unix/Linux CLI: navigation, pipes, redirection, composability, and permissions [ slides | slides ]
Reading: Learning the Shell from Shotts, W. 2024. The Linux Command Line.
Labor Day (No Class)
[09.03] Bash scripting fundamentals: variables, conditionals, loops, exit codes, functions, arguments, stdin/stdout/stderr [ slides ]
Reading: Writing Shell Scripts (1 - 5) from Shotts, W. 2024. The Linux Command Line.
[09.08] Version control: git essentials (init, commit, branch, merge, remote) and collaborative scripting
Assignment 1 available
[09.10] Python scripting essentials: (sys, os, subprocess) and file operations (pathlib, shutil, glob patterns, batch processing)
[09.15] Environment management: virtual environments (venv), dependency isolation
[09.17] Error handling and logging: exceptions, logging module, crash reports
Assignment 1 deadline
[09.22] EXAM I (covers the first four weeks, up to and including the lecture on Sep 17)
[09.24] Testing Python scripts: pytest fundamentals
[09.29] Regular expressions: POSIX and PCRE patterns, grep and egrep
[10.01] Stream editing with sed: substitutions, transformations, and in-place edits
Assignment 2 available
[10.06] Text and field processing with awk: reports and data extraction
[10.08] Python text tools: re module, named groups, and CSV/JSON processing with pandas
Fall Break (No Class)
[10.15] EXAM II (covers the first four weeks, up to and including the lecture on Oct 8)
[10.20] Integrated workflow: combining Shell and Python for log parsing
[10.22] System monitoring: psutil, process trees
[10.27] Log analysis: extraction patterns, anomaly detection scripts
Assignment 2 deadline
[10.29] Scheduling and Automation: cron jobs, systemd timers
[11.03] Backup scripts: compression, incremental backups, integrity checks
Assignment 3 available
[11.05] Security scripting: permission audits and user management
[11.10] Resource optimization scripts
[11.12] Web interactions: data collection with Beautiful Soup
[11.17] Web automation with Selenium
Assignment 3 deadline
[11.19] API interactions and requests
[11.24] Demonstration & Discussion: an API-powered alert system (e.g., weather/data monitor)
[12.01] Cross-platform challenges: (1) Windows PowerShell and WSL Integration; (2) Differences in path handling (Bash vs. PowerShell)
!! THANKSGIVING !!
[12.03] Automated reporting systems
PDF/HTML reports with Python (Jinja2, pdfkit)
Email alerts with smtplib