2017年9月6日水曜日

高校生向けウェブプログラミングコース内容案

高校生にWeb上でプログラミングを教え始めたエンジニアがこの8ヶ月間で得た気づき - Qiita
http://qiita.com/sifue/items/7e7c7867b64ce9742aee

  1. Webプログラミング入門コース
    1. Web ブラウザとは (Chrome, デベロッパーコンソール, alert)
    2. はじめてのHTML (VSCode, HTML, Emmet)
    3. さまざまなHTMLタグ (h, p, a, img, ul, tableタグ)
    4. HTMLで作る自己紹介ページ (HTMLタグ組み合わせ, コンテンツ埋め込み)
    5. はじめてのJavaScript (JS, ES6, エラー)
    6. JavaScriptでの計算 (値, 算術演算子, 変数, 代入)
    7. JavaScriptで論理を扱う (論理値, 論理積, 論理和, 否定, 比較演算子, if)
    8. JavaScriptのループ (ループ, for)
    9. JavaScriptのコレクション (コレクション, 配列, 添字, undefined)
    10. JavaScriptの関数 (関数, 関数宣言, 引数, 戻り値, 関数呼び出し, 再帰)
    11. JavaScriptのオブジェクト (オブジェクト, モデリング, プロパティ, 要件定義)
    12. はじめてのCSS (CSS, セレクタ, background-color, border)
    13. CSSを使ったプログラミング (transform, id, class)
    14. Webページの企画とデザイン (企画, 要件定義, モックアップ, 16進数カラーコード)
    15. 診断機能の開発 (const, let, JSDoc, インタフェース, 正規表現, テストコード)
    16. 診断機能の組込み (div, 無名関数, アロー関数, ガード句, truthy, falsy)
    17. ツイート機能の開発 (リバースエンジニアリング, URI, URL, URIエンコード)
  2. Linux開発環境構築コース
    1. LinuxというOS (VirtualBox, Vagrant, Ubuntuのインストール, OS, CUIの大切さ)
    2. コンピューターの構成要素 (ノイマン型コンピューター, プロセス, lshw, man, ps, dfの使い方)
    3. ファイル操作 (pwd, ls, cd, mkdir, rm, cp, mv, find, ホストマシンとの共有ディレクトリ)
    4. 標準出力 (標準入力、標準出力、標準エラー出力、パイプ、grep)
    5. vi (vimtutor)
    6. シェルプログラミング (シバン, echo, read, 変数, if)
    7. 通信とネットワーク (パケット, tcpdump, IPアドレス, TCP, ルーター, ping)
    8. サーバーとクライアント (tmux, nc, telnet)
    9. HTTP通信 (http, https, DNS, hostsファイル, ポートフォワーディング)
    10. 通信をするボットの開発 (cron, ログ収集)
    11. GitHubでウェブサイトの公開 (GitHub, リポジトリ, fork, commit, 情報モラル)
    12. イシュー管理とWikiによるドキュメント作成 (Issues, Wiki)
    13. GitとGitHubと連携 (git, ssh, clone, pull)
    14. GitHubへのpush (init, add, status, インデックス, commit, push, tag)
    15. Gitのブランチ (branch, checkout, merge, gh-pages)
    16. ソーシャルコーディング (コンフリクト、プルリクエスト)
  3. Webアプリ基礎コース
    1. Node.js (Node.js, nodebrew, Linux, REPL, コマンドライン引数, プルリク課題)
    2. 集計処理を行うプログラム (集計, 人口動態CSV, Stream, for-of, 連想配列Map, map関数)
    3. アルゴリズムの改善 (アルゴリズム, フィボナッチ数列, 再帰, time, プロファイル, nodegrind, O記法, メモ化)
    4. ライブラリ (ライブラリ, パッケージマネージャー, npm)
    5. Slackのボット開発 (slack, mention, bot)
    6. HubotとSlackアダプタ (hubot, yo)
    7. モジュール化された処理 CRUD, オブジェクトライフサイクル, filter)
    8. ボットインタフェースとの連携 (モジュールのつなぎ込み, trim, join)
    9. 同期I/Oと非同期I/O (同期I/O, 非同期I/O, ブロッキング)
    10. 例外処理 (try, catch, finally, throw)
    11. HTTPサーバー (Web, TCPとUDP, Webサーバーの仕組み, Node.jsのイベントループ, リスナー)
    12. ログ (ログ, ログレベル)
    13. HTTPのメソッド (メソッド, GET, POST, PUT, DELETE, CRUDとの対応)
    14. HTMLのフォーム (フォームの仕組み, form, input)
    15. テンプレートエンジン (テンプレートエンジン, jade)
    16. HerokuでWebサービスを公開 (Webサービスの公開, heroku, dyno, toolbelt, login, create, logs)
    17. 認証で利用者を制限する (認証, Basic認証, Authorizationヘッダ, ステータスコード)
    18. Cookie を使った秘密の匿名掲示板 (Cookie, Set-Cookie, expire)
    19. UI、URI、モジュールの設計 (モジュール設計, フォームのメソッド制限, リダイレクト, 302)
    20. フォームによる投稿機能の実装 (モジュール性, textarea, 303)
    21. 認証された投稿の一覧表示機能 (パスワードの平文管理の問題, 404, テンプレートのeach-in)
    22. データベースへの保存機能の実装 (データベース, PostgreSQL, 主キー)
    23. トラッキングCookieの実装 (トラッキング Cookie, IDの偽装, Cookie の削除)
    24. 削除機能の実装 (データベースを利用した削除処理, 認可, サーバーサイドでの認可)
    25. 管理者機能の実装 (Web サービスの管理責任, 管理者機能の重要性)
    26. デザインの改善 (Bootstrap, レスポンシブデザイン, セキュリティの問題があるサイトを公開しない)
    27. 脆弱性 (脆弱性, 脆弱性で生まれる損失, 個人情報保護法, OS コマンド・インジェクション)
    28. XSS脆弱性の対策 (XSS, 適切なエスケープ処理, リグレッション)
    29. パスワードの脆弱性の対策(ハッシュ関数, メッセージダイジェスト, 不正アクセス禁止法, パスワードジェネレーター, 辞書攻撃)
    30. セッション固定化攻撃脆弱性の対策 (セッション, セッション固定化攻撃, ハッシュ値による正当性チェック)
    31. より強固なセッション管理 (推測しづらいセッション識別子, 秘密鍵)
    32. CSRF脆弱性の対策 (CSRF, ワンタイムトークン)
    33. 安全なHerokuへの公開 (脆弱性に対する考え方, HTTPの廃止)
  4. Webアプリ応用コース
    1. Webフレームワーク (Express.js, フレームワーク導入, 簡単なAPI, セキュリティアップデート, Cookie パーサー, ミドルウェア, 外部認証, ロガー)
    2. ExpressのAPI (app, Properties, Request, Response, Router)
    3. GitHubを使った外部認証 (Passport, OAuth)
    4. テスティングフレームワーク (Mocha, レッド, グリーン, リファクタリング)
    5. 継続的インテグレーション (CircleCI)
    6. クライアントのフレームワーク (Webpack, Chrome 以外のブラウザでもES6)
    7. DOM操作のフレームワーク (jQuery, jQueryアニメーション, this)
    8. AJAX (jQuery.ajax, クロスドメイン, 同一生成元ポリシー, x-requested-by, CORS)
    9. WebSocket (WebSocket, WebSocketの状態遷移, Socket.io)
    10. RDBとSQL (DDL, DCL, CREATE, DROP, INSERT, DELETE, UPDATE, WHERE)
    11. データモデリング (リレーショナルモデル, 正規化)
    12. テーブルの結合 (外部結合, 内部結合, 片側外部結合, JOIN ON)
    13. インデックス (インデックス, 複合インデックス, Bツリー)
    14. 集計とソート (SUM, COUNT, ORDER BY, GROUP BY)
    15. 「予定調整くん」の設計 (要件定義、用語集、データモデル、URL設計、モジュール設計、MVC)
    16. 認証とRouterモジュールの実装 (Mocha, supertest, passport-stub, モックテスト)
    17. 予定とユーザーの保存 (セキュリティ要件, UUID, 複合主キー)
    18. 予定とユーザーの一覧の表示 (非同期処理, Promise, then)
    19. 出欠とコメントの表示 (入れ子の連想配列, Promise.all, 子どもからデータを消す)
    20. 出欠とコメントの更新 (Promiseチェイン, リファクタリング)
    21. 予定の編集と削除 (要件の衝突, 関数の再利用)
    22. デザインの改善 (this, グローバルオブジェクト)
    23. セキュリティ対策と公開 (X-Frame-Options, Herokuの環境変数)

0 件のコメント:

コメントを投稿