Exam Syllabus Contents
Block 1: Fundamentals of Automation
6 objectives covered by the block → 6 exam items (13% of total exam)
1.1 The Importance of Digitizing Tasks (1)
Objective 1.1.1 – Identify examples of routine and repetitive tasks suitable for automation
- Provide real-world examples from IT (file backups, log cleanup), business (report generation, data entry), and home contexts (organizing photos, scheduling reminders).
- Distinguish between tasks that are effective to automate (repetitive, rule-based, time-consuming) and those that are not (creative, judgment-based).
1.2 Benefits and Limitations of Automation (2)
Objective 1.2.1 – Explain the advantages of automation
- Explain key benefits: consistency, accuracy, speed, scalability.
- Identify cost savings, time savings, and productivity improvements achieved through automation.
- Describe industry-wide benefits in IT (system monitoring), finance (data processing), and manufacturing (process control).
- Describe how automation frees humans from routine tasks to focus on higher-value work.
Objective 1.2.2 – Describe challenges and limitations of automation
- Identify potential drawbacks: setup cost, script errors, dependency on systems, and maintenance overhead.
- Explain why automation cannot fully replace human creativity, adaptability, and judgment.
- Recognize situations where manual intervention remains necessary.
1.3 Levels of Automation (1)
Objective 1.3.1 – Differentiate between scripting, process automation, and orchestration
- Define basic scripting (e.g., Python scripts for file manipulation).
- Describe process automation (workflow tools, task schedulers).
- Explain orchestration (managing multiple processes and systems together).
1.4 Measuring the Value of Automation (1)
Objective 1.4.1 – Apply basic methods to calculate ROI of automation
- Identify metrics such as time saved, error reduction, and cost savings.
- Apply formulas to simple ROI scenarios (e.g., hours saved × hourly cost).
- Interpret whether an automation initiative delivers measurable value.
1.5 Python as a Tool for Automation (1)
Objective 1.5.1 – Explain why Python is widely used for automation
- Describe Python’s strengths: readability, cross-platform compatibility, comprehensive standard library, and strong community support.
- List popular Python libraries for automation: subprocess, os, shutil, logging, requests, and schedule.
- Explain how Python can integrate with operating system commands, APIs, and external tools.
Block 2: Basic Command-Line Automation with Python
9 objectives covered by the block → 9 exam items (19.5% of total exam)
2.1 Running Python Scripts from the Command Line (3)
Objective 2.1.1 – Execute Python scripts using terminal/command prompt
- Demonstrate how to run a script with
python script.py
.
- Demonstrate running scripts from different directories.
- Diagnose and resolve common errors (wrong path, missing interpreter).
Objective 2.1.2 – Use script arguments with sys.argv
- Demonstrate how to pass one or more arguments into a script at runtime (e.g.,
python script.py input.txt
).
- Access arguments in Python and apply them in tasks.
- Analyze how argument values change program behavior (e.g., specifying input files, folder paths, or configuration options).
- Implement a script that accepts a filename and prints its content or metadata.
Objective 2.1.3 – Explain the role of virtual environments in automation
- Define what a Python virtual environment is and why it is used.
- Explain how virtual environments isolate dependencies and improve script portability.
- Demonstrate creating (
python -m venv venv
), activating, and deactivating a virtual environment.
- Identify scenarios where using a virtual environment is critical (e.g., when deploying automation on different systems).
2.2 Script Configuration and Execution Basics (3)
Objective 2.2.1 – Use shebang lines for Unix/Linux/macOS automation
- Explain the function of a shebang line in executable Python scripts.
- Write the standard shebang
#!/usr/bin/env python3
in a script.
- Demonstrate how to make a script executable with
chmod +x
.
- Verify execution of a script without explicitly calling the Python interpreter.
Objective 2.2.2 – Apply output and error redirection for Python scripts
- Redirect standard output (stdout) from a script into a text file using
>
.
- Redirect error messages (stderr) into a separate file using
2>
.
- Apply combined redirection (
&>
or equivalents) to capture all script output.
- Analyze script logs to separate successful runs from error traces.
Objective 2.2.3 – Describe environment variables in automation
- Define environment variables and explain their purpose in automation.
- Identify common environment variables such as
PATH
, HOME
, or USERNAME
.
- Demonstrate how to read environment variables in Python using
os.environ
.
- Apply environment variables to customize script behavior (e.g., dynamic file paths or system-specific configurations).
- Demonstrate how to create and assign values to system environment variables (e.g., setting a temporary variable in the shell or using
os.environ["VAR_NAME"] = "value"
in Python).
2.3 Integration with System Tools (3)
Objective 2.3.1 – Explain how automation scripts are combined with OS-level tools
- Describe Task Scheduler (Windows) and cron (Linux/macOS) as scheduling tools.
- Explain how Python scripts can be configured to run automatically using these tools.
- Evaluate scenarios where OS-level scheduling is more appropriate than in-script scheduling.
- Provide examples such as scheduling a daily cleanup or weekly backup.
Objective 2.3.2 – Use subprocess
to execute external commands
- Execute shell commands from within Python using the
subprocess
module.
- Capture command output and return codes to verify execution success.
- Redirect external command output into files or Python variables for further processing.
- Provide examples such as running
ls
(Linux/macOS) or dir
(Windows) and analyzing results.
Objective 2.3.3 – Identify use cases for command-line automation
- Recognize tasks that benefit from command-line automation, such as batch file renaming, backups, and log cleanup.
- Evaluate how command-line automation reduces manual effort in repetitive tasks.
- Compare scenarios where Python automation is more effective than manual command entry.
- Provide examples of combining multiple scripts into a single automated workflow.
Block 3: Logging and Monitoring Essentials
7 objectives covered by the block → 7 exam items (15% of total exam)
3.1 Understanding the Role of Logging (2)
Objective 3.1.1 – Explain why logging is essential in automation
- Describe the role of logging for debugging, monitoring, and auditing automated tasks.
- Explain the limitations of using
print()
functions compared to logging.
- Provide examples of automation tasks where logs are essential (e.g., system monitoring, error tracking).
- Explain why sensitive information (e.g., passwords, API keys) should never be logged.
Objective 3.1.2 – Configure simple logging in Python
- Demonstrate how to import and use the
logging
module.
- Use
logging.basicConfig
to configure a simple logger.
- Generate log messages with levels such as
INFO
, WARNING
, and ERROR
.
- Write log outputs to both console and file.
3.2 Log Levels and Formats (3)
Objective 3.2.1 – Differentiate between logging levels
- Define standard log levels:
DEBUG
, INFO
, WARNING
, ERROR
, and CRITICAL
.
- Provide examples of when to use each level (e.g.,
DEBUG
for troubleshooting, ERROR
for critical issues).
- Explain why consistent use of log levels helps organize and analyze automation logs.
Objective 3.2.2 – Apply custom formatting in logs
- Configure log messages to include timestamps, log levels, and message details.
- Demonstrate structured logging with custom formats for better monitoring.
- Compare simple vs formatted log outputs to highlight clarity improvements.
Objective 3.2.3 – Implement logging during file operations
- Record every time a file is read or written by the script.
- Log the number of lines processed in a file.
- Compare logs of successful operations vs failed attempts.
- Explain how logging improves traceability in file automation.
3.3 Monitoring Automation Tasks (2)
Objective 3.3.1 – Implement basic monitoring strategies in automation
- Record script start and end times automatically in logs.
- Track the number of processed files, records, or tasks.
- Detect and record errors during execution for later review.
Objective 3.3.2 – Use logs to debug automation workflows
- Interpret log messages to identify causes of script failures.
- Use log analysis to differentiate between normal and abnormal system behavior.
- Provide scenarios such as diagnosing a failed backup or handling an API timeout.
Block 4: Basic File and Data Automation
8 objectives covered by the block → 8 exam items (17.5% of total exam)
4.1 File Operations with Python (3)
Objective 4.1.1 – Perform file and folder operations
- List and verify files or directories using
os
functions such as os.listdir()
and os.path.exists()
.
- Create and delete directories programmatically to manage file structures.
- Automate simple housekeeping tasks such as cleaning a temporary folder.
- Open, read, write, and append to text files in different modes (
r
, w
, a
), including handling encodings like UTF-8.
Objective 4.1.2 – Use shutil
for advanced operations
- Copy files from one location to another using
shutil.copy()
.
- Move and rename files with
shutil.move()
.
- Apply directory-level operations for organizing large groups of files.
- Implement a basic backup script to duplicate files into a backup folder.
Objective 4.1.3 – Detect and handle file errors
- Identify common file errors such as missing files or permission issues.
- Handle these errors using
try/except
blocks in Python.
- Record error messages in logs for troubleshooting.
- Evaluate scenarios where error handling prevents data loss.
4.3 CSV and JSON Processing (3)
Objective 4.3.1 – Differentiate between CSV and JSON formats
- Recognize CSV use cases such as expense trackers and contact databases.
- Recognize JSON use cases such as API responses and configuration files.
- Evaluate the advantages and limitations of CSV and JSON formats.
- Evaluate when to use each format in automation tasks.
Objective 4.3.2 – Process CSV files with Python’s csv
module
- Read CSV data into Python using
csv.reader()
and csv.DictReader()
for row-by-row access.
- Write CSV data using
csv.writer()
or csv.DictWriter()
for flexible output.
- Automate simple summaries such as totals, counts, or averages.
- Demonstrate automation by combining data from multiple CSV files.
Objective 4.3.3 – Parse and generate JSON files with the json
module
- Convert Python dictionaries or lists into JSON strings with
json.dumps()
.
- Save JSON objects into files with
json.dump()
.
- Parse JSON data into Python objects using
json.load()
or json.loads()
.
- Apply JSON automation to store structured data for reuse.
4.4 Professional Practices in Data Automation (2)
Objective 4.4.1 – Apply safe and reliable practices in file handling
- Detect and handle empty files gracefully.
- Manage corrupted files without script failure.
- Apply context managers (
with open()
) to ensure files are always closed safely.
- Use logging to capture data-related errors.
- Explain why error handling is critical for reliability in automation.
Objective 4.4.2 – Explain ethical, security, and privacy considerations
- Avoid overwriting or deleting important files by implementing safeguards.
- Recognize the risks of storing or exposing sensitive data (e.g., passwords, medical data, financial data).
- Describe best practices for file naming and version control to ensure traceability.
- Evaluate responsible use of automation in handling confidential information.
- Explain why temporary files pose privacy risks, and apply safeguards such as access control, secure deletion, and compliance with Privacy by Design principles (e.g., ISO 27701).
Block 5: Basic Web and API Automation
8 objectives covered by the block → 8 exam items (17.5% of total exam)
5.1 Introduction to Web Automation (2)
Objective 5.1.1 – Differentiate between web scraping and APIs
- Explain the difference between retrieving information from raw HTML vs structured data from an API.
- Compare web scraping (e.g., extracting headlines from a news site) with API-based data access (e.g., requesting weather information).
- Identify which approach is more efficient or reliable in different scenarios.
Objective 5.1.2 – Identify ethical and legal considerations in web scraping
- Respect website rules defined in
robots.txt
.
- Recognize the risks of overloading websites with frequent automated requests.
- Identify common anti-scraping techniques such as captchas, IP rate limiting, and request throttling.
- Explain why consent and responsible use are critical in automation.
5.2 Using requests for Web Content (2)
Objective 5.2.1 – Fetch web pages with requests.get()
- Import the
requests
library.
- Retrieve the HTML content of a webpage using
requests.get()
.
- Interpret response objects and status codes (200, 404, 500).
- Apply basic error handling to detect failed requests.
Objective 5.2.2 – Parse JSON responses from web services
- Recognize JSON as a standard data format for web APIs.
- Load JSON responses into Python dictionaries using
response.json()
.
- Process and extract values from JSON objects.
- Demonstrate saving API responses into a file (CSV or JSON) for later use.
5.3 Parsing HTML with BeautifulSoup (2)
Objective 5.3.1 – Extract information from simple HTML pages
- Use BeautifulSoup to parse HTML documents.
- Find and extract specific elements such as titles, links, or paragraphs.
- Loop through multiple elements to build lists of results (e.g., all headlines).
Objective 5.3.2 – Apply logging in web automation
- Record whether a request succeeded or failed.
- Log the number of elements scraped from a webpage.
- Analyze logs to detect unusual behavior (e.g., missing elements, errors).
5.4 Working with APIs (2)
Objective 5.4.1 – Explain REST API basics
- Define common HTTP methods: GET, POST.
- Identify JSON as the most common format for REST API responses.
- Recognize the difference between requesting data and sending data.
- Identify common restrictions such as API keys, authentication, and request rate limits.
- Differentiate between public APIs (freely accessible) and private APIs (restricted access).
Objective 5.4.2 – Fetch and interpret data from a simple API
- Perform a request to a simple API (e.g., weather, exchange rates, quotes).
- Parse the returned JSON data into Python structures.
- Store results in local files such as CSV or JSON for reporting.
Block 6: Scheduling, Notifications, and Reporting
8 objectives covered by the block → 8 exam items (17.5% of total exam)
6.1 Scheduling Basics (2)
Objective 6.1.1 – Explain the need for scheduling in automation
- Identify common repetitive tasks suitable for scheduling (e.g., backups, report generation, log cleanup).
- Distinguish between manual script execution and automated scheduled runs.
- Explain how scheduling improves reliability, consistency, and efficiency.
Objective 6.1.2 – Schedule scripts using Python’s schedule
module
- Install and import the
schedule
library.
- Demonstrate how to run a simple job at fixed intervals (e.g., every 10 minutes).
- Use time-based logic to execute tasks daily or weekly.
- Demonstrate combining
schedule
with time.sleep()
for continuous execution.
6.2 System-Level Scheduling (2)
Objective 6.2.1 – Describe cron jobs and Windows Task Scheduler
- Define cron jobs in Linux/macOS and Task Scheduler in Windows.
- Explain key differences between scheduling in Unix-like vs Windows environments.
- Explain simple examples such as scheduling a Python script to run once per day.
Objective 6.2.2 – Recognize advantages and limitations of system scheduling
- Recognize strengths: flexibility, reliability, running scripts without user input.
- Identify risks such as misconfigured jobs, overlapping executions, and missed triggers.
- Evaluate when to use system-level scheduling instead of Python-based scheduling.
6.3 Notifications and Alerts (2)
Objective 6.3.1 – Send email notifications with smtplib
- Configure a simple SMTP connection in Python.
- Automate sending plain-text emails (e.g., task completion or error alerts).
- Log outgoing messages for record-keeping.
- Recognize the need for secure handling of email credentials.
Objective 6.3.2 – Describe desktop notification options
- Identify cross-platform notification tools such as
plyer
.
- Demonstrate creating a simple desktop notification.
- Provide use cases such as reminders, process completions, or status updates.
- Evaluate when desktop notifications are useful vs when email alerts are more appropriate.
6.4 Reporting in Automation (2)
Objective 6.4.1 – Generate simple reports from automation tasks
- Summarize task results in plain text files for record-keeping.
- Generate basic HTML reports with headings, tables, or lists for easier readability.
- Create simple daily or weekly reports with timestamps to track progress over time.
- Automate the saving of generated reports into designated directories for organization and retrieval.
Objective 6.4.2 – Apply logging to scheduled and reporting workflows
- Record report generation steps in log files.
- Log both successful and failed reporting tasks.
- Analyze logs to identify scheduling or reporting errors.
- Explain how logging improves auditability and troubleshooting in automated workflows.