We may earn an affiliate commission when you visit our partners.
Course image
Josh Reini and Anupam Datta

Learn how to build and evaluate a data agent in “Building and Evaluating Data Agents,” a course created in collaboration with Snowflake, and taught by Anupam Datta, AI Research Lead, and Josha Reini, Developer Advocate at Snowflake.

Read more

Learn how to build and evaluate a data agent in “Building and Evaluating Data Agents,” a course created in collaboration with Snowflake, and taught by Anupam Datta, AI Research Lead, and Josha Reini, Developer Advocate at Snowflake.

You’ll design a data agent that connects to data sources (databases, files) and performs web searches to respond to users’ queries. The agent will consist of sub-agents, each specialized in connecting to a particular data source, and other sub-agents that summarize or visualize the results. To answer a particular query, the agent will use a planner that identifies which sub-agents to call and in what order.

You’ll add observability to the agent’s workflow and evaluate the quality of its output. Using an LLM-as-a-judge approach, you’ll assess whether the final answer is relevant to the user’s query and grounded in the collected data. You’ll also evaluate the process by determining whether the agent’s goal, plan, and actions (GPA) are all aligned.

Finally, you’ll apply inline evaluations to evaluate the agent’s performance during runtime. At every retrieval step, you’ll evaluate if the collected data is relevant to the user’s query. The agent will use this evaluation score to decide if it needs to adjust its plan.

What you’ll do, in detail:

Understand what data agents are and how they can be trustworthy when their goal, plan, and actions are properly aligned.

Build a data agent that plans, performs web searches ,and visualizes or summarizes the results, using a multi-agent workflow implemented in LangGraph.

Expand the agent’s capabilities by adding a Cortex sub-agent that retrieves information from structured and unstructured data stored in Snowflake.

Add tracing to the agent’s workflow to log the steps it takes to answer a query.

Evaluate the context relevance of the retrieved results, the groundedness of the final answer, and its relevance to the user’s query.

Measure the alignment of the agent’s goal, plan, and actions (GPA) by computing metrics such as plan quality, plan adherence, logical consistency, and execution efficiency.

Improve the agent’s performance by adding inline evaluations and updating the agent’s prompt.

By the end, you’ll know how to build, trace, and evaluate a multi-agent workflow that plans tasks, pulls context from structured and unstructured data, performs web search, and summarizes or visualizes the final results.

Enroll now

What's inside

Syllabus

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Career center

