Sorry, this page is no longer available
Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
Roman Savin

Course FAQ

1. What is the primary purpose of this course?

To help you find a QA job ASAP.

2. Do I need to have a computer science degree or QA experience to get a job?

Many, if not most, QA engineers came from the fields unrelated to computer science. There are former lawyers, civil engineers, accountants, customer support specialists, teachers, salespeople, etc. who got their QA jobs after taking a class on software testing.

Read more

Course FAQ

1. What is the primary purpose of this course?

To help you find a QA job ASAP.

2. Do I need to have a computer science degree or QA experience to get a job?

Many, if not most, QA engineers came from the fields unrelated to computer science. There are former lawyers, civil engineers, accountants, customer support specialists, teachers, salespeople, etc. who got their QA jobs after taking a class on software testing.

BTW, the great option to start QA career is to do internal transfer within your company — so many companies have websites, and somebody needs to develop and test them.

QA is not rocket science. — in fact, our profession is the easiest way to join the software industry.

Having said that we want to stress that QA studies and QA work DO require things that not everybody has: attention to details, perseverance, patience, curiosity, and ability to learn new concepts/approaches.

3. What this course consists of?

a. 45 video lectures PACKED with materials and practical exercises. Lectures 40-45 (inclusively) cover our Job Hunting System designed to help you stay ahead of your competition in the job market.

b. 45 homework assignments (PDF file with homework is attached as a Resource to each lecture).

c. 45 quizzes.

d. Web-based training software

e. Professional Exam for Software QA/Test Engineer (178 questions on QA, Manual Testing, QA automation and software development)

e. Templates and examples of QA documents (including first QA resume template) that you can use for your career.

We urge you to

- execute all practical exercises as you study video lectures.

- take all quizzes

- complete all homework assignments.

Once again, if you want to be ahead of your competition on a junior tester job market, you have to study hard and do all practical exercises, homework, and quizzes. This course is big, comprehensive and it’s designed to help you get a job ASAP, but you’ll have to invest your effort and attitude… and all good things will come your way.

This course is based on a bestselling book by Roman Savin and Ruslan Desyatnikov How to Become a QA Tester in 30 days and on previous Roman Savin’s books (How to Become a Software Tester and Тестирование дот ком).

4. Would I benefit from this course if I’m already employed as a software tester?

Many employers have bought this course and its predecessor to refresh knowledge of their test engineers or to convert non-QA employees into QA pros.

So, yes, you will.

5. Why do you use QA Tester in the name of the course? Aren't QA and Testing different things?

The purpose of Quality Assurance is to prevent bugs. The purpose of testing is to find and address bugs that were not prevented. So, while QA and Testing are different things, they both deal with and improve software quality. In the software industry, titles QA, Tester, and QA Tester are used interchangeably.

6. Do you guarantee that I’ll find a QA job after your course?

We cannot guarantee that because it's irresponsible to do so. There are too many variables: job market, student’s attitude, student’s intellect, student’s persistence in learning, student’s ability to take rejection, etc. etc.

But what we CAN guarantee is that you’ll get TOP QA Education and this course will provide you with all the knowledge needed to start and successfully proceed with your QA/Testing career.

7. Some people say that manual QA is no longer needed.

Nope. QA automation is a great thing, but it merely does what you program it to do. QA automation has no intelligence of its own. Hence in many cases, e.g., when software has a lot of moving parts, usage of QA automation makes no sense, and the only way to test software is to involve manual testers.

We recommend learning manual QA first, then getting a job, then moving to QA automation.

Manual QA engineers will always be needed before AI is self-aware, but in that case, we are in big trouble in anyway :)

8. Do you cover QA automation?

QA automation means a broad spectrum of tools, techniques, and approaches. Here is what we'll do in this course: we'll have three lectures about QA automation where you'll learn how to write QA automation correctly and how to find good cases for its usage in other words, you'll learn how to work smart with whatever automation tools you'll choose in the future.

9. Are there Junior QA jobs? How much can I make from the start?

You'll find plenty of junior positions if you know how and where to search we will teach you that. As of April Not so bad for a start.

10. When I look at QA positions, they require at least some experience.

