情報科学部Faculty of Computer and Information Sciences
INF900KA-【CS195】(その他の情報学 / Information science 900)リクエスト集中講義(プログラミング言語Go入門)Go Programming For Beginners
上田 拓也Takuya UEDA
授業コードなどClass code etc
学部・研究科Faculty/Graduate school | 情報科学部Faculty of Computer and Information Sciences |
添付ファイル名Attached documents | |
年度Year | 2022 |
授業コードClass code | J3003 |
旧授業コードPrevious Class code | |
旧科目名Previous Class title | |
開講時期Term | 秋学期集中 |
曜日・時限Day/Period | 集中・その他 |
科目種別Class Type | |
キャンパスCampus | 小金井 |
教室名称Classroom name | |
配当年次Grade | 1~ |
単位数Credit(s) | 2 |
備考(履修条件等)Notes | |
他学部公開科目Open Program | |
他学部公開(履修条件等)Open Program (Notes) | |
グローバル・オープン科目Global Open Program | |
成績優秀者の他学部科目履修制度対象Interdepartmental class taking system for Academic Achievers | |
成績優秀者の他学部科目履修(履修条件等)Interdepartmental class taking system for Academic Achievers (Notes) | |
実務経験のある教員による授業科目Class taught by instructors with practical experience | |
SDGsCPSDGs CP | |
アーバンデザインCPUrban Design CP | |
ダイバーシティCPDiversity CP | |
未来教室CPLearning for the Future CP | |
カーボンニュートラルCPCarbon Neutral CP | |
千代田コンソ単位互換提供(他大学向け)Chiyoda Campus Consortium | |
選択・必修Optional/Compulsory | 選択 |
カテゴリー(2022年度以降入学者)Category (2022~) | |
カテゴリー(2021年度以前入学者)Category (~2021) | |
カテゴリーCategory |
専門教育科目 専門科目 |
すべて開くShow all
すべて閉じるHide All
Outline (in English)
Programming language Go is adopted for product development at companies and famous OSS projects. This class deals with basises of Go and practical examples.
授業で使用する言語Default language used in class
日本語 / Japanese
授業の概要と目的(何を学ぶか)Outline and objectives
プログラミング言語Goは、国内外の企業における製品開発や著名なOSSの開発に採用されている。本講義では、Goを基礎から体系的に学び、演習を通じてより実践的な実装力を身につけることを目標とする。
到達目標Goal
Goの言語仕様や開発方法を正しく身につけ、コマンドラインツールやWebアプリケーションを構築できるようになる。
授業で使用する言語Default language used in class
日本語 / Japanese
授業の進め方と方法Method(s)(学期の途中で変更になる場合には、別途提示します。 /If the Method(s) is changed, we will announce the details of any changes. )
講義資料(スライド)を使って解説し、それをもとに演習を行う。最終課題については授業内で成果発表を行う。
アクティブラーニング(グループディスカッション、ディベート等)の実施Active learning in class (Group discussion, Debate.etc.)
あり / Yes
フィールドワーク(学外での実習等)の実施Fieldwork in class
なし / No
授業計画Schedule
授業形態/methods of teaching:対面/face to face
※各回の授業形態は予定です。教員の指示に従ってください。
第1回[対面/face to face]:Goの学習を始めよう
Goの概要、開発環境の構築、公式ドキュメントの読み方、Goの活用事例、Goコミュニティ
第2回[対面/face to face]:Hello, Worldを表示しよう/Goクイズメーカーを作ろう
プログラムの動かし方、main関数、変数、制御構文(if、for、switch)、標準パッケージ
第3回[対面/face to face]:ポーカーゲームを作ろう
組込み型、コンポジット型(配列、スライス、マップ)、ユーザ定義型
第4回[対面/face to face]:メモリ機能つき単位変換ツールを作ろう
関数、メソッド、ポインタ
第5回[対面/face to face]:家計簿プログラムを作ろう
標準出力と標準エラー出力、ファイル操作、プログラムの終了、CSV、文字列処理、課題1の出題
第6回[対面/face to face]:画像変換ツールを作ろう
自作パッケージの作成方法、サードパーティ製パッケージの利用方法、Go Modules
第7回[対面/face to face]:勉強会カレンダーツールを作ろう
日付の処理、抽象化、インタフェース、テストの必要性、単体テスト、テスタビリティ、効果的なテストの書き方
第8回[対面/face to face]:画像チェックツールを作ろう
エラー処理の必要性、エラー処理の基本、実践的なエラー処理
第9回[対面/face to face]:勉強会検索サイトを作ろう
HTTPクライアントを使う方法、HTTPサーバを構築する方法、テンプレートエンジン、データベースへの接続
第10回[対面/face to face]:勉強会検索サイトをインターネットに公開しよう
インターネットからアクセスできる形でWebアプリケーションをデプロイ、公開する方法、課題2の出題
第11回[対面/face to face]:画像変換ツールを効率化しよう
ゴールーチンとチャネル、syncパッケージ、ゴールーチンのスケジューラ
第12回[対面/face to face]:Goの新しい機能を使って配信管理システムを作ってみよう
Go1.18以降で入った新しい機能の使い方、型パラメータ(ジェネリクス)、Fuzzing、Workspace
第13回[対面/face to face]:最終課題演習
最終課題を制作するにあたってアイデアを練る、講義で学習した内容を元に自由にソフトウェアを制作する
第14回[対面/face to face]:成果発表
最終課題の成果発表を行う
授業時間外の学習(準備学習・復習・宿題等)Work to be done outside of class (preparation, etc.)
授業時間内に終了しなかった課題や演習は授業外で行うことを想定する。
テキスト(教科書)Textbooks
担当教員が作成した講義資料を配布する。
参考書References
https://go.dev/
https://tenn.in/go
https://docs.microsoft.com/ja-jp/learn/paths/go-first-steps/
改訂2版 みんなのGo言語、2019年、定価2,398円
エキスパートたちのGo言語 一流のコードから応用力を学ぶ、2022年、定価3,278円
成績評価の方法と基準Grading criteria
課題1:20%、課題2:20%、最終課題:60%で評価する。
学生の意見等からの気づきChanges following student comments
特になし
学生が準備すべき機器他Equipment student needs to prepare
特になし
その他の重要事項Others
特になし