Learners who complete Building and Evaluating Data Agents will develop knowledge and skills that may be useful to these careers:
Artificial Intelligence Engineer
An Artificial Intelligence Engineer is at the forefront of designing, developing, and deploying intelligent systems. This course directly prepares you for the critical work involved in bringing sophisticated AI solutions to life by focusing on building and evaluating data agents that connect to various data sources, perform web searches, and respond to complex user queries. You will gain hands-on experience in architecting multi-agent workflows using tools like LangGraph, expanding capabilities with sub-agents, and integrating with platforms like Snowflake for structured and unstructured data retrieval. A core strength you will develop is the rigorous evaluation of AI agent performance, encompassing context relevance, groundedness, and the alignment of an agent’s goal plan and actions, which is crucial for building trustworthy AI applications.
Machine Learning Engineer
As a Machine Learning Engineer, you develop and implement scalable machine learning models and systems. This course will significantly enhance your capabilities in building and evaluating data agents, which are advanced applications of machine learning. You will learn to construct agents with sophisticated planning capabilities, integrating various components like web search and data summarization or visualization. The experience of building multi-agent workflows and expanding their functionality, such as connecting to Snowflake for diverse data retrieval, directly mirrors the practical challenges ML Engineers face. Furthermore, the emphasis on adding observability, tracing workflows, and performing detailed evaluations—including inline evaluations and assessing goal plan and action alignment—is vital for ensuring the robustness and reliability of deployed machine learning systems.
Software Engineer (Artificial Intelligence)
A Software Engineer Artificial Intelligence builds and maintains the core software infrastructure for AI systems. This course equips you with specialized skills for a Software Engineer Artificial Intelligence by focusing on the practical construction and assessment of data agents. You will engage in building multi-agent workflows using frameworks like LangGraph, expanding agent capabilities with sub-agents, and integrating with external data sources, including structured and unstructured data in Snowflake. The emphasis on designing a planner to orchestrate sub-agents and adding tracing for workflow observability are essential software engineering practices. Learning to apply inline evaluations and measure metrics like execution efficiency directly contributes to developing high performance, reliable, and maintainable AI powered software solutions.
Artificial Intelligence Quality Assurance Engineer
An Artificial Intelligence Quality Assurance Engineer specializes in testing and validating the reliability, performance, and correctness of AI systems. This course provides highly pertinent expertise for an Artificial Intelligence Quality Assurance Engineer, given its strong emphasis on the detailed evaluation of data agents. You will learn to employ an LLM as a judge approach to assess whether an agent’s final answer is relevant and grounded in data. Crucially, the course delves into measuring the alignment of an agent’s goal plan and actions by computing specific metrics such as plan quality, logical consistency, and execution efficiency. Furthermore, gaining experience with inline evaluations to assess context relevance during runtime is invaluable for ensuring the continuous quality and trustworthiness of AI agent deployments.
Artificial Intelligence Researcher
An Artificial Intelligence Researcher explores novel algorithms, models, and paradigms to advance the field of AI. This course is highly relevant for an Artificial Intelligence Researcher, particularly in the realm of agent based AI systems. You will engage in building and evaluating data agents that employ multi agent workflows and sophisticated planning mechanisms. The detailed evaluation methodologies, including assessments of context relevance, groundedness, and the alignment of an agent’s goal plan and actions, provide a strong foundation for developing new metrics and experimental designs for agent performance. This experience can inspire research into more robust, trustworthy, and efficient agent architectures and evaluation techniques, pushing the boundaries of autonomous AI. This role typically requires an advanced degree.
MLOps Engineer
An MLOps Engineer is responsible for deploying, monitoring, and maintaining machine learning models and systems in production environments. This course provides highly relevant skills for an MLOps Engineer by focusing on the operational aspects of artificial intelligence agents. You will learn to add tracing to an agent’s workflow to log its steps, which is fundamental for observability and debugging in a production setting. The course's detailed approach to evaluating agent performance, including inline evaluations during runtime and measuring metrics like plan quality and execution efficiency, directly translates to monitoring and improving the agents once they are deployed. Understanding how to assess the alignment of an agent’s goal plan and actions also helps ensure operational trustworthiness and reliability, which is paramount for successful MLOps practices.
Applied Artificial Intelligence Scientist
An Applied Artificial Intelligence Scientist bridges AI research and practical application, developing innovative AI solutions for real world problems. This course is highly relevant for an Applied Artificial Intelligence Scientist, providing hands on experience in building and evaluating data agents, which are cutting edge AI systems. You will learn to design multi agent workflows that plan tasks, retrieve context from diverse data sources, perform web searches, and synthesize results. The rigorous evaluation methodologies taught, including assessing context relevance, groundedness, and the alignment of an agent’s goal plan and actions, are fundamental for ensuring the practical efficacy and trustworthiness of deployed AI. This understanding is key to translating theoretical AI advancements into robust and impactful applications. This role typically requires an advanced degree.
Solutions Architect Artificial Intelligence
A Solutions Architect Artificial Intelligence designs and oversees the implementation of complex AI solutions. This course is highly beneficial for a Solutions Architect Artificial Intelligence as it provides a practical framework for building and evaluating sophisticated data agents. You will learn to design multi-agent workflows, identify sub-agents for specific tasks like data connection, summarization, or visualization, and integrate them with various data sources, including structured and unstructured data within Snowflake. This architectural understanding is crucial for creating scalable and effective AI systems. Furthermore, the course teaches you how to add observability and conduct thorough evaluations, assessing metrics such as goal plan and action alignment, which are essential for ensuring the robustness, performance, and trustworthiness of the overall solution architecture.
Developer Advocate Artificial Intelligence
A Developer Advocate Artificial Intelligence inspires and helps developers utilize AI technologies effectively, often requiring deep technical understanding and excellent communication. This course provides highly relevant, hands on experience for a Developer Advocate Artificial Intelligence by teaching the end to end process of building and evaluating data agents. You will master architecting multi agent workflows, integrating with data sources like Snowflake, and implementing observability and tracing. The ability to articulate how agents plan, perform web searches, summarize, and visualize results, along with the critical methods for evaluating their performance—including goal plan and action alignment and inline evaluations—will empower you to guide other developers. Understanding these technical nuances is essential for creating compelling content and providing robust support to the developer community.
Natural Language Processing Engineer
A Natural Language Processing Engineer develops systems that enable computers to understand, interpret, and generate human language. This course is directly relevant to a Natural Language Processing Engineer as it involves critical NLP tasks within the context of data agents. You will gain experience in designing agents that respond to users’ queries, summarize results, and use an LLM as a judge approach to assess the quality of generated text. The course's focus on evaluating the groundedness of final answers and their relevance to user queries is fundamental to NLP quality assurance. Additionally, the ability to pull context from various data sources and perform web searches to inform agent responses significantly enhances an NLP Engineer's capacity to build robust language driven applications.
Prompt Engineer
A Prompt Engineer specializes in crafting, refining, and optimizing prompts for large language models to achieve desired outputs and behaviors. This course offers direct and practical experience relevant to a Prompt Engineer by explicitly covering the improvement of an agent’s performance through updating its prompt. You will gain a deep understanding of how prompt design influences an agent’s decision-making and output quality, particularly in scenarios involving planning, web searches, data summarization, and visualization. The course emphasizes evaluating the relevance and groundedness of agent responses using an LLM as a judge approach, which provides a concrete framework for assessing the effectiveness of prompt modifications. This detailed evaluation capability empowers you to systematically iterate and enhance prompts for optimal agent performance.
Artificial Intelligence Ethics and Trustworthiness Specialist
An Artificial Intelligence Ethics and Trustworthiness Specialist focuses on ensuring AI systems are developed and deployed responsibly, considering ethical implications and building user trust. This course is particularly valuable for an Artificial Intelligence Ethics and Trustworthiness Specialist because it explicitly addresses how data agents can be trustworthy when their goal plan and actions are properly aligned. You will learn to evaluate the groundedness of an agent’s final answer and its relevance to user queries, which are crucial aspects of transparency and accountability. The course’s detailed methodology for measuring the alignment of an agent’s goal plan and actions, through metrics like plan quality and logical consistency, provides concrete tools for assessing and improving the ethical behavior and reliability of AI agents, fostering greater trust in intelligent systems.
Artificial Intelligence Product Manager
An Artificial Intelligence Product Manager defines the strategy, roadmap, and features for AI powered products. This course provides a comprehensive understanding of the technical intricacies involved in building and evaluating data agents, which is invaluable for an AI Product Manager. While not focused on coding, knowing how complex multi-agent workflows are designed, how they connect to diverse data sources including structured and unstructured data in Snowflake, and how their outputs are summarized or visualized, allows for more informed product decisions. The emphasis on evaluating agent performance, including trustworthiness, relevance, and groundedness, helps in defining quality metrics and understanding product limitations. This insight enables effective communication with engineering teams and clearer feature definitions for AI products.
Data Engineer
A Data Engineer builds and maintains robust data pipelines and infrastructure. While the primary focus of a Data Engineer is often on data movement and storage, this course may be useful by focusing on how data agents interact with diverse data sources. You will learn how agents connect to databases and files, retrieve information from structured and unstructured data stored in Snowflake via a Cortex sub agent, and pull context for user queries. This understanding of how intelligent systems consume and process data provides valuable insight into designing data infrastructure that efficiently serves AI applications. Knowledge of agents’ data retrieval and summarization capabilities helps in optimizing data delivery for AI driven insights and applications.
Data Scientist
A Data Scientist analyzes complex datasets to extract insights, build predictive models, and inform strategic decisions. This course may be useful for a Data Scientist by providing an understanding of how data agents can programmatically gather, process, and summarize information from various sources, including web searches and structured data in Snowflake. While not focused on core statistical modeling, the course's emphasis on evaluating the relevance of collected data and the groundedness of agent outputs is directly applicable to data quality and validation processes a Data Scientist frequently undertakes. Understanding the mechanisms of how agents generate responses can help a Data Scientist better interpret and leverage outputs from AI driven information retrieval systems for their analytical tasks.

