応用プログラミング及び実習 2018年度 第1回 実習の準備その1

第1回全体のページへ戻る

Step1-1 実習の進め方を理解しよう

大前提

大学の授業は,授業時間外に学習することを前提として設計されています.この授業でも,授業時間内の努力だけで全ての課題をこなすことは想定していません.自分で教科書を読んで予習復習する/高橋のオフィスアワーに質問に来る/チューター制度を利用する/自習開放されている計算機室を利用するなどして授業時間外にも学習しなければ,当然ついていけなくなる可能性があります.

また,欠席した場合,次回の授業までに欠席した回の課題をやっておく必要があります.

計算機環境など

この実習では,龍谷大学の計算機実習室のLinux環境を用い,次のようにすることを前提とします.

UNIXのコマンドについてはこの科目以前の科目で学んでいるはずのことではありますが,わからないことがあったら次のページを参照して自習して下さい:Docs/4UNIXBeginners

Visual Studio Code の使い方については,第1回の授業 で学びます.

この授業で扱うプログラミング言語 Python およびその周辺のソフトウェアは,上記Linux環境に限らず,自分の Windows PC や mac にインストールして使うこともできます. 興味のあるひとはこちらへどうぞ: AProg/PythonProgramming

実習課題の取り組み方,分類,点数など

★ 取り組み方

この授業では,毎回いくつか課題を出します.課題には個別に期限が設定されています. 期限までに課題を仕上げたら,takatakaまたはTAさんに知らせてチェックしてもらう必要があります. 質問や一部課題のチェックを受けるためにTAさんを呼ぶときは,callTA という仕組みを使います.

★ 分類

課題には,

課題ex05B (TA)

のような名前がついてます.この例は,次のような意味です:

ex05B
第5回授業のいくつかある実習(exercise)の課題のうちの2つ目(A, B, C,...のB).ただし,後述の「おまけ課題」の場合,アルファベット部分にはSが付いてます.
(TA)
TAチェック課題」という種類の課題であることを表す.
  • 期限までに仕上げて自分で理解しておく必要がある(= 取り組むことが必須の)課題である
  • 期限までにTAさんのチェック(口頭試問)を受ける必要がある.チェックを受けたいときは,callta を使ってください.

課題の種類は,他には次のようなものがあります.

(self)
セルフチェック課題」.次のようなものです.
  • 期限までに仕上げて自分で理解しておく必要がある(= 取り組むことが必須の)課題である
  • 期限までに仕上げたことをtakatakaまたはTAさんに知らせる必要がある.callta を使わず直接声をかければよい.
(omake)
おまけ課題」.
  • 必須の課題だけでは満足できない人向け
  • 仕上げたら,takatakaに声をかけてください

★ 点数など

目次へもどる

Step1-2 Python のプログラミング環境を整えよう

はじめに

プログラミング言語 Python は,現在も活発に開発が続けられているため,まめにバージョンアップがあります.また Python では,標準で備わっている機能に加えて,追加インストールした「拡張モジュール」と呼ばれるプログラムを利用することで,科学技術計算,機械学習/人工知能,画像処理,ウェブサービス,ゲーム開発,等々の多様なプログラムを簡単に書くことができます.

