アルゴリズム形式の問題を作成する

問題作成手順

それぞれの項目についての詳しい説明なども一緒に記載しています。

各ステップに進むごとにデータが一時保存されていますので(途中保存も可能)、再開する場合は下書きから再度参照することが可能ですので、一度保存してあとからデータを更新していくこともできます。

問題を作成する時のポリシーに関してはこちらをご確認ください。

 

  1. 「問題一覧」画面の右上から「問題を作成」を押下します。モーダルが表示されたら「アルゴリズム」を選択します。
    • 問題形式: 「アルゴリズム」を選択します。
    • 制限時間: 作成する問題の内容に合わせて制限時間を設定します。他の問題を参考にしながら作成するのがおすすめです。1問で30分前後になるような問題の設計ができると良いです。
    • 難易度: 「易しい」「ふつう」「難しい」から選択します。この難易度は既にある問題から相対的にどれくらいのレベルかを基準に選択するのがおすすめです。問題概要入力のステップにて以下の情報を入力します。
  2. タイトルと詳細を記入する
    1. それぞれ候補者が課題を解く時に表示される内容です。
    2. 「言語を追加する」を押下すると、それまでに記入している内容を自動翻訳します。
  3. 関数の定義
    1. 問題で使う解答用の関数の定義を行います。引数・返り値の設定を行うと、プレビューのエリア内のテンプレートコードが動的に変更されるためどのような関数が生成されるかの参考にお使いいただけます。(候補者が最初に利用するテンプレートと同じものが表示されています。)
    2. 対応しているプログラミング言語はこちらのページで参照ください。
    3. ⚠️ これ以降の入力をした上で一度保存された関数の定義を変更した場合、これ以降のステップの入力に影響があるため、一度保存された内容を削除する必要があります。
      変更する場合はお気をつけください。
    4. 項目の説明は以下の通りです。
      1. 引数の型: 現在利用できる型は、String, Interger, Float, Boolean, Single Linked List, Binary Tree, Arrayの7つです。
      2.  引数名: 引数は別途追加が可能です。その場合は別の引数名を設定する必要があります。
      3. 返り値の型: 引数同様に利用できる型の中から選択します。
  4. テストケースの追加
    1. テストケースを入力します。ここで入力されたテストケースを元に候補者の提出したコードの自動採点を行うため、ケースが詳細に入力されていればいるほど自動採点の精度が上がります。
    2. テストケースには2種類あります。一つは、正解率を測るテストケースで、レポート画面ではこちらの正解率の部分に対応しています。エッジケースを含む様々なケースを網羅して追加することで、候補者のコードはどこまでを考慮できているかを確認することができます。もう一つは、パフォーマンスを測るテストケースで、入力された値を元にコードの実行速度を計測します。入力が徐々に伸びるようにテストケースを入力することで、実行数が増えたときにどの程度劣化するのか(しないのか)を測ることができます。

    3. 項目の説明は以下の通りです。
      1. タイトル: レポート画面でどのケースを通ったか(落ちたのか)を簡単に把握するためにケースごとに分かりやすいタイトルを付けると確認時に非常に有効です。

      2. 詳細: タイトル同様にレポート画面で、ケースの詳細を確認できます。詳細はMarkdown形式で入力が可能です。

      3. 引数の入力: 一つ前のステップで入力した関数定義に基づいて、ケースを追加します。入力時は以下を参考に入力ください。
        • 引数が複数設定されている場合は、複数入力が必要です。
      4. 返り値の入力: 引数同様に一つ前のステップで入力した関数定義に基づいて、ケースを追加します。

      5. 言語追加(任意)

      6. テストケースの追加: 上記テストケースを複数個追加できます。

      7. ラベル: レポート画面にて表示されるパフォーマンスグラフのラベルとして利用されます。

      8. 引数
      9. 返り値: 正解率のテストケース同様に関数定義に沿った値を入力します。
      10. テストケースの追加: パフォーマンステストケースの追加を行います。
  5. 解答の入力 
    1. 解答及び解答コードの入力を行うステップです。追加された解答コードの言語分だけ、候補者の利用できる言語として設定可能になります。 また、追加されたコードの分だけ可読性のスコアの精度を高めることができます。可読性の詳細については以下をご参照ください。
    2. コーディング形式のレポート
    3. 項目の説明は以下の通りです。
      1. 時間計算量

      2. 空間計算量: 追加する解答の時間計算量・空間計算量を設定します。Big-O Complexityについてはこちらを参考にしてください。
      3. タイトル

      4. 詳細

      5. 解答の追加: 解答は複数追加が可能です。その際には解答のラベル(最適・標準・愚直)を選び追加します。

      6. 言語追加(任意)

      7. 解答コードの追加
      8. 解答するプログラミング言語の追加
        • これまでのステップで入力した関数定義、テストケースを満たすような解答コードを入力します。
        • 解答コードは現在サポートされている言語別に追加でき、追加された言語分だけ候補者が解答時に利用できる言語となります。
        • 解答をリセットする場合は、「テンプレートコードに戻す」ボタンを押すことで初期のテンプレートコードにリセットすることができます。
        • 解答コードが入力できたら、前のステップで入力したテストケースを実行できます。実行結果などが確認できるので、問題なく実行できることを確認して次に進んでください。
  6. ヒントの入力(任意)
    1. コーディング試験時に候補者が詰まった際に参照できるヒントを入力します。
    2. 項目の説明は以下の通りです。
      1. 詳細: ヒントの本文です。詳細はMarkdown形式で入力が可能です。
      2. ヒントの追加: ヒントは複数個追加可能です。
      3. 言語追加(任意)