1. トップ
  2. 学校紹介
  3. 情報公開
  4. 学科情報
  5. シラバス - 科目一覧

シラバス

Webデザイン科 2026年度入学生

科目名 Webアプリケーション制作Ⅰ 作成日 2026/03/16
区分 必修 演習
開催時期・標準履修年次 1年次 後期
講義・演習駒数/週 1駒
実習・実験駒数/週 0駒
合計駒数/週 1駒
総時間数 30時間
総単位数 2単位
企業連携
授業の目的 TypeScriptを用いたReactアプリケーション開発の実践を通じて、チーム開発を想定したコード品質・状態管理・バージョン管理・AI活用の基礎能力を養成する。
到達目標 ①型安全で再利用可能なコンポーネント設計ができる。 ②JSX・Props・State等を適切に用いてUIを構築できる。 ③非同期通信とクリーンアップ処理を実装できる。 ④Gitとブランチの仕組みを理解し適切に開発できる。 ⑤AIツールを用いてコード改善を行い、その妥当性を評価できる。

評価項目 ①定期テスト ②小テスト ③レポート ④課題 ⑤作品 ⑥ポートフォリオ ⑦成果発表 ⑧その他
割合  % 10% 10% 30% 40%  %  % 10%
評価基準
適切なコミット・履歴管理ができていること。 ⑤ AIを活用し、その結果を判断できているか AIツールを用いてコードを改善し、その妥当性を自分の言葉で説明・評価できること。
※上記に示した評価項目の割合(%)を基準に、総合評価点を算出して成績評価を行う。
※出席率が80%未満の場合は、評価対象としない。

担当教員 川島 温哉
テキスト・参考文献 オリジナル教材 [参考サイト] https://jsprimer.net/ ↑このサイトに書かれている事が一通り理解出来ている事が望ましい。 https://ja.react.dev/learn
実務経験有無  
Webアプリケーションやスマートフォンアプリの開発に従事した実務経験がある。その経験から得た知識やスキルを活かして、本科目のアプリ開発に対する実践的な教育を行う。  
授業外学習
(予習・復習等)
◆1. 予習(授業前学習) 授業前に基本概念を理解しておくことで、授業中の実装演習をスムーズに進めることができる。 【公式サイト】https://ja.react.dev/learn を活用して事前に予習を行なっておくこと。 予習の方法(例) ① 技術概要の確認 次回授業で扱う技術について、公式ドキュメントや解説記事を読み、基本概念を理解する。 ② AIツールを用いた概念整理 AIに質問して技術の概要や新しく出てくる用語を整理する。 2. 復習(授業後学習) 授業で作成したコードを自分で再構築し、理解を定着させる。 復習の方法(例) ① コードの再実装 授業で作成したコードを見ずに再度実装する。 ②コードの拡張 作成したコードをさらに変更する。 ・テキストを入れ替えてみる ・機能を付け加えてみる など  履修前提
※自由選択科目のみ記載
HTML&CSS実習、JavaScript実習 ※前期で行うJavaScript実習の知識が身についていること 

授業計画