We’ll teach you how to translate your non-QA experience into QA experience, and how to get actual QA experience that you can put into your resume.

11. How is this course different from hundreds of other QA courses, including free ones?

- This course was created by PayPal, Evernote, and Chegg alumni Roman Savin. His works on QA/Testing enabled thousands of people around the world to get started with QA career.

- This course is about action – there is We are going to give you the methodologies, approaches, solutions, suggestions, recommendations, ideas, brain positioning and document examples and templates that have immediate

- You'll learn QA/Testing and practice your QA skills with innovative web-based training software In other words, you'll practice while learning, and learn while practicing.

- The course videos were produced by professionals in a professional studio on professional equipment. The voice over belongs to professional American narrator.

- In addition to basic QA/Testing training, e.g., test case writing or bug filing, you’ll get familiar with many etc.

- In this course, we’ve also covered work of other participants of the software development life cycle (product managers, coders, DB admins, release engineers, etc.), so you can understand how things work in the software companies, why bugs appear and what can we do to prevent them.

Welcome to the course and thanks for choosing us,

Roman Savin and QA Mentor team.

Enroll now

What's inside

Learning objectives

  • How to test computer software (software testing). we'll cover black and grey box approaches
  • How to improve the software development process (quality assurance). we'll extensively cover sdlc
  • How to work with databases, version control, builds, log files, interpreters, automation helpers, etc. etc.
  • How to professionally approach qa automation for functional and regression testing
  • How to write a killer resume by converting your non-qa experience
  • How to gain actual qa experience that you can put into your resume
  • How to effectively hunt for a qa position anywhere in the world
  • How to successfully pass qa interview and get your first qa job

Syllabus

Unit 1. Bugs Are Everywhere!
  • Quick Intro

  • 3 Conditions of a Bug's Existence

  • The Gist оf Testing

  • Spec, Spec, Spec

  • Software Bugs and Spec Bugs

  • Other Sources of Expected Results

  • Why Do We Call Them "Bugs"?

  • Lesson Recap

  • Homework

  • Quiz

