OpenEDG PCAD study plan
OpenEDG PCAD · Give each week a clear focus.
8 weeks · About 7 hours per week
Data acquisition and integration (databases, APIs, web content) & SQL for querying and manipulating structured data; connecting Python to databases
Write Python scripts that pull data from at least three source types: a SQLite file via sqlite3, a REST JSON endpoint via requests, and a CSV downloaded over HTTP, saving each to a local file.
Construct SELECT queries with WHERE, ORDER BY, GROUP BY, HAVING, and INNER/LEFT JOIN against a multi-table SQLite database, and explain in writing why each clause runs in the order it does.
Build a reusable loader function that accepts a connection string or URL and returns a pandas DataFrame, handling connection setup and teardown with context managers.
Compare pandas.read_sql, read_sql_query, and read_sql_table on the same database and record which one you would use for a table, a query, and a stored procedure.
Your checkpoint
A single ingest.py script with three working loaders (SQLite, REST API, CSV-over-HTTP) plus a short README showing sample output rows from each source.
SQL for querying and manipulating structured data; connecting Python to databases & Data acquisition and integration (databases, APIs, web content)
Create tables, insert rows, and update records from Python using parameterized queries so no user input is concatenated into SQL strings.
Write queries that use subqueries, CASE expressions, and aggregate functions to produce a summary table, then load that summary directly into a DataFrame.
Implement a transaction that inserts a batch of rows and rolls back on error, verifying with a follow-up SELECT that no partial rows remain.
Document the difference between a database cursor and a connection, and demonstrate closing both in the correct order in code.
Your checkpoint
A pipeline script that builds a small relational database from raw CSVs, runs three analytical SQL queries, and writes the joined results to a new table with a row-count log.
Data cleaning and validation
Profile a messy dataset for missing values, duplicate keys, inconsistent dtypes, and out-of-range values, producing a written issue inventory with counts per column.
Write functions that standardize text fields (trim, case-fold, normalize date formats) and apply them column-wise with map or apply.
Choose and justify per-column missing-value strategies (drop, mean/median, forward fill, sentinel) and implement them in a reproducible cleaning function.
Add validation checks that raise a custom exception when a schema rule is violated, such as a negative quantity or a date outside an allowed window.
Your checkpoint
A clean_data.py module with at least five validation rules and a before/after report showing row counts, null counts, and dtype changes per column.
Data exploration and analysis with Pandas and NumPy
Reshape data with merge, concat, pivot_table, and melt, and state which operation each of four business questions requires.
Compute grouped aggregations with groupby and agg using at least three different aggregation functions in one call.
Use NumPy to vectorize a calculation that would otherwise be a Python loop, and time both versions to show the speedup.
Apply boolean indexing and loc/iloc correctly to extract subsets, verifying each result's shape against a hand-computed expectation.
Your checkpoint
An analysis notebook with five answered questions about a public dataset, each showing the code, the resulting table, and a one-sentence interpretation.
Statistical methods (descriptive and inferential statistics)
Compute and interpret mean, median, standard deviation, quartiles, and IQR on real columns, and identify outliers using the 1.5xIQR rule.
Build a correlation matrix and explain in writing which correlations are strong, which are spurious candidates, and why correlation does not imply causation.
Run a two-sample t-test and a chi-square test of independence using scipy.stats, and state the null hypothesis, p-value, and decision for each.
Construct a 95% confidence interval for a mean and explain what the interval does and does not claim.
Your checkpoint
A stats_report.md with five statistical findings, each including the test used, the p-value or interval, and a plain-language conclusion a non-technical reader could follow.
Foundational machine learning (regression analysis and model evaluation)
Split a dataset into train and test sets, fit a linear regression with scikit-learn, and report coefficients alongside their interpretation in original units.
Evaluate a regression model with MAE, RMSE, and R-squared, and explain why a high R-squared alone does not prove a good model.
Diagnose overfitting by comparing train and test error, then apply at least one remedy such as feature reduction or regularization.
Check the residual plot for patterns and document whether the linearity assumption appears reasonable.
Your checkpoint
A model_eval.ipynb that trains two competing regression models, compares them on a held-out test set in a results table, and names the chosen model with a written justification.
Data visualization and communication of insights (Matplotlib, Seaborn)
Produce a line chart, bar chart, scatter plot, and histogram with Matplotlib, each with labeled axes, a title, and an appropriate scale.
Use Seaborn to build a grouped bar chart and a heatmap of correlations, and adjust palettes so categories remain distinguishable in grayscale.
Rewrite one misleading chart into an honest one by fixing a truncated axis, an unlabeled unit, or an inappropriate chart type, and note the change.
Draft three headline-style takeaways that each cite the specific figure or number that supports them.
Your checkpoint
A four-panel figure saved as a PNG plus a short caption block explaining what each panel shows and the single insight it supports.
Programming practices (object-oriented design, exception handling) and ethical data handling
Refactor the ingest, clean, and model code into classes with clear responsibilities, using inheritance or composition where it removes duplication.
Wrap file, network, and database operations in try/except blocks that catch specific exceptions, log context, and re-raise or recover deliberately.
Audit a project for ethical handling: document data provenance, remove or hash direct identifiers, and state who should have access to the raw data.
Complete two timed practice sets covering all eight domains and log every missed question with the concept it tested.
Your checkpoint
A capstone project folder with a class-based pipeline, exception handling, a data-provenance and privacy section in the README, and a one-page error log from the practice sets.
Milestones
Week 2: You can go from a raw CSV to a queryable SQLite table and back to a DataFrame without copying code between scripts, and every SQL statement uses parameters rather than string concatenation.
Week 4: Your cleaning module passes all validation rules on a fresh dataset, and you can answer five questions about that dataset using groupby, merge, and boolean indexing without looking up syntax.
Week 6: You have a held-out test score for two regression models, can explain in writing why you chose one, and can name the assumption most likely to be violated in your data.
Week 8: Capstone runs end to end from a single entry point, charts are labeled and honest, identifiers are handled, and your practice-set error log shows no domain with repeated misses on the same concept.