Code Monkey home page Code Monkey logo

front-end-curriculum's Introduction

Front End Curriculum

This is a small static Jekyll site that contains the front end program's lessons and projects.

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Getting Started

Development Branch

A develpment server is running for the development branch of this project. You can find that site here.

Prerequisites

In order to get this repo up and running you will need to have Ruby 2.7.4 installed and active.

Install Homebrew if you don't already have it:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Follow prompts if necessary (you may need to enter your computer password, as well as run a few scripts prompted in the terminal output).

Install Ruby Version Manager:

\curl -sSL https://get.rvm.io | bash -s stable

Install Ruby version 2.7.4 using RVM:

rvm install 2.7.4

You will also need the bundler and jekyll gems installed.

gem install bundler
gem install jekyll

Installing

Once you have Ruby, Bundler, and Jekyll installed, you can install dependencies by running:

bundle

And after all dependencies are installed, you can run the following to start your local server on port 4000:

bundle exec jekyll serve

Styling Your Lesson Plans

You can add styled boxes to your lesson plans for different areas of content.

Standard Box:

<section class="call-to-action">
### In Your Notebook

What would you expect to be logged when we get to line 10? Why?
</section>

Will result in the following styled box:

styled-box

Answer/Solution Box:

The heading in the answer box must be an h3. You can include any text within the section after that

<section class="answer">
### The Answer  

Here is an answer to the On Your Own section...
</section>

Will result in the following styled box:

collapsed answer

expanded answer

Note Box:

<section class="note">
### Note

This hoisting behavior adds some complexity to the JavaScript language, and is important to understand thoroughly in order to anticipate the values of your variables at any given time.
</section>

note-box

CFU/Exit Ticket Box:

<section class="checks-for-understanding">
### Exit Ticket

What are 3 easy and actionable accessibility steps you can take in all of your projects from here on out?
</section>

cfu-box

DO NOT INDENT YOUR MARKDOWN within the section tag, or else it will not work.

Algolia Search

The site uses Algolia for search indexing. To re-index the search when new lessons are added or lessons are removed, run this command in your terminal at the root of the curriculum directory:

ALGOLIA_API_KEY=admin_api_key bundle exec jekyll algolia push

Where admin_api_key is replaced with the actual admin API key found in the Algolia account dashboard.

front-end-curriculum's People

Contributors

alex-tideman avatar ameseee avatar breethomas avatar brittanydionigi avatar cassandragoose avatar christielynam avatar damwhit avatar ericweissman avatar hannahhch avatar hfaerber avatar jcasimir avatar joshuajhun avatar kalikoze avatar kaylagordon avatar khalidwilliams avatar letakeane avatar louisabarrett avatar martensonbj avatar mlimberg avatar nfosterky avatar nicktu12 avatar niksseif avatar robbiejaeger avatar rrgayhart avatar sertmer avatar stevekinney avatar thatpamiam avatar tman22 avatar turing-pd-bot avatar wvmitchell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

front-end-curriculum's Issues

Update final solo project 2

Project to be updated: Rock Paper Scissors

Summary of changes needed:

  • The project architecture expects the creation of Player and Game classes; students should instead be pushed to use object literals and functions.

Create new JS Foundations exercises (3 of 3)

Activity to be updated: JS Foundations

Summary of changes needed:

  • 3 new test suites
  • Each test suite should be centered around a certain topic
  • Each suite should demand the creation of 4-5 functions, with enough tests that hardcoding results becomes tiresome
  • README should be updated accordingly

Competencies to be practiced

  • Passing multiple arguments
  • Passing arrays and objects as arguments
  • Using conditional logic based on parameters
  • Correct use of return
  • Creating 'pure' functions, that always result in the same output
  • Use of array properties and methods
  • Use of dot/bracket notation

Note

The repository for this issue is listed as front-end-curriculum, even though the repository is really turingschool-examples/javascript-foundations. This is due to the fact that the project board cannot belong to more than one org (turingschool vs turingschool-examples)

Update first solo project 2

Project to be updated: JS Fun at the library

