Challenges required for certifications are marked with a *


Introduction to the Applied Visual Design Challenges

Create Visual Balance Using the text-align Property

Adjust the Width of an Element Using the width Property

Adjust the Height of an Element Using the height Property

Create Visual Balance with the Height of an Element

Use the strong Tag to Make Text Bold

Use the u Tag to Underline Text

Use the em Tag to Italicize Text

Use the del Tag to Strikethrough Text

Create a Horizontal Line Using the hr Element

Adjust the background-color Property of Text

Adjust the Size of a Header Versus a Paragraph Tag

Add a box-shadow to a Card-like Element

Decrease the Opacity of an Element

Use the text-transform Property to Make Text Uppercase

Use a Google Font

Set the font-size for Multiple Heading Elements

Set the font-weight for Multiple Heading Elements

Set the font-size of Paragraph Text

Set the line-height of Paragraphs

Adjust the Color of an Anchor Tag

Adjust the Hover State of an Anchor Tag

Change an Element's Relative Position

Move a Relatively Positioned Element with CSS Offsets

Lock an Element to its Parent with Absolute Positioning

Lock an Element to the Browser Window with Fixed Positioning

Push Elements Left or Right with the float Property

Change the Position of Overlapping Elements with the z-index Property

Center an Element Horizontally Using the margin Property

Learn about Complementary Colors

Learn about Tertiary Colors

Adjust the Color of Various Elements to Complementary Colors

Adjust the Hue of a Color

Adjust the Tone of a Color

Create a Gradual CSS Linear Gradient

Use a CSS Linear Gradient to Create a Striped Element

Create Texture by Adding a Subtle Pattern as a Background Image

Use the CSS Transform scale Property to Change the Size of an Element

Use the CSS Transform scale Property to Scale an Element on Hover

Use the CSS Transform Property skewX to Skew an Element Along the X-Axis

Use the CSS Transform Property skewY to Skew an Element Along the Y-Axis

Create a Graphic Using CSS

Create a More Complex Shape Using CSS and HTML

Learn How the CSS @keyframes and animation Properties Work

Use CSS Animation to Change the Hover State of a Button

Modify Fill Mode of an Animation

Create Movement Using CSS Animation

Create Visual Direction by Fading an Element from Left to Right

Animate Elements Continually Using an Infinite Animation Count

Make a CSS Heartbeat using an Infinite Animation Count

Animate Elements at Variable Rates

Animate Multiple Elements at Variable Rates

Change Animation Timing with Keywords

Learn How Bezier Curves Work

Use a Bezier Curve to Move a Graphic

Make Motion More Natural Using a Bezier Curve

Comment Your JavaScript Code

Declare JavaScript Variables

Storing Values with the Assignment Operator

Initializing Variables with the Assignment Operator

Understanding Uninitialized Variables

Understanding Case Sensitivity in Variables

Add Two Numbers with JavaScript

Subtract One Number from Another with JavaScript

Multiply Two Numbers with JavaScript

Divide One Number by Another with JavaScript

Increment a Number with JavaScript

Decrement a Number with JavaScript

Create Decimal Numbers with JavaScript

Multiply Two Decimals with JavaScript

Divide one Decimal by Another with JavaScript

Finding a Remainder in JavaScript

Compound Assignment With Augmented Addition

Compound Assignment With Augmented Subtraction

Compound Assignment With Augmented Multiplication

Compound Assignment With Augmented Division

Declare String Variables

Escaping Literal Quotes in Strings

Quoting Strings with Single Quotes

Escape Sequences in Strings

Concatenating Strings with Plus Operator

Concatenating Strings with the Plus Equals Operator

Constructing Strings with Variables

Appending Variables to Strings

Find the Length of a String

Use Bracket Notation to Find the First Character in a String

Understand String Immutability

Use Bracket Notation to Find the Nth Character in a String

Use Bracket Notation to Find the Last Character in a String

Use Bracket Notation to Find the Nth-to-Last Character in a String

Word Blanks

Store Multiple Values in one Variable using JavaScript Arrays

Nest one Array within Another Array

Access Array Data with Indexes

Modify Array Data With Indexes

Access Multi-Dimensional Arrays With Indexes

Manipulate Arrays With push()

