We may earn an affiliate commission when you visit our partners.
Course image
Jon Avis - SQL Instructor

Become an expert in SQL and PostgreSQL with this bestselling course.

SQL is one of the most in-demand tech skills across many industries so learning SQL is one of the best ways to boost your career. After taking this course you will be comfortable putting SQL and PostgreSQL on your resume/CV. 

In the age of Big Data, Data Analysis, Machine Learning and AI, demand for employees with SQL skills has never been higher and will only increase in the future. Stand out from the crowd and learn SQL today.

Read more

Become an expert in SQL and PostgreSQL with this bestselling course.

SQL is one of the most in-demand tech skills across many industries so learning SQL is one of the best ways to boost your career. After taking this course you will be comfortable putting SQL and PostgreSQL on your resume/CV. 

In the age of Big Data, Data Analysis, Machine Learning and AI, demand for employees with SQL skills has never been higher and will only increase in the future. Stand out from the crowd and learn SQL today.

PostgreSQL is the World’s most advanced open source relational database. It has a strong reputation for its reliability, data integrity and robustness. Because of this, PostgreSQL is one of the most popular and widely used database systems in the world. Companies who use PostgreSQL include Apple, Cisco, Spotify, Fujitsu, Skype, Netflix and IMDb.

A 2023 survey of stackoverflow developers reported that one third of developers used PostgreSQL on a daily basis in their professional lives, up from 25% in 2022. In 2023 PostgreSQL was the fastest growing database for the fourth year in a row. PostgreSQL experience really is a desired skill in the tech industry.

Here's what students are saying about this SQL course: 

Christopher says - "A really great course. The structure was well setup and the pacing was perfect. Each section and lecture flowed well in to the next. The exercises and solutions were very helpful. I was new to sql and postgresql before taking this course but I can now say that I am comfortable with both."

Erin Todd says - "I love this course so far very easy to follow and interactive."

Raymond Beauchamp says - "Amount of information is good for a beginner course. Was beneficial in increasing my understanding of the subject. Instructor was knowledgeable, and was easy to follow."

John Hellmann says - "Very concise lectures. Was a great course overall"

Abhinav Sharma says - "The explanations are really clear and the course structure is very well thought out."

By the end of this course you will know how to:

  • Create a relational database from scratch

  • Create, alter and delete tables from a database

  • Insert, update and delete data from a table

  • Retrieve data from a database using select queries

  • Filter data using where clauses and logical operators

  • Order and limit data retrieved from a table

  • Use aggregate functions and group data to gain more meaningful insights from a database

  • Relate tables together using database relationships

  • Use SQL join queries to retrieve data from multiple tables in a single query

  • Master complex SQL subqueries

  • Apply SQL string functions to data in PostgreSQL

  • Understand and use Conditional Statements and Functions, such as Case Expressions, in SQL and PostgreSQL

A step-by-step video of how to install and setup PostgreSQL is included and the setup is completely FREE.

The SQL code for each video is included as a resource so you can easily access it. 

There are SQL exercises, and video solutions, along the way to help you improve your knowledge and SQL skills. 

I will be actively answering any questions you may have about the course in the Q&A section. 

The course will be continually updated with more sections in the future.

Watch the free preview videos and start learning SQL - one of the most important and in-demand technology skills.

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • Master relational database fundamentals
  • Build a relational database from scratch
  • Use sql to perform data analysis
  • Perform complex sql queries using joins and subqueries
  • Understand database concepts such as database relationships
  • Confident putting sql and postgresql on your resume
  • Use conditional statements and functions in sql and postgresql
  • Practice your skills with multiple challenges throughout the course

Syllabus

This section is an introduction to the course - SQL and PostgreSQL for Beginners - with a few notes on the course.

An Introduction to the SQL and PostgreSQL Course

Read more

An overview of the SQL and PostgreSQL Course Curriculum

A Few Notes on this Course
This section is an introduction to SQL and PostgreSQL. By the end of the section you will know what SQL, databases and PostgreSQL are and have PostgreSQL installed and ready for the rest of the course

In this video you will learn the definition of a database and look at an example database.

