Skip to content

Writing Standards and Assessments

Liz Howard edited this page Jun 1, 2018 · 2 revisions

Standards are skills you want people to have at the end of a series of learning experiences, such as reading articles, doing exercises, watching videos, or having discussions. They allow Enkibot to show reports about what learners might need help with to their mentor. They also help us provide users with a map of skills to work on.

Examples

Here's an example of standards for Docker, written in Enki Content Format.

standards:
  identify-docker:
    name: Identify the purpose, uses, and main components of Docker
    description: This standard covers identifying what Docker is used for, where in the stack Docker resides, it's purpose in an organization, and the role of the major components.
    objectives:
      0: Identify the role of Docker
      1: Distinguish the major components of docker and explain their purpose
  dockerfiles:
    name: Write Dockerfiles to encapsulate the build process of an application
    description: This standard covers writing Dockerfiles, their syntax, the usage of the different components of the dockerfile, and automation within dockerfiles, and the accurate translation of build processes.
    objectives:
      0: Identify and Analyze the syntax of Dockerfiles
      1: Configure a Dockerfile with an image from the Docker Image Repository
      2: Configure a Dockerfile with an image from a private repository
      3: Configure a Dockerfile to accept Arguments
      4: Add execution steps to a Dockerfile
      5: Move files using a Dockerfile command
      5: Expose ports within a Dockerfile
      6: Use environment variables within a Dockerfile
      7: Use Docker commands to execute the installation steps of an application
      8: Translate the build of an existing application with build documentation into a Dockerfile
      9: Use a Dockerfile to configure the migration of schema to the database server from a pre-built image
      10: Use a Dockerfile to add data to a database server from a data source
      11: Use Docker to containerize and run batch processes
  run-docker:
    name: Use Docker to build and run applications
    description: This standard covers using the Docker CLI and other tools to build and run docker images
    objectives:
      0: Use a Dockerfile to build an image
      1: Run an image in a container
      2: Run an image in multiple containers
      3: Use environment variables to run a container in different deploy phases
      4: Use labels to distinguish between environments
  continuous-integration:
    name: Use a Continuous Integration (CI) tool with Docker to automate the deploy process
    description: This standard deals with building and sending docker images to a cloud service using a continuous integration platform.
    objectives:
      0: Use Docker with a Continuous Integration tool to automate test runs
      1: Use Docker and a Continuous Integration tool to automate the deploy process
  kubernetes:
    name: Use Kubernetes to define the parameters of an application topology
    description: This standard deals with configuration of deploys using Kubernetes to orchastrate containers
    objectives:
      0: Use Kubernetes pod monitoring commands to check the health and other attributes of a pod
      1: Use Kubernetes to label pods and and operate on a group of pods with the same label
      2: Use Docker to build and run a container locally using Minikube
  deploy-kubernetes:
    name: Use Kubernetes to deploy an application to a cloud hosting provider
    description: This standard deals with configuring kuberenetes to deploy with a cloud hosting provider
  deploy-kubernetes-google-cloud:
    name: Use Kubernetes to deploy to Google Cloud
    description: This standard deals specifically with deploying to Google Cloud, using Kubernetes
    objectives:
      1: Identify kubernetes control interface elements in the google developer console
      0: Use Google Cloud to deploy kubernetes pods to Google Kubernetes Engine cluster
  deploy-kubernetes-aws:
    name: Use Kubernetes to deploy to Amazon Web Services (AWS)
    description: This standard deals specifically with deploying to Google Cloud, using Kubernetes
    objectives:
      1: Identify kubernetes control interface elements in the aws developer console
      0: Use AWS to deploy kubernetes pods to AWS Kubernetes Engine cluster

Abstractly, here's what it looks like:

standards:
  standard-slug:
    name: This is the standard's name
    description: This is the detailed description of what goes into the standard.
    objectives:
      0: create an ordered list
      1: name all of the things you want covered in the standard
      2: add objectives about interstitial learning steps to cover
      3: also add higher-level objectives towards the end that are more advanced than the first few
  another-slug:
    name: This is the standard's name
    description: This is the detailed description of what goes into the standard.
    objectives:
      0: create an ordered list
      1: name all of the things you want covered in the standard
      2: add objectives about interstitial learning steps to cover
      3: also add higher-level objectives towards the end that are more advanced than the first few

Usage in the content

Now that you've outlined your goals, you can tag all of the exercises and insights that map to those goals.

Here's an example of an insight that has been tagged with the javascript standards:

---
author: alexjmackey

levels:

  - beginner

type: normal

category: must-know

inAlgoPool: false

standards:

  javascript.data-types-structures.2: 10
  javascript.evaluate-expressions.6: 10
  javascript.data-types-structures.3: 10
  javascript.data-types-structures.5: 10

tags:

  - introduction

---

# Arrays

---
## Content

... content here ...

---
## Practice

How would you get the last value in the `myArray` array?
`​``
var myLength = myArray.???
var last = ???[??? ???];
`​``

* `length`
* `myArray`
* `myLength`
* `-1`
* `+0`
* `+1`
* `array`
* `[0]`
* `.getLast`
* `.tail`

---
## Revision

Fill the gaps such that you get the first element of `enkiArray`:
`​``
var enkiArray = [1, 2, 3];
var firstElement = ??????;
`​``


* `enkiArray`
* `[0]`
* `[1]`
* `array`
* `getLast()`
* `getFirst()`
* `push`
* `pop`

---
## Quiz
### what is the length of the array below?

`​``javascript
let arr = [,,,]
console.log(arr.length)
`​``

 ???

* 3
* 4
* 0
* 1
Clone this wiki locally