Manipulate Arrays With pop()

Manipulate Arrays With shift()

Manipulate Arrays With unshift()

Shopping List

Write Reusable JavaScript with Functions

Passing Values to Functions with Arguments

Global Scope and Functions

Local Scope and Functions

Global vs. Local Scope in Functions

Return a Value from a Function with Return

Assignment with a Returned Value

Stand in Line

Understanding Boolean Values

Use Conditional Logic with If Statements

Comparison with the Equality Operator

Comparison with the Strict Equality Operator

Comparison with the Inequality Operator

Comparison with the Strict Inequality Operator

Comparison with the Greater Than Operator

Comparison with the Greater Than Or Equal To Operator

Comparison with the Less Than Operator

Comparison with the Less Than Or Equal To Operator

Comparisons with the Logical And Operator

Comparisons with the Logical Or Operator

Introducing Else Statements

Introducing Else If Statements

Logical Order in If Else Statements

Chaining If Else Statements

Golf Code

Selecting from Many Options with Switch Statements

Adding a Default Option in Switch Statements

Multiple Identical Options in Switch Statements

Replacing If Else Chains with Switch

Returning Boolean Values from Functions

Return Early Pattern for Functions

Counting Cards

Build JavaScript Objects

Accessing Objects Properties with the Dot Operator

Accessing Objects Properties with Bracket Notation

Accessing Objects Properties with Variables

Updating Object Properties

Add New Properties to a JavaScript Object

Delete Properties from a JavaScript Object

Using Objects for Lookups

Testing Objects for Properties

Manipulating Complex Objects

Accessing Nested Objects

Accessing Nested Arrays

Record Collection

Iterate with JavaScript While Loops

Iterate with JavaScript For Loops

Iterate Odd Numbers With a For Loop

Count Backwards With a For Loop

Iterate Through an Array with a For Loop

Nesting For Loops

Profile Lookup

Generate Random Fractions with JavaScript

Generate Random Whole Numbers with JavaScript

Generate Random Whole Numbers within a Range

Use the parseInt Function

Use the parseInt Function with a Radix

Use the Conditional (Ternary) Operator

Use Multiple Conditional (Ternary) Operators

Before you can get credit toward your final Full Stack Development Certificate by contributing to open source, we recommend you complete all six of your certifications.

Contribute Pull Requests to Open Source projects*

QA Other Developers' Pull Requests*

Greenfield Code Grant Project for a Nonprofit*

Legacy Code Grant Project for a Nonprofit*

Claim Your Full Stack Development Certificate

Typed Arrays

Learn how a Stack Works

Create a Stack Class

Create a Queue Class

Create a Priority Queue Class

Create a Circular Queue

Create a Set Class

Remove from a Set

Size of the Set

Perform a Union on Two Sets

Perform an Intersection on Two Sets of Data

Perform a Difference on Two Sets of Data

Perform a Subset Check on Two Sets of Data

Create and Add to Sets in ES6

Remove items from a set in ES6

Use .has and .size on an ES6 Set

Use Spread and Notes for ES5 Set() Integration

Create a Map Data Structure

Create an ES6 JavaScript Map

Create a Hash Table

Work with Nodes in a Linked List

Create a Linked List Class

Remove Elements from a Linked List

Search within a Linked List

Remove Elements from a Linked List by Index

Add Elements at a Specific Index in a Linked List

Create a Doubly Linked List

Reverse a Doubly Linked List

Find the Minimum and Maximum Value in a Binary Search Tree

Add a New Element to a Binary Search Tree

Check if an Element is Present in a Binary Search Tree

Find the Minimum and Maximum Height of a Binary Search Tree

Use Depth First Search in a Binary Search Tree

Use Breadth First Search in a Binary Search Tree

Delete a Leaf Node in a Binary Search Tree

Delete a Node with One Child in a Binary Search Tree

Delete a Node with Two Children in a Binary Search Tree

Invert a Binary Tree

Create a Trie Search Tree

Insert an Element into a Max Heap

Remove an Element from a Max Heap

Implement Heap Sort with a Min Heap

Introduction to Graphs

Adjacency List

Adjacency Matrix

Incidence Matrix

Breadth-First Search

Depth-First Search