基礎プロジェクト

講義概要

テーマ:Webアプリケーションの開発

ウェブアプリケーション構築の基礎になる知識をハンズオン形式で体験いただきます。
各講義回で、ハンズオンに対して演習形式の課題とレポート形式の課題を交互(または両方)用意します。

講義回の目的は以下の通りです。

  • OSの種類全般、Linuxディストリビューションの概要を理解し、メジャーなUbuntuに触れることを目的とします。
  • プログラミング言語全般、そのうちのPythonというプログラミング言語を説明します。実際に関数とテストを実装します。
  • データベース全般、そのうちのMySQLというデータベースについて説明します。実際にSQLというデータベース問い合わせ言語を体験いただきます。
  • ウェブアプリケーション構築時のフロントエンドのトレンドについて説明します。そのうちのVue.jsというフレームワークを実際にさわりながら、CSSフレームワーBootstrapを通して画面作成を体験します。
  • コンテナ登場の背景と、利活用シーンについて説明します。
  • 日々利用しているアプリケーションに対して自分のコードで機能を簡易に追加することができるLINE Botを体験します。

担当講師

企画

 

 

 

 

 

松尾 豊

メイン講師

 

 

 

 


和田 俊輔

過去講師(2018年度以前)


中山 浩太郎

中島 愛

岩澤 有祐

講義の目的

  • 「Webアプリケーションの開発」
    ウェブアプリケーション構築の基礎になる知識に身につけることが目的です。
    ハンズオン形式で体験いただきます。
  • 1日目:OSの種類全般、Linuxディストリビューションの概要を理解し、メジャーなUbuntuに触れることを目的とします。
  • 2日目:プログラミング言語全般、そのうちのPythonというプログラミング言語を説明します。実際に関数とテストを実装します。
  • 3日目:データベース全般、そのうちのMySQLというデータベースについて説明します。実際にSQLというデータベース問い合わせ言語を体験いただきます。
  • 4日目:ウェブアプリケーション構築時のフロントエンドのトレンドについて説明します。そのうちのVue.jsというフレームワークを実際にさわりながら、CSSフレームワークのBootstrapを通して画面作成を体験します。
  • 5日目:コンテナ登場の背景と、利活用シーンについて説明します。
  • 6日目:日々利用しているアプリケーションに対して自分のコードで機能を簡易に追加することができるLINE Botを体験します。

講義の準備

  • 本ページはPSI「基礎プロジェクト」に関する重要な情報のページです。
  • Webブラウザ(Google Chromeを推奨)が利用できるノートPCを持参してください。
  • 週に数時間以上,宿題として最終プロジェクトに取り取り組む時間を確保してください。

理解すべき事項

1日目:
・LinuxのCUI上でいくつかのコマンドを実行することができる
・Gitコマンドを利用できる
・Vimを利用できる

2日目:
・Pythonで基本的な関数を実装できる
・PythonでUnitTestを実装できる
・GitHubでPullRequestを作成しGitHubActionsを実行できる

3日目:
・データベースの種類を説明できる
・MySQLをDockerを利用して構築しSQLを実行できる

4日目:
・SPAのウェブフレームワークを3つ説明できる
・Bootstrapを含めた代表的なCSSフレームワークを3つ説明できる
・Vue.js、Bootstrapを利用して簡単なフォーム画面を実装できる

5日目:
・Dockerコマンドの基本を操作できる
・JupyterNotebookをDockerを利用して起動できる
・AWS上で起動したJupyterNotebookにアクセスできる

6日目:
・LINE Bot、Pythonを利用して簡単なおうむ返しのアプリケーション(プログラム)を実装できる

講義スケジュール

Chap. タイトル 詳細
1
  • ガイダンス
  •  本講義説明 
  • AWS で hello, world! を表示
2
  • Python入門
  • プログラミング言語の概要
  • Pythonの一般的な文法、演習問題
3
  • SQL入門
  • 手続き方言語と問い合わせ型言語について
  • SQLの一般的な文法、演習問題
4
  • Vue.js入門
  • React, Vue.js などのウェブフレームワークについて 
  • Vue.jsの一般的な構成、演習問題
5
  • Docker入門
  • Dockerの入門
  • いろんなDockerコンテナを利用してアプリを起動してみる
6
  • AWSでアプリ公開演習

成績評価方法

ハンズオンに対して演習形式の課題とレポート形式の課題を交互に(または両方)行います。

講義の目的

  • 「Webアプリケーション構築とデータ解析」
    ウェブアプリケーション構築の基礎になる知識に身につけることが目的です。
    ハンズオン形式で体験いただきます。

講義の準備

  • 本ページはPSI「基礎プロジェクト」に関する重要な情報のページです。各自必ずブックマークしておき、受講中はいつでも確認できるようにしておいてください。
  • Webブラウザ(Google Chromeを推奨)が利用できるノートPCを持参してください。
  • 週に数時間以上,宿題として最終プロジェクトに取り取り組む時間を確保してください。

理解すべき事項

  • ウェブアプリケーションの種類や構成概要
  • Linux簡易操作
  • Python
  • MySQL
  • Vue.js
  • Docker

講義スケジュール

Chap. タイトル 詳細
1
  • ガイダンス
  •  本講義説明 
  • AWS で hello, world! を表示
2
  • Python入門
  • プログラミング言語の概要
  • Pythonの一般的な文法、演習問題
3
  • SQL入門
  • 手続き方言語と問い合わせ型言語について
  • SQLの一般的な文法、演習問題
4
  • Vue.js入門
  • React, Vue.js などのウェブフレームワークについて 
  • Vue.jsの一般的な構成、演習問題
5
  • Docker入門
  • Dockerの入門
  • いろんなDockerコンテナを利用してアプリを起動してみる
6
  • AWSでアプリ公開演習

 

※新型コロナウイルスの影響で授業日程は変更されております。
状況は刻々と変わるため、UTASやメールなどの案内を参照してください

成績評価方法

ハンズオンに対して演習形式の課題とレポート形式の課題を交互に(または両方)行います。

講義レポート

講義のゴール

  1. 1組3、4人のチームに分かれてウェブサービス構築をしていただきます。  
  2. 作成したウェブサービスが「誰のため」「何のため」のサービスなのか、システム特性の説明をチームごとに最終発表日にプレゼンテーションしてもらい、各チームでフィードバック・投票を行っていただきます。

講義スケジュール

以下のようなスケジュールで進める予定です。ただし、内容は進行具合で前後します。
また必要に応じて、各講義の前半に小話を設ける可能性もあります。

Chap. 日付 タイトル 詳細
1 2019/5/13
  • ガイダンス
  • 講義説明
  • AWS で hello, world! を表示
2 2019/5/16
  • ワークショップ
  • チーム・テーマ発表
  • テーマ選択、役割分担決定
3 2019/5/20
  • ワークショップ
  • 各チーム作業
4 2019/5/23
  • ワークショップ
  • 各チーム作業
5 2019/5/30
  • 発表
  • 発表会、相互レビュー

連絡方法・各種ツールについて

コミュニケーションツール
Slack
psi-basic-2019.slack.com

ソースコード管理ツール
GitHub
作成したウェブアプリケーションのソースコードを共有します

クラウド環境
AWS
作成したウェブアプリケーションを展開するためのクラウド環境です

ドキュメント管理ツール
GoogleDrive

講義レポート

講義の準備

  • 本ページはPSI「基礎プロジェクト」に関する重要な情報のページです。各自必ずブックマークしておき、受講中はいつでも確認できるようにしておいてください。
  • Webブラウザ(Google Chromeを推奨)が利用できるノートPCを持参してください。
  • 週に数時間以上,宿題として最終プロジェクトに取り取り組む時間を確保してください。

講義スケジュール

※スケジュールは未確定のものです。

 

Chap. 日付 曜日 タイトル 詳細
1 2018/5/10
  • ガイダンス:Web基礎
  • Webサイト構築演 (HTML/CSS)
  • Python基礎演習
  • Webスクレーピング基礎
2 2018/5/14
  • WebサーバとWebアプリ開発
  • Networkとサーバ構築演習
  • (ターミナル基礎)Gitとチーム開発Webアプリ構築演習(Flask)
3 2018/5/17
  • Webとビッグデータ解析
  • WebクローリングとWebスクレーピング
  • Web API
  • データベース演習(MySQL)
  • 自然言語処理基礎
4 2018/5/21
  • 機械学習基礎
  • Numpy
  • Panda
  • Scikit-learn
5 2018/5/24
  • チーム開発(チーム作業日)
6 2018/5/28
  • 最終発表会
7 2018/5/30
  • 予備日

講義レポート

グループワーク最終課題

Group タイトル 詳細
A 進学先(大学院の専攻・研究室)のレコメンドシステム 興味に合った研究室を探す作業を効率化したいという思いから,研究室レコメンドサービスを開発した. 各研究室の紹介文を形態素解析してキーワードとなる名詞とその出現回数を抽出し,ユーザーが入力した興味のある分野とその類義語(Wordnetを利用)の出現回数が多い研究室から最大3件レコメンドする.UIにもこだわった. 概念辞書の出来に依存した類似度の計算手法や,興味以外の判断基準(研究テーマ決定の自由度など)を無視している点に改善の余地があり,Word2Vecを利用した類似度の計算や,AHPの利用などが改善案として考えられる.
B 記事の閲覧履歴に基づく書籍のレコメンドシステム
C 無料漫画情報のスクレイピングシステム ウェブ上に散在している無料漫画情報をまとめる。サイト間の表示形式の違いを吸収し、統一的なサービスとする。 機能:ジャンル検索(少年・青年・少女・女性)、タイトル検索、レコメンド
D レシピレコメンドシステム 日常で食材を使い切ることは難しい。 保有している食材のみでどのような料理を作ることができるか、あるいはどのような食材を買い足せば料理を作ることができるか、 これらを瞬時に判断するには慣れが必要であり、ウェブ上でレシピを調べるには時間と手間がかかる。 以上の理由が自炊のハードルとなっている。 撮影した食材をアップロードすることで適切なレシピを表示するアプリケーションがあればより手軽に自炊することができるであろう。 また、近年スマート冷蔵庫という、庫内環境をより適切に調節する商品がある。 冷蔵庫にカメラを設置することで、リアルタイムに庫内の食材状況を把握することができれば、 買い物中にアプリから買い足す必要がある食材を調べることができる。
 E グルメ情報のマイニングシステム  食べログ、ぐるなび、ホットペッパーグルメのウェブサイトから、店舗情報(本郷周辺)をスクレイピングしてくる。その情報をデータベース化し、検索の入力を受けて3つの情報をまとめて提示する。
+ 2021

講義の目的

  • 「Webアプリケーションの開発」
    ウェブアプリケーション構築の基礎になる知識に身につけることが目的です。
    ハンズオン形式で体験いただきます。
  • 1日目:OSの種類全般、Linuxディストリビューションの概要を理解し、メジャーなUbuntuに触れることを目的とします。
  • 2日目:プログラミング言語全般、そのうちのPythonというプログラミング言語を説明します。実際に関数とテストを実装します。
  • 3日目:データベース全般、そのうちのMySQLというデータベースについて説明します。実際にSQLというデータベース問い合わせ言語を体験いただきます。
  • 4日目:ウェブアプリケーション構築時のフロントエンドのトレンドについて説明します。そのうちのVue.jsというフレームワークを実際にさわりながら、CSSフレームワークのBootstrapを通して画面作成を体験します。
  • 5日目:コンテナ登場の背景と、利活用シーンについて説明します。
  • 6日目:日々利用しているアプリケーションに対して自分のコードで機能を簡易に追加することができるLINE Botを体験します。

講義の準備

  • 本ページはPSI「基礎プロジェクト」に関する重要な情報のページです。
  • Webブラウザ(Google Chromeを推奨)が利用できるノートPCを持参してください。
  • 週に数時間以上,宿題として最終プロジェクトに取り取り組む時間を確保してください。

理解すべき事項

