IBMのコミュニティ活動でQiskit Developer試験の受験虎の巻を作りました

## １．はじめに
　本稿は量子コンピュータ Advent Calendar 2022 のエントリーで、私自身初めてQiitaに投稿しています。
本年、IBM Community Japanが主催する「ナレッジモール研究 2022」というコミュニティ活動で、IBMが行っている**量子開発者認定資格 「IBM Certified Associate Developer - Quantum Computation using Qiskit v0.2X」（以下、本稿ではDeveloper試験と略します）** の学習・受験の手引きとなる「虎の巻」を作りましたのでご紹介します。受験を考えておられる方の参考になれば幸いです。
　ナレッジモール研究では、毎年多くの研究テーマが設定されますが、本年2022年の「量子コンピューターの活用研究 －機械学習・量子化学計算・組み合わせ最適化への適用－」に参加した「2022-B-10c」ＷＧという研究グループでの活動の成果物の一つとして、「虎の巻」を作成しています。
　「2022-B-10c」ＷＧでの研究活動の全体は、Qiita 量子コンピュータ Advent Calendar 2022 [**「IBMコミュニティ活動で『量子人材育成の提案』を行い、２年連続で『最優秀賞』を獲得した話」**](https://qiita.com/ksj555/items/4ca6655730cefd34e553)にて紹介しております。本稿は研究活動のうち、「基礎・Development」コースの活動や成果について紹介するものです。

## ２．取り組みのきっかけ
「基礎・Development」コースのメンバーは４名で、量子コンピュータを初めて学ぶという人がほとんどでした。私もその一人でしたが、初学者でも研究活動で何か達成できることはないかと考え、Developer試験の合格を目標にしたいと考えました。ＷＧリーダーやメンバーの皆さんとのディスカッションを通じて、試験の合格を目標とし、今後の受験者の学習に役立つ手引きとなる「虎の巻」をつくることにしました。
　なお、「2022-B-10c」ＷＧでの研究活動としては、量子人材育成教材の作成において基礎レベル教材の拡充を行うという目標がありました。この目標を達成すべく、「基礎・Development」コースの成果物は、基礎レベル教材の「量子プログラミング」（Qiskit）の一部となっています。



まず、前置きとしてQiskitおよびDeveloper試験について述べます。

## ３．Qiskitについて

Qiskitは、IBM Qなどの量子コンピュータのプログラムを開発するためのフレームワークです。当初IBMにより開発されましたが、オープンソース化され、現在はQiskit Communityによって開発が進められています。Pythonをベースにしており、最新のメタパッケージバージョンは0.39.4です。詳細は[**Qiskit公式サイト**](https://qiskit.org)をご参照ください。

## ４．Developer試験について
　2021年から開始されたIBM量子開発者認定資格の試験です。
　　[公式ホームページ](https://www.ibm.com/training/certification/C0010300)：https://www.ibm.com/training/certification/C0010300

　量子コンピューティングの基礎的な知識があり、Qiskitを使って量子回路の構築・実行を行えるスキルがあることを証明する試験となっています。
　この試験の合格により、「Qiskitを使ってIBMの量子コンピューターやシミュレーター上で量子コンピューティング・プログラムを作成・実行した経験があり、かつ、製品ドキュメントやサポート、同僚からの支援をほぼ受けることなくこれらの実務を実行できることが証明されます」（[日本IBMによる抄訳](https://www.ibm.com/blogs/think/jp-ja/quantum-developer-certification)より）としています。

　試験の言語は英語で、オンラインで実施されます。試験時間は90分。問題は60問出題され、44問以上の正解（73％以上の正解率）で合格となります。試験はテストセンターまたは自宅などの所定の要件を満たす場所で受験できます。
　受験料は、200米ドルとなっています（今回はQiskit Advocate募集の際にDeveloper試験の無料受験バウチャーの配布があり、これを利用しました）。
　受験者には出題内容の守秘義務があります。配点や合格者数などについては公表されていません。試験合格者にはIBMよりデジタルバッジが発行され、LinkedInなどで共有できます。

　[公式ＨＰ](https://www.ibm.com/training/certification/C0010300)では試験について、、
　　　・Study Guide
　　　・Sample Test（本稿ではサンプル問題と呼称）
　などの情報が公開されています。
　Study Guideは、Developer試験について試験の出題内容を具体的に示した資料です。Sample Testは試験の出題形式に慣れるために提供されているものです。

　本番の試験を受けるまでの受験準備のプロセスは以下のとおりです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/220119/2af4cb20-07d5-ae7c-bd8b-995bb86f2850.png)

- 公式ＨＰやStudy Guideを読み解いて、試験範囲やキーワードを確認する。
- Qiskitのドキュメンテーション（テキストブック、APIリファレンス、チュートリアルなど）で、試験範囲に相当するところを学習する。併せて、IBM Quantum や自分のPCで、Qiskitのドキュメントなどで例示されているコードを実行してみる。
- 公開されているサンプル問題を解いてみる。（サンプル問題だけでは出題範囲を網羅していないため、学習の到達度合いを把握することは難しい）
- アチーブメントテスト（Achievement Exam）を受験し、学習の到達度合いを把握する。得点できなかった分野など弱点を補強する。アチーブメントテストの受験は任意であり、受験料は30ドルかかる。
- 本番の試験を受験する。

　　本番の試験での出題は試験の公式ＨＰの「Exam Objectives」で示されている以下の10件の分野となっています。右端に示されているパーセンテージに相当する問題数が出題されるようです。

    　　　　Section  1: Perform Operations an Quantum Circuits　     47%
    　　　　Section  2: Executing Experiments                         3%
    　　　　Section  3: Implement BasicAer:Python-based Simulators    3%
    　　　　Section  4: Implement Qasm                                1%
    　　　　Section  5: Compare and Contrast Quantum Information     10%
    　　　　Section  6: Return the Experiment Results                 7%
    　　　　Section  7: Use Qiskit Tools                              1%
    　　　　Section  8: Display and Use System Information            3%
    　　　　Section  9: Construct Visualizatons                      19%
    　　　　Section 10: Access Aer Provider                           6%

　出題の割合の多いものから順に３つ拾うとSection 1、Section 9、Section 5であり、合計すると全体の76％となっています。配点は公表されていないのでわかりませんが、試験の合格基準は73％以上の正答となっていることから、これらの３つの分野を完璧にできるようにしておくと合格の可能性が高まると考えられます。

## ５．「虎の巻」について
　受験勉強を始めるにあたり、試験を主催するIBMからの公式の情報、Qiskitコミュニティの有志による非公式の情報などを見渡してみると、試験に関する情報は英語のものがほとんどであり、日本語でのまとまった受験資料は少ない状況でした。また、公式HPから参照できる一部の資料はリンク切れが発生していました。
　そこで、受験勉強の傍ら、受験したい方の参考になるような、まとまった資料として「虎の巻」を作ることにしました。「虎の巻」は以下の構成としています。
　
　　（１）全体の説明
　　（２）キーワード表
　　（３）サンプル問題解説
　　（４）補足解説
　　（５）実装解説、早見表
　　（６）受験メモ

これらはGithubにて公開しており、ダウンロード可能です。
https://github.com/wg-quantum/quantum-education-2022/tree/main/2_basic/2-2_basic_textbook_11-4-1-2
成果物はpdfファイルで提供しており、表紙などを含めて全部で130ページ程度あります。実装解説はipynbファイルでも提供しています。

受験までのプロセスと成果物の大まかな対応関係は以下の図のとおりです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/220119/3cf4bef6-26a7-7b95-9852-4642732fc614.png)

以下、「虎の巻」についての説明です。

　**（１）全体の説明**
　もくじに相当するもので、以下の（２）～（６）の概要を説明しているものです。6ページ（表紙等含む、以下同じ）の分量です。

　**（２）キーワード表**
　Study Guideでは試験の出題内容を具体的に示していますが、Qiskitのドキュメントなどとの対応関係はあまり示されていません。私たちはStudy Guideなどを読み解き、出題分野別にキーワードとなる言葉を抽出して、対応するQiskitのドキュメント等の参考資料との対応関係を整理したキーワード表を作成しました。プログラミングのスキルが問われる試験であるため、ドキュメントのどれが対応しているのかを調べる必要がありますが、なかなか骨が折れる作業です。キーワード表の構成を以下の図に示します。この表を参考にしていただければ、目的の資料を見つけるのに役立ちます。この表はドキュメント等のリンク先で数えると77項目あり、8ページの分量です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/220119/eeceacb3-b81a-9f4a-65a7-c28edd185284.png)

　**（３）サンプル問題解説**
　サンプル問題（Sample Test）は全部で20問あり、公式HPからダウンロードできます。問題の最後に正解がついていますが、正解の選択肢の情報だけで正解の根拠などの説明はありません。この20問だけでは試験の出題範囲をカバーできず、自身の学習の到達度を把握する目的には使えませんが、解いてみることは試験対策としても役立つと考え、全問の解説を作りました。各問について正解に至る考え方を示してみました。31ページの分量があります。以下にその一部を示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/220119/79c3d746-b7d7-e2f3-947b-1349a21feb09.png)

　**（４）補足解説**
　受験勉強の経験を踏まえ、勉強しておくとよいと思われる項目を取り上げて、解説をした資料を作りました。試験は選択肢を選ぶ形式が中心ですが、複数の選択肢を選ぶ問題の出題も予見されます。こういった出題にも戸惑わないよう、試験の範囲のトピックから我々が気になったものを取り上げ、こういうところを理解しておくとよいといったことを解説しています。全部で23項目を取り上げており、43ページの分量です。以下にその一部を示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/220119/920e40ad-4877-1eb8-a92c-dd84b9a61e39.png)
　　　　
　**（５）実装解説、早見表**
　出題範囲について、短いコードを例示して実装解説（jupyter notebook）としています。量子回路の操作をしたいときには、このようなコードで行うといったケースを載せています。早見表はいわゆるCheatSheetです。学習した内容を復習したり、試験の直前に見返すのにも役立ちます。実装解説では27項目を取り上げており、pdfファイルにしたものの分量は27ページです。以下、実装解説の一部と、早見表を示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/220119/8047be56-c4f3-b127-1611-ef284fe4d514.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/220119/f64478ce-7c05-6f99-1ff6-dbde020aea36.png)
　　　　
　**（６）受験メモ**
　このコースのメンバー４名全員が受験しましたが、テストセンターでの受験、自宅受験でのＴｉｐｓや勉強法、感想などをまとめたメモを作りました。14ページほどの資料ですが、テストセンターでの受験、自宅受験のイメージや注意点がつかめると思います。なお、全員が本番の試験の直前にアチーブメントテストを受験し、弱点を補強してから本番の試験に臨んでいます。