Read more
  • Quick Intro

  • Why We Cannot Test 100% of Software

  • Testing and QA

  • Lesson Recap

  • Homework

  • Quiz

  • Quick Intro

  • Test Case Structure

  • Results of the Test Case Execution

  • Useful Attributes of the Test Case

  • Data-Driven Test Cases

  • Lesson Recap

  • Homework

  • Quiz

  • Maintainability of Test Cases

  • Тhe Number of Expected Results Inside One Test Case

  • Lesson Recap

  • Homework

  • Quiz

  • Bad Test Case Practices

  • Lesson Recap

  • Homework

  • Quiz

  • Test Suites

  • Lesson Recap

  • Homework

  • Quiz

  • States of a Test Case

  • Тhe Importance of Creativity

  • 3 Factors That Affect Test Cases

  • Checklists

  • Lesson Recap

  • Homework

  • Quiz

  • Quick Intro

  • Once upon a Time in California or How Startups Are Born

  • Who Generates Ideas About Software

  • Why We Should QA Every Stage of SDLC

  • Lesson Recap

  • Homework

  • Quiz

  • Product Managers, MRD, PRD, BRD, Requirements

  • Essential Spec Attributes

  • 7 Rules for Writing Solid Specs

  • Breaking Rule #1: Clarity of Details and Definitions

  • Breaking Rule #2: No Room for Misinterpretation

  • Breaking Rule #3: Absence of Internal/External Conflicts

  • Breaking Rule #4: Solid, Logical Structure

  • Breaking Rule #5: Completeness

  • Breaking Rule #6: Compliance with Laws

  • Breaking Rule #7: Compliance with Business Practices

  • Specs and Technical Instructions

  • Lesson Recap

  • Homework

  • Quiz

  • 3 Spec Statuses

  • Why We Need Spec Freeze

  • Dealing with Spec Misinterpretation

  • Examples

  • Mock-ups

  • Process Flowcharts

  • Lesson Recap

  • Homework

  • Quiz

  • Quick Intro

  • Architecture of a Web-based application

  • 8 Main Reasons Why Bugs Appear in the Software Code

  • Lesson Recap

  • Homework

  • Quiz.

  • 10 Measures to Enhance Programming Practices

  • 1. Good Hires

  • 2. Friendly Environment

  • 3. Code Inspections

  • 4. Coding Standards

  • 5. Realistic Schedules

  • 6. Availability of Documentation

  • Lesson Recap

  • Homework

  • Quiz

  • 7. Unit Testing

  • Quick Stop: a Concept of the Bug Cost

  • 8. Smart Refactoring

  • 9. Love Thy Employees. A Google Story

  • 10. Business Philosophy

  • Lesson Recap

  • Homework

  • Quiz

  • Programming and Bug Fixing

  • 3 Main Types of Software Bugs

  • Syntax Bugs

  • User Interface (UI) Bugs

  • Logical Bugs

  • UI or Logical Bug? Simple Question or Not?

  • Version Control for Test Cases

  • Test Case Review Meetings

  • Lesson Recap

  • Homework

  • Quiz

  • Code Freeze

  • Remember This for the Rest of Your Testing Career

  • From Sanity Test to Certification Test

  • Lesson Recap

  • Homework

  • Quiz

  • Quick Intro

  • Release Types

  • Differences Between Major and Minor Releases

  • Version Numbering

  • Lesson Recap

  • Homework

  • Quiz

  • Quick Stop: DB Data and DB Schema

  • ShareLane Super Duper, Inc. The Beginning

  • ShareLane Architecture

  • Using Control Version System

  • Lesson Recap

  • Homework

  • Quiz

  • Quick Stop: External and Internal IP address

  • Software Builds

  • Releasing v. 1.0 to Production

  • Release 2.0 Is Out. And It's a Disaster

  • Lesson Recap

  • Homework

  • Quiz

  • Trunk and Branches in Version Control

  • Branch States

  • Production bug = Test Case

  • Postmortem for Bugs on Prod

  • Beta Release

  • Release Safety

  • Lesson Recap

  • Homework

  • Quiz

  • Maintenance

  • The Big Picture Of The Cycle

  • Introduction to Agile and Scrum

  • Lesson Recap

  • Homework

  • Quiz

  • Quick Intro

  • Research

  • Test Planning

  • Test Execution

  • Test Education And Reality

  • Lesson Recap

  • Homework

  • Quiz

  • Quick Intro

  • Black Box Testing

  • White Box Testing

  • Quick Stop: Test Coverage

  • Grey Box Testing

  • Lesson Recap

  • Homework

  • Quiz

  • Functional Testing

  • UI Testing

  • Usability Testing

  • Localization Testing

  • Load/Performance Testing

  • Security Testing

  • Compatibility Testing

  • Lesson Recap

  • Homework

  • Quiz

  • Quick Intro

  • Component Testing

  • Integration Testing

  • System (End-to-End) Testing

  • Lesson Recap

  • Homework

  • Quiz

  • By Positivity of Test Scenarios

  • By Time Of Test Execution

  • By Degree Of Automation

  • By Preparedness

  • Lesson Recap

  • Homework

  • Quiz

  • Quick Intro

  • The purpose of Bug Tracking System

  • List of BTS attributes

  • BTS Attributes: ID

  • BTS Attributes: Summary

  • BTS Attributes: Description

  • BTS Attributes: Attachment

  • BTS Attributes: Submitted By

  • BTS Attributes: Date

  • Lesson Recap

  • Homework

  • Quiz

  • BTS Attributes: Assigned To

  • BTS Attributes: Assigned By

  • BTS Attributes: Verifier

  • BTS Attributes: Component

  • BTS Attributes: Found On

  • BTS Attributes: Version

  • BTS Attributes: Build

  • BTS Attributes: DB

  • BTS Attributes: Comments

  • BTS Attributes: Severity

  • Lesson Recap

  • Homework

  • Quiz

  • BTS Attributes: Priority

  • BTS Attributes: Also Notify

  • BTS Attributes: Change History

  • BTS Attributes: Type

  • BTS Attributes: Status

  • Lesson Recap

  • Homework

  • Quiz

  • BTS Attributes: Resolution

  • Resolution: Reported

  • Resolution: Assigned

  • Resolution: Fix in Progress

  • Resolution: Fixed

  • Resolution: Fix is Verified

  • Resolution: Verification Failed

  • Resolution: Cannot Reproduce

  • Resolution: Duplicate

  • Resolution: Not a Bug

  • Resolution: 3rd Party Bug

  • Resolution: No Longer Applicable

  • Lesson Recap

  • Homework

  • Quiz

  • Bug Tracking Procedure

  • HTML Elements: Description and Potential Bugs

  • Text

  • Link

  • Image

  • Linked image

  • Text box

  • Text area

  • Password input box

  • Drop-down menu

  • Radio button

  • Checkbox

  • Submit button

  • Reset button

  • Lesson Recap

  • Homework

  • Quiz

  • Quick Intro

  • The Tester's Mental Attitude

  • Intro To Special Skills In Bug Finding

  • Lesson Recap

  • Homework

  • Quiz

  • Dirty List – White List

  • Test Tables

  • Flowcharts

  • Lesson Recap

  • Homework

  • Quiz

  • Risk Analysis

  • Lesson Recap

  • Homework

  • Quiz

  • Equivalent Classes

  • Boundary Values

  • When You Start To Implement Testing Techniques

  • Lesson Recap

  • Homework

  • Quiz

  • Quick Intro

  • Test Estimates

  • Entry and Exit Criteria

  • Test Plan

  • Aggressive Testing From Jason Fisher

  • Lesson Recap

  • Homework

  • Quiz

  • Quick Intro

  • How to Select Test Suites for Regression Testing

  • Resolving The Main Challenge of Regression Testing

  • When Regression Testing Stops

  • Lesson Recap

  • Homework

  • Quiz

  • Quick Intro

  • A Story About the Merciless Automator, Benny M

  • WHAT to Automate Versus HOW to Automate

  • Helpers

  • Lesson Recap

  • Homework

  • Quiz

  • Scripts for component automation

  • Scripts for End-to-End Automation

  • Lesson Recap

  • Homework

  • Quiz

  • Essential Questions to Ask BEFORE Writing Test Automation

  • Designing and Writing Test Automation

  • Lesson Recap

  • Homework

  • Quiz

  • Why You Have a REAL Chance to Find a Job in Software Testing

  • Mental Tuning

  • Job Hunting Activities

  • Lesson Recap

  • Homework

  • Quiz

  • Quick Intro

  • 6 Steps to Write Your First QA Resume

  • Lesson Recap

  • Homework

  • Quiz

  • Working with Recruiters

  • Launching Campaign for Self-Promotion

  • Lesson Recap

  • Homework

  • Quiz

  • Quick Intro

  • Do Your Homework

  • Involve Your Network

  • Use Company Software

  • Look GOOD and Have a GOOD Sleep

  • Phone Screening and Phone Interview

  • Lesson Recap

  • Homework

  • Quiz

  • Arrive on Time

  • This is Just Business

  • Be Friendly and Considerate

  • If the Interviewer Wants to Talk, Let Him Talk

  • NEVER Speak Negatively

  • The Interviewer Is Analyzing You as a Potential Coworker

  • Honesty and Sincerity Win Hearts

  • Don't Get Upset or Angry

  • Never Cancel an Interview Until You Accept a Job Offer

  • Sometimes You Should Postpone Your Interview

  • Remember That an Interview Is a Dialog, Not an Interrogation

  • Lesson Recap

  • Homework

  • Quiz

  • Use Professional Terms

  • Remember Your Mantra

  • Typical QA Interview Questions and Recommended Answers

  • Make a Speech at the End of Your Interview

  • Always Send a Thank-You Email

  • Dealing with Rejections

  • What Happens After the Interview

  • GOOD LUCK and GODSPEED!

  • Lesson Recap

  • Homework

  • Quiz