We will learn what a relational database is, what a relational database management system is and also what SQL is and what it is used for.

In this video you will learn how to install and setup PostgreSQL for Mac.

In this video you will learn how to install and setup PostgreSQL for Windows.

We will go through Data Definition Language and create a database from scratch. By the end of this section you will be able to create, alter and delete tables from a PostgreSQL database using SQL.

An introduction to this section on Data Definition Language.

This video explains the structure of tables within relational databases.

This video explains the different data types that can be stored in databases.

In this video you will learn about the Primary Key and Foreign Key concepts and how they are used in databases.

In this video you will learn about Unique, Not Null and Check Constraints and how they are used in Relational Databases.

In this video you will learn how to create tables in SQL and PostgreSQL.

In this video you will go through creating the second table in the database.

In this video you will learn how to create tables that contain foreign keys in SQL and PostgreSQL.

In this video we will create the movie_revenues table as part of our database.

In this video you will learn what a junction table is and how to create them in SQL and PostgreSQL.

In this video you will learn how to modify a table by adding a new column using the alter command in SQL and PostgreSQL.

In this video you will learn how to modify a table by changing a columns data type using the alter command in SQL and PostgreSQL.

In this video you will learn how to delete tables from a relational database using SQL and PostgreSQL.

This is a challenge exercise on what you have learned in the Data Definition Language section of the course.

This is a solutions video for the Data Definition Language challenge.

This video is a summary of what you have learned in this section of the course on Data Definition Language.

In this section we will be inserting data into our movie database. By the end of this section you will know how to insert, update and delete data from a database using SQL.

This is an introduction video to the Data Manipulation Language Section of the course.

In this video you will learn how to insert data into a table in SQL and PostgreSQL using INSERT INTO.

In this video you will learn how to update pre-existing data in a table in SQL and PostgreSQL.

In this video you will learn how to delete data from a table in SQL and PostgreSQL.

In this video we will go through inserting data into our movie data database.

This is a Data Manipulation Language challenge and exercise video.

In this video we will go through the solutions to the Data Manipulation Language challenge.

This video is a summary of what you have learned in the Data Manipulation Language section of the course.

By the end of this section you will know how to retrieve data from tables using SQL select queries. You will also be able to use where clauses and order your data and so much more.

This video is an introduction to retrieving data from a table in SQL and PostgreSQL.

In this video you will learn how to use the SELECT query to extract data from tables in PostgreSQL.

In this video you will learn how to use WHERE clauses in PostgreSQL to filter results based on row values. 

This video explains logical operators in SQL and PostgreSQL.

Challenge 1: Select Queries
Solution 1: Select Queries

In this video you will learn how to use the IN and NOT IN operators in PostgreSQL to filter your extractions by multiple row values.

In this video you will learn how to use the LIKE operator in PostgreSQL to search for rows containing a specified pattern.

In this video you will learn how to use the BETWEEN operator in PostgreSQL to extract results for rows between two values. This is particularly useful for dates.

Challenge 2: Select Queries
Solution 2: Select Queries

In this video you will learn how to ORDER your result sets alphabetically and numerically as well as by date in PostgreSQL.

In this video you will learn how to LIMIT the number of results in your extraction as well as how to use an OFFSET in PostgreSQL.

In this video we will go through how to use FETCH in PostgreSQL.

In this video you will learn how to remove duplicate values from your result sets in PostgreSQL.

Challenge 3: Select Queries
Solution 3: Select Queries

In this video we will explain what NULL values are in SQL and how to handle them in your results set.

In this video you will learn how to set a column name alias in PostgreSQL. This will help to make your result set more readable.

In this video we will go through concatenation in SQL and PostgreSQL.

Challenge 4: Select Queries
Solution 4: Select Queries
Section Summary
By the end of this section you will know how to use SQL aggregate functions and how to group your data by table columns.

This is an introduction video to aggregate function and grouping data in SQL and PostgreSQL.

In this video you will learn what aggregate function are in SQL.

In this video you will learn how to use the COUNT aggregate function in SQL and PostgreSQL.

In this video you will learn how to use the SUM aggregate function in SQL and PostgreSQL.

