DEV Community

Cover image for Qisquiz: A Quiz App for Learning Qiskit v2.X
Doraking
Doraking

Posted on

Qisquiz: A Quiz App for Learning Qiskit v2.X

Qisquiz: A Qiskit v2.X Certification Prep App

I built Qisquiz, a web app for learning Qiskit v2.X and preparing for the IBM Certified Quantum Computation using Qiskit v2.X Developer - Associate certification exam.

You can try the app here:

https://qisquiz.vercel.app/

The GitHub repository is here:

https://github.com/dorakingx/qisquiz

The concept of Qisquiz is simple:

Master Qiskit, one quiz at a time.

In other words, Qisquiz is a quiz-based certification prep app that helps learners study Qiskit one question at a time.

The target exam is:

Exam C1000-179: Fundamentals of Quantum Computing Using Qiskit v2.X Developer


Why I Built Qisquiz

Qiskit is one of the most important development tools for learning and building quantum computing applications.

It is useful for creating quantum circuits, running simulations, using IBM Quantum hardware, and experimenting with quantum algorithms.

However, Qiskit v2.X includes several APIs and concepts that learners need to understand carefully.

For example, certification prep requires knowledge of topics such as:

  • Qiskit Runtime
  • SamplerV2
  • EstimatorV2
  • PUBs, or Primitive Unified Blocs
  • BackendV2
  • backend.target
  • Transpilation
  • ISA circuits
  • Dynamic circuits
  • OpenQASM 3
  • Result object handling
  • Little-endian and big-endian interpretation

These topics can be learned by reading documentation, but I felt that active practice through quizzes is especially useful for exam preparation.

That is why I built Qisquiz, a quiz-based learning app focused on Qiskit v2.X.


What Is Qisquiz?

Qisquiz is an independent quiz-based learning app for Qiskit v2.X.

The current version is organized around the 8 sections of the IBM Qiskit v2.X Developer certification exam.

The current question bank includes:

  • 120 original questions
  • 44 code-based questions
  • 40 hard questions
  • 8 sections
  • 15 questions per section

Qisquiz is not an official IBM or Qiskit product.

It is an independent learning tool that I built to help myself and other learners prepare more effectively.


Covered Exam Sections

Qisquiz covers the following 8 exam sections.


Section 1: Perform Quantum Operations

This section covers the basics of quantum operations.

Topics include:

  • Pauli operators
  • Standard quantum gates
  • Quantum operations
  • Qubit ordering
  • Global phase and relative phase

Section 2: Visualize Quantum Circuits, Measurements, and States

This section focuses on visualization of quantum circuits, measurements, and quantum states.

Topics include:

  • circuit.draw()
  • Measurement visualization
  • Statevector
  • Bloch sphere
  • Histogram interpretation

Section 3: Create Quantum Circuits

This section covers how to create and manipulate quantum circuits.

Topics include:

  • QuantumCircuit
  • Parameterized circuits
  • Transpilation
  • ISA circuits
  • Dynamic circuits
  • if_test

Section 4: Run Quantum Circuits

This section focuses on Qiskit Runtime and hardware execution.

Topics include:

  • Qiskit Runtime
  • BackendV2
  • Sessions
  • Batch mode
  • Job submission
  • Hardware execution

Section 5: Use the Sampler Primitive

This section covers the Sampler primitive.

Topics include:

  • SamplerV2
  • PUBs
  • Sampler options
  • Result navigation
  • Measurement sampling

Section 6: Use the Estimator Primitive

This section covers the Estimator primitive.

Topics include:

  • EstimatorV2
  • Observables
  • Expectation values
  • PUB format
  • Precision vs shots

Section 7: Retrieve and Analyze Results of Quantum Circuits

This section focuses on retrieving and analyzing execution results.

Topics include:

  • Retrieving previous jobs
  • Result object analysis
  • Counts
  • Quasi-distributions
  • Data extraction

Section 8: Operate with OpenQASM

This section covers OpenQASM 3.

Topics include:

  • OpenQASM 3 syntax
  • Data types
  • Qiskit interoperability
  • Import and export
  • Semantic interpretation

Main Features

1. Section Practice

Users can practice questions by section.

They can choose:

  • Exam section
  • Difficulty
  • Number of questions
  • Sequential or randomized order

For example, if a learner is weak in SamplerV2 or EstimatorV2, they can focus on the related sections instead of studying everything randomly.


2. Full Mock Exam

Qisquiz also includes a mock exam mode.

The current mock exam has:

  • 68 questions
  • 90 minutes
  • Balanced coverage across the 8 sections
  • No instant feedback during the exam
  • Score and explanations after submission

In normal study mode, users can see explanations immediately.

In mock exam mode, feedback is shown only after submission so that the experience feels closer to an actual exam.


3. Dashboard

The Dashboard allows users to check their learning progress saved in the browser.

At the moment, Qisquiz does not use accounts or a database.

Progress is stored with browser LocalStorage.

This keeps the first version simple and frontend-focused, while making it possible to add authentication and cloud sync in the future.


4. Resources Page

The Resources page collects external resources related to Qiskit v2.X and certification preparation.

It includes categories such as:

  • IBM / Qiskit official resources
  • Qiskit API documentation
  • Runtime, Sampler, and Estimator references
  • OpenQASM references
  • Community tutorials
  • Practice exams
  • Slides

The questions in Qisquiz are original, but I wanted learners to easily access useful official and community resources.