Summary of changes needed:

  • This project currently asks students to implement a Class (Librarian) based on a test suite
  • The project needs to be updated so the the tests are not expecting a Class to be created
  • Librarian is an extension for the project, so a different extension should replace it

Current Location Indicator

From Brittany: "Potentially make some breadcrumb links?"

This would probably be most applicable for lessons.

Update Extra Practice Hub

Activity to be updated: Extra Practice Hub

Summary of changes needed:

  • Many broken links here, update/remove as necessary, find them using the Integrity tool
  • Remove any exercises involving Classes, replace with other activities as necessary

ideabox to dos

Rubric

Functional Expectations

  • Novice - Application meets all of the basic functional expectations of create, edit, delete, and those changes persist in localStorage
  • Advanced Beginner - Application adds 'Changing the quality of an idea' and enables 'Filtering and Searching by Text' as defined in the spec
  • Proficient - Applications adds 'Filter by Importance' and 'Recent Ideas' as outlined in the spec
  • Exceptional - Application adds at least one of the extensions

Comp Recreation

  • Novice - Application implements all major comp details accurately and correctly on desktop only (colors, fonts, icons, spacing, alignment, etc.)
  • Advanced Beginner - Application implements all major comp details accurately and correctly on desktop and mobile (colors, fonts, icons,spacing, alignment, etc.). Transitions between screen sizes may not be smooth.
  • Proficient - Application implements all major comp details accurately and correctly on desktop and mobile (colors, fonts, icons,spacing, alignment, etc.) with smooth transitions between screen sizes. Additional elements added generally match the visuals established in the comps, but may be slightly awkward.
  • Exceptional - Application implements all major comp details accurately and correctly on desktop and mobile (colors, fonts, icons,spacing, alignment, etc.) with smooth transitions between screen sizes. Additional elements that have been added match the visuals established in the comps.

HTML - Style and Implementation

  • Novice - Crafts markup according to the turing html style guide
  • Advanced Beginner - Application adds to the above by using appropriate semantic elements and using data-* attributes for all data related things
  • Proficient - Applications adds to the above with markup that is easy to read and follow across naming conventions
  • Exceptional - Application adds to the above by using BEM, SMACCS, or another set of naming conventions for classes and:
    • Implements html that is accessible for folks with visual disabilities. Reference this lesson plan

CSS - Style and Implementation

  • Novice - Crafts CSS according to the turing css style guide
  • Advanced Beginner - Application adds organization for the whole stylesheet and within rules
  • Proficient - Applications adds to the above by removing repetitive rules and blocks of code according to the DRY principle
  • Exceptional - Application adds to the above by using BEM, SMACCS, or another set of naming conventions for classes

JAVASCRIPT - Style and Implementation

  • Novice - Crafts JS according to the turing js style guide
  • Advanced Beginner - Application adds to the above by correctly implementing a data model for the Idea class including all required methods
  • Proficient - Application adds readability by incorporating both DRY and SRP practices and students can speak to implementation decisions and:
    • All functions are less than 10 lines
    • There are less than 3 global variables
    • There are no nested if else statements
  • Exceptional - Application adds to code quality by refactoring all for loops into the proper array prototype iteration methods and:
    • Using logical operators instead of if/else

Meta-Data Updates to all lesson plans

Action Items

  1. Add module metadata to each lesson in your module?
      module: 1
    
  2. Also, if it’s deprecated, add deprecated: true to the metadata.
  3. Review all lesson plan titles

Mod 1

  • module meta data
  • deprecated: true meta data
  • lesson plan names reviewed

Mod 2

  • module meta data
  • deprecated: true meta data
  • lesson plan names reviewed

Mod 3

  • module meta data
  • deprecated: true meta data
  • lesson plan names reviewed

Mod 4

  • module meta data
  • deprecated: true meta data
  • lesson plan names reviewed

Update Dot & Bracket notation lesson

Lesson to be updated: Dot & Bracket Notation

Summary of changes needed:

  • Prework section should be rolled into lesson itself, it doesn't need to be homework
  • Ensure that the lesson otherwise meet the criteria laid out below
  • Add in an example from a previous project (i.e. the final tests in library.js for JS Fun at the Library)

