↓ メインコンテンツへスキップ

この科目について

位置付け
#

本学部では最初の3セメスターでプログラミング演習が必修科目として設けられています。

セメスター科目言語内容
1プログラミング演習APython基本的なプログラム記述から簡単なデータ処理・可視化、またコンピュータの操作、シェルスクリプトなどを学ぶ。
2プログラミング演習BPython関数・再帰・クラスなどの言語機能を、行列・ベクトル処理・機械学習などを題材として学ぶ。
3プログラミング演習CCソフトウェアとハードウェアの接点を意識するため、第二言語として C を用いてメモリを直接的に扱うプログラミングについて学ぶ。

プログラミングの上達には、継続的な練習が必要です。 これまでにもプログラミングの経験がある人も、ない人も、この科目を通じてプログラミングの基礎をしっかりと身につけてください。 特に、プログラミング経験がある人は、この科目の内容や周りの上達を待っていてはいけません。 自ら進んで能力を高めるよう心掛けてください。 これらの科目で学ぶ内容は、この先の専門科目の基礎体力です。 これらの科目での内容で満足していると、その先の専門科目では手も足も出なくなります。 そこから先の学びを楽しむためにも、しっかりと身につけてください。

授業の運用
#

学年を4クラスに分け、各クラスごとに担当教員が授業を行います。 基本的には各クラスともに同じ教材、同じ内容を学びますが、状況により進度などが変わる可能性があります。 この科目は、プログラミング演習Aに引き続き、4つのツールを用いて運用します。

  • 演習(授業)
    • 各単元の内容説明、各自のコードのレビュー、質問対応などを行います。
  • Web(講義資料)
  • Moodle(課題提出)
    • 課題の提出、採点、フィードバックを行います。
  • Teams(連絡)
    • 教員からの連絡、質問対応などを行います。

受講の勧め
#

  • 毎回の授業に出席すること。
    • 授業内容は積み重ねであり、欠席すると次の内容を理解するのが難しくなります。
    • もちろん、病気などの場合は無理して出席する必要はありませんが、欠席した内容は自習で補ってください。
      • もちろん、質問対応などは行います。
  • 手を動かすこと。
    • プログラミングの習得には、実際にどれくらいプログラムを書いたかという実績が不可欠です。
    • どんどん動かして失敗してください。知識だけではプログラムは書けません。
  • わからないことを放置しないこと。質問に遠慮は不要です。
    • 質問内容によって成績が下がることはありません。
    • 逆にわからないことを放置していると確実に成績は低いものになります。
  • 課題は提出すること。
    • 予習、復習が行われていることを前提に授業が進みます。
    • わからなかったから放置するのではなく、質問して提出できるようにしてください。

TA、補助員
#

この科目では、TA(Teaching Assistant)と補助員が配置されます。 主に週次課題のレビュー、質問対応を行います。 演習中のみの対応になりますが、質問があれば気軽に声をかけてください。

相談について
#

友人との相談
#

友人と協力して課題に取り組むことは問題ではありませんし、どんどん友人間で相談してください。 プログラムが得意な人は、積極的に他の人に教えてください。教えることは非常に良い学習機会になります。 ただし、相談というのは課題への取り組み方、プログラムの書き方についてを教えることであり、 他人のプログラムを見て直接修正することは能力向上にほとんど寄与しないので避けましょう。

生成AI(ChatGPT, Geminiなど)との相談
#

また今日では ChatGPT などの生成AIが発達しており、プログラムを書いてもらうことも可能です。 しかし、生成AIが作成したプログラムが理解できなければ利用する意味がありません。 将来的に人間がプログラムを書くことが少なくなっていくでしょう。 しかし、AI が書いたプログラムが正しく動作しているかどうかを確認するのは、どこまで行っても人間の仕事です。 つまり、人間は、AI を監督し、プログラムを書かせなければいけないのです。 書かれたプログラムを理解できなければ、AI を監督しているとは言えず、AI に使われるだけで終わってしまいます。 そのためには、しっかりと自分でプログラムを書き、AI の書いたプログラムを理解できるよう学習する必要があります。

その学習方法の一つとして、プログラムの説明やバグ修正に生成AIを利用するのは良い利用方法であると思います。 作成したプログラムを生成AIに投げ、説明するよう求めると、各行で何が行われているのかが説明されます。 また、期待通りの動作にならない場合に、生成AI に助けを求めると教えてくれる場合があります。

与えられた仕様を読み取り、プログラムに書き下せるようになるのがプログラミング演習の目標です。 生成AIが自身の代わりにプログラムを作成した場合、プログラミング演習科目の目標が達成できない可能性が高いです。 そのため、生成AIはこの目標を達成するために利用するようにしましょう。

授業時間外の対応
#

  • Teamsで、いつでも質問を受け付けます。
    • ただし、授業時間外は返信までに時間を要する場合があります。
    • ソースファイル(.py)を添付してください。スクリーンショットでは問題が再現できない場合があります。
  • 何を、どうしたら、どのような問題が生じたか、を自分の言葉で説明してみてください。 また、ソースコードの各行に何をしている文なのかをコメントで説明を書いてみてください。
    • 多くの問題は、この作業(十分に状況を説明した材料を揃える)をしっかりとやることで自己解決します。
  • 質問はTeamsの質問用のチャネルに投稿してください。
    • 質問と解決方法を多くの受講生が共有することができ、スタッフも他の受講生も勉強になります。
    • なおダイレクトメッセージやメイルなどで送られてきた質問についても、共有する価値があると判断した場合Teamsの質問用のチャネルに転載してそちらで回答することがあります。
  • 〆切直前に質問されても回答が間に合いません。
    • 課題は〆切直前に取り組むのではなく、出されたその日に取り組んでください。
    • 着手して、うまくいかない場合の試行錯誤や質問対応などの期間を確保できるよう〆切を設けています。

評価
#

具体的な評価はシラバスを参照してください。 成績に関係する項目は次の4つです。

  • 最終課題
  • 試験(中間2回、期末1回の計3回)
  • 週次課題

週次課題のうち、「発展課題(任意)」と書かれているものは提出が必須ではなく、取り組まなくても不利にはなりません。 それ以外の課題(課題01-1 のように番号の付いたもの)は提出対象です。

最終成績に占める割合は具体的には決めていませんが、最終課題と3回の試験が大きなウェイトを占めることになります。 また、最終課題の出来が良かったとしても、試験の成績が悪いと最終成績が低くなることがあります(足切りにより不可となる可能性があります)。