#author("2019-09-17T20:50:12+09:00","default:takataka","takataka")
#author("2019-09-30T14:35:38+09:00","default:takataka","takataka")
*応用プログラミング及び実習 2019年度 第1回 実習の準備その1 [#step1]


[[第1回全体のページへ戻る>../../ex01]]

//&color(#ff0000){''工事中''};

#contents

**Step1-1  実習の進め方を理解しよう [#step1_1]
//&color(#ff0000){工事中};

***大前提 [#note]


>
&color(Red){''大学の授業は,授業時間外に学習することを前提として設計されています.この授業でも,授業時間内の努力だけで全ての課題をこなすことは想定していません.自分で教科書を読んで予習復習する/高橋のオフィスアワーに質問に来る/チューター制度を利用する/自習開放されている計算機室を利用するなどして授業時間外にも学習しなければ,当然ついていけなくなる可能性があります.''};
 
&color(Red){''また,欠席した場合,次回の授業までに欠席した回の課題をやっておく必要があります.''};
<

***計算機環境など [#c5b59f93]

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

- ファイル等の操作にはls,cdなどのUNIXのコマンドを用いる
- ソースファイルの編集には Visual Studio Code というエディタを用いる

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

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

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

***実習課題の取り組み方,分類,点数など [#qbe23914]

''★ 取り組み方''

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

''★ 分類''

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

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

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

- &color(blue){''セルフチェック課題''に関する注意:TAさんはあなたの自己申告に基づいてチェックリストに印をつけるだけで,課題がちゃんとできたかどうかを確認してくれるわけではありません.自分で自分の理解度をチェックしてください.嘘をつくこともできます.だからといって,セルフチェック課題をやらないで合格できる人は,たぶんいないでしょう.};
- ''おまけ課題''に関する注意: 必須の課題のみでは課題数も少なく難易度もあまり高くありません.それなりにプログラミングを学びたい人は,ぜひおまけ課題に挑戦してください.また,教科書の問題等にチャレンジするのもよいでしょう.さらに深く学びたい人は,自分で書籍等の参考資料を探しながら何か自分でやりたいことを決めて,それを実現するプログラムを書いてみると,とっても勉強になると思います.

''★ 点数など''

- TAチェック課題,セルフチェック課題は必須なのでやらないと成績評価が下がります.おまけ課題はやらなくても減点はありませんがボーナス加点あるかも,です.
- 同じ種類の課題は同じ点数配分(一部例外あり)です.セルフチェック課題よりもTAチェック課題の方が点数は高くなります.
- 課題のチェック状況については,授業期間中の適当なタイミングに適当な方法でお知らせする予定です.

[[''目次へもどる''>#navigator]]

**Step1-2 Python のプログラミング環境を整えよう [#step1_2]

***はじめに [#k4850682]

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

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

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

*** aprog コマンドの設定 [#j9e3c467]
*** aprog コマンドの設定 [#Step1_2_aprog]

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

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

***ディレクトリの作成 [#ed6fa98c]

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

[[''目次へもどる''>#navigator]]

**Step1-3 Jupyter Notebook 使ってみよう [#step1_3]

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

+ Notebook ファイルをダウンロード.以下のリンク先のファイルを ~/aprog20XY へダウンロードしましょう.右クリックして「リンク先を別名で保存」とかそんなん.
>
[[01note_sample.ipynb>AProg:01note_sample.ipynb]]
<
+ 今後のために,「端末」で複数のタブを切り替えて使えるひとになりましょう.新しいタブを開くのは,「端末」のメニュー > ファイル > New Tab
-- 今後は,jupyter コマンド用とそのほかいろいろ用とでタブを2つ(必要ならもっとたくさん)開くようにするとよいでしょう
+ ファイルの存在を確認,
 $ cd ~/aprog20XY
 $ ls
 (01note_sample.ipynbが存在してることを確認)
+ 仮想環境 aprog を有効にして次のように jupyter コマンドを実行,
 $ aprog
 (aprog) $ jupyter lab   (← 小文字エル,エー,ビー) 
-- ブラウザが開いて,Jupyter の画面が現れます. jupyter コマンドを実行した端末にたくさんメッセージが出力されますが,慌てることはありません.
+ Jupyter の画面のファイル一覧の中にノートブック 01note_sample.ipynb がいるはず.それをクリックして開きます.
+ ''ここからはノートブックに書かれた指示に従ってください.'' &color(white,blue){check}; &color(blue){''ノートブックを閉じたらまたここに戻ってきましょう.''};
+ jupyter を終了するには,起動したシェルで Ctrl+C (CTRLキーを押しながらc)を押します.
すると以下のようなメッセージが出ますので,yを押して Enter で終了します.
 Shutdown this notebook server (y/[n])?

&color(red){''★★★ ここからは,[[第1回全体のページ>../../ex01]]へ戻って次のステップへ進みましょう ★★★''};

[[''目次へもどる''>#navigator]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS