2016年度 : プログラミング2
- シラバス
- 連絡先: メールアドレス・教員部屋はシラバス参照。
- 講義用Slack: prog1-ie-univ-ryukyu.slack.com *プログラミング1で利用してましたが、プログラミング2でも継続利用。全員向け通知は全てslackでやります。
- 参考文献・サイト
- 講義資料
- 第1回(10/4): C言語入門1(インタプリタ言語とコンパイラ言語,静的な型付け、型宣言、制御文、関数、コンパイル、実行)
- 第2回(10/11): C言語入門2(配列、構造体)
- 第3回(10/18): Javaの基本知識(変数と定数,演算子,型変換,配列,制御文)
第4回(10/25): 標準入出力, コメントとコーディング規約- 第4回(10/25): 基礎知識2(データ型、キャスト、命名規則、基本ライブラリ、演算子、while文、ジャンプによる制御)
- 第5回(11/1): オブジェクト指向1: クラスとインスタンス,コンストラクタ
第6回(11/8): オブジェクト指向2: 関数 vs. メソッド,処理と情報の隠蔽(カプセル化),継承- 第6回(11/8): オブジェクト指向2: 参照,継承
第7回(11/15): 統合環境の利用(コード読みとデバッグ実行)、ユニットテスト、バージョン管理(pull request と merge)- 第7回(11/15): 統合環境の利用(コード読みとデバッグ実行)、ユニットテスト、バージョン管理(IntelliJからの利用)
第8回(11/22): 振り返り1(プログラムの実行,バージョン管理,ユニットテスト,コード読解)- 第8回(11/22): 振り返り1(プログラムの実行,バージョン管理,コード読解)、pull requests、ファイル読み込みと例外処理、ListとArrayList
第9回(11/29): オブジェクト指向3: 多重定義(Overload)- 第9回(11/29): オブジェクト指向3: 継承ツリー、protected修飾子、文法補足、例外補足とファイル書き込み
第10回(12/6): InteliJ + gradle による構成管理、jarの利用- 第10回(12/6): ポリモーフィズム・多態性(継承とオーバーライドの利用)
第11回(12/13): オブジェクト指向4: 多態性(polymorphism)とオーバーライド,アノテーション- 第11回(12/13): InteliJ + gradle による構成管理、jarの利用
- 第12回(12/20): 抽象クラス(Abstract),インターフェース(Interface)と多重継承
- 第13回(1/17): 高度なデバッグ実行(スタックフレームの移動、条件ブレーク)
第14回(1/24): 例外と例外処理、Java: クラスライブラリ- 第14回(1/24): Thread入門
- 第15回(1/31): 振り返り2(実践的なプログラミング,継承,隠蔽,オーバーロード,オーバーライド,多態性)
- (第16回(2/7): レポート未提出者対応)
第1回(10/4): C言語入門1(インタプリタ言語とコンパイラ言語,静的な型付け、型宣言、制御文、関数、コンパイル、実行)
- シラバス
- 講義用Slack: prog1-ie-univ-ryukyu.slack.com *プログラミング1で利用してましたが、プログラミング2でも継続利用。全員向け通知は全てslackでやります。
- 席とペアプロについて
2週目まではペアプロなし(演習時間中は自由にやろう)。
3週目からペアプロ予定。3週目(10/18)開始前までにペアorチームを調整し、プログラミング2用のGoogleドキュメントにある「ペアプロ調整-1013」に記入下さい。 - 今週のお告げ: 自習(予習・復讐)を大切に(音楽やスポーツでは当然のように練習するじゃろ?)
- ミニテスト: 今週はなし。出欠代わりに共有フォルダの「出欠-20161004」へ記入すること。
補足: 学科のG-mailアドレス「e1657xx@ie.u-ryukyu.ac.jp」でログインしてください。
- [1,2週目の進め方]
- 「2週間*2コマ = 4コマ」かけてC言語勉強。
- 10/4: 1時限目〜2時限目: C言語の授業中心+演習、課題レポート1説明
- 10/11: 1時限目〜2時限目: 演習、レポート相談対応
- [講義資料]
- 初めてのC言語(コンパイラ言語)
- 授業録画アーカイブ: 後日リンク掲載。
- [レポート課題] 課題レポート1: シンプルなタイピングゲーム
〆切: 第3回(10/18)の講義開始前
- C言語: 教科書代わり1: 初心者のためのポイント学習C言語
- C言語: 教科書代わり2: 苦しんで覚えるC言語(苦C)
- C言語: 動画解説+演習: paiza:C言語入門
- マニュアル: 【man 】 オンライン・マニュアルを参照する
- 授業「アルゴリズムとデータ構造」向け: [ ポインタ虎の巻 | ポインタの裏話 ]
関連リンク
第2回(10/11): C言語入門2(配列、構造体)
- [ペアプロ調整] 第3回(10/18)開始前までに調整下さい。詳細は第1回目参照。
- 1時限目: [自由演習]
- C言語演習1〜3
- 想定時間: 演習1~3各々が20~30分程度、合計60〜90分程度。
- ペアを気にせず自由に取り組んで下さい。一人でやるも良し、複数人でやるも良し。
- 最初から回答例まで提示していますが、まずは見ないで取り組んでみて下さい。
- 気づいたこと・分かったことは、整理して「レポート1」に含めて記入して下さい。ただし「半ページ」を上限とします。
- 2時限目: レポート相談対応 by 山田先生&TA
- 宿題
- レポート1: 第3回(10/18)の講義開始前。
- 教科書読み: 3章まで。余裕があるなら4章も。なおEclipseの代わりにIntelliJを使います。
第3回(10/18): 第3回(10/18): Javaの基本知識(変数と定数,演算子,型変換,配列,制御文)
- 環境構築?(必要な人だけ)
- 確認方法: ターミナルで「javac -version」を実行。1.8以上がインストールされてるならOK。1.8未満の人は下記手順でインストール。
- ターミナルから「brew cask install java」を実行。
- シラバス
- 席とペアプロについて
2週目まではペアプロなし(演習時間中は自由にやろう)。
3週目からペアプロ予定。3週目(10/18)開始前までにペアorチームを調整し、プログラミング2用のGoogleドキュメントにある「ペアプロ調整-1013」に記入下さい。 - 今週のお告げ: (告知) デザインスクール
- ミニテスト
補足: 学科のG-mailアドレス「e1657xx@ie.u-ryukyu.ac.jp」でログインしてください。
- [講義資料]
- 初めてのJava
- 授業録画アーカイブ: 後日リンク掲載。
- [レポート課題] 課題レポート2: シンプルなタイピングゲーム(Java編)
〆切: 第5回(11/1)の講義開始前
- 公式ドキュメント: [ API | All docs ]
- paiza動画学習: Java入門編(初めてプログラミングする人向けの動画講義。1つのコンテンツは数分程度に細分化されてて、かつ、コードを自動採点するシステムが提供されています。独習の進め方としては「数分動画閲覧して、自動採点される課題に取り組む」を繰り返すことになります。)
- ドットインストール: Java 8入門 (全43回)(paiza同様、1つのコンテンツが数分程度の動画に細分化されて提供されてます。)
- CodingBat(課題が多数例示されています。サイト上でコードの動作確認をすることも可能。)
- 言語処理100本ノック 2015(特定分野に偏っていますが、課題が難易度別に提供されてます。UNIX思想も含まれてます。)
関連リンク
第4回(10/25): 基礎知識2(データ型、キャスト、命名規則、基本ライブラリ、演算子、while文、ジャンプによる制御)
- 今週のお告げ: 余裕のある計画を。
締め切りギリギリまで詰め込んだ計画だと、病気など何らかの想定外が置きた時点で計画が破綻します。普段から綱渡りの状況を作るのではなく、余裕のある計画を建てて行動しよう。
- ミニテスト
補足: 学科のG-mailアドレス「e1657xx@ie.u-ryukyu.ac.jp」でログインしてください。
- [ペアプロ演習]
- 演習1: Javaに慣れよう
- 提出先: Googleドキュメントの「ex1」。
- [講義資料]
- Java入門(いろいろなデータ型、キャスト演算子、命名規則、標準ライブラリ)
- 関連: 正規表現regex
- 授業録画アーカイブ: 後日リンク掲載。
- 宿題
- レポート2: 第5回(11/1)の講義開始前。
3ページ上限。ソースコードも提出してもらうので、レポート内にコード全体のコピペは不要。レポートには的を絞って書いて下さい。
- 教科書読み: 11章まで。
- 分かるところはスキップしよう。
- e.g., 各章の最後にある「まとめ(要点の整理、通過テスト)」をやると簡単にチェックできるはず。コードはできるだけ動かして確認するようにしよう。
- 余裕がある人: 教科書13章〜14章。
- レポート2: 第5回(11/1)の講義開始前。
- (10/26追加) Tips: 文字列、文字配列操作のTips
第5回(11/1): オブジェクト指向1: クラスとインスタンス,コンストラクタ
- 今週のお告げ: 後でデザインスクール紹介。
- ミニテスト
補足: 学科のG-mailアドレス「e1657xx@ie.u-ryukyu.ac.jp」でログインしてください。
- [ペアプロ演習]
- 演習1: Javaに慣れよう
- 提出先: Googleドキュメントの「ex1」。
- [講義資料]
- Tips: 文字列、文字配列操作のTips
- オブジェクト指向1: クラスとインスタンス、コンストラクタ
- 時間に余裕あれば: IntelliJのCommunity Editionのインストール&利用。
- 授業録画アーカイブ: 後日リンク掲載。
- 宿題
- [レポート課題] 課題レポート3: 「じゃんけん」をオブジェクト指向的に実装してみよう。
〆切: 第7回(11/15)の講義開始前。
3ページ上限。ソースコードも提出してもらうので、レポート内にコード全体のコピペは不要。レポートには的を絞って書いて下さい。
- 教科書読み: 13,14章。
- [レポート課題] 課題レポート3: 「じゃんけん」をオブジェクト指向的に実装してみよう。
第6回(11/8): オブジェクト指向2: 参照、継承
- IntelliJ IDEAのCommunity版をダウンロード。
- 今週のお告げ: 機会はあれこれ提供します。伸るか反るかは君たち次第。
- ミニテスト
補足: 学科のG-mailアドレス「e1657xx@ie.u-ryukyu.ac.jp」でログインしてください。
- [ペアプロ演習]
- 演習1: Javaに慣れよう
- 提出先: Googleドキュメントの「ex1」。
- [講義資料]
- Tips: IntelliJ IDEA入門
- オブジェクト指向2: 参照、継承
- 授業録画アーカイブ: 画面1(ホワイトボード含む): 1時限目 | 2時限目 ]
- 授業録画アーカイブ: 画面1(モニタのみ): 1時限目 | 2時限目 ]
- 宿題
- [レポート課題] 課題レポート3: 「じゃんけん」をオブジェクト指向的に実装してみよう。
〆切: 第7回(11/15)の講義開始前。
3ページ上限。ソースコードも提出してもらうので、レポート内にコード全体のコピペは不要。レポートには的を絞って書いて下さい。
- 教科書読み: 15章、17.1節。
- [レポート課題] 課題レポート3: 「じゃんけん」をオブジェクト指向的に実装してみよう。
第7回(11/15): 統合環境の利用(コード読みとデバッグ実行)、ユニットテスト、バージョン管理(IntelliJからの利用)
- 今週のお告げ: 学習サポートルーム2016
プログラミング含めて何でも相談可!ご利用下さい!!
- ミニテスト代わりのアンケート
補足: 学科のG-mailアドレス「e1657xx@ie.u-ryukyu.ac.jp」でログインしてください。
- [ペアプロ演習]
- 演習1: Javaに慣れよう(今週まで。来週には回答提示予定)
- 演習2: IntelliJ, Git, GitHubに慣れよう
- 提出先: Googleドキュメントの「ex1」と「ex2」。
- [講義資料]
- IntelliJ + JUnit4によるユニットテスト
- Gitによるバージョン管理 on IntelliJ
- (前期資料)Gitによるバージョン管理入門
- 授業録画アーカイブ: 画面1(ホワイトボード含む): 1時限目 | 2時限目 ]
- 関連リンク
- 宿題
- [レポート課題] 課題レポート4: リファクタリングを通してユニットテストとバージョン管理に慣れよう。
〆切: 第9回(11/29)の講義開始前。
3ページ上限。ソースコードも提出してもらうので、レポート内にコード全体のコピペは不要。レポートには的を絞って書いて下さい。
- 教科書読み: これまでの復習。余裕があれば16章予習。
- [レポート課題] 課題レポート4: リファクタリングを通してユニットテストとバージョン管理に慣れよう。
第8回(11/22): 振り返り1(プログラムの実行,バージョン管理,コード読解)、pull requests、ファイル読み込みと例外処理、ListとArrayList
- 今週のお告げ: 学習サポートルーム2016
プログラミング含めて何でも相談可!ご利用下さい!!
- ミニテスト
補足: 学科のG-mailアドレス「e1657xx@ie.u-ryukyu.ac.jp」でログインしてください。
- [ペアプロ演習]
- アンケートの結果、今学期はパートナー変更なしに。欠席などでパートナー不在ペアだけその都度調整します。
- 演習2: IntelliJ, Git, GitHubに慣れよう
- 演習3: 迷路を散策してゴールを目指すプログラムを作ってみよう
- 提出先: Googleドキュメントの「ex2」、「ex3」。
- [講義資料]
- IntelliJ + Git + Pull Request(他人のリポジトリに更新リクエストを送ってみよう)(時間不足気味のため後日やることに)
- Github: ExampleFileInput(ファイル読み込み、例外処理、ArrayListの例)
- 授業録画アーカイブ: [ 1時限目 | 2時限目 ]
- 関連リンク
- 宿題
- [レポート課題] 課題レポート4: リファクタリングを通してユニットテストとバージョン管理に慣れよう。
〆切: 第9回(11/29)の講義開始前。
3ページ上限。ソースコードも提出してもらうので、レポート内にコード全体のコピペは不要。レポートには的を絞って書いて下さい。
- 教科書読み: これまでの復習+16章予習。
- [レポート課題] 課題レポート4: リファクタリングを通してユニットテストとバージョン管理に慣れよう。
第9回(11/29): オブジェクト指向3: 継承ツリー、protected修飾子、文法補足、例外補足とファイル書き込み
- 学習サポートルーム2016
- 今週のお告げ: 質問するにも力が必要。今のうちに練習しよう。
- ミニテスト
補足: 学科のG-mailアドレス「e1657xx@ie.u-ryukyu.ac.jp」でログインしてください。
- [ペアプロ演習]
- アンケートの結果、今学期はパートナー変更なしに。欠席などでパートナー不在ペアだけその都度調整します。
- 演習2: IntelliJ, Git, GitHubに慣れよう
- 演習3: 迷路を散策してゴールを目指すプログラムを作ってみよう
- 提出先: Googleドキュメントの「ex2」、「ex3」。
- [講義資料]
- 文法の補足: mainメソッド、複数クラスを含むJavaファイル、インポート文(教科書16章)
- 継承、継承ツリー、protected修飾子(教科書17章)
- 例外についての補足+ファイル書き込みの例
- 授業録画アーカイブ: [ 1限目 | 2限目 ]
- 関連リンク
- 宿題
- [レポート課題] 課題レポート5: 例外に慣れよう。
〆切: 第11回(12/13)の講義開始前。
3ページ上限。ソースコードも提出してもらうので、レポート内にコード全体のコピペは不要。レポートには的を絞って書いて下さい。
- 教科書読み: 18章。
- [レポート課題] 課題レポート5: 例外に慣れよう。
第10回(12/6): ポリモーフィズム・多態性(継承とオーバーライドの利用)
- 学習サポートルーム2016
- 今週のお告げ: 何をするにしても体が資本。参考: ヘルシープログラマ ――プログラミングを楽しく続けるための健康Hack
- ミニテスト
補足: 学科のG-mailアドレス「e1657xx@ie.u-ryukyu.ac.jp」でログインしてください。
- [ペアプロ演習]
- アンケートの結果、今学期はパートナー変更なしに。欠席などでパートナー不在ペアだけその都度調整します。
- 演習2: IntelliJ, Git, GitHubに慣れよう
- 演習3: 迷路を散策してゴールを目指すプログラムを作ってみよう
- 提出先: Googleドキュメントの「ex2」、「ex3」。
- [講義資料]
- ポリモーフィズム(教科書18章)
- コード例: ExamplePolymorphism
- 授業録画アーカイブ: [ 1限目 | 2限目 ]
- 宿題
- [レポート課題] 課題レポート5: 例外に慣れよう。
〆切: 第11回(12/13)の講義開始前。
3ページ上限。ソースコードも提出してもらうので、レポート内にコード全体のコピペは不要。レポートには的を絞って書いて下さい。
- これまでの復習。
- [レポート課題] 課題レポート5: 例外に慣れよう。
第11回(12/13): InteliJ + gradle による構成管理、jarの利用
- 学習サポートルーム2016
- 今週のお告げ: 授業1回寝る/欠席=約1786円也。授業料約26.7万。1学期に10科目履修するなら1科目約2.6万。15コマで割ると約1.7k。実際には国のお金も入ってるのでもっと高い金額が使われてます。勿論時間も浪費することになります。高い授業料払ってるのだから、大学を「使おう」。
- ミニテスト
補足: 学科のG-mailアドレス「e1657xx@ie.u-ryukyu.ac.jp」でログインしてください。
- [ペアプロ演習]
- アンケートの結果、今学期はパートナー変更なしに。欠席などでパートナー不在ペアだけその都度調整します。
- 演習2: IntelliJ, Git, GitHubに慣れよう
- 演習3: 迷路を散策してゴールを目指すプログラムを作ってみよう
- 提出先: Googleドキュメントの「ex2」、「ex3」。
- [講義資料]
- ビルドツール gradle の利用。オマケでmakeも。
- Makefileを含むコード例: make-sample
- 授業録画アーカイブ: [ 1限目 | 2限目 ]
- 宿題
- [レポート課題] 課題レポート6: リファクタリングしてみよう&Gradleに慣れよう。
〆切: 第13回(1/17)の講義開始前。年末年始&曜日振り替えのため1ヶ月以上先になります。忘れる前にやろう。
3ページ上限。ソースコードも提出してもらうので、レポート内にコード全体のコピペは不要。レポートには的を絞って書いて下さい。
- これまでの復習+教科書19章。
- [レポート課題] 課題レポート6: リファクタリングしてみよう&Gradleに慣れよう。
第12回(12/20): 抽象クラス(Abstract),インターフェース(Interface)と多重継承
- 学習サポートルーム2016 *12/22(木)まで。
- 今週のお告げ?: 16単位未満除籍チェックのため、後期のレポート受付はあまり延ばせません。期末試験近づくとそれだけ忙しくなるので、出すつもりのある人は今のうちにやろう。(締切日を過ぎて提出する人は、提出後にメール報告もして下さい)
- ミニテスト
補足: 学科のG-mailアドレス「e1657xx@ie.u-ryukyu.ac.jp」でログインしてください。
- [ペアプロ演習] *ペアプロで下記やるのは今日が最後の予定。
- アンケートの結果、今学期はパートナー変更なしに。欠席などでパートナー不在ペアだけその都度調整します。
- 演習2: IntelliJ, Git, GitHubに慣れよう
- 演習3: 迷路を散策してゴールを目指すプログラムを作ってみよう
- 提出先: Googleドキュメントの「ex2」、「ex3」。
- [講義資料]
- 抽象クラス(Abstract),インターフェース(Interface)と多重継承 *教科書の例は自分で読み解いてみよう。
- 抽象クラスとインターフェースのコード例: github: [ stack-ex | interface-ex ]
- オマケ: シンプルなチャットの例: chat-ex
- 授業録画アーカイブ: [ 1限目 | 2限目 ]
- 宿題
- [レポート課題] 課題レポート6: リファクタリングしてみよう&Gradleに慣れよう。
〆切: 第13回(1/17)の講義開始前。年末年始&曜日振り替えのため1ヶ月以上先になります。忘れる前にやろう。
3ページ上限。ソースコードも提出してもらうので、レポート内にコード全体のコピペは不要。レポートには的を絞って書いて下さい。
- これまでの復習+教科書20章。
- [レポート課題] 課題レポート6: リファクタリングしてみよう&Gradleに慣れよう。
- 予告
- 1月からソフトウェア演習2でrobocodeやることを検討中。ペアプロチームで。
- プログラミング2のレポートは「課題レポート7」で最後。いくつか条件(下記参照)を設定しますが、その条件を守ればなんでも良いです。各自orペアチームで取り組むことを可にする予定。
- Java。
- 開発は Git + GitHub を利用すること。(commit log が最終版の1件しかないのはNG。メソッド単位なり適度なタイミングでcommitしよう。)
- 一人当たり約100行(コメント2割含む)。2,3人の場合、一人あたり約70行でok。どこを担当したのか明示すること。
- ペアチームで取り組む場合、口頭試問(レポートについて口頭で説明)を必須とします。
- 自作クラスを2個以上含むこと。カプセル化すること。
- クラス毎に2個以上自作メソッドを含むこと。メソッド毎に1つ以上のユニットテストを書くこと。
- 1つのメソッドは50行を超えないこと。
- Gradleで実行可能なjarファイルを生成できるようにすること。
- <課題設定例>
- 上記条件を守っているなら、何を実装しても構わない。以下は課題例の紹介。
- 例えば、ソフトウェア演習2でrobocodeをやることになった場合、それをプログラミング2のレポートとして書いても良い。
- paizaやAtCoder、言語処理100本ノックなどの課題に取り組むのも良い。
- レポート提出〆切は、15回目(1/31)を予定。
<条件例> - 評価について。
- シラバス「レポートおよび課題(80%)」
- 既に出してるレポート課題6件。「6件で50点満点」、「前述の課題レポート7で30点満点」の合計80点満点に換算予定。
第13回(1/17): 高度なデバッグ実行(スタックフレームの移動、条件ブレーク)
- 今週のお告げ: こんなレポートは嫌だ2016
- ミニテスト *自己評価アンケート。
補足: 学科のG-mailアドレス「e1657xx@ie.u-ryukyu.ac.jp」でログインしてください。
- [ペアプロ演習] *ソフトウェア演習2?
- [講義資料]
- 発展的な知識(教科書20章) *教科書の例は自分で読み解いてみよう。
- デバッガの利用
- 授業録画アーカイブ: [ 1限目 | 2限目 ]
- 宿題
- 過去の宿題(レポート課題1〜6)について
- レポート1〜5について、當間採点結果を共有フォルダに掲載しました。この点数には遅延減点は加味していませんので、遅延提出した人はここから減点されることになります。
- レポート内に記載してた質問については個別にメール回答を送信したつもりです。回答が届いていない質問・疑問事項等があればメールかslackで聞いて下さい。(レポートへの記載だけだと気づくのに遅れます)
- 2/23(木)まではできるだけ受け付けます。提出したら「(prog2/report1) 提出」というタイトルを付けたメールを送って下さい。未送付の場合採点されませんので注意。最終日にまとめて出すのはNG。採点時間がありません。
- [レポート課題] 課題レポート7: 最終課題(小作品制作、仕上げ)について
〆切: 2/7(火)。最終課題レポート7は、自由課題のため採点に時間がかかります。2/7(火)までしか受け取りません。
- これまでの復習。
- 過去の宿題(レポート課題1〜6)について
第14回(1/24): Thread入門
- 今週のお告げ: 記憶に頼るぐらいならカレンダーを使おう。
- ミニテスト
補足: 学科のG-mailアドレス「e1657xx@ie.u-ryukyu.ac.jp」でログインしてください。
- [講義資料]
- 宿題(先週の補足参照)
第15回(1/31): 振り返り2(実践的なプログラミング,継承,隠蔽,オーバーロード,オーバーライド,多態性)
- 今週のお告げ: 「自分なりのHello World」を持とう。これまでにPython, C, Java, Shellscript等を習ってきたはずだが、今後は独学でプログラム言語の仕様やノウハウを学んでいくことになる。その際に、「言語の癖」を体感しやすくするための応用例を一つ持とう。同じ応用例を複数言語で実装・比較することで言語特性を確認しやすくなります。(私の場合は遺伝的アルゴリズムを実装してみることが多い)。
- ミニテスト *出欠+α
補足: 学科のG-mailアドレス「e1657xx@ie.u-ryukyu.ac.jp」でログインしてください。
- 授業評価アンケート
- 最終課題確認
- 口頭試問日の調整。ペアやチームでレポート提出予定の人たちが対象。下記リンク先を参照の上、レポート提出後に口頭試問日をリクエスして下さい。
- 2016年度/プログラミング2の口頭試問日調整
- [講義資料]
- 振り返り
- 実践性達成目標: Googleドキュメントの「実践性達成目標.zip」。大別して3つ、(1) ITリテラシ、(2)ソフトウェア技術、(3)ハードウェア技術に分けて作成。拡張子「.mm」はマインドマップ(MindMap)形式。山田先生によるアプリ紹介ページ。
- 授業録画アーカイブ: (後でリンク掲載)
- 宿題(先週の補足参照)
第16回(2/7): レポート相談等対応
- 自習。希望者は参加下さい。レポート相談があれば対応します。プログラミング2以外の勉強等に使ってもいいです。
参考文献・サイト
- (C言語) 参考書
- C実践プログラミング 第3版 (2015年度まで利用してたC言語の教科書)
- 初心者のためのポイント学習C言語 (教科書代わり1)
- 苦しんで覚えるC言語(苦C) (教科書代わり2)
- 【 man 】 オンライン・マニュアルを参照する (ドキュメント参照コマンド)
- キーワードやコマンド名の一部からコマンド名を調べるには (正確な名称が分からない場合に利用)
- ポインタ虎の巻 (ポインタ編)
- ポインタの裏話 (ポインタ編)
- (Java) 教科書・参考書
- 教科書: 新わかりやすいJava入門編: 前半のChapter 10 までは、基礎を学んでる人にとっては文法的な違いを把握する程度ですので、軽く流す予定です。本番は11章以降。
- 統合開発環境(IDE): IntelliJ
- Java公式ドキュメント(チュートリアルもあります)
- online: Java Platform, Standard Edition (Java SE) 8
- download: Java SE 8 Documentation
- UNIXという考え方: いわゆるUNIX哲学(下記)を学べる本。ただし癖の強い訳語も多いので、やや読みにくい。
[UNIX哲学] 「一つのことを行い、またそれをうまくやるプログラムを書け。協調して動くプログラムを書け。標準入出力(テキスト・ストリーム)を扱うプログラムを書け。標準入出力は普遍的インターフェースなのだ。」
- なぜ、あなたはJavaでオブジェクト指向開発ができないのか: Javaでの話になっていますが、プログラミング全般に共通する話題です。プログラミングにアレルギー持ってる人向けの「取り組み方処方箋」。
- オブジェクト指向でなぜつくるのか 第2版: プログラミングの歴史を踏まえつつ、どのような意図で言語が開発・改定されされているのかという側面から「オブジェクト指向」の特徴を紐解く一冊。
- 大学生のためのリサーチリテラシー入門: 研究のための8つの力: 物事についてどう調べ、整理し、まとめるのかという「大学生に求められる力」を整理し、取り組み方について解説している本。全員、早い段階で一読することを強くお勧めします。
- 独習サイト (主にJava)
- Code Studio(言語を問わず、用意されたブロックを組み合わせてパズルを解く形でプログラミング全般の考え方を学べるサイト。)
- paiza(初めてプログラミングする人向けの動画講義。1つのコンテンツは数分程度に細分化されてて、かつ、コードを自動採点するシステムが提供されています。独習の進め方としては「数分動画閲覧して、自動採点される課題に取り組む」を繰り返すことになります。)
- ドットインストール(paiza同様、1つのコンテンツが数分程度の動画に細分化されて提供されてます。Python, Java以外にも多数の言語や環境について学べます。)
- プログラミングコンテスト(Web参加可能なコンテストサイトを整理してます。日時指定があるものが多いですが、過去問やコード例が公開されてるサイトもあります。)
- CodingBat(課題が多数例示されています。サイト上でコードの動作確認をすることも可能。)
- 言語処理100本ノック 2015(特定分野に偏っていますが、課題が難易度別に提供されてます。UNIX思想も含まれてます。)
- NLPプログラミングチュートリアル(こちらも特定分野に偏っていますが、「解説資料+演習+コード例」を見ながら勉強できます。)
- CodeIQ(いろんな人が提示する課題に挑戦できるサイト。面白い問題を探すもよし、手当たり次第解くのもよし、どういう組織が関わってるか嗅ぎまわるもよし。)
- codecademy
- その他
- ラーニング・パターン(曰く「よりよい学びを実現するためのコツを抽出・記述したもの」。)
- レポートの書き方
- draw.io