学部・研究科Faculty/Graduate school | 理工学部Faculty of Science and Engineering |
添付ファイル名Attached documents | |
年度Year | 2024 |
授業コードClass code | H6186 |
旧授業コードPrevious Class code | |
旧科目名Previous Class title | |
開講時期Term | 秋学期授業/Fall |
曜日・時限Day/Period | 土曜1時限土1/Sat.1 |
科目種別Class Type | |
キャンパスCampus | 小金井 |
教室名称Classroom name | 小西館‐W203 |
配当年次Grade | 3年 |
単位数Credit(s) | |
備考(履修条件等)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 | |
カテゴリー<理工学部>Category | 応用情報工学科 学科専門科目 |
【Outline (in English)】
Learn the techniques and ways of thinking required for application development.
* Learning Objectives
The goal of this class is to enable students to design, develop, operate and maintain applications. Students will acquire the ability to run on their own, which is essential for application development.
* Learning activities outside of the classroom
The standard amount of study outside of class time for preparation and review for this class is at least 4 hours each.
* Grading Criteria
Evaluation will be based on the Flutter application submitted to the Git repository, a brief description of the application (written in README.md), and a final presentation (an introductory presentation of the created application).
【Default language used in class】
日本語 / Japanese
【授業の概要と目的(何を学ぶか) / Outline and objectives】
実務に必要なアプリケーションの設計から開発、運用・保守を行えるようになる。
アプリケーション開発の現場で必須となる自走できる力を身につける。
【到達目標 / Goal】
Flutterを用いてスマートフォン用アプリケーションの設計、実装、デバッグ、運用、保守ができるようになること。
【この授業を履修することで学部等のディプロマポリシーに示されたどの能力を習得することができるか(該当授業科目と学位授与方針に明示された学習成果との関連) / Which item of the diploma policy will be obtained by taking this class?】
ディプロマポリシーのうち、「DP1」と「DP2」と「DP4」に関連
【授業で使用する言語 / Default language used in class】
日本語 / Japanese
【授業の進め方と方法 / Method(s)】
(学期の途中で変更になる場合には、別途提示します。 /If the Method(s) is changed, we will announce the details of any changes. )
開発に最低限必要な基礎知識は講義形式で説明をするが、実際に自分で手を動かして学ぶことを重要視しているため演習を多めに行う。
具体的にはFlutterフレームワークを用いてスマートフォン用アプリケーションを各個人が開発する。
また、最終課題のフィードバックはGitHub等のリモートリポジトリを通じて行う。
本授業は講師の画面を映してライブコーディングの形で授業を行うため、全授業リモートにて行う。
【アクティブラーニング(グループディスカッション、ディベート等)の実施 / Active learning in class (Group discussion, Debate.etc.)】
あり / Yes
【フィールドワーク(学外での実習等)の実施 / Fieldwork in class】
なし / No
【授業計画 / Schedule】
授業形態 / methods of teaching:オンライン/online
※各回の授業形態は予定です。教員の指示に従ってください。
回 / No. | 各回の授業形態予定 / methods of teaching | テーマ / Theme | 内容 / Contents |
---|---|---|---|
1 | オンライン/online | 開発環境準備、Git基礎、講義概要説明 | ・Gitを使ってGitHub等のリモートリポジトリへFlutterのプロジェクトを提出できる準備をする ・Flutterのビルドが行える状態にする |
2 | オンライン/online | Dart基礎1 | Dart言語の基礎を学ぶ |
3 | オンライン/online | Dart基礎2 | Dart言語の基礎を学ぶ |
4 | オンライン/online | ・Dart基礎3 ・Flutterについて1 |
・Dart言語の基礎を学ぶ ・Flutterについて学ぶ (Flutterとは) |
5 | オンライン/online | Flutterについて2 | Flutterについて学ぶ (Widgetとは, Stateful Widget, Stateless Widget) |
6 | オンライン/online | Flutterについて3 | Flutterについて学ぶ (Material Components, iOS-Style, Navigatorなど) |
7 | オンライン/online | API通信 | 外部ライブラリの使い方を学ぶと同時に、アプリケーションとサーバとの通信を行う |
8 | オンライン/online | アプリケーションの設計、DI(Dependency Injection)について | DIを通して、実務アプリケーションでは必要不可欠な設計の考え方を学ぶ |
9 | オンライン/online | アプリケーションの設計 | 実務で多く用いられている設計を実装しながら学ぶ |
10 | オンライン/online | Unitテスト、CI(Continuous Integration) | テストを実際に書くことでテストの重要さを学ぶと同時に、実務では必須知識となってくるCIに触れる |
11 | オンライン/online | デザイン | アプリ開発に必要なデザインの考え方をデザインツールを用いて学ぶ ・Material Design ・Figma |
12 | オンライン/online | アプリ開発のヒント | 最終課題に向けてアプリ開発のヒントや作り方を学ぶ |
13 | オンライン/online | 開発演習 | 実際に手を動かしてわからない箇所を質問する時間とする 必要に応じて座学を行う |
14 | オンライン/online | 成果物発表会 | 各自作成したアプリケーションの成果物を発表しあう |
【授業時間外の学習(準備学習・復習・宿題等) / Work to be done outside of class (preparation, etc.)】
本授業の準備・復習等の授業時間外学習は、各4時間以上を標準とする。
【テキスト(教科書) / Textbooks】
書籍は古くなるためWEB上のドキュメントを参照する。
【参考書 / References】
https://flutter.dev/
https://dart.dev/
https://material.io/
https://developer.android.com/
https://developer.apple.com/
【成績評価の方法と基準 / Grading criteria】
Gitリポジトリに提出する個人プロジェクトで開発したFlutterアプリケーションとアプリケーション概要説明(README.mdに記述)、最終発表(作成したアプリの紹介プレゼン)に基づいて評価を行う。
アプリの作成については途中経過も評価対象とするため、Commitログは必ず残すこと。
他人のアプリケーションコードを全てコピーした場合は評価対象外とする。
最終課題は期日までにリモートリポジトリに動作する状態でFlutterアプリケーションの提出をすること。
【学生の意見等からの気づき / Changes following student comments】
難易度が高い箇所は時間をかけて解説を行う。
【学生が準備すべき機器他 / Equipment student needs to prepare】
[必須]
*パソコン
※ WindowsもしくはmacOSの利用を想定して講義を行う。
[可能であれば]
AndroidもしくはiOSを搭載したスマートフォン・タブレットの実機
※ iOSアプリ開発の場合、パソコンはmacOSの利用が必須
Flutter WEBの発展に伴い、ブラウザのみでの開発も可能
【その他の重要事項 / Others】
現役のソフトウェアエンジニアである講師が、実務経験で得たアプリ開発の経験を活かし、実務に必要なスキルや知識を身につけられるための実践的なプロダクト開発に焦点をあてて解説を行う。
FlutterアプリまたはAndroid, iOSアプリの開発経験があると望ましい。
また、Flutterの開発言語であるDartのプログラムが書けると望ましい。
Dartを書いたことがなくても、JavaやKotlin, Swift, JavaScript, TypeScriptといった他のプログラミング言語を書いたことがあれば問題ない。
また、Gitの使い方は事前に習得していることを前提に行う。
講義に関しては全授業オンラインで行い、ビデオ会議ツールを利用する。