Syllabus
EE 547: Applied and Cloud Computing for Electrical Engineers
Spring 2026 (2 units)
This course introduces tools and concepts to build and deploy machine learning systems in modern computing environments. It is a project-driven course that develops from concept to production deployment. The course is intended for graduate electrical engineering students with prior programming and machine learning experience. Students will learn about technologies and practices essential for scaling machine learning from experimental notebooks to production systems. The course covers three main areas: (1) cloud technologies and distributed computing for ML workloads, (2) system architecture and infrastructure programming, and (3) deployment and orchestration in global computing infrastructure. Students gain hands-on experience with GPU clusters, containerization, and cloud environments while learning concepts that apply across modern ML platforms.
Lecture: Wednesday (section: 31250), 14:00 – 15:50
Discussion: Friday (section: 30404), 14:00 – 14:50
Enrollment is in-person ONLY. Attendance is mandatory to all lectures. Taping or recording lectures or discussions is strictly forbidden without the instructor’s explicit written permission.
Course materials
Designing Machine Learning Systems, Huyen, C., O’Reilly Media, 2022. online, USC libraries.
Cloud Native Patterns: Designing change-tolerant software, Davis, C., Manning, 2019. online, USC libraries.
The Good Parts of AWS, Vassallo, D., Pschorr, J., 2020. (optional).
High Performance Python: Practical Performant Programming for Humans, 3rd edition, Gorelick, M., Ozsvald, I., O’Reilly Media, 2020. online, USC libraries.
Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing, Akidau, T., Chernyshev, S., Lax, R.1, O’Reilly Media, 2018. online, USC libraries.
“AI” policy
You may use AI-powered tools in this course to enhance your learning and productivity. Use AI as a collaborative tool for understanding concepts, generating ideas, and troubleshooting. Approach AI-generated content critically and use it responsibly. Engage with AI as you would with a knowledgeable peer or tutor, using iterative conversations to deepen your understanding. You must attribute all AI-generated content in your work, including the prompts you used. You are fully accountable for the accuracy and appropriateness of any AI-assisted work. AI should supplement, not substitute, your own critical thinking and problem-solving. For assignments, you may use AI to clarify concepts or resolve issues, but submitted work must be your own. Submitting AI-generated work as your own without proper attribution or understanding is academic misconduct and will be treated as such.
You must develop complete mastery of all course material independent of AI assistance. Your knowledge and skills will be evaluated in contexts where AI tools are not accessible, mirroring real-world scenarios where you must rely solely on your own expertise. This ensures you can perform effectively in any situation, with or without AI support. Violations of this policy will result in severe academic penalties. The goal is to prepare you to use AI effectively in your future work while ensuring you develop a strong, self-reliant foundation in the course material.
Learning Objectives
Upon completion of this course, a student will be able to:
- Design and implement distributed systems for machine learning workloads, understanding asynchronous coordination and scaling limits.
- Apply containerization and orchestration technologies to manage ML training and inference.
- Optimize cloud resource utilization through cloud instances and address data locality.
- Implement fault-tolerant ML systems using service discovery and recovery mechanisms.
- Build production ML services with proper monitoring, versioning, and rollback capabilities.
- Navigate the transition from experimental notebooks to production-ready ML systems.
Course Outline
| Week | Topics |
|---|---|
| Week 1 14 Jan |
Distributed systems for ML. Coordination, Components, and Cloud. |
| Week 2 21 Jan |
Virtualization. Containers and orchestration. Fault tolerance. |
| Week 3 28 Jan |
Cloud Computing Fundamentals. |
| Week 4 04 Feb |
Practical Cloud Computing. |
| Week 5 11 Feb |
Structured Storage and Query Systems. |
| Week 6 18 Feb |
SQL and Relational Databases. |
| Week 7 25 Feb |
NoSQL and Distributed Databases. |
| Week 8 04 Mar |
API Design. REST. Access control and data privacy. |
| Week 9 11 Mar |
Exam. |
| (18 Mar) | No class, Spring Break. |
| Week 10 25 Mar |
Cloud Patterns: Storage, Serverless, and Coordination. Draft proposal due (27 Mar). |
| Week 11 01 Apr |
Project proposal meetings. |
| Week 12 08 Apr |
Web Interfaces: HTML, CSS, and JavaScript. Revised proposal due (12 Apr). |
| Week 13 15 Apr |
Dynamic Web Applications. Status report due (19 Apr). |
| Week 14 22 Apr |
Project meetings and wrap-up. |
| Week 15 29 Apr |
Technical review and demos, 14:00 - 17:00. |
| Sunday 03 May |
Project deliverables due, 23:59. |
Grading Procedure
Homework (45%)
Assignments include a mix of applied and programmatic problems. You may discuss homework problems with classmates but each student must submit their own original work. Cheating warrants an “F” on the assignment. Turning in substantively identical homework solutions counts as cheating.
Late homework is accepted with a 0.5% deduction per hour, up to 48-hours – no exceptions. Technical issues while submitting are not grounds for extension. No submissions will be accepted 48-hours after the due date. Graders score what is submitted and will not follow up if the file is incorrect, incomplete, or corrupt. It is your responsibility to ensure you submit the correct files and that they are accessible.
Exam (20%)
The exam tests your ability to apply major principles, demonstrate conceptual understanding, and requires writing code. It occurs during week 9 (tentative). You are expected to bring a scientific (non-graphing) calculator. You may use both-sides of one 3.5” x 5” reference card. You may not use any additional resources.
The exam includes multiple-choice and short answer questions. It also includes free-response or open-ended questions to demonstrate conceptual understanding. You are expected to write reasonably correct code as well as determine expected behavior of novel computer code. Grading primarily follows correct reasoning but may include deductions for major syntax errors, algorithmic inefficiency, or poor implementation.
Final Project (35%)
This course culminates with a final project in lieu of a final exam. Teams of three students (in rare cases, teams of two with instructor approval) design and implement a complete software product that connects two or more independent asynchronous components (often frontend and backend). The instructor will guide teams having difficulty identifying a suitable application. Teams are encouraged to devise solutions to novel problems of personal interest to their background or research. But teams may build an application similar to existing services or tools provided their efforts demonstrate understanding of the development stack and the product lifecycle — from idea to deployment to maintenance. All projects must obtain the instructor’s written approval. Teams will prepare and present/demo their approved project and show how it applies course material, concepts, and best-practices.
Course Grade
A if 90 - 100 points, B if 80 - 89 points, C if 70 - 79 points, D if 60 - 69 points, F if 0 - 59 points. (“+” and “–” at ≈ 1.5% of grade boundary).
Cheating
Cheating is not tolerated on homework or exams. Penalty ranges from F on exam to F in course to recommended expulsion.
Final Project
Requirements
Project topics must include sufficient scope and apply course knowledge to a useful end. The project must implement a complete ML system that includes training infrastructure and deployment serving, demonstrating the transition from experimental development to production operation. It must compose at least two distinct computational components that demonstrate distributed system principles (examples: training and inference pipelines, data processing and model serving, or experimentation platform and production deployment). The project must demonstrate comprehensive understanding of the entire development stack and the product lifecycle from idea to deployment to maintenance. Additional requirements and guidelines will be discussed closer to the commencement of the project.
All projects must use Python as the primary language unless approved explicitly in writing by the instructor. But projects may use additional languages for tooling and support. Projects must implement and expose some API or service to consumers. The instructor may provide additional requirements when introducing the final project assignment.
Scoring and Milestones
| Deliverable | Timing | Weight |
|---|---|---|
| Topic proposal (initial and revised) | Week 10 & 12 | 3% + 7% |
| Status report - Design, components, integration | Week 14 | 7% |
| Technical review and demo | Final | 25% |
| Project report | 20% | |
| Design and source code | 35% | |
| Video | 3% |
Project Deliverables
Topic proposal: Describe the problem, proposed technical approach, and expected outcomes. It should communicate that your topic is adequately prepared and it should outline immediate next steps. But the proposal is merely a guidepost and reasonable deviations in method, approach, and scope are expected.
Written report: Summarize the topic, provide relevant background (theoretical or applied), timeline and contributions, and document challenges and extensions. It should provide discussion sufficient that an uninformed expert can understand the models, analytic decisions, outcomes, and implementation. Teams should provide quantifiable metrics to justify engineering tradeoffs, including performance benchmarks, scalability analysis, and resource utilization.
Technical review and demo: Approximately 15 minutes (depends on class size) to describe the topic problem and solution. It should provide only what is necessary to understand the what and why and include minimal theoretical background. The instructor may provide a technical reference slide-deck template that must be completed in advance of the demo session.
Source code: Submitted as GitHub repository to Gradescope. It must include README file(s) that describe the repository structure, execution instructions, deployment configuration, and infrastructure requirements.
Video: A 4-minute video that describes the topic, your implementation, and your results. You may choose to upload this to a video sharing site such as YouTube but that is not required.