みなさん自身に,Python 本体とこれら拡張モジュールの最新版をインストールして保守してもらう(バージョンアップ等に対応する)というのはとてもよい経験になりますが,時間と計算機環境の制約(個人でいろいろインストールすると学生一人あたりに割り当てられたディスク容量をあっという間に食いつぶしてしまう)のため,困難です(自分のPCにインストールすればやりたい放題です. 興味のあるひとはこちらへどうぞ: AProg/PythonProgramming

そこでこの授業では,Python の仮想環境を構築する機能を利用して,この授業で必要なソフトウェア一式をインストールした仮想環境を教員側で構築しておき,学生のみなさんにはそれを利用してもらうことにしました.こうすることで,計算機室の Linux 環境のシステムには入ってないソフト/拡張モジュールや,より新しいバージョンのソフト/拡張モジュールも使えるようにできます.

aprog コマンドの設定

というわけで,この授業で用意されている Python 仮想環境を使えるようにする準備をしましょう.

  1. 次のようにコマンドを実行します(コピペしましょう).check 行頭の '$' は入力する必要ありません. check このコマンドの実行は今回一度限りの作業です.
    $ /roes/sample/takataka/aprog/setup.sh
    これで,「端末」内でコマンドを解釈して実行してくれるプログラム(シェルといいます)に,aprog というコマンドが登録されました.ただし,設定が有効になるのは,次にシェルを起動したときからです.
  2. 「端末」をいったん終了して,新しいのを起動しましょう.
  3. そこで次のように aprog コマンドを実行します.
    $ aprog
  4. すると,コマンド入力を促す文字列(上記の $ とその前に表示される部分,プロンプト といいます)が次のように変わるはずです.
    (aprog) $
    これは,この授業のために用意された aprog という仮想環境が有効になっていることを表しています.check 今後,龍大計算機室の Linux 環境でこの授業のための Python プログラミングをするときは,このようにして仮想環境 aprog を有効にするのを忘れずに.
  5. この環境で python コマンドを次のように実行してみましょう.
    (aprog) $ python  -V        大文字のゔぃ
    Python 3.6.1 
    出力から,この環境の python コマンドで実行される Python のバージョンは 3.6.1 であることがわかります.
  6. 仮想環境から抜けるには,次のように deactivate コマンドを実行します.
    (aprog) $ deactivate
    $
    授業中に指示がない限り,わざわざ deactivate する必要はありません(ログアウトと同時に仮想環境からも抜けます). check この授業とは別の授業で龍大Linux環境の Python を使う場合は,間違って aprog 仮想環境を使うと混乱のもとですので,通常の環境と使い分けるようにしましょう.

興味のあるひと向けに,こちらで通常の環境と aprog 仮想環境の違いを説明しています.

ディレクトリの作成

自分のホームディレクトリの下に,aprog20XY という名前のディレクトリをつくりましょう. check 「aprog20XY」の XY には,「20XYが今年度を表す4桁の数(西暦)になるように」数を当てはめて考えてください. mkdir コマンドを使いましょう. やり方がわからないひとはこちらへ:Docs/4UNIXBeginners

目次へもどる

Step1-3 Jupyter Notebook 使ってみよう

Jupyter Notebook というのは,ブラウザ上で Python などのプログラミング言語を対話的に実行できる仕組みです.次のようにして実際に動かしてみましょう.

  1. Notebook ファイルをダウンロード.以下のリンク先のファイルを ~/aprog20XY へダウンロードしましょう.右クリックして「リンク先を別名で保存」とかそんなん.

    01note_sample.ipynb

  2. ファイルの存在を確認,
    $ cd ~/aprog20XY
    $ ls
    (01note_sample.ipynbが存在してることを確認)
  3. 仮想環境 aprog を有効にして Jupyter Notebook を起動,上記のファイルを開く.
    $ aprog
    (aprog) $ jupyter  notebook  01note_sample.ipynb
    • ブラウザが開いて,そこにノートブック ex01step1.ipynb の内容が表示されます.
    • jupyter コマンドを実行した端末にたくさんメッセージが出力されますが,慌てることはありません.
  4. ここからはノートブックに書かれた指示に従ってください. check ノートブックを閉じたらまたここに戻ってきましょう.
  5. jupyter を終了するには,起動したシェルで Ctrl+C (CTRLキーを押しながらc)を押します. すると以下のようなメッセージが出ますので,yを押して Enter で終了します.
    Shutdown this notebook server (y/[n])?

★★★ ここからは,第1回全体のページへ戻って次のステップへ進みましょう ★★★

目次へもどる


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-09-09 (日) 08:45:43