　Developer試験が昨年始まった試験ということもあり、アチーブメントテストの存在は国内の受験者にはあまり知られていないようです。過去の受験者のブログでは、アチーブメントテストは触れられていないことが多いため、ここで少し説明します｡
　**アチーブメントテストは本番の試験と同じ形式で実施されるテストで、公式の本番模試と言えるものです。** 受験は任意で、30米ドルの受験料がかかります。試験問題は本番と同じく、受験者に守秘義務があります。オンラインでの受験ですが、テストセンターに出向いて受験する必要はなく、自宅等で受験できます。本番の試験とは異なり、試験の監督者はいません。
 試験終了後、前述した10件の出題分野ごとの得点が示されたレポートがもらえます。各問の正解、不正解については示されませんが、このレポートから自分の弱点分野が分かりますので、弱点を補強をしたうえで本番の試験に臨むことができます。

以下は、受験メモの一部で、メンバーが学習に使用した教材を表にしたものです。

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/220119/9c729d1e-99b9-6b98-5c4d-6384603bbebf.png)

## ６．受験結果について
　このコースのメンバー４名全員が受験し、100点満点で80点台～90点台の成績で全員合格しました。ここで紹介した成果物は、試験合格者が作った受験に役立つ資料として一読の価値があると自負しています。

## ７．まとめ
　IBMナレッジモール研究の活動を通じて、量子コンピュータの基礎的な知識やプログラミングスキルを習得できたと実感しています。独習するにはハードルが高いと感じておられる方は、ナレッジモール研究に参加して学ぶ機会をつくることをお勧めします。２０２３年度ナレッジモール研究では今年と同様の研究テーマ「量子コンピューターの活用研究 －機械学習・量子化学計算・組み合わせ最適化への適用－」が設定されています。応用のテーマを掲げていますが、私の経験から言って初心者でも参加は可能だと思います。本稿がDeveloper試験を受験したいという方々の参考になれば幸いです。