In this video you will learn how to use the MIN and MAX aggregate functions in SQL and PostgreSQL.

In this video you will learn how to use the AVG aggregate function in SQL and PostgreSQL.

This is a aggregate functions challenge video.

This is the solutions walkthrough for the aggregate functions challenges.

In this video you will learn how group data in SQL and PostgreSQL.

In this video you will learn how to use the HAVING clause when grouping data and using aggregate functions in SQL and PostgreSQL.

Challenge 2: Aggregate Functions
Solution 2: Aggregate Functions

In this video you will learn how to use mathematical operators in SQL and PostgreSQL.

This section concentrates on database relationships, which is what makes relational databases such as PostgreSQL so powerful. You will learn how to utilize the three types of database relationships.

This is an introduction video to relational database relationships.

This video explains what database relationships are and how they are used with relational databases.

In this video you will learn about the one-to-one relationship.

In this video you will learn about one-to-many relationships.

In this video you will learn about many-to-many relationships.

(Optional) Challenge: Database Relationships
Solution: Database Relationships
By the end of the section you will know how to join tables in SQL to retrieve data from multiple tables using inner, left, right and full joins. You will also know how to perform union SQL statements.

This is an introduction video for the SQL joins section of the course.

In this video we will learn what SQL joins are and the different types of joins.

In this video we will learn how to use INNER JOINS in SQL and PostgreSQL.

Challenge 1: Joins
Solution 1: Joins

In this video we will learn how to use LEFT joins in SQL and PostgreSQL.

In this video we will learn how to use RIGHT joins in SQL and PostgreSQL.

In this video we will learn how to use FULL joins in SQL and PostgreSQL

Challenge 2: Joins
Solutions 2: Joins

In this video we will learn how to join more than two tables together in SQL and PostgreSQL.

Challenge 3: Joins
Solution 3: Joins

In this video we will learn what the union operator is and how to use it in SQL and PostgreSQL.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches a database querying language that is highly relevant in the industry
Provides highly relevant case studies for a database querying language
Provides a great foundation for working with databases and a database querying language
Provides a solid beginner-friendly introduction to a database querying language
Taught by a great instructor who is an expert on the subject of databases and SQL
Recommended for students who wish to enhance their job prospects in data analysis

Save this course

Save SQL and PostgreSQL for Beginners: Become an SQL Expert to your list so you can find it easily later:
Save

Reviews summary

Declarative data mastery