Lesson creation guidelines (also on FE Hub

Clean-up legacy CSS

Go through every CSS file to see if the CSS rule is used.

Probably do this after the front page is redesigned because that will change the layouts and what elements are used going forward.

Create new JS Foundations exercises (2 of 3)

Activity to be updated: JS Foundations

Summary of changes needed:

  • 3 new test suites
  • Each test suite should be centered around a certain topic
  • Each suite should demand the creation of 4-5 functions, with enough tests that hardcoding results becomes tiresome
  • README should be updated accordingly

Competencies to be practiced

  • Passing multiple arguments
  • Passing arrays and objects as arguments
  • Using conditional logic based on parameters
  • Correct use of return
  • Creating 'pure' functions, that always result in the same output
  • Use of array properties and methods
  • Use of dot/bracket notation
  • For loops

Note

The repository for this issue is listed as front-end-curriculum, even though the repository is really turingschool-examples/javascript-foundations. This is due to the fact that the project board cannot belong to more than one org (turingschool vs turingschool-examples)

Update final solo project 1

Project to be updated: Tic Tac Toe

Summary of changes needed:

  • The project architecture expects the creation of Game and Player classes; students instead should be encouraged to make use of object literals.

Update paired project 1

Project to be updated: Hang In There

Summary of changes needed:

  • The starter repo currently uses a Poster class, this implementation needs to be replaced
  • The rubric has multiple references to OOP competencies, these should be changed to FP competencies (inside the constraints of what we can reasonably expect from a M1 student)
  • All group projects should make clear that a failure to participate can result in an individual failing the project, even if the project is otherwise passing

Archive unit testing Classes lesson

Lesson to be archived: Unit testing classes

Reasoning for archive:

  • We're no longer teaching M1 students classes, so we don't need the unit testing classes lesson

Steps to take

  • Move lesson to archive directory inside M1 directory
  • Update site to no longer have link to lesson

Create Pure Functions lesson

Topic to be covered: [Pure Functions]

Summary of need:

  • Students need to understand the basics of what makes a function 'Pure'
  • Students should also have an understanding of how purity could be violated
  • Students should have a rough understanding of the benefits to using pure functions
  • Students should have a sense of what strategies they can use to make a function pure (input, output, making copies of data)

Lesson creation guidelines (also on FE Hub)

Update Small Groups Doc

Activity to be updated: M1 Small Group Planning

Summary of changes needed:

  • Create small groupings for 2303 that are in line with our curriculum updates

Notes

  • This ticket should be picked up by a current M1 instructor
  • There will be no PR to be made here, so if you're reviewing, just check the linked document

Create new JS Foundation exercises (1 of 3)

Activity to be updated: JS Foundations

Summary of changes needed:

  • 3 new test suites
  • Each test suite should be centered around a certain topic
  • Each suite should demand the creation of 4-5 functions, with enough tests that hardcoding results becomes tiresome
  • README should be updated accordingly

Competencies to be practiced

  • Passing multiple arguments
  • Passing arrays and objects as arguments
  • Using conditional logic based on parameters
  • Correct use of return
  • Creating 'pure' functions, that always result in the same output
  • Use of array properties and methods
  • Use of dot/bracket notation

Note

The repository for this issue is listed as front-end-curriculum, even though the repository is really turingschool-examples/javascript-foundations. This is due to the fact that the project board cannot belong to more than one org (turingschool vs turingschool-examples)

Archive Classes lesson

Lesson to be archived: JS Classes

Reasoning for archive:

  • We're no longer going to be teaching Classes to M1 students

Steps to take

  • Move lesson to archive folder within M1 directory
  • Remove classes lesson from website

Update Daily Problem Solving practice

Activity to be updated: Daily Problem Solving Practice

Summary of changes needed:

  • Several of the days involve making tests pass for Classes, which already have been stubbed out. These days will need to be changed to either involve tests that check different things, or different activities alltogether.

Lesson creation guidelines (also on FE Hub)

Revamp To-Do

  • Landing page: remove unnecessary links and add hero image (in PR)
  • Landing page: after unnecessary links are removed, add small sections for remaining information (paired.tech, mentor list?, professional development, mod-0 capstone?)
  • Add styling for specific sections: turn and talk, on your own (you do), CFUs, homework, pro-tip (side notes)
  • Add line numbers to code snippets
  • Consistent image styling and sizing (centered, not giant)
  • Embedding typeform surveys for CFUs?

Update weekly audits

Activity to be updated: Weekly Audits Document

Summary of changes needed:

  • Activities for "Classes" and "Unit Testing Classes" should be removed
  • Any topic that is taking the place of those (if applicable), should have an associated audit activity

Make Paired section of home page more subtle

Currently, the Paired section of the home page gets a lot of real estate. We should probably make it smaller, Louisa suggestion something as inspiration from the turing.io site like:

image

Update group project 1

Project to be updated: M1 Ideabox

Summary of changes needed:

  • The project refers to classes and methods in multiple places. Students will instead need to be pushed to use object literals and functions.
  • The project either implicitly or explicitly states that students will need to create Idea and Comment classes. This will need to be changed.
  • All group projects should make clear that a failure to participate can result in an individual failing the project, even if the project is otherwise passing

Update group project 2

Project to be updated: Colorandom

Summary of changes needed:

  • Iteration 1 will need to be updated so that it no longer expects the creation of classes. This same functionality can be guided by functions and object literals.
  • Successive iterations will need to be updated so as not to expect instantiations of classes.
  • All group projects should make clear that a failure to participate can result in an individual failing the project, even if the project is otherwise passing
    • Verbiage used in other M1 projects noted in comments

Revamp front page (landing page)

Totally revamp the front page.

Remove unnecessary links and add hero image. After unnecessary links are removed, add small sections for remaining information (paired.tech, mentor list?, professional development, mod-0 capstone?).

Update JS Foundations documentation (Mythical Critters)

Activity to be updated: JS Foundations

Summary of changes needed:

  • All of the class based exercises can remain in the repository, however they should be categorized as optional extras demanding independent study, and the Readme should reflect this

Note

The repository for this issue is listed as front-end-curriculum, even though the repository is really turingschool-examples/javascript-foundations. This is due to the fact that the project board cannot belong to more than one org (turingschool vs turingschool-examples)

Update first solo project 1

Project to be updated: JS Fun at a restaurant

Summary of changes needed:

  • This project currently asks students to implement a Class (Chef) based on a test suite
  • The project needs to be updated so the the tests are not expecting a Class to be created
  • The boilerplate should be removed from the Chef.js file
  • Chef is an extension for the project, so a different extension should replace it

Update M1 final assessment

Assesment to be updated: M1 Final

Summary of changes needed:

  • 3 new test suites
  • Each test suite should demand the creation of 3-4 functions
  • By passing all the tests, a student will be able to demonstrate the competencies listed below

Competencies to be demonstrated

  • Passing multiple arguments
  • Passing arrays and objects as arguments
  • Using conditional logic based on parameters
  • Creating 'pure' functions, that always result in the same output
  • Use of array properties and methods
  • Use of dot/bracket notation

Update paired project 2

Project to be updated: Rom Com

Summary of changes needed:

  • The project currently pushes students to make use of a Cover class, this should be replaced with some guidance on how to store the information about a cover in an object literal
  • Reference to using the Cover class should likewise be updated
  • The boilerplate Cover class should be removed from the starter repo
  • All group projects should make clear that a failure to participate can result in an individual failing the project, even if the project is otherwise passing

Add styled lesson segments

Add styling for specific sections/segments: turn and talk, on your own (you do), CFUs, homework, pro-tip (side notes).

Otherwise, the lessons are more or less walls of text, especially if there aren’t any images in the lesson.

Active Links

Potentially make some breadcrumb links? Active links are probably easier to implement for now, and our site isn't super nesty so maybe breadcrumbs are overkill

Print Stylesheets

So students and instructors can print out lessons for reference/note taking

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.