We may earn an affiliate commission when you visit our partners.
Ovidiu Plugariu

Are you a beginner or an enthusiastic hobbyist interested in digital circuits design using the Verilog Hardware Description Language? Did you try to learn Verilog HDL before, but found it very challenging? Are you curious if you have what it takes to become a digital chip designer or a functional verification engineer? Then you're in the right place.

Verilog Hardware Description Language easy as A,B,C

Read more

Are you a beginner or an enthusiastic hobbyist interested in digital circuits design using the Verilog Hardware Description Language? Did you try to learn Verilog HDL before, but found it very challenging? Are you curious if you have what it takes to become a digital chip designer or a functional verification engineer? Then you're in the right place.

Verilog Hardware Description Language easy as A,B,C

You'll learn the basics of digital circuits theory and we'll focus most of our energy on implementing practical coding examples with real digital circuits using Verilog. You will graduate this course with a strong foundation in Verilog HDL for both Digital Design and Functional Verification.

From the Digital Design perspective, you'll be able to:

  • start from a digital circuit diagram / schematic and implement synthesizable Verilog code for ASIC / FPGA

  • start from a functional description and implement synthesizable Verilog code for ASIC / FPGA

From the Functional Verification perspective, you'll be able to:

  • understand a functional description of a digital circuit and create stimuli for it

  • implement a self-checking testbench to validate the functionality of a digital circuit

You will easily differentiate between different Verilog coding styles (structural, dataflow, behavioral) and how to use them to design synthesizable digital circuits. You'll see just how easy modeling digital circuits using Verilog is.

At the end of the course you'll master Verilog industry-level coding techniques to get the best results for digital design or verification.

Learn how to use an industry-level Verilog HDL simulator

Simulations are a critical part in designing modern digital chips, thus you will install and learn how to use Modelsim - Intel FPGA Edition (free version for academic purpose).  You will be able to create projects, simulate your Verilog code, and interpret the outputs using an world-class simulator.

Course Overview

This course is tailored for beginners who are interested in digital microelectronics, digital circuit design and verification. The course contains more than 158 bite-sized lectures out of which more than half are hands-on exercises labeled Action Time. Each Action Time has downloadable resources which you can simulate immediately using Modelsim. Most of these sections also contain challenges for you, so you'll write extra code that extends beyond the initial functionality.

Your first Verilog examples will be similar to a normal programming language (like C) to learn the operators, and, step-by-step, we'll advance together to the Hardware Description Language constructs, where Verilog procedures execute in parallel.

You'll learn how to use Verilog for combinational and sequential logic and how to combine the Structural / Dataflow / Behavioral coding styles to obtain digital circuits with a specific functionality. Your circuits will get more complex as you advance, some of them being composed of a hierarchy of sub-circuits.

Verilog combinational circuits you will implement during the course :  logic gates, adders, comparator, binary encoder / decoder, priority encoder, multiplexers / de-multiplexers, seven segment display decoder, Arithmetical Logical Unit (ALU), etc...