Why I Focused on Code-Reading Questions

For Qiskit, understanding the concept is not enough.

Learners also need to understand how the APIs are actually used in code.

That is why Qisquiz includes many code-based questions.

For example, a question may ask the user to read code like this and understand what it does:

from qiskit import QuantumCircuit
from qiskit.primitives import StatevectorSampler

qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()

sampler = StatevectorSampler()
job = sampler.run([qc], shots=1024)
result = job.result()
Enter fullscreen mode Exit fullscreen mode

For certification prep, I think it is important not only to memorize terms, but also to read code and understand its meaning.

Code-reading questions are especially useful for topics such as:

  • SamplerV2
  • EstimatorV2
  • PUB format
  • generate_preset_pass_manager
  • Dynamic circuits
  • OpenQASM 3
  • Result object navigation

Tech Stack

Qisquiz is built with:

  • Next.js 15
  • App Router
  • TypeScript
  • Tailwind CSS v4
  • prism-react-renderer
  • Browser LocalStorage
  • Vercel

I wanted to build and publish the app quickly, so I chose Next.js and Vercel.

For the current version, question data is stored as static TypeScript data, and progress is stored locally in the browser.

This keeps the architecture simple while leaving room for future backend features.


Project Structure

The repository is roughly organized like this:

src/
  app/
    page.tsx
    topics/
    quiz/
    mock-exam/
    dashboard/
    resources/

  components/
    QuizCard.tsx
    AnswerChoice.tsx
    CodeBlock.tsx
    ScoreSummary.tsx
    ResourceCard.tsx

  data/
    questions.ts
    resources.ts

  lib/
    progress.ts

  types/
    quiz.ts

docs/
  question-writing-guidelines.md

scripts/
  validate-questions.ts
Enter fullscreen mode Exit fullscreen mode

The question data is stored in:

src/data/questions.ts
Enter fullscreen mode Exit fullscreen mode

The type definitions are stored in:

src/types/quiz.ts
Enter fullscreen mode Exit fullscreen mode

There is also a validation command for checking the question bank:

npm run validate:questions
Enter fullscreen mode Exit fullscreen mode

As the number of questions grows, it becomes easier to introduce mistakes such as:

  • Incorrect answer indexes
  • Missing choices
  • Duplicate question IDs
  • Incomplete tags
  • Missing explanations

Because of this, I added a simple validation script to help maintain question quality.


Question Data Design

The question data in Qisquiz includes more than just question text and choices.

Each question can contain metadata useful for certification prep.

type QuizQuestion = {
  id: string;
  section: number;
  sectionTitle: string;
  difficulty: "easy" | "medium" | "hard";
  question: string;
  code?: string;
  choices: string[];
  correctAnswerIndex: number;
  explanation: string;
  tags: string[];
  sourceReference?: string;
  relatedDocsUrl?: string;
  examSkill?: string;
  commonMistake?: string;
  estimatedTimeSeconds?: number;
  concept?: string;
  objective?: string;
  qiskitVersion?: string;
  lastReviewedAt?: string;
};
Enter fullscreen mode Exit fullscreen mode

This structure makes it easier to support features such as:

  • Section-based practice
  • Difficulty-based practice
  • Tag-based weakness analysis
  • Reviewing only incorrect questions
  • Mock exam mode
  • Question search
  • Future spaced repetition
  • Future user-specific learning history

What I Learned While Building It

While building Qisquiz, I realized that quantum computing learning tools should not only explain formulas or theory.

For implementation-oriented tools like Qiskit, learners also need to understand:

  • API syntax
  • How to run circuits
  • How to retrieve results
  • Differences between versions
  • How to read official documentation

In particular, Qiskit v2.X includes many practical topics such as SamplerV2, EstimatorV2, Runtime, and OpenQASM 3.

These topics are important both for certification prep and for real development.

That is why I think quiz-based active recall works very well for learning Qiskit.


Current Status and Roadmap

Qisquiz is still a work in progress, but the current version already includes:

  • 120-question question bank
  • Full Mock Exam mode
  • Dashboard
  • Review features
  • Local progress tracking
  • Section-based practice
  • Tag-based weakness analysis

In the future, I want to make it a more complete certification prep app.

Planned improvements include:

  • Expanding the question bank to 300+ questions
  • Improving Mock Exam score analysis
  • Making weak tag visualization more detailed
  • Adding spaced repetition
  • Adding user accounts
  • Adding cloud sync
  • Adding AI-generated personalized study plans
  • Supporting community-created question sets
  • Reviewing questions when Qiskit versions change
  • Adding explanation pages and mini lessons

I am especially interested in building a system that can analyze incorrect answers and automatically identify which APIs or concepts the learner should review next.


Try It

You can try Qisquiz here:

https://qisquiz.vercel.app/

The GitHub repository is here:

https://github.com/dorakingx/qisquiz

If you are learning Qiskit v2.X, preparing for the IBM Qiskit Developer certification exam, or interested in implementation-oriented quantum computing education, I hope Qisquiz can be useful.

Issues and feedback are very welcome.


Disclaimer

Qisquiz is an independent learning tool.

It is not affiliated with, endorsed by, or officially connected to IBM, Qiskit, or any related official organization.

The questions are original and created for educational purposes only. They are not official exam questions, exam dumps, paid dumps, or copied copyrighted practice questions.

Top comments (0)