This exam covers the most important things that you've learned. Please, take it as many times as needed until you pass it.

Save this course

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

Activities

Coming soon We're preparing activities for Roman Savin's Complete Course on Software QA and Testing.. These are activities you can do either before, during, or after a course.

Career center

Learners who complete Roman Savin's Complete Course on Software QA and Testing. will develop knowledge and skills that may be useful to these careers:
Software Tester
A Software Tester is responsible for finding and addressing bugs to ensure software functions as intended and meets user expectations. Roman Savin's course is an ideal starting point for anyone serious about becoming a Software Tester, covering both manual and foundational automation testing. You will master the gist of testing, understand different types of software testing like functional, UI, and usability testing, and learn how to meticulously execute test preparations. The course emphasizes practical skills, including using web-based training software and detailed bug tracking procedures, providing you with all the knowledge needed to start and successfully proceed in a Software Tester career, making you highly competitive in the job market.
Software Quality Assurance Engineer
A Software Quality Assurance Engineer plays a critical role in preventing defects and ensuring the reliability and functionality of software products. This comprehensive course prepares you to excel in this field by teaching you how to improve the software development process, extensively covering the Software Development Life Cycle (SDLC) and various testing approaches. You will learn to create effective test cases and test suites, understand bug tracking procedures, and identify different types of software bugs. The course's practical exercises and job hunting system, including resume templates and interview preparation, are designed to help you secure a Software Quality Assurance Engineer position swiftly, equipping you with the foundational knowledge to ensure high-quality software delivery.
Quality Assurance Analyst
A Quality Assurance Analyst focuses on analyzing software quality, processes, and potential risks to prevent defects and improve overall development efficiency. This course, Roman Savin's Complete Course on Software QA and Testing, aligns perfectly with the analytical demands of this role. It delves deeply into the Software Development Life Cycle, teaching you how to evaluate and improve processes at every stage. You will learn about risk analysis, test planning, and the essential attributes of specs, enabling you to identify potential issues early. The comprehensive bug tracking system and practical exercises foster the attention to detail, perseverance, and curiosity vital for a successful Quality Assurance Analyst.
Automation Test Engineer
An Automation Test Engineer designs, develops, and implements automated tests to streamline the testing process and improve efficiency. While recommending manual QA first, this course provides a strong foundation for transitioning into an Automation Test Engineer role. It explicitly covers how to professionally approach QA automation for functional and regression testing, including three dedicated lectures on writing automation correctly and identifying optimal use cases. You will gain insights into scripts for component and end-to-end automation, and learn essential questions to ask before writing test automation, preparing you to leverage tools and techniques effectively in this advanced area of software quality.
User Acceptance Tester
A User Acceptance Tester validates software from an end-user perspective, ensuring it meets business requirements and user needs before release. For aspiring User Acceptance Testers, this course offers invaluable insights into the testing process. It covers how to create effective test cases, conduct UI and Usability Testing, and meticulously track bugs, all crucial for simulating real-world user scenarios. Understanding the Software Development Life Cycle and the common reasons why bugs appear helps you approach testing with a deeper perspective. The attention to detail and ability to learn new concepts emphasized by the course are essential for ensuring a seamless and satisfactory user experience.
Quality Control Specialist
A Quality Control Specialist monitors and evaluates products or services to ensure they meet established quality standards and specifications. This course provides comprehensive training in the principles of quality, particularly within the software domain, making it highly relevant for a Quality Control Specialist. You will learn to identify different types of software bugs, understand the importance of clear specifications, and master test execution techniques. The lessons on test cases, bug tracking, and various testing methodologies directly apply to ensuring product integrity. This expertise helps build a foundation in systematic quality assessment, benefiting organizations seeking to uphold rigorous quality benchmarks across their offerings.
Application Support Specialist
An Application Support Specialist provides technical assistance to users, troubleshooting software issues and escalating complex problems. This course is highly beneficial for an Application Support Specialist, as it provides a deep understanding of how software is developed and tested. You will learn about the "3 Conditions of a Bug's Existence," different types of software bugs, and the comprehensive bug tracking procedure from Unit 5, enabling you to accurately diagnose issues and communicate effectively with development teams. Understanding the Software Development Life Cycle and testing methodologies will empower you to quickly discern between user errors and genuine software defects, enhancing your problem-solving capabilities.
Business Analyst
A Business Analyst bridges the gap between business needs and technical solutions, primarily by defining and documenting requirements. This course may be useful for a Business Analyst, as it offers a deep dive into the initial stages of the Software Development Life Cycle, specifically addressing "Product Managers, MRD, PRD, BRD, Requirements" and the "7 Rules for Writing Solid Specs" (Lesson 9). Understanding how poor specifications lead to software bugs and the rigorous processes of quality assurance allows a Business Analyst to write clearer, more complete requirements, thereby preventing costly issues downstream and fostering better collaboration with QA teams.
Technical Support Engineer
A Technical Support Engineer diagnoses and resolves complex technical issues for customers, often serving as a key liaison between users and product development. For an aspiring Technical Support Engineer, this course may be useful, especially its detailed exploration of the Software Development Life Cycle (Unit 3). You will learn about the "8 Main Reasons Why Bugs Appear in the Software Code" and comprehensive bug tracking procedures (Unit 5), which are critical for effective troubleshooting and accurate reporting. Understanding testing methodologies and how software is built helps you provide more informed support and efficiently escalate persistent bugs to the appropriate teams.
Product Manager
A Product Manager drives the strategy, roadmap, and feature definition for a product, often requiring a strong understanding of the development lifecycle. This course may be useful for a Product Manager, especially its extensive coverage of the Software Development Life Cycle in Unit 3, including "Who Generates Ideas About Software" and the critical role of specifications (MRD, PRD, BRD). Learning "why bugs appear and what can we do to prevent them" equips a Product Manager to champion quality from the outset, leading to better product outcomes and more effective collaboration with engineering and QA teams. This role typically requires an advanced degree or significant industry experience.
Scrum Master
A Scrum Master facilitates Agile development teams, ensuring adherence to Scrum principles and removing impediments to progress. This course may be useful for a Scrum Master, as it includes an "Introduction to Agile and Scrum" (Lesson 20) and offers a deep understanding of the "Software Development Life Cycle" from a quality perspective. Knowledge of test cases, bug tracking, and various testing types (Units 2, 4, 5) empowers a Scrum Master to better support the team's quality efforts, foster effective collaboration between developers and testers, and guide the team towards delivering high-quality, reliable software. This role often requires prior experience and certifications.
Project Coordinator
A Project Coordinator assists project managers in planning, organizing, and executing projects, often within a technical domain. This course may be useful for a Project Coordinator, providing a comprehensive overview of the "Software Development Life Cycle" (Unit 3), including an "Introduction to Agile and Scrum." Understanding the various stages of software development, test planning, test estimates, and the importance of quality assurance helps a Project Coordinator anticipate potential bottlenecks, manage resources more effectively, and facilitate smoother communication between development and QA teams, contributing to successful project delivery.
Release Engineer
A Release Engineer manages the deployment and release of software, ensuring smooth transitions from development to production environments. This course may be useful for a Release Engineer as it provides critical context on the Software Development Life Cycle, covering topics directly relevant to their work such as "Software Builds," "Version Numbering," "Trunk and Branches in Version Control," and "Release Safety" (Unit 3). Understanding the interdependencies of testing, bugs, and releases, as detailed in the course, helps a Release Engineer appreciate the quality gates and potential impacts of their decisions, contributing to more stable and reliable software deployments.
Technical Writer
A Technical Writer creates clear, concise, and accurate documentation for software products, including user manuals, help guides, and release notes. This course may be useful for a Technical Writer, offering valuable insights into "Software Bugs and Spec Bugs" (Unit 1), various "Types of Software Testing" such as UI and Usability Testing (Unit 4), and the entire "Software Development Life Cycle" (Unit 3). This understanding helps a Technical Writer to better explain product features, anticipate user questions, identify potential pain points, and accurately document known issues, resulting in higher quality and more user-friendly support materials.
Database Administrator
A Database Administrator is responsible for the design, implementation, maintenance, and security of database systems. This course may be useful for a Database Administrator by providing insights into how databases intersect with software quality. It covers "How to work with databases" as a learning objective and touches on "DB Data and DB Schema" (Lesson 17), as well as "BTS Attributes: DB" within the bug tracking system (Unit 5). Understanding the QA perspective on database integrity, performance-related bugs, and how testers interact with database environments can help a Database Administrator anticipate issues and collaborate more effectively with quality assurance teams.

Reading list

We haven't picked any books for this reading list yet.

Share

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

Similar courses

Similar courses are unavailable at this time. Please try again later.
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