C S 31B: INTRODUCTION TO DATA ENGINEERING
Foothill College Course Outline of Record
| Heading | Value |
|---|---|
| Effective Term: | Fall 2026 |
| Units: | 4.5 |
| Hours: | 4 lecture, 2 laboratory per week (72 total per quarter) |
| Prerequisite: | C S 31A. |
| Degree & Credit Status: | Degree-Applicable Credit Course |
| Foothill GE: | Non-GE |
| Transferable: | CSU Approved, UC Pending |
| Grade Type: | Letter Grade (Request for Pass/No Pass) |
| Repeatability: | Not Repeatable |
Student Learning Outcomes
- Design and implement automated ETL pipelines using Python, SQL, open-source tools, and workflow orchestration to support analytics and machine learning
- Apply data storage architectures, modeling techniques, scaling strategies, and containerization to build reproducible data workflows
- Integrate data quality practices, version control, and model deployment (MLOps) into end-to-end data engineering projects
- Recognize the potential for bias in automated decision-making and analyze the ethical, environmental, and privacy implications of data engineering infrastructure and workflows
Description
Course Objectives
The student will be able to:
- Explain data engineering roles, the data lifecycle, and the modern data stack.
- Design and evaluate analytical data storage architectures and modeling patterns.
- Implement batch, streaming, and API-based data ingestion techniques.
- Assess scaling strategies and distributed computing fundamentals for data infrastructure.
- Develop and validate ETL pipelines using Python and SQL.
- Automate and manage scheduled data workflows using orchestration tools.
- Package and deploy data applications using containerization techniques.
- Integrate pre-trained machine learning models for batch data enrichment.
- Apply data privacy, security, and access control principles to data pipelines.
- Evaluate the ethical, social, and environmental impacts of data engineering workflows and infrastructure.
Course Content
- Fundamentals of data engineering
- Data roles and career pathways
- The data engineering lifecycle
- Overview of the modern data stack and open-source ecosystems
- Data storage architectures and modeling
- Relational databases, NoSQL, and object storage
- Data warehouses, data lakes, and lakehouses
- Pipeline architecture patterns: medallion architecture
- Data modeling for analytics (star schema, snowflake schema)
- Columnar vs. row-oriented storage formats
- Data ingestion techniques
- Batch processing vs. stream processing
- API integration and flat file ingestion
- Event streaming concepts (e.g., Apache Kafka)
- Incremental vs. full data loads
- Scaling strategies and infrastructure
- Vertical scaling (scale-up) vs. horizontal scaling (scale-out)
- Distributed computing fundamentals
- Cloud-agnostic infrastructure concepts
- ETL pipeline development
- Extracting data from disparate sources
- Data quality and validation (handling nulls, duplicates, and schema enforcement)
- Data transformation techniques (joining, aggregating) using Python and SQL
- Loading data into analytical storage
- ETL vs. ELT and transformation-in-place
- SQL analytical functions for data transformation: window functions and common table expressions (CTEs)
- Workflow orchestration
- Scheduling and dependency management
- Directed Acyclic Graphs (DAGs)
- Designing robust workflows using tools like Apache Airflow
- Reliability concepts (idempotency, retries, and backfills)
- Version control and Continuous Integration and Continuous Deployment (CI/CD) for data engineering workflows
- Containerization
- Introduction to containers and image-based deployment (e.g., Docker)
- Managing dependencies and environment reproducibility
- Connecting multiple containers (e.g., Docker Compose)
- Machine learning workflows in data engineering
- Using MLOps to serve data and manage artifacts
- Integrating pre-trained models for data enrichment (batch inference vs. real-time)
- Tracking and versioning model artifacts within a pipeline environment
- Data governance and security
- Data privacy regulations (e.g., GDPR, CCPA) and compliance basics
- Role-Based Access Control (RBAC) and least privilege principles in data pipelines
- Identifying and masking Personally Identifiable Information (PII) during transformation
- Social and ethical considerations
- Ethical implications of broad data collection and automated decision-making
- Identifying and mitigating bias within data pipelines and downstream models
- Environmental impact and sustainability of large-scale cloud infrastructure
- Promoting transparency and accountability in data workflows
Lab Content
- Environment setup and containerization
- Installing and configuring a local development environment
- Writing Dockerfiles to containerize Python and SQL applications
- Running multi-container applications using basic container orchestration tools
- Data storage and modeling
- Provisioning an open-source relational database (e.g., PostgreSQL)
- Interacting with a cloud object storage bucket
- Designing and implementing a star schema for an analytical dataset
- Writing SQL queries to aggregate and analyze data
- Developing ETL pipelines
- Writing Python scripts to extract data from public APIs and flat files
- Transforming and cleaning raw data using Python libraries (e.g., Pandas)
- Loading transformed data into a target database
- Adding data quality assertions (e.g., checking row counts or uniqueness) to a data transformation script
- Writing SQL queries using window functions and CTEs to perform analytical transformations
- Restructuring a flat dataset into Bronze, Silver, and Gold layers to practice the medallion architecture pattern
- Identifying and masking Personally Identifiable Information (PII) before loading the data into the target database
- Workflow orchestration
- Installing and configuring an orchestration tool (e.g., Apache Airflow)
- Converting standalone ETL scripts into a scheduled DAG
- Implementing error handling, alerts, and retries in the workflow
- Tracking orchestration scripts with version control and demonstrating a repeatable backfill
- Integrating pre-trained models into data workflows
- Loading a pre-trained ML model (e.g., Hugging Face sentiment analysis) into a Python transformation script
- Applying the model to a batch dataset to generate predictions and enrich the data
- Capstone project
- Designing an end-to-end automated data workflow based on a real-world scenario
- Integrating ingestion, storage, orchestration, and a pre-trained ML model for batch data enrichment
- Documenting pipeline architecture and deployment instructions
Special Facilities and/or Equipment
2. The college will provide a website or course management system with an assignment posting component (through which all lab assignments are to be submitted) and a forum component (where students can discuss course material and receive help from the instructor). This applies to all sections, including on-campus (i.e., face-to-face) offerings.
3. When taught online, the college will provide a fully functional and maintained course management system through which the instructor and students can interact.
4. When taught online, students must have currently existing email accounts and ongoing access to computers with internet capabilities.
Method(s) of Evaluation
Tests and quizzes
Lab notebook
Written laboratory assignments which include source code, sample runs, and documentation
Reflective papers
Final examination or project
Method(s) of Instruction
Instructor-authored lectures which include technical foundations, theoretical motivation, and coding implementation of data engineering principles
Detailed review of assignments which includes solutions and specific comments on the student submissions
Discussion which engages students and instructor in an ongoing dialog about data engineering
Instructor-authored labs that rigorously demonstrate a student's ability to implement data engineering objectives
Representative Text(s) and Other Materials
Reis, Joe, and Matt Housley. Fundamentals of Data Engineering. 2022.
Nwokwu, Chisom. Data Engineering for Beginners. 2025.
Types and/or Examples of Required Reading, Writing, and Outside of Class Assignments
- Reading
- Textbook assigned reading averaging 30 pages per week
- Reading the supplied handouts and modules averaging 10 pages per week
- Reading online resources as directed by instructor though links pertinent to programming
- Reading library and reference material directed by instructor through course handouts
- Writing
- Writing technical prose documentation that supports and describes the programs that are submitted for grades