Reading list

We've selected 50 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Building and Evaluating Data Agents.
Is specifically dedicated to LangGraph and building AI agents using this framework. It provides a comprehensive guide with practical examples and resources for building dynamic AI agents. This book is highly relevant for anyone focusing on LangGraph and offers in-depth knowledge and practical skills.
Offers a rigorous and broad treatment of multi-agent systems from a computer science perspective, integrating concepts from game theory, economics, and logic. It is an excellent resource for advanced undergraduates and graduate students, providing a deeper theoretical understanding. It is often used as a textbook in academic settings.
Offers a comprehensive introduction to the Snowflake Data Cloud, covering its architecture, design, and deployment. It's an excellent resource for gaining a broad understanding of the platform and is suitable for IT professionals, business analysts, and aspiring data professionals. It provides hands-on SQL examples and explains how Snowflake can be used for data analytics and data science. This book can serve as a foundational text or a valuable reference.
Provides a comprehensive guide to prompt engineering, covering techniques for crafting effective inputs to generative AI models. It's particularly useful for understanding how to obtain reliable and predictable results, which is crucial for both beginners and those looking to deepen their practical skills. This book is valuable as a current reference for anyone working with generative AI.
Is considered a foundational text in the field of observability. It provides a comprehensive overview of what observability is, how it differs from traditional monitoring, and its importance in modern software systems. It's highly valuable for gaining a broad understanding and must-read for anyone serious about the topic. The book also discusses the cultural shifts required for adopting observability practices within an organization.
Practical guide to using the LangChain framework, which foundational component for building applications with LangGraph. It covers the fundamentals of LLMs, generative AI, and prompt engineering within the context of LangChain. Understanding LangChain prerequisite for effectively using LangGraph, making this book essential for anyone looking to build applications in this space.
Snowpark allows data engineers and data scientists to use languages like Python within Snowflake. comprehensive guide to using Snowpark with Python, covering various workloads, building data pipelines, and deploying machine learning models. It's essential for those looking to leverage Snowpark's capabilities in Snowflake.
This practical guide introduces data engineering specifically on the Snowflake platform. It covers essential tasks such as data ingestion, transformation using SQL and Snowpark, orchestration with streams and tasks, and performance optimization. It's a great resource for data engineers looking to build and maintain data pipelines in Snowflake. The book includes hands-on examples and design tips.
As OpenTelemetry is the emerging standard for cloud-native observability, this book is highly relevant for contemporary practices. It offers a practical guide to setting up and operating OpenTelemetry, covering tracing, metrics, and logging. It's a must-read for those implementing observability with open standards.
Focuses specifically on optimizing performance and managing costs in Snowflake. It's a practical guide for identifying and resolving performance bottlenecks and understanding tuning options. This valuable resource for professionals managing and optimizing Snowflake environments.
Comprehensive guide focused on the architectural aspects of Snowflake for cloud data warehousing. It covers core concepts, schema design, security, performance optimization, and data governance. The book provides real-world examples, making it particularly useful for understanding practical applications. It's a strong resource for those looking to deepen their understanding of Snowflake's architecture and management.
Is widely considered a standard introductory textbook for multi-agent systems. It provides a comprehensive overview of the field, covering key concepts, architectures, and applications. It's highly suitable for undergraduates and those new to the field, laying a solid foundation for further study.
Focuses on building production-ready AI agents and multi-agent systems using LLMs. It covers essential components of an agent, including knowledge management, memory, planning, and tool use. The book specifically mentions using state-of-the-art tools like LangChain, Prompt Flow, AutoGen, and CrewAI, which are highly relevant to the LangGraph ecosystem. This book serves as a practical guide for implementing the concepts that LangGraph facilitates.
Focuses on applying observability specifically in cloud-native environments, which contemporary and highly relevant topic. It covers using open-source tools like OpenTelemetry, Prometheus, and Grafana. It's a practical guide for those working with cloud-native applications.
Dives into the advanced features and functionalities of Snowflake, including Snowpark and the Native App Framework. It's designed for users who want to leverage the full potential of Snowflake for complex data operations, application development, and machine learning. This book is suitable for experienced Snowflake users looking to deepen their expertise.
Complementing other OpenTelemetry books, this resource specifically targets cloud-native environments and emphasizes the combination of tracing, metrics, and logging. It is highly relevant for contemporary cloud deployments and provides practical guidance on using OpenTelemetry effectively.
Dbt (data build tool) is frequently used with Snowflake for data transformation. focuses on using dbt with SQL to build data platforms. It's highly relevant for those working on data transformation pipelines in Snowflake and provides practical guidance on using dbt effectively.
This handbook provides a guide to integrating and implementing LLMs using the LangChain framework. It covers building various applications like chatbots and document analysis systems. As LangGraph builds upon LangChain, this handbook valuable resource for understanding the broader framework.
This forthcoming book (at the time of this response, available in early access) focuses on building multi-agent systems using the AutoGen framework. It is highly relevant for those interested in practical, contemporary applications of MAS and AI agents, particularly software developers and engineers.
Provides a hands-on approach to prompt engineering with a focus on using the OpenAI API. It's particularly relevant for undergraduate students, graduate students, and working professionals who want to programmatically interact with LLMs. It serves as a practical guide for implementing prompt engineering techniques in applications.
Aimed at those preparing for the SnowPro Advanced Architect Certification, this book provides in-depth coverage of advanced Snowflake features, architecture, data engineering, and performance optimization. It's a valuable resource for experienced Snowflake users looking to validate their skills and deepen their understanding of advanced topics.
Delves into the fundamental concepts of data systems, including storage, processing, and scalability. While not Snowflake-specific, it provides a deep understanding of the underlying principles that power platforms like Snowflake. It's highly recommended for those looking to deepen their understanding of data architecture and distributed systems. This book offers valuable background and advanced knowledge.
Offers a practical, hands-on approach to prompt engineering specifically with ChatGPT. It's an excellent resource for high school and undergraduate students getting started, providing clear examples and exercises. It serves as a useful introductory guide and additional reading to complement foundational AI courses.
Explores analytics engineering using SQL and dbt, which is directly applicable to building data models in Snowflake. It covers structuring dbt projects, collaborating on data models, and fitting dbt into data warehousing architectures. It's a valuable resource for analytics engineers and data professionals using Snowflake and dbt.
Focuses on the creative aspects of prompt engineering and generating diverse language outputs. It's a good fit for students and professionals looking to go beyond basic prompting and explore more advanced techniques for creative content generation. It adds breadth by covering applications in areas like creative writing and podcasting.
Another book dedicated to distributed tracing, this offers a comprehensive guide from a key figure in the OpenTracing and Jaeger projects. It delves into the theoretical foundations and practical implementation of tracing at scale. It's excellent for deepening understanding and strong reference.
Delves into implementing the Snowflake Data Cloud with a focus on data monetization and democratization. It covers building a Data Cloud with security at the center and leveraging features like Data Share and Marketplace. It's suitable for professionals looking to understand the broader business applications of Snowflake.
Provides a practical guide to adopting OpenTelemetry across an organization, focusing on the value and implementation challenges. It's a good resource for understanding how to integrate OpenTelemetry into existing systems and workflows.
Offers a strategic approach to implementing observability within an enterprise setting, addressing planning and execution. It's useful for understanding the organizational aspects and challenges of adopting observability at scale.
This guide aims to make prompt engineering accessible with a step-by-step approach. It is well-suited for beginners and those new to the field, including high school students and those in introductory undergraduate programs. It provides practical tips and is useful for gaining a broad understanding of how to formulate effective AI prompts.
A comprehensive guide aimed at making prompt engineering accessible to a wide audience. It covers various techniques and applications for leveraging AI language models effectively. is useful for high school students through working professionals seeking a thorough introduction and practical guidance.
Focusing on data modeling within the Snowflake environment, this book is valuable for those looking to design and implement efficient data structures. It covers universal data modeling techniques and their application to Snowflake, which is crucial for optimizing performance and organization. useful reference for data engineers and architects working with Snowflake.
Explores the fundamental concepts, technologies, and practical applications of LLMs for building intelligent apps and agents. It discusses mainstream architectural frameworks and specifically mentions using AI orchestrators like LangChain to create intelligent agents. This book provides a broader context for the types of applications that can be built using tools like LangChain and LangGraph.
This book, expected in 2025, focuses on embodied multi-agent systems, particularly in robotics. It covers perception, action, and learning, offering a unified framework. It is highly relevant for graduate students and researchers in robotics and machine learning interested in physical agent systems.
Offers practical techniques and solutions for building data warehousing solutions on Snowflake. It provides recipes for common tasks and challenges, making it a useful reference for practitioners working on specific implementations in Snowflake.
This guide offers quick tips and tricks for prompt engineering across different generative AI models, including text and image generation models. It's a practical resource for users who want to improve their immediate results with various AI tools. It's suitable for all levels looking for actionable advice.
For those working with Kubernetes, this book connects observability with security, highlighting their combined importance in cloud-native applications. It offers a holistic view and is valuable for understanding the role of observability in a secure Kubernetes environment.
This handbook provides a comprehensive overview of research on multi-agent systems, with a focus on organizational models. It covers various perspectives and valuable reference for researchers and advanced practitioners interested in the structure and dynamics of agent organizations.
While not solely focused on prompt engineering, this book provides a strong foundation in understanding how LLMs work, which is essential for effective prompting. It's suitable for undergraduate and graduate students, offering technical insights into language understanding and generation. It serves as valuable background reading for those wanting to understand the underlying mechanisms of the models they are prompting. Expected publication in September 2024.
Published in 2020, this book focuses on the coordination and control of multi-agent systems, including topics like synchronization and consensus. It is particularly relevant for those interested in the control aspects of MAS and can be useful for graduate students and researchers in engineering and computer science.
SRE principles are closely related to observability, as SRE teams heavily rely on signals from systems to ensure reliability. This book, a classic in the SRE field, provides valuable context on how observability is used in practice in large-scale systems. It's excellent for understanding the operational strategies that observability supports.
Logs are a fundamental signal in observability. focuses on practical logging with modern tools and environments like Kubernetes. It's a valuable resource for understanding and implementing effective logging strategies as part of an observability system.
Explores prompt engineering within the broader context of generative AI and touches upon ethical considerations. It's relevant for all levels, providing a balanced view of the technical aspects and the societal impact of generative AI. It's useful for gaining a broader understanding and considering the responsible use of AI.
This handbook is geared towards engineers working with LLMs, covering the process from concept to production. It provides a deeper technical understanding of integrating and managing LLMs, which is relevant for prompt engineers working in a development context. It is best suited for graduate students and working professionals.
This textbook provides a practical overview of the techniques used in web search.
Explores the application of iterative learning control (ILC) for coordinating multi-agent systems. It bridges theory and practice, showcasing applications in areas like power grids and sensor networks. It is suitable for graduate students and researchers interested in control theory applied to MAS.
Covers both the theory and applications of multi-agent systems, providing a balanced perspective. It good resource for gaining a solid understanding of the fundamental concepts and how they are applied in various domains.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Building and Evaluating Data Agents.

Coursera Buyer Protection & Guarantee

Verified partner policies & purchase protections

Accredited University Partner
Free Trial & Audit

7-Day Free Trial & Free Audit

7-day free trial on monthly Coursera Plus subscriptions; free audit option available on most individual courses to explore video lectures and readings at no charge.

Return & Refund Policy

14-Day Refund Guarantee

14-day refund window on annual Coursera Plus subscriptions and single-course purchases prior to certificate issuance. Monthly subscriptions do not offer refunds once billed.

Buyer Protections

Verified Academic & Industry Partner

Accredited university and industry certifications (e.g. Stanford, Google, IBM, Yale), secure SSL payment processing, and verifiable digital certificate links.

Key Purchase Protections
14-day refund window on annual Coursera Plus and single courses
7-day free trial on monthly Coursera Plus subscriptions
Free course audit option for lectures and readings
Verified certificates from top universities & companies
OpenCourser Verified Partner Policy details last reviewed: 2026-10-22
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser