シラバス
入学のご案内履修登録

科目の概要

Webアプリケーション開発2の続編であるプログラミング入門講座。 JavaScriptというプログラミング言語とNode.jsを使用してセキュリティ上の問題のないWebサービスが開発できるようになる。 簡単なチャットサービスの開発を通じて、データベースを利用したデータの保存・更新・検索・削除を行う。 また、クラウドサービスを利用したWebアプリケーションの公開を行う。 学修にはPCが必要である。

科目情報

履修想定年次
2年次
単位数
2単位
開講Q
1Q、3Q
科目区分
選択
授業の方法
オンデマンド科目
評価方法
確認レポート 50% , 単位認定試験 50%
科目コード
INF-2-C1-1030-003
到達目標
学生はDockerの使い方とテンプレートエンジンの使用方法を深く理解し、Node.jsを用いたサーバの公開技術を身につける。加えて、Cookieを利用したデータの保存・参照能力と、Webの主要な脆弱性について理解力を養う。Node.jsのサーバサイドアプリケーション作成についても理解を深める。これらを通じ、学生はプログラミングを使った開発経験を積み、デジタルツールを用いて情報収集、表現、コミュニケーションする力を獲得することを目標にする。
教科書・参考書
  • 清水俊博,大津繁樹,Jxck,小林秀和,佐々木庸平,篠崎祐輔,高木敦也,西山雄也『サーバサイドJavaScriptNode.js入門』ASCII2012年
授業時間外の学修
各回の授業内容は繰り返し見返し、各回二時間ほど復習を行ってください。また、次回の学修内容についてもあらかじめ不明な単語や前提となる知識をWebで調べるなどして各回三時間ほど予習を行ってください。
特記事項
順次公開予定

授業計画

1
HTTPサーバー / ログ

Webサービスの概念と、Node.jsを用いたHTTPサーバの作成方法・Dockerの起動方法を理解する。異なるユーザエージェントの存在とアクセスログ、エラーログの出力方法を学ぶ。

2
HTTPのメソッド / HTMLのフォーム

HTTPメソッド、特にPOSTメソッドの実装とアンケートフォームの作成方法を理解する。HTMLのフォームとformタグの使い方とサーバでのデータの取得方法およびブラウザの表示を整える方法を修得する。

3
テンプレートエンジン

テンプレートエンジンPugの使用法を理解し、HTMLをPug形式に書き換える能力を獲得する。テンプレートに変数を埋め込む方法、複数のアンケートを動的に表示する方法を学ぶ。

4
renderでWeb サービスを公開

クラウドサービスを利用したWebアプリケーションのデプロイ方法を理解し、renderを用いた公開手順と設定を学ぶ。また、デプロイしたサービスのログの確認方法を修得する。

5
認証で利用者を制限する / Web Storageを使ったチャットサービス

認証の概念とBasic認証の組み込み方法を理解する。ログアウト機能の実装と、チャットサービスの作り方を修得する。さらに、Cookieの使い方を学ぶ。

6
UI、URI、モジュールの設計 / フォームによる投稿機能の実装

UI、URIの設計及びリダイレクト処理の作成方法を修得する。また、モジュール設計についての基本的な理解を深める。

7
認証された投稿の一覧表示機能

認証の仕組みについて理解し、Webアプリケーションに認証機能を実装する方法を学ぶ。エラーページの作成も行う。

8
データベースへの保存機能の実装

データベースの概念と、ソースコードからのデータベースの操作方法を理解する。Prismaを用いたデータの保存、読み出し方法を修得し、永続化の意義を理解する。

9
削除機能の実装 / 管理者機能の実装

データベースを用いた投稿内容の削除機能の作成方法を理解する。また、管理者専用の投稿機能と削除機能の作成方法を修得する。

10
デザインの改善1

ファビコンの表示方法とページデザイン変更の手法を理解する。CSSフレームワークの導入方法とJavaScriptの基本操作について学ぶ。

11
デザインの改善2

ファビコンの表示方法とページデザイン変更の手法を理解する。CSSフレームワークの導入方法とJavaScriptの基本操作について学ぶ。

12
Cookieで作るダークモード / 脆弱性

ダークモードの設計と切り替え機能を理解し、脆弱性の種類とその対策方法を修得する。

13
XSS脆弱性の対策/パスワードの脆弱性の対策

クロスサイト・スクリプティング(XSS)脆弱性の攻撃、対策方法を理解する。また、リグレッションテストの重要性について学ぶ。また、パスワードの危険性、そしてハッシュ関数を使ったパスワード管理と辞書攻撃からの防御方法を理解する。

14
CSRF脆弱性の対策 / PaaS への安全な公開

CSRF脆弱性への対策とワンタイムトークンの概念を理解する。また、チャットサービスの公開方法を修得する。

15
Excelの操作を自動化しよう

Excelファイルの作成、読み込み、編集方法を理解し、セルの幅調整やシートの操作について学ぶ。スタイル編集やハイパーリンクの設定、暗号化の手法を修得する。

関連科目