Skip to content

Commit

Permalink
Added Syllabus Template
Browse files Browse the repository at this point in the history
  • Loading branch information
soggybag committed Jan 12, 2019
1 parent aa84aa5 commit f6e3411
Show file tree
Hide file tree
Showing 9 changed files with 512 additions and 143 deletions.
Binary file added .DS_Store
Binary file not shown.
2 changes: 2 additions & 0 deletions Assignments/Sample_Project.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
## Project Description
## Project requirements
Empty file added Assignments/Sample_Rubric.md
Empty file.
64 changes: 64 additions & 0 deletions Lessons/Lesson1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
## Minute-by-Minute [OPTIONAL]

| **Elapsed** | **Time** | **Activity** |
| ----------- | --------- | ------------------------- |
| 0:00 | 0:05 | Objectives |
| 0:05 | 0:15 | Overview |
| 0:20 | 0:45 | In Class Activity I |
| 1:05 | 0:10 | BREAK |
| 1:15 | 0:45 | In Class Activity II |
| TOTAL | 2:00 | |

# Why you should know this or industry application (optional) (5 min)

Explain why students should care to learn the material presented in this class.

## Class Learning Objectives/Competencies (5 min)

1. Identify and describe
1. Define
1. Design
1. Implement

## Initial Exercise (15 min)

- Funny comic
- Prime the Pump (e.g. think and jot, think pair share, etc)
- Productivity Tip/Tool
- Review of current event (e.g. tech news relevant to your track/topic)
- Quiz on homework or topic(s) of past class
- Concept Test

## Overview/TT I (20 min)

- Why learn this?
- Industry examples of usage
- Best practices
- Personal anecdote

## In Class Activity I (30 min)

- I do, We do, You do
- Reading & Discussion Questions in small groups
- Draw a picture/diagram
- Complete Challenges solo or in pair
- Q&A about tutorials
- Pair up and code review
- Pair program
- Formative assessment
- Form into groups
- etc (get creative :D)

## Overview/TT II (optional) (20 min)

## In Class Activity II (optional) (30 min)

## Wrap Up (5 min)

- Continue working on your current tutorial
- Complete reading
- Complete challenges

## Additional Resources

1. Links to additional readings and videos
1 change: 1 addition & 0 deletions Lessons/Lesson2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
COPY YOUR Lesson 1 format
154 changes: 154 additions & 0 deletions README-old.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
# SEM-1.1-GraphQL

Senior Seminar with GraphQL

This is proposal for a possible class to run term 3 2019.

Feel free to comment with any suggestions, words of encouragement, and expressions of interest.

# GraphQL Class Proposal

This is a proposal for a senior seminar. To run in term 3 2018.

## Overview

GraphQL is an open source data query and manipulation language for APIs, and runtime for fulling data requests.

Graph QL is a language and a specification and can be used with a variety of server technologies.

As a clientside language GraphQL allows a client to describe a request, including providing query parameters, and what it expects in return.

As a server side specification GraphQL describes how a server should fullfill a query. The GraphQl spec can be implemented in any serverside technology for example SQL or Node.

### Advantages

Reduces a routes to a single endpoint. With REST you will need an endpoint for each of many different types of requests. With GraphQL you would use a **single endpoint for all requests**.

Removes over and under fetching of data. With REST data returned from a request is usually a fixed dataset and includes a full range of data. Using GraphQL you can **specify exactly what you want returned**.

With REST there is a need to define an end point for each type of request at the server. With GraphQL all requests are written at the client. This makes product iteration faster.

- Develop applications faster since you can create new routes by just writing code on frontend.
- Using a single endpoint simplifies your work.
- Make more effecient applications by avoiding over fetching and under fetching data.

## Core Concepts

The GraphQL language uses a JS like syntax. Below are some examples of the code you would write in the GraphQL language.

### SDL (Schema Definition Language)

Strong Schemas make for more robust and reliable systems.

```
type Post {
title: String!
author: Person!
}
```

### Query

Queries written on the frontend make for faster more effecient development.

```
{
allPosts {
title
}
}
```

Nested data can be requested in a query.

```
{
allPosts {
title
comments {
subject
}
}
}
```

Queries can have parameters

```
{
allPosts(first: 2) {
title
}
}
```

Mutations are for CRUD

```
mutation {
createPost(title: "Learn GraphQL", content: "...") {
title
content
}
}
```

### Subscriptions

GraphQL supports real time updates with Subscriptions.

### Backend technologies

GraphQL integrates with all of the technologies you are familiar with: React, Node, Elixir, Ruby, Python, and more.

On the clientside GraphQL queries are written as strings and so work with any frontend technology.

## Class Projects

- Hackernews Tutorial
- Contractor Project
- Custom Project

## Syllabus

- Intro
- What is GraphQL?
- Benefits
- REST vs GraphQL
- Vocabulary
- GitHub GraphQL API Server
- https://developer.github.com/v4/
- Getting started
- Writing a Query
- Formatting a query
- Passing arguments
- Required arguments
- GraphQL Schemas
- Schemas
- Types
- Querying a Schema
- Handling Data

### Other possible topics

- Queries and Mutations
- Schemas and Types
- Validation
- Execution
- Best Practices
- Thinking in Graphs
- Authorization
- Pagination
- Caching

Class/homework

- Working with GraphQL the language
- Use the online editor https://graphql.org/learn/
- Working with GraphQL and an API
- Use this series of videos here: https://www.youtube.com/watch?v=lAJWHHUz8_8&list=PL0zVEGEvSaeEjIDdbK1KfR7V9XBCVAr0P
- Build a GraphQL server with Python, Ruby, and JS
- https://www.youtube.com/watch?v=UBGzsb2UkeY
- Build GraphQL Server with node and express mongo
- https://blog.apollographql.com/tutorial-building-a-graphql-server-cddaa023c035

Loading

0 comments on commit f6e3411

Please sign in to comment.