N 高等学校 プログラミングコースが面白そうだったので記録

この記事は6分で読めます

このサイトは学部では早稲田で物理を, 修士では東大で数学を専攻し, 今も非アカデミックの立場で数学や物理と向き合っている一市民の奮闘の記録です. 運営者情報および運営理念についてはこちらをご覧ください.

中高の数学の復習から専門的な数学・物理までいろいろな情報を発信しています.
中高数学に関しては中高数学駆け込み寺,
大学数学に関しては現代数学観光ツアーという無料の通信講座があります.
ご興味のある方はぜひお気軽にご登録ください!


N 高とやらのプログラミング講座がすごく面白そうだったので記録.

コース 内容
Webプログラミング入門コース アニメーションやゲームなど動きのあるWebページを作れるようになる。
学習要素: JavaScript/HTML/CSS
Linux開発環境構築コース Webアプリケーション開発に必要なツールを扱えるようになる。
学習要素: Linux/vi/シェルプログラミング/UNIXツール/Git/GitHub
Webアプリ基礎コース セキュアなWebサービスを作れるようになる。
学習要素: Node.js/npm/XSS/パスワード管理/セッション管理/CSRF
Webアプリ応用コース フレームワークを使ったWebサービスが作れるようになる。
学習要素: Express/TDD/クライアント技術/DB
Scala基礎コース オブジェクト指向プログラミングを活用したアプリケーションが作れるようになる。
学習要素: Scala/sbt/IDE/OOP/アルゴリズム
Scala応用コース 関数型プログラミングを活用したアプリケーションが作れるようになる。
学習要素: Scala/多相関数/遅延ストリーム/パーサコンビネーター
並行処理プログラミングコース 並行処理プログラミングを利用したアプリケーションが作れるようになる。
(2017年7月公開予定) 学習要素: Scala/スレッド/並行処理部品/アクターモデル
大規模Webアプリコース Scalaを活かした高性能な大規模Webアプリケーションが作れるようになる。
(2017年9月公開予定) 学習要素: Scala/Play Framework
Androidスマホアプリコース Androidのスマホアプリが作れるようになる。
(2017年2月公開予定) 学習要素: Java
iOSスマホアプリコース iOSのスマホアプリが作れるようになる。
(2017年4月公開予定) 学習要素: Swift
ニコニコ動画再現コース ニコニコ動画を再現できるようになる。
(2018年度中公開予定) 学習要素: JavaScript/Scala/Java/Swift
コンピューターサイエンスコース コンピューターサイエンスを学ぶ。
(2018年度中公開予定) 学習要素: 基礎数学/オートマトンと計算理論/論理回路/コンピューターアーキテクチャ/数値演算/OS/ネットワーク/プログラミング言語/抽象/アルゴリズムとデータ構造/OOP/FP/DB

上の 4 コースだけでも十分面白そうだし, 何より次の話がすごくいい.

そしてできるだけ多くの時間一つの言語に触れてもらうためにも、JavaScriptとNode.jsが採用されています。なお以上の4コースの内容だけは、毎年更新することを想定しており、現在は来年度版を制作中となっております。

JavaScript 界隈はいま流れがものすごく早いのでキャッチアップが死ぬほどつらく,
いつ落ち着くかなと 3 年くらい待っている.
それでもいまだに全く落ち着かない.
その変化に追随した情報を更新してくれるというのは本当にありがたい.
新しい情報を探すだけでもかなりのコストだから.

4 コースについては次のような内容らしい.
これも割とごついところまでやっていて楽しそう.

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

近所の子どもと一緒に私もやりたいくらいだ.


中高の数学の復習から専門的な数学・物理までいろいろな情報を発信しています.
中高数学に関しては中高数学駆け込み寺,
大学数学に関しては現代数学観光ツアーという無料の通信講座があります.
ご興味のある方はぜひお気軽にご登録ください!

  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

このサイトについて

数学・物理の情報を中心にアカデミックな話題を発信しています。詳しいプロフィールはこちらから。通信講座を中心に数学や物理を独学しやすい環境づくりを目指して日々活動しています。
  • このエントリーをはてなブックマークに追加
  • LINEで送る

YouTube チャンネル登録

講義など動画を使った形式の方が良いコンテンツは動画にしています。ぜひチャンネル登録を!

メルマガ登録

メルマガ登録ページからご登録ください。 数学・物理の専門的な情報と大学受験向けのメルマガの 2 種類があります。

役に立つ・面白い記事があればクリックを!

記事の編集ページから「おすすめ記事」を複数選択してください。