1日目:
・LinuxのCUI上でいくつかのコマンドを実行することができる
・Gitコマンドを利用できる
・Vimを利用できる

2日目:
・Pythonで基本的な関数を実装できる
・PythonでUnitTestを実装できる
・GitHubでPullRequestを作成しGitHubActionsを実行できる

3日目:
・データベースの種類を説明できる
・MySQLをDockerを利用して構築しSQLを実行できる

4日目:
・SPAのウェブフレームワークを3つ説明できる
・Bootstrapを含めた代表的なCSSフレームワークを3つ説明できる
・Vue.js、Bootstrapを利用して簡単なフォーム画面を実装できる

5日目:
・Dockerコマンドの基本を操作できる
・JupyterNotebookをDockerを利用して起動できる
・AWS上で起動したJupyterNotebookにアクセスできる

6日目:
・LINE Bot、Pythonを利用して簡単なおうむ返しのアプリケーション(プログラム)を実装できる

講義スケジュール

Chap. タイトル 詳細
1
  • ガイダンス
  •  本講義説明 
  • AWS で hello, world! を表示
2
  • Python入門
  • プログラミング言語の概要
  • Pythonの一般的な文法、演習問題
3
  • SQL入門
  • 手続き方言語と問い合わせ型言語について
  • SQLの一般的な文法、演習問題
4
  • Vue.js入門
  • React, Vue.js などのウェブフレームワークについて 
  • Vue.jsの一般的な構成、演習問題
5
  • Docker入門
  • Dockerの入門
  • いろんなDockerコンテナを利用してアプリを起動してみる
6
  • AWSでアプリ公開演習

成績評価方法

ハンズオンに対して演習形式の課題とレポート形式の課題を交互に(または両方)行います。

+ 2020

講義の目的

  • 「Webアプリケーション構築とデータ解析」
    ウェブアプリケーション構築の基礎になる知識に身につけることが目的です。
    ハンズオン形式で体験いただきます。

講義の準備

  • 本ページはPSI「基礎プロジェクト」に関する重要な情報のページです。各自必ずブックマークしておき、受講中はいつでも確認できるようにしておいてください。
  • Webブラウザ(Google Chromeを推奨)が利用できるノートPCを持参してください。
  • 週に数時間以上,宿題として最終プロジェクトに取り取り組む時間を確保してください。

理解すべき事項

  • ウェブアプリケーションの種類や構成概要
  • Linux簡易操作
  • Python
  • MySQL
  • Vue.js
  • Docker

講義スケジュール

Chap. タイトル 詳細
1
  • ガイダンス
  •  本講義説明 
  • AWS で hello, world! を表示
2
  • Python入門
  • プログラミング言語の概要
  • Pythonの一般的な文法、演習問題
3
  • SQL入門
  • 手続き方言語と問い合わせ型言語について
  • SQLの一般的な文法、演習問題
4
  • Vue.js入門
  • React, Vue.js などのウェブフレームワークについて 
  • Vue.jsの一般的な構成、演習問題
5
  • Docker入門
  • Dockerの入門
  • いろんなDockerコンテナを利用してアプリを起動してみる
6
  • AWSでアプリ公開演習

 

※新型コロナウイルスの影響で授業日程は変更されております。
状況は刻々と変わるため、UTASやメールなどの案内を参照してください

成績評価方法

ハンズオンに対して演習形式の課題とレポート形式の課題を交互に(または両方)行います。

講義レポート

+ 2019

講義のゴール

  1. 1組3、4人のチームに分かれてウェブサービス構築をしていただきます。  
  2. 作成したウェブサービスが「誰のため」「何のため」のサービスなのか、システム特性の説明をチームごとに最終発表日にプレゼンテーションしてもらい、各チームでフィードバック・投票を行っていただきます。

講義スケジュール

以下のようなスケジュールで進める予定です。ただし、内容は進行具合で前後します。
また必要に応じて、各講義の前半に小話を設ける可能性もあります。

Chap. 日付 タイトル 詳細
1 2019/5/13
  • ガイダンス
  • 講義説明
  • AWS で hello, world! を表示