Learners say this course is largely positive. It's well-received for its clear instruction, practical exercises, and easy-to-digest summaries that cover foundational SQL and PostgreSQL skills. Students who are new to SQL or PostgreSQL may especially benefit from the step-by-step approach and engaging challenges. The course is appreciated for its organized structure and thorough explanations, even for more experienced learners looking for a refresher.
The course is well-organized, with a logical progression of topics building on each other.
"The content was well organized so that you aren't getting too much in one video."
"The course is very clear, well structured, i.e. you build on your previous knowledge as you go further."
"This is my first time installing PostgreSQL and my instructor shows step by step and I just installed successfully. I am so excited and so thankful!"
The course provides thorough explanations of the concepts and topics covered.
"Jon was very clear with his lectures. It is really for beginners and I understood every section and I was determined to do the challenges given. Kudos!"
"Thank god someone has a postgresql video using pgadmin 4. You should advertise the use of pgadmin4, especially now since it is a recently large upgrade for postgres"
"The content was well organized so that you aren't getting too much in one video."
The course is suitable for beginners, providing a solid foundation in SQL and PostgreSQL.
"I'm doing front end so I just needed a pragmatic course. This one has really good content. I would recommend this to anyone who wants to learn PostgreSQL."
"This is my first time installing PostgreSQL and my instructor shows step by step and I just installed successfully. I am so excited and so thankful!"
"This course is highly recommended by my side as it is really for an absolute beginner and it helped my clear all my doubts and made my fundamentals strong."
The course provides clear instructions and examples, making it easy for learners to follow along and understand the concepts.
"Clear instruction and examples."
"Clear instructions and good to follow."
"The course is really awesome. And the concept are really explained very clearly."
The course includes engaging challenges and exercises that allow learners to practice and reinforce their understanding of the material.
"This course was really informative and easy to follow. The challenges also helped me to test my knowledge of the subjects."
"Concepts are crisp and clear. Assessments/challenges helped a lot to practice which gave me confidence on course. Thank you."
"The course is very interesting. the instructor explains everything very clear and very patiently. i'm very satisfied. thank you!"
The course could benefit from more real-world examples or use cases to illustrate the concepts.
"The course taught a great deal of the beginning concepts of SQL, from the course description I wasn't expecting to go as far as Joins and Unions. This is a very good beginner course."
"Amazing course very easy to learn have enjoyed exercises but a few topics i found missing indexes composite primary key designing databases although overall experience was really good ."
"Great course! Very informative, easy to follow, and the course challenges are a great addition to the learning experience! Would recommend this course for anyone wanting to learn SQL and PostgreSQL."
The course lacks coverage of some more advanced SQL or PostgreSQL topics.
"Up until the course about JOINs, the course was not very challenging."
"It teaches you how to work with the queries only if you can install the software- no install instructions for linux, takes a long time to figure out before you can perform the queries"
"I'm oracle dba. So i found a little bit slow for me. I'm expecting more admin tasks like managing sizing, table physical attributes, indexing, etc. But I think is good for PG beginners."
Some learners found the pace of the course to be slow or monotonous.
"The instructor’s voice was very clear and easy to understand."
"I feel like it is too simple even for beginners The instructor is nice, teaches step by step and repeats what he taught in the previous lessons."
"It goes forward with a logical phase. I just would like to know if I can use the newest postgreSQL version."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in SQL and PostgreSQL for Beginners: Become an SQL Expert with these activities:
Practice SQL Database Building Basics
Refresh your understanding of the fundamental concepts of SQL database building, ensuring a solid foundation for this course.
Show steps
  • Review key concepts like tables, columns, and data types.
  • Practice creating and modifying simple database tables.
  • Test your understanding by inserting, updating, and deleting data.
Read 'SQL Cookbook' by Anthony DeBarros
Supplement your learning with a practical guide, providing you with a collection of ready-to-use SQL recipes for various scenarios.
Show steps
  • Read through the book's chapters, focusing on the topics most relevant to your learning goals.
  • Experiment with the provided SQL recipes and adapt them to your own projects.
SQL Study Group
Engage with fellow learners in a study group setting, fostering collaboration and deepening your understanding.
Show steps
  • Join or form a study group with other course participants.
  • Meet regularly to discuss course topics, share knowledge, and work on exercises together.
Four other activities
Expand to see all activities and additional details
Show all seven activities
SQL Coding Challenges
Refine your SQL coding skills by solving a series of challenging exercises, improving your problem-solving abilities.
Show steps
  • Find online coding platforms or resources that offer SQL challenges.
  • Attempt to solve the challenges independently, focusing on optimizing your queries.
  • Review your solutions against provided answers or community submissions.
Explore Advanced SQL Queries
Enhance your SQL proficiency by delving into advanced query techniques, expanding your analytical capabilities.
Browse courses on SQL Joins
Show steps
  • Learn about different types of SQL joins and their applications.
  • Practice using aggregate functions for data summarization.
  • Master the use of subqueries to enhance query complexity.
Attend a SQL Workshop or Conference
Dive deeper into SQL by attending an immersive workshop or conference, gaining insights from experts and expanding your knowledge.
Show steps
  • Research and identify upcoming SQL workshops or conferences.
  • Register and attend the event, actively participating in sessions and networking with other attendees.
Mentor Junior SQL Learners
Reinforce your own understanding by sharing your knowledge with others, providing guidance and support to aspiring SQL learners.
Show steps
  • Identify opportunities to mentor junior learners, either through online forums, meetups, or local initiatives.
  • Provide guidance and support to mentees, answering their questions and helping them overcome challenges.

Career center

