最低限の資格を持つ受験生

受験生は、ソフトウエア開発の基本的な理解、ワールドワイドウェブ(WWW)とウェブアプリケーションの原理を理解している必要があります。受験生は、マークアップ言語の文法を利用して簡単なWebサイトを構築したり、そのWebサイトをlink, media要素やフォームを利用して拡張することが可能である必要があります。受験生は、これらのコンテンツがどのように表示されWebサイトに配置されるか、定義できる必要があります。さらに、受験生は変数・条件・ループ・関数などの、プログラミングの基本的な概念を知っている必要があります。受験生は、ウェブブラウザー上で動く、簡単なプログラムを作成できる必要があります。受験生は、ウェブサイトから送られたデータを処理し、データベースで永続化し、データベースのコンテンツで同的なウェブサイトを構築できる、サーバサイド側のプログラムを開発できる必要があります。



バージョン情報

この試験範囲は、バージョン1.0.0の「ドラフト」です。


試験範囲の翻訳

このwikiに、以下の試験範囲の翻訳があります:


試験範囲

031 ソフトウエア開発とウェブ技術

031.1 ソフトウエア開発の基礎(総重量: 1)

総重量

1

説明

受験生は、ソフトウエア開発と重要なプログラミング言語の知識を理解している必要がある。