回数 学習目標 学習項目
1 Reactの概要と役割を説明できる(記憶) 宣言的UIと命令的UIの違いを説明できる(総合) Reactの描画フローを図示できる(総合)  Reactとは何か 宣言的UIとは何か(データ → UI) 命令的UI(DOM操作)との対比 仮想DOMと再描画の流れ TypeScript環境構築(Vite + React + TS) 
【理解度確認】課題:JSXでプロフィールカード作成
2 JSXの基本的な書き方を説明できる(記憶) コンポーネントを定義できる(適用) Propsの役割を説明できる(記憶) Props型を定義できる(適用) 型エラーの原因を特定できる(評価)  JSXの基本文法 {} による式埋め込み コンポーネント分割の考え方 Propsによるデータ受け渡し TypeScript型定義(type / interface) 型エラーの読み方 再利用性の概念 
【理解度確認】課題:ProfileCard コンポーネント作成、型エラー原因を文章で説明(150字)
3 useState を用いて状態管理できる(適用) 状態と通常変数の違いを説明できる(総合) 再レンダリングの仕組みを説明できる(総合) 状態の誤用を識別できる(同定)  Stateの概念 useState 状態更新と再描画 イベントハンドラ基礎 データ駆動UI 
【理解度確認】課題:カウンター作成
4 条件レンダリングを実装できる(適用) 三項演算子と論理演算子を使い分けられる(適用) 条件分岐設計の妥当性を評価できる(評価) 表示ロジックの誤りを識別できる(同定)  JSX内での条件分岐 三項演算子 論理演算子 boolean型の明示 表示制御パターン 
【理解度確認】課題:簡易的なログインUI作成(3種類の条件レンダリングで実装)
5 配列からリスト描画できる(適用) key の役割を説明できる(記憶) 不適切なkey使用を識別できる(同定) index使用による問題を評価できる(評価) 再レンダリングと状態保持の関係を説明できる(総合)  map() による描画 keyの意味 再レンダリングの仕組み indexをkeyにした場合の問題 パフォーマンスと状態バグ 
【理解度確認】課題:map()を使った画面の作成
6 イベントを型付きで実装できる(適用) SyntheticEventを説明できる(記憶) イベント型エラーを特定できる(評価) フォーム状態管理を実装できる(適用)  イベントハンドラとの連携 React.ChangeEvent 入力フォーム制御 
【理解度確認】課題:Todo追加フォーム実装 型エラー修正演習 修正理由の説明(150字)
7 Stateを親へ持ち上げられる(適用) 単一情報源の原則を説明できる(記憶) 不適切な状態分散を識別できる(同定) 状態設計の妥当性を評価できる(評価) データフロー図を作成できる(総合)  Lifting State Up Single Source of Truth 状態設計の原則 コンポーネント分割と責務 
【理解度確認】課題:簡単なアプリ作成の作成
8 状態遷移図を作成できる(総合) 複雑な状態変化を整理できる(評価) useReducer を用いて状態管理を実装できる(適用) Action型を定義できる(適用) useState と useReducer の使い分けを説明できる(総合)  状態遷移図(ステートマシン)の基礎 状態・イベント・遷移の整理方法 useReducer の基本構造 ActionのUnion型定義 Reducer関数の設計原則 useState との比較 
【理解度確認】課題:Todoアプリの改良 Todoアプリの状態遷移図を手書きで作成提出 その図をもとに useReducer で実装
9 useEffect を正しく実装できる(適用) 依存配列の役割を説明できる(記憶) クリーンアップ関数を実装できる(適用) StrictModeにおけるEffect二重実行の理由を説明できる(総合) メモリリークや競合状態の原因を評価できる(評価)  副作用の定義 useEffect の基本構文 依存配列の挙動 クリーンアップ関数の役割 メモリリーク防止 競合状態防止 StrictModeでEffectが2回実行される理由 fetchによるAPI通信 AbortControllerによるキャンセル処理 レスポンス型定義(TypeScript) 
【理解度確認】課題:useEffectを用いたアプリの作成
10 状態構造を設計できる(総合) 冗長な状態を識別できる(同定) 状態の正規化を適用できる(適用) 状態設計の妥当性を評価できる(評価)  状態設計の原則 冗長状態の問題 派生状態の扱い 正規化の概念 フォーム状態の設計改善例 
【理解度確認】課題:不適切なState設計コードを改善 改善前後の比較表提出 設計判断理由を200字で記述
11 useRef を用いたDOM参照ができる(適用) StateとRefの違いを説明できる(総合) 不適切なref使用を識別できる(同定) 再レンダリングを伴わない値保持を説明できる(記憶)  useRef の基本 DOMフォーカス制御 再描画しない値の保持 refの誤用例 宣言的思想との関係整理 
【理解度確認】課題:入力フォーム自動フォーカス機能実装
12 SPAの概念を説明できる(記憶) ルーティングを実装できる(適用) URL設計を作成できる(総合) ページ構成の妥当性を評価できる(評価)  SPAの構造 React Router基礎 パラメータ付きルート ナビゲーション設計 ページ分割の考え方 
【理解度確認】課題:3ページ構成SPA作成
13 SPAとSSRの違いを説明できる(総合) Next.jsの役割を説明できる(記憶) App Router構造を識別できる(同定) 最小構成ページを作成できる(適用)  React単体との違い SSRとは何か ファイルベースルーティング app/page.tsx layout.tsx 自動ルーティング体験 Vercelとの親和性 
【理解度確認】課題:Next.jsを用いて複数ページから成るWebアプリを作成
14 GitとGitHubの連携ができる(適用) 差分から変更意図を読み取れる(評価) AIを用いて改善案を生成できる(適用) AI生成コードの妥当性を評価できる(評価)  diffの読み方 コミットメッセージ設計 AIによるリファクタリング依頼方法 AI出力の批評方法 
【理解度確認】課題:GitHubからVercelにデプロイ
15 React設計思想を説明できる(総合) 自作アプリのアーキテクチャを説明できる(総合)  アプリの実装(それぞれ自分のレベルに合わせてアプリを作成) 
【理解度確認】最終課題の提出(GitHub) コンポーネント構成図提出