Learners who complete SQL and PostgreSQL for Beginners: Become an SQL Expert will develop knowledge and skills that may be useful to these careers:
SQL Developer
SQL Developers specialize in developing and maintaining SQL databases and applications. This course provides a comprehensive overview of SQL and PostgreSQL, including data definition, manipulation, and retrieval. Students will learn how to create and manage databases, write complex SQL queries, and use stored procedures and functions. They will also gain experience in developing and deploying SQL applications, ensuring that they are efficient, scalable, and secure. This knowledge will help them become proficient in SQL development, enabling them to build and maintain robust and scalable SQL databases and applications.
Database Architect
Database Architects design and implement database systems to meet the needs of businesses and organizations. This course provides a comprehensive overview of SQL and PostgreSQL, including data definition, manipulation, and retrieval. Students will learn how to create and manage databases, write complex SQL queries, and use stored procedures and functions. They will also gain experience in designing and implementing database systems, ensuring that they are efficient, scalable, and secure. This knowledge will help them become proficient in database architecture, enabling them to design and implement robust and scalable database systems.
Database Administrator
Database Administrators are responsible for the maintenance, performance, and security of databases. This course provides a solid foundation in SQL, PostgreSQL, and database relationships, which are essential skills for managing and optimizing databases. Students will learn how to create, modify, and delete tables, as well as insert, update, and delete data. They will also gain experience in using advanced SQL queries and joins to extract data from multiple tables. This knowledge will help them become proficient in managing and administering databases, ensuring their reliability and performance.
Data Warehouse Engineer
Data Warehouse Engineers design and implement data warehouses to store and manage large amounts of data. This course provides a strong foundation in SQL and PostgreSQL, key technologies for data warehousing. Students will learn how to create and manage databases, write complex SQL queries, and use data integration tools. They will also gain experience in designing and implementing data warehouses, ensuring that they are efficient, scalable, and secure. This knowledge will help them become proficient in data warehousing, enabling them to design and implement robust and scalable data warehouses.
Data Engineer
Data Engineers design, build, and maintain data pipelines to move data between different systems and applications. This course provides a strong foundation in SQL and PostgreSQL, which are essential technologies for data engineering. Students will learn how to create and manage databases, write complex SQL queries, and use data integration tools. They will also gain experience in designing and implementing data pipelines, ensuring that data is processed and delivered in a timely and efficient manner. This knowledge will help them become proficient in data engineering, enabling them to build and maintain reliable and scalable data pipelines.
ETL Developer
ETL (Extract, Transform, Load) Developers extract data from multiple sources, transform it into a consistent format, and load it into a data warehouse or other target system. This course provides a foundation in SQL and PostgreSQL, key technologies for ETL development. Students will learn how to write complex queries and use aggregate functions to extract meaningful information from data. They will also gain experience in using data integration tools to integrate data from different sources. This knowledge will help them build a foundation in ETL development, enabling them to design and implement efficient and effective ETL processes.
Data Analyst
A Data Analyst collects, analyzes, and interprets large amounts of data to derive insights that can help businesses make informed decisions. This course helps students become proficient in SQL, a key tool for data analysis. By learning how to write complex queries and use aggregate functions, students can extract meaningful information from data and gain a better understanding of business trends and customer behavior. Additionally, the course's focus on database relationships will help students understand how data is organized and connected, making them more effective in analyzing and interpreting data.
Business Intelligence Analyst
Business Intelligence Analysts use data to identify trends and patterns that can help businesses make better decisions. This course provides a strong foundation in SQL, a key tool for data analysis and business intelligence. Students will learn how to write complex queries and use aggregate functions to extract meaningful information from data. They will also gain experience in using data visualization tools to present their findings in a clear and concise manner. This knowledge will help them become proficient in business intelligence analysis, enabling them to identify insights that can drive business growth and innovation.
Data Governance Analyst
Data Governance Analysts develop and implement policies and procedures to ensure that data is managed in a consistent and compliant manner. This course provides a foundation in SQL and PostgreSQL, key technologies for data governance. Students will learn how to write complex queries and use aggregate functions to extract meaningful information from data. They will also gain experience in using data integration tools to integrate data from different sources. This knowledge will help them build a foundation in data governance, enabling them to develop and implement effective data governance policies and procedures.
Data Quality Analyst
Data Quality Analysts ensure that data is accurate, complete, and consistent. This course provides a foundation in SQL and PostgreSQL, key technologies for data quality analysis. Students will learn how to write complex queries and use aggregate functions to extract meaningful information from data. They will also gain experience in using data integration tools to integrate data from different sources. This knowledge will help them build a foundation in data quality analysis, enabling them to identify and correct data quality issues.
Data Scientist
Data Scientists use statistical and machine learning techniques to extract insights from data. This course provides a foundation in SQL, a key technology for data science. Students will learn how to write complex queries and use aggregate functions to extract meaningful information from data. They will also gain experience in using data visualization tools to explore and analyze data. This knowledge will help them build a foundation in data science, enabling them to apply statistical and machine learning techniques to solve complex business problems.
Software Engineer
Software Engineers design, develop, and maintain software applications. This course provides a foundation in SQL, a key technology for software development. Students will learn how to write complex queries and use aggregate functions to extract meaningful information from data. They will also gain experience in using data integration tools to integrate data from different sources. This knowledge will help them build a foundation in software development, enabling them to develop and maintain robust and scalable software applications.
Information Security Analyst
Information Security Analysts protect computer systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. This course provides a foundation in SQL, a key technology for information security. Students will learn how to write complex queries and use aggregate functions to extract meaningful information from data. They will also gain experience in using data integration tools to integrate data from different sources. This knowledge will help them build a foundation in information security, enabling them to protect computer systems and networks from threats.
Systems Analyst
Systems Analysts design and implement computer systems to meet the needs of businesses and organizations. This course provides a foundation in SQL, a key technology for systems analysis. Students will learn how to write complex queries and use aggregate functions to extract meaningful information from data. They will also gain experience in using data integration tools to integrate data from different sources. This knowledge will help them build a foundation in systems analysis, enabling them to design and implement efficient and effective computer systems.
Web Developer
Web Developers design and develop websites and web applications. This course provides a foundation in SQL, a key technology for web development. Students will learn how to write complex queries and use aggregate functions to extract meaningful information from data. They will also gain experience in using data integration tools to integrate data from different sources. This knowledge will help them build a foundation in web development, enabling them to develop and maintain robust and scalable web applications.

