オブジェクト指向言語・同演習のホームページです。受講者はこのページを随時チェックするようにしてください。
(新しいものほど上です)
(07/27 New) (17T 以前生向け)レポート (アップロードページ) (締切 8 月 10 日 木曜日 18 時 30 分) (オンライン提出のみとします。) 18T 以降の学生(つまり 2 時限の「オブジェクト指向言語演習」も受講している学生)は提出する必要はありません。
(← 評価の開閉)
中間試験(30%)、期末試験(40%)、毎週の課題(30%)、 で採点し、授業の目標達成が確認できた者に単位を認定する。
なお、合格/不合格の判定については、単純な加算で 60 点以上を合格とするが、 秀・優・良・可の判定については、割合を考慮して調整をすることがある。
必須課題すべてと、選択(発展)課題の平均提出率分を完璧に解けば満点とする。
個々の課題については、以下の通りとする。
演習時間(通常、木曜日 2 限)内は、原則として自分の力で解く。(TA・教員に聞くのは良い。)
(ただし、解いている問題に特有ではないプログラミング言語一般に関する質問などは許容範囲とする。)
なお、対話型の AI は、人と同等とみなす。つまり、演習時間内は使用禁止である。
なお、一部の事前に公開した課題は、演習時間開始 10 分後を締切とすることがある。
演習時間終了後は、人に相談して解いても良い。 (ただし人の解答のコピペは絶対禁止(コピーさせた側も同罪)) なお、対話型の AI は、人と同等とみなす。つまり、対話型 AI の解答のコピペも禁止である。(自分なりに理解して再構成したものはよい)
安易に訂正して再提出を繰り返すことを防ぐために、基本的に提出しなおしは1回までとする。
(つまり、最初の提出とあわせて、2回まで)
ただし、指摘を受ける前に自分で気がついて再提出するのは良い。
解答の間違いはできるだけ見つけて指摘するようにするが、 他の間違いに隠れて気付かないこともあるので、あくまでも自分の責任で問題の要件を満たしているかチェックすること。
たとえ演習終了後でも、問題を掲示板などに投稿して、不特定多数の人に相談することは禁止する。
(創造工学部)
「オブジェクト指向言語」、
「オブジェクト指向言語演習」、
(工学部—2017年度以前入学生—)
「オブジェクト指向言語」、
「オブジェクト指向言語」と「オブジェクト指向言語演習」は密接に関連しています。 創造工学部生は必ず同時に受講するようにして下さい。両科目の単位認定は連動しています。
2017 年度以前入学の学生(工学部生)については「オブジェクト指向言語演習」は履修 科目表にないので、修得単位にはなりません。単位認定は「オブジェクト指向言語」のみで 行います。ただし、Ⅱ時限目の「オブジェクト指向言語演習」への出席・参加は歓迎します。
インストールには時間がかかるので、 ソフトウェアのインストールを読んで、 できるだけ前もってソフトウェアをインストールしておいて下さい。
注意: 設定が変更されたのに、変更が反映されないときは、 いったんログアウトして、 再度アクセスを試みて下さい。
必ず各自で提出したファイルのバックアップを取っておいて下さい。 (自分のノート PC だけではなく、stfile などの大学のサーバのどこかにもバックアップしておいて下さい!!)
NG などで再提出してもらったファイルの採点は、水曜日にすることが多いですが、忙しくてできないときもあります。 再提出の採点は気長に待ってください。
本日の授業は Zoom でも配信します。 Zoom URL は DreamCampus で通知しています。 なお、Zoom は、対面の授業に参加できない人向けです。 遠隔参加を推奨しているわけではないので、特別な事情のない場合は、対面で参加してください。
6/01 は中間試験のため、1 時限めは Zoom 配信の予定はありません。また 2 時限目は、いつもどおり演習です。 2 時限めのみ Zoom でも配信します。Zoom URL は DreamCampus で通知しています。 1 時限めの中間試験は 3102 教室でしか受けられませんので注意してください。
次週 6/08 は 2 時限めの演習で補足 Ⅰ 章のプリントの内容を扱う予定です。 補足 Ⅰ 章は授業では解説しませんので、各自で読んでおいてください。
また、次週 6/08 以降は、天候(気温)により遠隔で実施となる場合があります。その場合は、 DreamCampus で通知します。
(6/13 New!) 中間試験の得点を「各個人へのメッセージ」 に公開しました(はず)、確認しておいてください。
2 時限めの演習では補足 Ⅰ 章のプリントの内容を扱う予定です。
Java Servlet のコンパイル・実行
(Gradle を使うほうを推奨します。何らかのトラブルでよっぽどうまく行かないときのみ Embedded Jetty を試してください。)
gretty が Gradle 8.0.2 に対応していないようなので(調査中)、Gradle を 7.5.1 以前にダウングレードしてください。 (ダウンロードページ)「Gradle をインストール」 ページの説明のバージョン番号だけ読み替えてください。また、Gradle 8.0.2 を消す必要はありません。環境変数 PATH だけ変更してください。
gretty 4.0.3 で Gradle 8.0.2 に対応していました。
git clone https://guppy.eng.kagawa-u.ac.jp/2023/OOPL/MyServlet.git
をやり直すか、 ファイル app/build.gradle.kts を最新のものに差し替えてください。
6/22、6/29 に、2時限めの演習で補足 Ⅱ、Ⅲ 章のプリントの内容を扱う可能性があります。 補足 Ⅱ, Ⅲ 章は授業では解説しませんので、各自で読んでおいてください。
6/29 は、対面・遠隔 MIX(基本は対面だが、遠隔参加も可)で実施します。 遠隔参加の場合の Zoom URL は DreamCampus で通知しています。
授業評価アンケート(学務係からメールなどが届いているはずです。)
期末テストは 1 時限めに対面で実施します。
2 時限めは授業はありません。
毎週の課題のやり直し分の提出は 8/03(木)23:59 を締め切りとします。
(← ここ以降の予定の開閉)
ここにリンクをはっていないファイルや、公開日前のファイルは 公開日までに変更する可能性があるので注意してください。
補足第 1 〜 3 章は 2 時限目の演習で使用します。
Java Servlet のコンパイル・実行方法として、ここでは 2 通りを紹介しますが、 Gradle を使うほうを推奨します。何らかのトラブルでよっぽどうまく行かないときのみ Embedded Jetty を試してください。
Gradle による Web アプリケーションの作り方
Gradle をインストールする必要はありますが、
あとは一番楽だと思われます。
Embedded Jetty の使い方
依存しているものが少ないので、本来一番トラブルの少ないやりかただと思われますが、
現行の Servlet 5.0 API に対応していませんので現状ではお勧めできません。
Git の使い方 — バージョン管理ツール Git の使い方を紹介します。
Java のソースファイルは準備の都合上 UTF-8 で保存しています。一方 Windows の JDK 17 以前
のデフォルトは Shift_JIS です。
Windows の JDK (17 以前)で、ここのファイルをダウンロードしてコンパイルするときは、
Shift_JIS で保存し直すか、次のように encoding を指定してコンパイルしてください。
なお、JDK 18 以降は Windows でも UTF-8 がデフォルトになったので、-encoding UTF-8
は不要になっています。
javac -encoding UTF-8Nantoka .java
プリント第 2 章のプログラム
Hello0(java, ),
Hello(jar,
java, ),
ColorTest(jar,
java,
),
ShapeTest(jar,
java,
),
StringExample(java,
),
ScannerExample(java,
)
プリント第 3 章のプログラム
CalendarTest(jar,
java,
),
N_gon(jar,
java,
),
Parabola(jar,
java,
),
Gradation1(jar,
java,
),
Graph(java,
),
ArrayIndexOutOfBoundsExceptionTest(java,
,
c,),
Othello(jar,
java,
),
プリント第 4 章のプログラム
MouseTest(jar,
java,
),
KeyTest(jar,
java,
),
ChangeColor(jar,
java,
),
AudioSample(java,
),
Factorial(jar,
java,
),
TryCatchTest
(java,
),
TryCatchTest2
(java,
),
Graph2(jar,
java,
),
AddTime2(jar,
java,
),
MouseDraw(jar,
java,
),
ColorName(jar,
java,
),
LeftRightButton(jar,
java,
),
LeftRightButton2(jar,
java,
),
LeftRightButton3(jar,
java,
),
FinalExample(jar,
java,
),
LeftRightButton4(jar,
java,
),
プリント第 6 章のプログラム
ThreadTest.java,
Guruguru (jar,
java)
Denko (jar,
java)
BubbleSort1(jar,
java),
BubbleSort2(jar,
java,
),
Hanoi(jar,
java,
問6.6.1 の完成イメージの jar,
JavaScript 版)
プリント補足第 Ⅰ 章のプログラム
MyDate.java
,
Counter.java, GetRealPathExample.java, Counter0.java, DirIndex.java,
getRealPath
メソッド,
XXXReader
クラス,
File
クラス,
XXXWriter
クラス,
Integer.parseInt
メソッド,
プリント補足第 Ⅱ 章のプログラム
QueryStringTest.java,
HighLight.java
getQueryString
メソッド
Aisatsu.java, Aisatsu.html, Mitsumori.html, GuestBook.java, GuestBookInput.html,
doPost
メソッド,getParameter
メソッドsetCharacterEncoding
メソッド,
(フィルタ
Filter
で設定する方法,
AuthFilter.java),
forward
メソッド,
sendRedirect
メソッド
getParameterNames
メソッド,
Enumeration
クラス
(Parameters.html,
GetParameterNamesTest.java)
プリント補足第 Ⅲ 章のプログラム
SessionCounter.java,
Quiz.java,
quiz.txt
getSession
メソッド,
getAttribute
メソッド,
setAttribute
メソッド,
invalidate
メソッド ,
Filter
を利用する方法
プリント第 A 章の参考プログラム
プリント第 K 章のプログラム
Hello.kt,
Twice.kt,
VarTest.kt,
Quadratic.kt,
Point.kt,
PointTest.kt,
Movable.kt,
ExtensionTest.kt,
ExtensionTest2.kt,
LambdaTest.kt,
SequenceTest.kt,
Primes.kt,
プリント未掲載の Kotlin プログラム
(GUI アプリケーション)SwingTest.kt, Gradation.kt
(サーブレット)src/main/kotlin/HelloKotlin.kt,
(Kotlin を含む Gradle プロジェクトの build.gradle.kts)
Java の故郷(英語)
TIOBE index
さまざまな検索エンジンに基づく、プログラミング言語の人気ランキング
PYPL
Google 検索に基づく、プログラミング言語の人気ランキング
Programming Languages
Influence Network
プログラミング言語同士がどう影響を与えあっているかをグラフにしたもの
GitHut
GitHub で使われているプログラミング言語のランキング