Verilog sequential circuits you will implement during the course: flip-flops, latches, shift registers (..

Next, you'll experiment with Verilog functions and tasks and how to use them in testbenches and design. 

In the final chapters you will design memories (SRAM and ROM), Finite State Machines, and more complex circuits like a FIFO and even a data encryption module.

A workflow with destination SUCCESS.

  1. We start from real engineering problems and understand how a digital circuit solves that problem.

  2. You are presented a real digital circuit, how it is used in the real world, then how to model and test it using Verilog.

  3. You simulate it using Modelsim, and next I walk you through the results interpretation.

We do this process together every single time....  I explain the story behind the Verilog code so that, at the end of the course, you will be able to write the Verilog code behind the story.

Why learn Verilog HDL?

Chances are more than 50% that all the chips in the devices around you were designed with Verilog.

Working as a Digital Design or a Functional Verification engineer means to design today the technologies of tomorrow. This translates into having an exciting and challenging job with a great impact in the world. Since less than 2% of engineers choose this path and the semiconductor industry has never been busier, I'm pretty sure you will find yourself a good place in it.

Verilog is a good foundation for learning SystemVerilog, which is a very popular object-oriented design and verification language in the semiconductor industry.

Why did I create this course?

As an engineering student, I found it quite challenging to learn Verilog because it has a very steep learning curve and you need lots of know-how to be able to run even a simple example. Because of this, most students give up learning Verilog for a career in Digital Design or Verification and this also negatively impacts their academic results.

After 10+ years of industry experience, thousands of hours in Verilog, and academic research, I feel I've found the missing puzzle pieces that I didn't have back in the days. This course will show you the beauty and simplicity of digital circuits design using Verilog.

Ready? Set... GO.

Thank you for your interest in Verilog HDL for Digital Circuits Design and Functional Verification.

Ready to embark on your journey in mastering the basics of Verilog HDL for digital design and verification? Let's start this wonderful adventure.

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 the basics of verilog language for designing synthesizable digital circuits for asic / fpga
  • Differentiate between verilog structural / dataflow / behavioral design styles and how / when to use them in digital design and verification
  • Implement combinational and sequential digital circuits using verilog hdl starting from schematics or functional specifications
  • Create and simulate a verilog testbench for a digital circuit starting from its functional specifications
  • Examine the behavior of a digital circuit receiving stimulus in a testbench, using an industry-level simulator (free for academic purposes)
  • Explicit visual explanations for the 80+ downloadable code examples, circuits, and testbenches offering you increased retention and accelerated learning

Syllabus

Overview of the ASIC design flow and how Verilog HDL is used

Let's get to know each other!

A small and fast presentation of the course chapters.

Read more

Find out what Verilog HDL is and how you can use it!

Let's classify abstraction levels and how they are integrated in the Integrated Circuits Design Flow. Find out how Verilog can be a part of this flow!

The Modern Digital Design Flow is a generic flow used by the industry for making modern chips. Find out more!

Learn basic notions about Electronics Design Automation and the role of Simulation tools for the Verilog Hardware Description Language.

We will install a complete development environment from Intel FPGA. With it we will be able to simulate and synthesize our designs. All these tools are used only in Academic purposes.

Important Modelsim Installation Note

Download link: https://fpgasoftware.intel.com/

If you select Quartus Prime Lite Edition v21.1 (March 2021) you can see that it contains:

1. Quartus Prime (includes Nios II EDS)

2. Questa - Intel FPGA Edition(includes Starter Edition)

If you select Quartus Prime Lite Edition v20.1.1 (November 2020) you can see that it contains:

1. Quartus Prime (includes Nios II EDS)

2. ModelSim-Intel FPGA Edition (includes Starter Edition)

Modelsim and Questasim are products from Mentor that have the same menus, windows and appearance the sole difference being : "Questa Sim offers high-performance and advanced debugging capabilities, while ModelSim PE is the entry-level simulator for hobbyists and students. Questa Sim is used in large multi-million gate designs, and is supported on Microsoft Windows and Linux, in 32-bit and 64-bit architectures"

So you have 2 solutions and you may choose whatever you like:

1. Download version v21.1 and use Questa in the same way we use Modelsim (they will look the same for you)

2. Download version v20.1.1 and use Modelsim as the course suggests

Please contact me if you have issues installing the simulator and run the "Hello world" example. You can also contact me if you have any course related question and we'll definitely solve them.

All the best,

Ovidiu

This is your first simulation of Verilog code using a Modelsim project.

Congrats! Be proud that you've simulated your first piece of Verilog code!

Discover the 3 major groups of value objects used in digital design and verification with Verilog: Nets, Variables, and Parameters.

Write and simulate the Verilog code that calculates the sum and the product of two numbers.

Get familiar with the Verilog data types used to describe a hardware circuit.

Create a Verilog example where you perform logical operations between some variables using multiple procedures.

Learn how to represent data in a specific format using Verilog.

Play with several representation formats for data used in Verilog.

Learn how to handle multi-bit variables in Verilog.

A simple yet powerful example with vectors in Verilog.

As all programming languages Verilog has a set of powerful operators used to handle data, model behavior, and take decisions.

Verilog bit-wise operators are used to perform bit-by-bit logic operations between two inputs.

Perform several bit-wise operations between two vectors.

Verilog reduction operators are used to perform operations between the bits of the operand. The result is a 1ibt value.

A simple example where you exercise all the Verilog reduction operators.

Discover the simplicity behind Verilog logical operators.

A simple example where you will use Verilog logical operators.

In this example you will learn how and where to actually use Verilog logical operators. Using them wrong could lead to undesired behavior that is hard to debug.

Verilog also has all the simple mathematical operators that everybody knows. Check them out!

A simple exercise with all the Verilog arithmetic operators.

Shifting operations are the very core of data handling. Let's discover the logic shift and the arithmetic shift Verilog operators.

Let's shift some data using all the Verilog shift operators.

Verilog relational operators are used to compare data. The result of a comparison is 1bit and it can have the value 0 / 1 / X.

Let's compare some data using the Verilog relational operators!

Discover the case equality and logical equality Verilog operators.

Let's compare some data using the Verilog equality operators!

Discover the conditional operator. This operator takes 3 operand that's why it is also called a ternary operator.

Let's do a simple example for the conditional operator!

The concatenation operator is used to join bits from different sources for creating new buses.

In this easy example you'll learn how to use the Verilog concatenation operator.

The Verilog replication operator is used to make data patterns.

This easy example will show you how to use the Verilog replication operator.

Operators precedence is a mechanism that says what operators get to execute first in an expression. It is extremely important to know this concept as complex expressions may hide faulty behavior if the precedence is not respected.

In this simple example you'll get familiar with Verilog operators precedence and explore some corner cases.

Answer some simple Verilog Operators questions to check out your newly acquired skills!

The Verilog module is basic building block for any design. Any chip designed in Verilog is a collection of modules exchanging data.

It's time to do your first testbench and instantiate you first Design Under Test. We're moving up in the world...

A small introduction in testbench architectures. We'll use this on all the examples in this course.

Each Verilog module is simulated in a time frame. Data flows from the module's inputs to the outputs and gets plotted by the simulator in a waveform.

Generate a simple waveform and get familiar with time units and signals with four states values (1/0/X/Z).

As life taught us, almost all problems have multiple solutions. In Verilog you can describe the same behavior by using a variety of coding styles.

Discover what Structural Design is and how it can be used in Verilog.

Implement a simple circuit that calculates the sum of two bits. You also get to implement the testbench for it.

Discover what Dataflow Style is and how it can be used in Verilog.

Discover what Behavioral Style is and how it can be used in Verilog.

Implement multiple Verilog procedures and see how they are executed in parallel.

Let's design an 1bit FULL ADDER using all 3 Verilog coding styles.

Implement a simple circuit that calculates the sum of two bits and a carry using the Structural style. You also get to implement the testbench for it.

Implement a simple circuit that calculates the sum of two bits and a carry using the Dataflow style. You also get to implement the testbench for it.

Implement a simple circuit that calculates the sum of two bits and a carry using the Behavioral style. You also get to implement the testbench for it.

Let's design a 4bit FULL ADDER using all 3 coding styles!

Implement a simple circuit that calculates the sum of two 4bit inputs and a carry using the Structural style. You also get to implement the testbench for it.

Implement a simple circuit that calculates the sum of two 4bit inputs and a carry using the Dataflow style. You also get to implement the testbench for it.

Implement a simple circuit that calculates the sum of two 4bit inputs and a carry using the Behavioral style. You also get to implement the testbench for it.

Discover Verilog Structural design.

What are Verilog built-in primitives and how to use them.

Play with all Verilog built-in primitives.

This simple circuit is present in ALL modern chips that exist on land, air and sea. Find out more!

Implement an 1bit multiplexer and a testbench for it, using Verilog.

It does the opposite as a multiplexer does. Find out more!

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Provides a strong foundation in Verilog HDL, which is essential for both digital design and functional verification, making it ideal for those new to the field
Uses Modelsim - Intel FPGA Edition, a free industry-level simulator, allowing learners to gain practical experience with professional tools without incurring additional costs
Emphasizes hands-on exercises with downloadable resources and challenges, promoting active learning and deeper understanding of Verilog HDL concepts
Covers various Verilog coding styles, including structural, dataflow, and behavioral, enabling learners to choose the most appropriate style for different design scenarios
Focuses on implementing synthesizable Verilog code for ASIC/FPGA, which is highly relevant for digital design engineers working with hardware implementation
Requires the installation of Intel Quartus Prime Lite Edition v20.1.1, which includes Modelsim, and learners may need to ensure compatibility with their operating system

Save this course

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

Reviews summary

Hands-on verilog basics for digital design

According to learners, this course provides a strong foundation for understanding Verilog HDL and applying it to digital design and verification. Many appreciate the extensive hands-on exercises and the practical approach using an industry-level simulator like Modelsim/Questa. The content is generally found to be clear and well-structured, especially for beginners. However, some learners mention that setting up the simulator installation can be a initial warning challenge. The course is seen as highly relevant for those interested in a career in the semiconductor industry or for academic study, effectively covering various coding styles and building complexity step-by-step.
Instructor helps with issues
"The instructor was very responsive in the Q&A section, especially regarding installation problems."
"I received prompt and helpful answers whenever I had questions about the code or concepts."
"It's reassuring to know the instructor is actively supporting learners through their difficulties."
Covers key Verilog and digital concepts
"The course covers the essential Verilog syntax, data types, operators, and structural/dataflow/behavioral styles thoroughly."
"It introduced me to various digital circuits like adders, multiplexers, and even simple state machines."
"I now have a good grasp of how to translate digital logic into Verilog code for both design and basic verification."
"The range of topics covered provides a solid starting point for further learning."
Learning with Modelsim/Questa tools
"Learning to use Modelsim was a great addition. It's an industry standard tool and I feel more prepared now."
"Getting experience with a real simulator like Questa was invaluable. Seeing the waveforms helped connect the code to the hardware behavior."
"The simulator setup and usage tutorials were very helpful in getting started with Verilog development environments."
"Using Modelsim throughout the course gave me confidence in simulating and debugging my designs."
Concepts explained step-by-step
"As a complete beginner to Verilog, I found the explanations clear and easy to follow. The instructor builds up concepts gradually."
"The course structure is logical and progresses well from basic syntax to more complex circuit implementations."
"Everything is explained in a simple manner, making a difficult subject accessible."
"I had tried learning Verilog before and struggled, but this course broke it down effectively."
Emphasis on coding and simulation practice
"The action time sections and downloadable resources are excellent for practicing. Doing the code myself really helped solidify the concepts."
"I really enjoyed the hands-on examples and the challenges provided. They make the learning process much more engaging than just watching lectures."
"Practicing with the code examples and trying the challenges made me feel confident in writing my own Verilog modules."
"The focus on practical implementation through numerous exercises is the course's main strength."
Installation can be challenging for some
"Setting up the Modelsim/Quartus software was a bit frustrating and took some troubleshooting."
"I encountered issues with the simulator installation process based on my operating system."
"While the course provides instructions, getting the simulator to work correctly required extra effort outside the lectures."
"The initial hurdle was definitely getting the required tools installed and running properly."

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 Verilog HDL Fundamentals for Digital Design and Verification with these activities:
Review Digital Logic Fundamentals
Reinforce your understanding of digital logic concepts, which are essential for grasping Verilog HDL and digital circuit design.
Browse courses on Digital Logic
Show steps
  • Review textbooks or online resources on digital logic.
  • Practice solving problems related to logic gates and Boolean algebra.
  • Familiarize yourself with the concepts of combinational and sequential circuits.
Read 'Digital Design and Computer Architecture' by Harris and Harris
Gain a deeper understanding of digital design principles and computer architecture, which will enhance your ability to write efficient and effective Verilog code.
Show steps
  • Obtain a copy of 'Digital Design and Computer Architecture'.
  • Read the chapters related to digital logic, combinational circuits, and sequential circuits.
  • Work through the examples and exercises in the book.
Implement Basic Logic Circuits in Verilog
Solidify your understanding of Verilog syntax and semantics by implementing basic logic circuits such as AND, OR, XOR, and NOT gates.
Show steps
  • Write Verilog code for basic logic gates.
  • Simulate the code using Modelsim to verify its functionality.
  • Experiment with different input combinations and observe the outputs.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Create a Verilog Cheat Sheet
Compile a cheat sheet of commonly used Verilog syntax, keywords, and coding styles to serve as a quick reference during the course.
Show steps
  • Review the Verilog syntax and keywords covered in the course.
  • Organize the information into a concise and easy-to-read format.
  • Include examples of different Verilog coding styles.
Design a Simple ALU in Verilog
Apply your Verilog skills to design a simple Arithmetic Logic Unit (ALU) that performs basic arithmetic and logical operations.
Show steps
  • Define the functionality of the ALU, including the operations it will perform.
  • Write Verilog code for the ALU, using structural, dataflow, or behavioral coding styles.
  • Create a testbench to verify the functionality of the ALU.
  • Simulate the ALU using Modelsim and debug any errors.
Read 'Verilog HDL' by Samir Palnitkar
Deepen your understanding of Verilog HDL and learn advanced modeling techniques to improve your digital design skills.
Show steps
  • Obtain a copy of 'Verilog HDL' by Samir Palnitkar.
  • Read the chapters related to advanced Verilog concepts, such as tasks, functions, and user-defined primitives.
  • Work through the examples and exercises in the book.
Contribute to an Open-Source Verilog Project
Gain practical experience and collaborate with other engineers by contributing to an open-source Verilog project on platforms like GitHub.
Show steps
  • Find an open-source Verilog project that interests you.
  • Review the project's documentation and coding guidelines.
  • Identify a bug or feature that you can contribute to.
  • Submit a pull request with your changes.

Career center

Learners who complete Verilog HDL Fundamentals for Digital Design and Verification will develop knowledge and skills that may be useful to these careers:
Digital Design Engineer
The Digital Design Engineer designs and implements digital systems, often using hardware description languages like Verilog. The material in this course, which covers the basics of digital circuits theory and coding examples using Verilog, would be of great use to you. This course provides a strong foundation in Verilog HDL for digital design, along with the ability to implement synthesizable Verilog code for ASICs or FPGAs. The course uses industry level coding techniques to help you master digital design.
FPGA Designer
An FPGA Designer develops and implements digital circuits using Field Programmable Gate Arrays. The ability to write synthesizable Verilog code for FPGAs and ASICs, as taught in this course, directly applies to this role. The course helps you take a digital circuit diagram or functional description and translate it into Verilog code, a core skill for any FPGA Designer. This course may be useful to anyone that wants to use an industry-level Verilog simulator, such as Modelsim. The course provides hands-on exercises that mirror real-world design challenges.
ASIC Designer
The ASIC Designer is responsible for the design and development of Application Specific Integrated Circuits. This course helps you understand how to implement synthesizable Verilog code for ASICs, starting from either a digital circuit diagram or a functional description. This course may be useful for ASIC Designers to create self-checking testbenches to validate the functionality of digital circuits. The course provides a strong foundation in Verilog HDL for digital design.
IC Design Engineer
An IC Design Engineer designs integrated circuits. To become an IC Design Engineer, this course may be very helpful since it focuses on implementing Verilog code for ASICs and FPGAs. The course teaches you how to start from digital circuit diagrams or functional descriptions and translate them into synthesizable Verilog code and how to master Verilog industry-level coding techniques. The course offers hands-on exercises and challenges, using industry-level simulators.
Hardware Verification Engineer
A Hardware Verification Engineer is focused on ensuring the quality and reliability of hardware designs through rigorous testing and validation. This course is very useful for a Hardware Verification Engineer, especially its emphasis on functional verification using Verilog. You can learn how to create stimuli and implement self-checking testbenches to validate the functionality of digital circuits. The course provides hands-on experience with an industry-level simulator.
Verification Engineer
A Verification Engineer is concerned with validating the correctness of hardware designs. If you are studying towards becoming a Verification Engineer, then this course may be useful. You can learn how to create stimuli for digital circuits and implement self-checking testbenches using Verilog. The course helps you gain the ability to understand functional descriptions and translate them into effective verification strategies. The course emphasizes industry-level coding techniques relevant to verification.
Hardware Engineer
A Hardware Engineer designs, develops, and tests computer systems and components. This course may be useful for Hardware Engineers looking to deepen their understanding of digital circuit design using Verilog. By learning to implement Verilog code from digital circuit diagrams or functional descriptions, you can gain practical skills applicable to hardware development. The course covers combinational and sequential logic circuits, offering a broad perspective on hardware design.
Semiconductor Engineer
The Semiconductor Engineer works in the semiconductor industry, typically designing or testing integrated circuits. For anyone in the industry, this course is useful as it provides a strong foundation in Verilog HDL for digital design and functional verification. The course also helps you differentiate between Verilog coding styles and implement combinational and sequential digital circuits using Verilog HDL. You will learn how to simulate your Verilog code, and interpret the outputs using a simulator.
Embedded Systems Engineer
An Embedded Systems Engineer designs, develops, and tests embedded systems, which often involve digital circuits. The course may be useful for an Embedded Systems Engineer, especially its focus on Verilog HDL for digital design and verification. It helps build a foundation in Verilog and teaches you how to implement combinational and sequential digital circuits. This course will teach you how to use industry-level coding techniques that provide the best results for digital design or verification.
System on Chip Designer
A System on Chip Designer integrates various components into a single chip. This course can be useful for System on Chip Designers by helping them understand how to implement synthesizable Verilog code for ASICs or FPGAs. The course covers differentiation between Verilog coding styles and how to use them in digital design and verification. This course will enable you to simulate your Verilog code, and interpret the outputs using a simulator.
Computer Architect
A Computer Architect designs the structure and organization of computer systems. This course may benefit Computer Architects by providing a practical understanding of Verilog HDL for digital design and verification. The Computer Architect may use this course to learn how to model digital circuits using Verilog, covering topics such as combinational and sequential logic. This course will teach you how to use an industry-level Verilog HDL simulator.
Electronic Design Automation Engineer
Electronic Design Automation engineers develop software tools for designing electronic systems. This course may be helpful for you as it provides a strong foundation in Verilog and digital circuit design, which is essential for creating and supporting EDA software. The course will expose you to the practical aspects of Verilog coding, simulation, and verification, enhancing the skills needed for EDA tool development. You will learn to simulate your Verilog code, and interpret the outputs using a simulator.
Product Engineer
A Product Engineer is involved in taking a product from design to manufacturing. While requiring a systems-level view, the Product Engineer may find this course useful. By gaining a deeper understanding of Verilog HDL and digital circuit design, taught in ths course, the Product Engineer may be better equipped to collaborate with design teams and troubleshoot manufacturing issues. The course helps learn Verilog for both digital design and functional verification.
Robotics Engineer
A Robotics Engineer designs, builds, and tests robots. While robotics encompasses a wide range of skills, a foundation in digital design can be beneficial. This course may be useful as it covers Verilog HDL, digital circuit design, and functional verification, providing you with knowledge of the underlying hardware that controls robots. The course covers digital circuits theory and implementing practical coding examples with real digital circuits using Verilog.
Technical Consultant
A Technical Consultant provides expert advice and guidance to clients on various technical topics. This course may be useful for a Technical Consultant specializing in digital design or verification. The course will help you gain a practical understanding of Verilog HDL, digital circuit design, and verification techniques. The curriculum includes hands-on exercises and industry-level coding practices using Modelsim.

Reading list

We've selected two 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 Verilog HDL Fundamentals for Digital Design and Verification.
Comprehensive guide to Verilog HDL, covering all aspects of the language from basic syntax to advanced modeling techniques. It is particularly useful for understanding the nuances of Verilog and how to write efficient and synthesizable code. This book valuable reference for both beginners and experienced designers. It is commonly used as a textbook in universities and provides a solid foundation for digital design.
Provides a comprehensive introduction to digital design, covering topics from basic logic gates to computer architecture. It is particularly useful for understanding the underlying hardware principles behind Verilog HDL. The book serves as a valuable reference for both beginners and experienced designers. It is commonly used as a textbook in universities and provides a solid foundation for digital design.

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