Reading list

We've selected seven 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 SQL and PostgreSQL for Beginners: Become an SQL Expert.
Comprehensive introduction to database systems. It covers a wide range of topics, including data modeling, query processing, and transaction management. It valuable resource for students and professionals who want to learn more about database systems.
Classic textbook on database systems. It covers a wide range of topics, including data modeling, query processing, and transaction management. It valuable resource for students and professionals who want to learn more about database systems.
Provides a theoretical foundation for SQL and relational databases. It covers the concepts of relational algebra and calculus, and it shows how to use these concepts to write accurate SQL queries. It valuable resource for developers who want to understand the underlying principles of SQL and relational databases.
Collection of common SQL antipatterns and how to avoid them. It valuable resource for developers who want to write efficient and effective SQL queries.
Fun and engaging way to learn SQL. It uses a visual approach to explain concepts, with plenty of diagrams and examples. It great choice for beginners who want to get a quick overview of SQL.
Practical guide to writing SQL queries. It covers all the essential SQL syntax and commands, as well as some more advanced topics such as subqueries and joins. It great choice for beginners who want to learn how to write effective SQL queries.

Share

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

Similar courses

Here are nine courses similar to SQL and PostgreSQL for Beginners: Become an SQL Expert.
SQL CASE Statements
Most relevant
SQL Mathematical Functions
Most relevant
Database Design and Basic SQL in PostgreSQL
Most relevant
Using SQL String Functions to Clean Data
Most relevant
SQL Date Time Functions
Most relevant
The Ultimate Oracle SQL Course: SQL Made Practical
Most relevant
SQL - The Complete Developer's Guide (MySQL, PostgreSQL)
Most relevant
Working with Subqueries in SQL
Most relevant
SQL & Database Design A-Z™: Learn MS SQL Server +...
Most relevant
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 - 2024 OpenCourser