Programming Practice (Ruby)

Numbering Code U-LAS30 20008 SJ11 Year/Term 2022 ・ Second semester
Number of Credits 4 Course Type Seminar
Target Year All students Target Student For all majors
Language Japanese Day/Period Mon.4・5
Instructor name HIOKI HIROHISA (Graduate School of Human and Environmental Studies Professor)
Outline and Purpose of the Course コンピュータはプログラム(ソフトウェア)にしたがって動作する.世の中には数多くのソフトウェアがあり,それらを使えばさまざまなデータ処理を実現できる.しかし既存のソフトウェアでは自分のやりたいことがうまく実現できないこともある.そのような場合に自分でプログラムを作成できれば,自力で問題解決への道を開くことも考えられるようになる.また日常的にコンピュータで行う繁雑な作業をプログラムで自動化することで大幅に時間を節約することもできる.プログラムを作ることをプログラミングという.本科目では初学者を対象として,プログラミング言語Rubyを使って,毎回実際に手を動かしながらプログラミングの初歩から主要なトピックを一通り学んでいく.
Course Goals ・プログラミングの基本的な技能を一通り身につける.
・GUIを備えファイル入出力をともなって大量のデータ処理を行うようなプログラムが作成できるようになる.
・さまざまな課題を前にして,その解決をプログラムによって実現する方法を見出す経験を積み,自分の課題に応用できるようになる.
Schedule and Contents プログラミングは専門家の仕事であり,誰もが必ずしも学ぶ必要はないという考え方もある.しかしコンピュータは知的活動の可能性を大きく広げることができるツールであり,それを自在に使いこなす手段としてのプログラミングを学ばないことは,率直に言って非常にもったいないことである.

プログラミングはいい意味で「手軽」に創造性を発揮できる手段でもある.自分の書いたプログラムの記述通りにコンピュータが動くのを見るのは大変うれしいものである.その一方でプログラミングを学ぶことで,コンピュータが決して魔法の箱ではないこと,コンピュータがどれほど融通が利かないものなのかを知ることもできるだろう.この授業でプログラミングによるモノ作りの楽しさ(と難しさ)を体験してほしい.

この授業で予定している内容は,おおよそ次のとおりである.

01. プログラミングの概念とツールの使い方の基礎を学ぶ
02. プログラミングを始める
03. データをモデル化する(変数)
04. プログラムの部品を作る(メソッド)
05. 「繰り返し」を構造化する(ループ)
06. 条件に基づいて処理する(条件に基づくループと条件分岐)
07. 一連のデータを系統的に扱う(配列)
08. ファイルを利用してデータを処理する(ファイル入出力)
09. 問題を分解して結果を統合する(再帰的処理)
10. プログラムをデータとして扱う(手続き)
11. データと処理機能を構造化する(オブジェクト)
12. プログラムを使いやすくする(GUI)
13. 総合的な問題に取り組む
14. オリジナルのプログラムを制作する
15. 授業フィードバック
Evaluation Methods and Policy 授業で扱うトピックごとに内容を理解してプログラムを作成できるようになること, また最終的には,学習したスキルを活かして,自分でテーマを設定してオリジナルのプログラムを作成できるようになることが求められる. トピックごとにプログラムを作成する課題を3つまで設定する(ほとんどのトピックについて3つ設定する予定である).各課題について難易度に応じた標準点を設け, 提出されたプログラムが課題の条件をどの程度満たしているかに基づいて,課題ごとに評点を定める. すべての課題についての合計点を100点満点に換算して科目の成績とする.課せられた条件を満たした上で拡張を行うなど独自の工夫があれば積極的に評価する.成績評価については授業でも説明する.
Course Requirements 受講者はコンピュータの基本的な使い方を身につけていることが求められる.演習にはLinux環境(仮想型端末)を用いる予定である.Linuxおよびプログラミングに関する知識は前堤としない.
Study outside of Class (preparation and review) 授業で学習する各トピックについて,概念・用語などを書籍などで事前に調べ,また可能であれば簡単なプログラムを動かしてみることで,演習にスムーズに取り組めるようにしておくことが望ましい.またプログラミングスキルを磨くには,経験を積み上げることが重要であり,授業での学習の後に学習したトピックに関連するさまざまなプログラムを作成し,動かしてみることで理解を深めることが求められる.
Textbooks Textbooks/References 資料をPandAで配布する
References, etc. 授業ポータルサイトで情報を提供する
Related URL https://www.i.h.kyoto-u.ac.jp/users/hioki/lect/Ruby/
PAGE TOP