主な知識分野:

  • ソースコードについての理解
  • コンパイラーとインタープリターの原理の理解
  • ライブラリの概念の理解
  • 関数・プロシージャ・オブジェクト指向プログラミングの概念の理解
  • ソースコードエディタと統合開発環境(IDE)の共通機能の知識
  • バージョンコントロールシステムの知識
  • ソフトウエアテストの知識
  • 重要なプログラミング言語(C, C++, C#, Java, JavaScript, Python, PHP)の知識


031.2 ウェブアプリケーションアーキテクチャー(総重量: 2)

総重量

2

説明

受験生は、ウェブ開発技術とアーキテクチャのよく利用される標準について理解しておく必要がある。

主な知識分野:

  • クライアントとサーバの、コンピューティングの原理の理解
  • ウェブブラウザの役割の理解と、一般的に利用されているウェブブラウザの知識。
  • ウェブサーバとアプリケーションサーバの役割の理解。
  • 一般的に利用されている、ウェブの開発技術と標準の理解。
  • APIの原理の理解。
  • リレーショナルデータベースと非リレーショナルデータベース(NoSQL)の原理の理解。
  • 一般的に利用されている、オープンソースデータベースマネージメントシステムの知識。
  • RESTとGraphQLの知識。
  • シングルページアプリケーション(SPA)の知識。
  • ウェブアプリケーションのパッケージングの知識。
  • WebAssemblyの知識。
  • コンテンツマネージメントシステム(CMS)の知識。

利用されるファイル・用語・ユーティリティ:

  • Chrome, Edge, Firefox, Safari, Internet Explorer
  • HTML, CSS, JavaScript
  • SQLite, MySQL, MariaDB, PostgreSQL
  • MongoDB, CouchDB, Redis


031.3 HTTPの基礎 (総重量: 3)

総重量

3

説明

受験生は、HTTPの基本的な知識を理解している必要がある。それは、HTTPのヘッダ・コンテンツタイプ・キャッシュ・ステータスコードなども含まれる。さらに、受験生はクッキーとセッションに対するクッキの役割の原理について理解していて、さらに発展したHTTP使用の知識がある必要がある。

主な知識分野:

  • HTTPのGETメソッド・POSTメソッド・ステータスコード・ヘッダ・コンテンツタイプの理解。
  • 静的コンテンツと動的コンテンツの違いの理解。
  • HTTPのURLの理解。
  • HTTPのURLが、どのようにシステムパス上のファイルに対応しているか、の理解。
  • ファイルを、ウェブサーバのドキュメントルートへのアップロード。
  • キャッシュの理解。
  • クッキーの理解
  • セッションとセッションハイジャックの知識。
  • 一般的に利用されているHTTPサーバの知識
  • HTTPSとTLSの知識
  • web socketの知識
  • バーチャルホスト(virtual host)の知識
  • 一般的なHTTPサーバの知識
  • ネットワーク帯域と、遅延要求と制限の知識

利用されるファイル・用語・ユーティリティ:

  • GET, POST
  • 200, 301, 302, 401, 403, 404, 500
  • Apache HTTP Server ("httpd"), NGINX


032 HTMLドキュメントマークアップ

032.1 HTMLドキュメントの仕組み (総重量: 2)

総重量

2

説明

受験生は、HTMLドキュメントの仕組みと文法を理解している必要がある。これには、基本的なHTMLドキュメントの作成も含まれる。

主な知識分野:

  • 簡単なHTMLドキュメントを作成する。
  • HTMLの役割の理解。
  • HTMLスケルトンの理解。
  • (タグ・属性・コメント等の)HTMLの文法の理解。
  • HTMLのheadの理解。
  • Metaタグの理解。
  • 文字エンコーディングの理解。

利用されるファイル・用語・ユーティリティ:

  • <!DOCTYPE html>
  • <html>
  • <head>
  • <body>
  • charset(uff-8), name, content属性を含む<meta>


032.2 HTMLの意味とドキュメントの階層 (総重量: 2)

総重量

2

説明

受験生は、意味構造によるHTMLドキュメントを作成できなくてはいけない。

主な知識分野:

  • HTMLドキュメントのコンテンツにマークアップを作成する。
  • 階層化HTMLテキスト構造の理解。
  • blockとinline HTML要素の区別
  • 重要性な意味構造のHTMLエレメントの理解

利用されるファイル・用語・ユーティリティ:

  • <h1>, <h2>, <h3>, <h4>, <h5>, <h6>
  • <p>
  • <ul>, <ol>, <li>
  • <dl>, <dt>, <dd>
  • <pre>
  • <blockquote>
  • <strong>, <em>, <code>
  • <b>, <i>, <u>
  • <span>
  • <div>
  • <main>, <header>, <nav>, <section>, <footer>


032.3 HTML参照と埋め込みリソース (総重量: 2)

総重量

2

説明

受験生は、他のドキュメントにリンクを貼ったHTMLドキュメントを作成したり、HTMLドキュメントに画像・ビデオ・音声などの外部のコンテンツを埋め込んだりすることができる。

主な知識分野:

  • 外部リソースへのリンクとページのアンカーの作成。
  • HTMLドキュメントに画像を追加する。
  • PNG, JPG, SVGを含む、一般的に用いられているメディアのファイルフォーマットの、主な特性の理解。
  • iframeの知識。

利用されるファイル・用語・ユーティリティ:

  • id属性
  • hrefと(_blank, _self, _parent, _top)のtarget属性を含んだ<a>
  • srcとalt属性含んだ<img>


032.4 HTMLフォーム (総重量: 2)

総重量

2

説明

受験生は、様々な種類のinput要素を含んだ、簡単なHTMLフォームを作成できる必要がある。

主な知識分野:

  • 簡単なHTMLフォームの作成
  • HTMLのformタグのmethod属性の理解
  • HTMLのinput要素と種類の理解

利用されるファイル・用語・ユーティリティ:

  • method(get, post), action enctypeなどの属性を含む<form>
  • (text, email, password, number, date, file, range, radio, checkbox, hidden等の) type属性の<input>
  • (submit, reset, hidden, button等の) type属性の<button>
  • <textarea>
  • (name, value, id等の)form要素の共通属性
  • for属性を含んだ<label>


033 CSS コンテンツ スタイリング

033.1 CSS基礎 (総重量: 1)

総重量

1

説明

受験生は、さまざまな方法で、CSSを利用したHTMLドキュメントにスタイルをつける方法を理解している必要がある。これには、CSS規則の構造と文法の理解が含まれる。

主な知識分野:

  • HTMLドキュメントないにCSSを組み込む
  • CSS文法の理解
  • CSSにコメントを付加する。
  • アクセシビリティの特徴と要求の知識

利用されるファイル・用語・ユーティリティ:

  • HTML のstyleとtype(text/css)属性
  • <style>
  • rel (stylesheet), type (text/css), src属性を含んだ<link>
  •  ;
  • /*,*/


033.2 CSSセレクタとスタイルの適用 (総重量: 3)

総重量

3

説明

. 受験生は、CSS内でセレクタを利用することができて、CSSの規約がどのようにHTMLドキュメント内の要素に適用されるか理解している必要がある。

主な知識分野:

  • CSSの規約を要素に適用するためセレクタを利用する。
  • CSS pseudo-classesの理解
  • CSSにおけるルールの順序と重要性の理解
  • CSSにおける継承の理解

利用されるファイル・用語・ユーティリティ:

  • element; .class; #id
  • a, b; a.class; a b;
  •  :hover, :focus
  • !important


033.3 CSS スタイリング (総重量: 2)

総重量

2

説明

受験生は、CSSを利用して、HTMLドキュメントの要素へ、簡単なスタイルを利用適用することができる

主な知識分野:

  • 基本的なCSSプロパティの理解
  • CSSにおいてよく利用されるユニットの理解

利用されるファイル・用語・ユーティリティ:

  • px, %, em, rem, vw, vh
  • color, background, background-*, font, font-*, text-*, list-style, line-height


033.4 CSS ボックスモデルとレイアウト (総重量: 2)

総重量

2

説明

受験生は、CSSボックスモデルを理解している必要がある。これには、ウェブサイトの要素の位置を定義することも含まれる。さらに、ドキュメントフローを理解している必要もある。

主な知識分野:

  • CSSレイアウトで、要素のdimension, position, alignment の定義
  • 他の要素の周りのテキストをどのように記述するか。
  • ドキュメントフローの理解
  • CSSグリッドの知識
  • レスポンシブ ウェブ デザインの知識
  • CSSメディアクエリの知識

利用されるファイル・用語・ユーティリティ:

  • width, height, padding, padding-*, margin, margin-*, border, border-*
  • top, left, right, bottom
  • display: block | inline | flex | inline-flex | none
  • position: static | relative | absolute | fixed | sticky
  • float: left | right | none
  • clear: left | right | both | none


034 JavaScript プログラミング

034.1 JavaScriptの実行と文法(総重量: 1)

総重量

1

説明

受験生は、JavaScriptファイルとHTMLドキュメントからのインラインコードを実行できて、JavaScriptの基本的な文法を理解できる必要がある。

主な知識分野:

  • HTMLドキュメント内のJavaScriptを実行する
  • JavaScriptの文法を理解する
  • JavaScriptコードにコメントを付加する
  • JavaScriptコンソールへアクセスする
  • JavaScriptコンソールへ書き込む

利用されるファイル・用語・ユーティリティ:

  • type(text/javascript)属性とsrc属性を含む<script>
  •  ;
  • //, /* */
  • console.log


034.2 JavaScriptデータ構造 (総重量: 3)

総重量

3

説明

受験生は、JavaScriptのコードで、変数を利用できる必要がある。これには、変数の理解とデータ型の理解が含まれる。さらに、受験生は演算子の割り当てと型変換を理解していて、変数のスコープを理解している必要がある。

主な知識分野:

  • 変数と定数の定義と利用
  • データ型の理解
  • 型変換と型強制の理解
  • 配列とオブジェクトの理解
  • 変数スコープの知識

利用されるファイル・用語・ユーティリティ:

  • =, +, -, *, /, %, --, ++, +=, -=, *=, /=
  • var, let, const
  • boolean, number, string, symbol
  • array, object
  • undefined, null, NaN


034.3 JavaScriptの制御構造と関数 (総重量: 4)

総重量

4

説明

受験生は、JavaScriptのコードにおける制御構造を理解している必要がある。これには、比較演算子の利用も含まれる。さらに、受験生は簡単な関数を書けたり、関数の引数や戻り値について理解している必要がある。

主な知識分野:

  • 真偽値の理解
  • 比較演算子の理解
  • 緩い等価性と厳格な等価性比較の違いについての理解
  • 条件節の利用
  • ループ節の利用
  • 独自関数の定義

利用されるファイル・用語・ユーティリティ:

  • if, else if, else
  • switch, case, break
  • for, while, break, continue
  • function, return
  • ==, !=, <, <=, >, >=
  • ===, !==


034.4 ウェブサイトのコンテンツとスタイリングの、JavaScriptによる操作(総重量: 2)

総重量

2

説明

受験生は、HTML DOMについて理解している必要がある。これには、HTML要素とCSSのプロパティのDOMを、簡単なシナリオに沿ってDOMイベントだけではなくJavaScriptを利用して操作できることが含まれている。

主な知識分野:

  • DOMの概念と構造の理解
  • DOMを利用してHTML要素のコンテンツとプロパティの変更
  • DOMを利用してHTML要素のCSSスタイリングの変更
  • HTML要素からJavaScript関数を機能させる

利用されるファイル・用語・ユーティリティ:

  • document.getElementById(), document.getElementsByClassName(), document.getElementsByTagName(),document.querySelector(), document.querySelectorAll()
  • DOM要素のinnerHTMLプロパティと、setAttribute(), removeAttribute() メソッド
  • DOM要素のclassListプロパティと、 classList.add(), classList.remove(), classList.toggle()メソッド
  • HTML要素のonClick, onMouseOver, onMouseOut属性


035 NodeJSサーバプログラミング

035.1 NodeJSの基礎 (総重量: 1)

総重量

1

説明

受験生は、NodeJSの基礎を理解している必要がある。これには、NPMモジュールの概念の理解だけではなく、ローカルの開発サーバを実行させることも含まれている。

主な知識分野:

  • Node.jsの概念の理解
  • NodeJSアプリケーションの実行
  • NPMパッケージのインストール

利用されるファイル・用語・ユーティリティ:

  • node [file.js]
  • npm init
  • npm install [module_name]
  • package.json
  • node_modules


035.2 NodeJS Expressの基礎(総重量: 4)

総重量

4

説明

受験生は、Expressウェブフレームワークを用いて簡単な動的なウェブサイトを作ることができる。これには、テンプレートエンジンEJSを用いて動的なファイルを提供するだけではなく、簡単なExpressルートを定義することが含まれる。

主な知識分野:

  • 静的ファイルとEJSテンプレートへのルートの定義
  • Expressによる静的ファイルの提供
  • ExpressによるEJSテンプレートの提供
  • 非ネスト構造の簡単なEJSテンプレートの作成
  • HTTP GETとPOSTパラメータにアクセスして、HTMLフォームにより送信されたデータを処理するために、リクエストオブジェクトを利用
  • ユーザ入力値評価の知識
  • クロスサイトスクリプティング(XSS)の知識
  • クロスサイトリクエストフォージュリ(CSRF)の知識

利用されるファイル・用語・ユーティリティ:

  • expressとbody-parserノードモジュール
  • Express appオブジェクト
  • app.get(), app.post()
  • res.query, res.body
  • ejs node module
  • res.render()
  • <% … %>, <%= … %>, <%# … %>, <%- … %>
  • views/


035.3 SQL基礎(総重量: 3)

総重量

3

説明

受験生は、SQLiteデータベースでここのテーブルを作成し、SQLを利用してデータを追加・変更・削除することができる。さらに、受験生はここのテーブルからデータを検索し、NodeJSからSQLの問い合わせを実行することができる。これには、複数のテーブル間でデータを連結したり参照したりすることは含まれていない。

主な知識分野:

  • NodeJSからデータベースのコネクションを確立する
  • NodeJSでデータベース内のデータを検索する
  • NodeJSからSQLの問い合わせを実行する
  • joinを含まない、簡単なSQLクエリを作成する。
  • プライマリキーの理解
  • SQLクエリ内で利用される変数のエスケープ
  • SQLインジェクションの知識

利用されるファイル・用語・ユーティリティ:

  • sqlite3 NPM module
  • Database.run(), Database.close(), Database.all(), Database.get(), Database.each()
  • CREATE TABLE
  • INSERT, SELECT, DELETE, UPDATE