2 2019/5/16
  • ワークショップ
  • チーム・テーマ発表
  • テーマ選択、役割分担決定
3 2019/5/20
  • ワークショップ
  • 各チーム作業
4 2019/5/23
  • ワークショップ
  • 各チーム作業
5 2019/5/30
  • 発表
  • 発表会、相互レビュー

連絡方法・各種ツールについて

コミュニケーションツール
Slack
psi-basic-2019.slack.com

ソースコード管理ツール
GitHub
作成したウェブアプリケーションのソースコードを共有します

クラウド環境
AWS
作成したウェブアプリケーションを展開するためのクラウド環境です

ドキュメント管理ツール
GoogleDrive

講義レポート

+ 2018

講義の準備

  • 本ページはPSI「基礎プロジェクト」に関する重要な情報のページです。各自必ずブックマークしておき、受講中はいつでも確認できるようにしておいてください。
  • Webブラウザ(Google Chromeを推奨)が利用できるノートPCを持参してください。
  • 週に数時間以上,宿題として最終プロジェクトに取り取り組む時間を確保してください。

講義スケジュール

※スケジュールは未確定のものです。

 

Chap. 日付 曜日 タイトル 詳細
1 2018/5/10
  • ガイダンス:Web基礎
  • Webサイト構築演 (HTML/CSS)
  • Python基礎演習
  • Webスクレーピング基礎
2 2018/5/14
  • WebサーバとWebアプリ開発
  • Networkとサーバ構築演習
  • (ターミナル基礎)Gitとチーム開発Webアプリ構築演習(Flask)
3 2018/5/17
  • Webとビッグデータ解析
  • WebクローリングとWebスクレーピング
  • Web API
  • データベース演習(MySQL)
  • 自然言語処理基礎
4 2018/5/21
  • 機械学習基礎
  • Numpy
  • Panda
  • Scikit-learn
5 2018/5/24
  • チーム開発(チーム作業日)
6 2018/5/28
  • 最終発表会
7 2018/5/30
  • 予備日

講義レポート

+ 2017

グループワーク最終課題

Group タイトル 詳細
A 進学先(大学院の専攻・研究室)のレコメンドシステム 興味に合った研究室を探す作業を効率化したいという思いから,研究室レコメンドサービスを開発した. 各研究室の紹介文を形態素解析してキーワードとなる名詞とその出現回数を抽出し,ユーザーが入力した興味のある分野とその類義語(Wordnetを利用)の出現回数が多い研究室から最大3件レコメンドする.UIにもこだわった. 概念辞書の出来に依存した類似度の計算手法や,興味以外の判断基準(研究テーマ決定の自由度など)を無視している点に改善の余地があり,Word2Vecを利用した類似度の計算や,AHPの利用などが改善案として考えられる.
B 記事の閲覧履歴に基づく書籍のレコメンドシステム
C 無料漫画情報のスクレイピングシステム ウェブ上に散在している無料漫画情報をまとめる。サイト間の表示形式の違いを吸収し、統一的なサービスとする。 機能:ジャンル検索(少年・青年・少女・女性)、タイトル検索、レコメンド
D レシピレコメンドシステム 日常で食材を使い切ることは難しい。 保有している食材のみでどのような料理を作ることができるか、あるいはどのような食材を買い足せば料理を作ることができるか、 これらを瞬時に判断するには慣れが必要であり、ウェブ上でレシピを調べるには時間と手間がかかる。 以上の理由が自炊のハードルとなっている。 撮影した食材をアップロードすることで適切なレシピを表示するアプリケーションがあればより手軽に自炊することができるであろう。 また、近年スマート冷蔵庫という、庫内環境をより適切に調節する商品がある。 冷蔵庫にカメラを設置することで、リアルタイムに庫内の食材状況を把握することができれば、 買い物中にアプリから買い足す必要がある食材を調べることができる。
 E グルメ情報のマイニングシステム  食べログ、ぐるなび、ホットペッパーグルメのウェブサイトから、店舗情報(本郷周辺)をスクレイピングしてくる。その情報をデータベース化し、検索の入力を受けて3つの情報をまとめて提示する。