Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
e5051a2
Update macOS information
jsoref Jun 12, 2026
7d42d1c
link: sign up
jsoref Jun 9, 2026
4b496d9
spelling: ; otherwise,
jsoref Jun 12, 2026
22449fd
spelling: 'a'
jsoref Jun 12, 2026
5f810e6
spelling: a lot
jsoref Jun 12, 2026
523ee19
spelling: a
jsoref Jun 12, 2026
d3f33fb
spelling: afterwards
jsoref Jun 12, 2026
f1d7518
spelling: an
jsoref Jun 12, 2026
9a42780
spelling: announce
jsoref Jun 12, 2026
fc60131
spelling: association
jsoref Jun 12, 2026
030e007
spelling: browser
jsoref Jun 12, 2026
c27b3b8
spelling: calculation
jsoref Jun 12, 2026
d49bd74
spelling: chrome's
jsoref Jun 12, 2026
9a4a5b8
spelling: dalmatian
jsoref Jun 12, 2026
a3612bc
spelling: evaluate
jsoref Jun 12, 2026
63b2b0c
spelling: hash
jsoref Jun 12, 2026
60c7a58
spelling: html
jsoref Jun 12, 2026
06b849b
spelling: its
jsoref Jun 12, 2026
eb61e84
spelling: javascript
jsoref Jun 12, 2026
94af49c
spelling: lowercase
jsoref Jun 12, 2026
0c81d92
spelling: macos
jsoref Jun 12, 2026
d2bafca
spelling: methods
jsoref Jun 12, 2026
08fa6cb
spelling: mpkg
jsoref Jun 12, 2026
d1b20e6
spelling: multiplied
jsoref Jun 12, 2026
3a86cd2
spelling: names
jsoref Jun 12, 2026
813d68e
spelling: of
jsoref Jun 12, 2026
969a26c
spelling: powerpoint
jsoref Jun 12, 2026
bfa1aa4
spelling: programs
jsoref Jun 12, 2026
ed94368
spelling: red hat
jsoref Jun 12, 2026
8328e4e
spelling: second
jsoref Jun 12, 2026
74f8220
spelling: separate
jsoref Jun 12, 2026
cde4654
spelling: series
jsoref Jun 12, 2026
6ffac29
spelling: sheets
jsoref Jun 12, 2026
e7582d1
spelling: similes
jsoref Jun 12, 2026
cb3d449
spelling: sitepoint
jsoref Jun 12, 2026
d54929e
spelling: someone
jsoref Jun 12, 2026
831df62
spelling: structure
jsoref Jun 12, 2026
57e0d4c
spelling: whether or not
jsoref Jun 12, 2026
187c062
spelling: wifi
jsoref Jun 12, 2026
fae5613
spelling: with syntax highlighting
jsoref Jun 12, 2026
997e8dc
spelling: with
jsoref Jun 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,7 @@ able to familiarize yourself with some concepts from git and GitHub. It's going
to be a lot of information, but you're :sparkles:awesome:sparkles:! So you'll
be fine.

First, you'll need a GitHub account, which is totally free. You can sign up
[here](https://github.com/join).
First, you'll need a GitHub account, which is totally free. You can [sign up](https://github.com/signup).

Next, browse the [GitHub Help site](https://help.github.com) and the
[GitHub Guides](https://guides.github.com/). The Help Site is more technical, and the
Expand Down
4 changes: 2 additions & 2 deletions sites/docs/docs.step
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@ site_desc 'frontend', <<-MARKDOWN
HTML + CSS for beginners. Make a website, no server required!
MARKDOWN

h1 'Javascript'
h1 'JavaScript'

site_desc 'javascript-snake-game', <<-MARKDOWN
A beginner Javascript specific curriculum that walks you through building a simple game.
A beginner JavaScript specific curriculum that walks you through building a simple game.
MARKDOWN

site_desc 'javascript-to-do-list', <<-MARKDOWN
Expand Down
2 changes: 1 addition & 1 deletion sites/frontend/HTML_tags.step
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ You don't need to memorize all the tags! You can always look them up on sites li

* [WebPlatform.org](http://webplatform.org/)
* [Mozilla Developer Network](https://developer.mozilla.org/en/HTML/Element)
* [Sitepoint](http://reference.sitepoint.com/html)
* [SitePoint](http://reference.sitepoint.com/html)

## Try This

Expand Down
4 changes: 2 additions & 2 deletions sites/frontend/basic_CSS.step
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ overview do
message <<-MARKDOWN
## What is CSS?

CSS stands for *C*ascading *S*tyle*s*heets. It's a language for creating **rules** that
CSS stands for *C*ascading *S*tyle *S*heets. It's a language for creating **rules** that
can **select** various elements on the page and change their **visual properties**.

* *C*ascading - this is how the browser determines the correct style rules to apply to
Expand Down Expand Up @@ -96,7 +96,7 @@ When you save and refresh your browser, you should see the styles you added:

The `type` and `media` attributes inside of the `<style>` tag give the browser more context for how to deal with the included information. In this case, we're telling it that the type is CSS, and that it's being displayed on a screen (as opposed to `media=\"print\"`, which is usually specially styled so it looks reasonable when printed). In HTML5, these are optional, so we could leave them out if we wanted to.

To visualize the relations between elements of **Content**, **Padding**, **Border**, and **Margin**, otherwise known as the CSS Box Model, here is an example of how this fits in:
To visualize the relations between elements of **Content**, **Padding**, **Border**, and **Margin**; otherwise, known as the CSS Box Model, here is an example of how this fits in:

<img src='img/boxmodel.png'>

Expand Down
10 changes: 5 additions & 5 deletions sites/frontend/basic_javascript.step
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ HTML
end

step do
message "Type in this short script. Javascript is case-specific (it treats `mynewname` and `myNewName` as two different things) and picky about syntax. If your script doesn't run, check carefully for typos."
message "Type in this short script. JavaScript is case-specific (it treats `mynewname` and `myNewName` as two different things) and picky about syntax. If your script doesn't run, check carefully for typos."

source_code :html, <<HTML
<script>
Expand All @@ -41,7 +41,7 @@ Once you answer the prompt, you should see the bold text that was your name chan
<img src='img/hello_omg.png'>
MARKDOWN

important "It takes years to become a Javascript expert. Don't worry if you found the last step confusing or had trouble getting your script to run. The most important thing to note is that you can put Javascript **directly** into your document if you want to, by wrapping it in a `script` tag, and use this script to add interactivity to the page."
important "It takes years to become a JavaScript expert. Don't worry if you found the last step confusing or had trouble getting your script to run. The most important thing to note is that you can put JavaScript **directly** into your document if you want to, by wrapping it in a `script` tag, and use this script to add interactivity to the page."
end
end

Expand All @@ -52,7 +52,7 @@ explanation do

## Why JavaScript?

Javascript allows you to make your pages interactive. You can use it to build
JavaScript allows you to make your pages interactive. You can use it to build
anything from a simple animation to a giant web application like Twitter
or GitHub. It gives you total control to add, remove, or modify content you've
made with HTML. You can also use it to change styles and add or remove
Expand All @@ -67,7 +67,7 @@ how to get to them with JavaScript so you can manipulate them.

We'll go through it line by line:

The first line declares a `function`, a bit a of reusable code you can refer
The first line declares a `function`, a bit of reusable code you can refer
to later by calling its name:

MARKDOWN
Expand Down Expand Up @@ -103,7 +103,7 @@ MARKDOWN
source_code :js, "document.onclick = replaceName;"


tip "Some elements of this script, like 'document.onclick' or the '.innerHTML' property, are a little out of date. They're great ways to start playing with Javascript, but when you write your own pro Javascript, you may want to use more contemporary techniques or a library like jQuery that will do these things for you in a less clunky way."
tip "Some elements of this script, like 'document.onclick' or the '.innerHTML' property, are a little out of date. They're great ways to start playing with JavaScript, but when you write your own pro JavaScript, you may want to use more contemporary techniques or a library like jQuery that will do these things for you in a less clunky way."

end

Expand Down
4 changes: 2 additions & 2 deletions sites/frontend/frontend.step
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Here's a sample sketch of what your page could look like:

### Schedule

* 1-2 hours of playing with basic HTML, CSS and Javascript.
* 1-2 hours of playing with basic HTML, CSS and JavaScript.
* 4-ish hours of building our page.
* Optional: if you've worked with GitHub before and want to put your website online using Git and GitHub, we have instructions for that! (The curriculum has you keeping your site on your machine by default.)

Expand All @@ -30,7 +30,7 @@ We're going to be working with:
* [Chrome](https://www.google.com/chrome)
(If you're experienced with the developer tools in another browser, that may work too.);
* The code editor of your choice.
* [Atom](https://atom.io/) is a free, open-source editor that can be customized with HTML, CSS, and JavaScript. A download is available for OS X 10.8+, Windows 7/8, and Ubuntu/RedHat linux.
* [Atom](https://atom.io/) is a free, open-source editor that can be customized with HTML, CSS, and JavaScript. A download is available for OS X 10.8+, Windows 7/8, and Ubuntu/Red Hat linux.
* [or install a different editor](/installfest/editors)

Optional tools if you're deploying to GitHub:
Expand Down
2 changes: 1 addition & 1 deletion sites/frontend/griding_with_bootstrap.step
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
goals do
message "As users view sites on laptops, tablets, and phones, web developers have invented a way to accomodate different screen sizes without making seperate sites. This design paradigm uses something called a 'grid' that dynamically updates depending on the screen. This challenge will help you learn to understand the grid and make responsive websites with [Bootstrap's](http://getbootstrap.com/) own system."
message "As users view sites on laptops, tablets, and phones, web developers have invented a way to accomodate different screen sizes without making separate sites. This design paradigm uses something called a 'grid' that dynamically updates depending on the screen. This challenge will help you learn to understand the grid and make responsive websites with [Bootstrap's](http://getbootstrap.com/) own system."
goal "Learn about formatting a webpage with Bootstrap's grid system"
goal "Make a website that looks good on a full sized laptop as well as on a phone."
end
Expand Down
4 changes: 2 additions & 2 deletions sites/frontend/make_a_web_page.step
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ explanation do

## Inline vs. Linked

Javascript and CSS can both be put directly into the HTML page, but on bigger projects, you'll usually want to place your JS and CSS in separate files and include those files in your HTML with a link.
JavaScript and CSS can both be put directly into the HTML page, but on bigger projects, you'll usually want to place your JS and CSS in separate files and include those files in your HTML with a link.

Linking files will help you keep your code organized and easier to maintain. It means, for example, that if you change the style of buttons on your website, you'll be able to change it in just one place, instead of having to update every page.

### Javascript
### JavaScript

* A JavaScript tag looks like this when it's wrapping code written right into the HTML page:

Expand Down
2 changes: 1 addition & 1 deletion sites/frontend/make_columns.step
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ it. Here are two different designers' interpretations of the same HTML:

### CSS Reference Sites

* [Sitepoint](http://reference.sitepoint.com/css/elements-structural)
* [SitePoint](http://reference.sitepoint.com/css/elements-structural)
* [Mozilla Developer Network](https://developer.mozilla.org/en/CSS)

MARKDOWN
Expand Down
6 changes: 3 additions & 3 deletions sites/frontend/resources.step
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ Good job! This is the last page (for now!). We hope you had some fun learning to
* [Codecademy Track for HTML & CSS](https://www.codecademy.com/tracks/web)
* [CSS Cheatsheet](http://www.lesliefranke.com/files/reference/csscheatsheet.html)

## Javascript
## JavaScript

* [Codecademy Track for Javascript](https://www.codecademy.com/tracks/javascript)
* [Javascript Cheatsheet](http://overapi.com/javascript/)
* [Codecademy Track for JavaScript](https://www.codecademy.com/tracks/javascript)
* [JavaScript Cheatsheet](http://overapi.com/javascript/)

## jQuery

Expand Down
2 changes: 1 addition & 1 deletion sites/frontend/zip_content/resources/javascript.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
// Your Javascript will go here!
// Your JavaScript will go here!
2 changes: 1 addition & 1 deletion sites/installfest/editors.step
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ message <<-MARKDOWN

There are a number of different editors designed for programming. You may already have a favorite editor; if so you can continue using that editor. If you have never used a programming editor, there are a number of good editors available, several of them free of charge. Many RailsBridge instructors use the Atom editor, so you may want to install Atom; if you end up asking for help during your class it may be easier for an instructor or TA to help you if you are using Atom. Here is a list of some of the more widely used editors:

* <a href="https://atom.io/" target="_blank">Atom</a> is a free, open-source editor that can be customized to your liking using its rich ecosystem of add-on packages. A download is available for OS X 10.8+, Windows 7/8, and Ubuntu/RedHat linux.
* <a href="https://atom.io/" target="_blank">Atom</a> is a free, open-source editor that can be customized to your liking using its rich ecosystem of add-on packages. A download is available for OS X 10.8+, Windows 7/8, and Ubuntu/Red Hat linux.
* <a href="http://www.sublimetext.com/" target="_blank">Sublime Text</a> is popular with many Ruby and Rails users. You can use it free for evaluation, then must pay to continue using it.
* <a href="http://komodoide.com/download/" target="_blank">Komodo</a> is a very good free programming editor, that is not used as widely as in the past. It is relatively easy to use.
* <a href="http://macromates.com/" target="_blank">TextMate</a> is very popular in the Ruby and Rails community. It is not free.
Expand Down
2 changes: 1 addition & 1 deletion sites/installfest/install_xcode_command_line_tools.step
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ verify "if you already have the tools installed" do
Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.0.0
Thread model: posix"
message "If you see something about Darwin and LLVM, you are good to go. If not, use one of the steps below to install the tools. Come back afterwords and run this command to make sure it works!"
message "If you see something about Darwin and LLVM, you are good to go. If not, use one of the steps below to install the tools. Come back afterwards and run this command to make sure it works!"
end

option "Install XCode Command Line Tools using software update" do
Expand Down
2 changes: 1 addition & 1 deletion sites/installfest/install_xcode_from_dvd.step
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ step "Locate Xcode.mpkg" do
message "on the OS X DVD, it is inside the \"Optional Installs\" folder."
end

step 'Double-click Xcode.mkpg' do
step 'Double-click Xcode.mpkg' do
message 'This will bring up a window titled *"Install XCode."*'
end

Expand Down
2 changes: 1 addition & 1 deletion sites/installfest/installfest.step
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ step "Prepare for the Installfest" do

## You must bring:

* **Your laptop.** You need to have a working wifi connection, a browser and an email account you can readily access.
* **Your laptop.** You need to have a working WiFi connection, a browser and an email account you can readily access.
* If you have a choice between a Mac and a Windows laptop, please bring the Mac.
* Linux is an acceptable alternative, but the Installfest is only tested on Ubuntu.
* **Power cord for your laptop**
Expand Down
19 changes: 15 additions & 4 deletions sites/installfest/macOS.step
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
step "Learn your Mac OS X Version" do
step "Learn your macOS Version" do
message <<-MARKDOWN

* Click on the Apple icon in the top left of your screen.
* Select "About This Mac"
* In the window that comes up, under the title "Mac OS X" there will be a version number.
* In the window that comes up, under the title "Mac OS X", "OS X", or "macOS", or to the right of "macOS", there will be a version number.
* If it starts with 26, you have **Tahoe**.
* If it starts with 15, you have **Sequoia**.
* If it starts with 14, you have **Sonoma**.
* If it starts with 13, you have **Ventura**.
* If it starts with 15, you have **Monterey**.
* If it starts with 11, you have **Big Sur**.
* If it starts with 10.15, you have **Catalina**.
* If it starts with 10.14, you have **Mojave**.
* If it starts with 10.13, you have **High Sierra**.
* If it starts with 10.12, you have **Sierra**.
* If it starts with 10.11, you have **El Capitan**.
Expand All @@ -15,9 +23,12 @@ step "Learn your Mac OS X Version" do
* If it starts with 10.5, you have **Leopard**.
* If it starts with 10.4, you have **Tiger**.
* If it starts with 10.3, you have **Panther**.
* If it starts with 10.2, you have **Jaguar**.
* If it starts with 10.1, you have **Puma**.
* If it starts with 10.0, you have **Cheetah**.

* Write down the Mac OS X version you have.
* In addition, to the right of the "Processor", there will be the a processor type.
* Write down the version you have.
* For older versions, the right of the "Processor", there will be a processor type.
* If it ends with **Intel Core i7**, **Intel Core i5**, **Intel Core i3**, or **Intel Core m3** you are good to go.
* If it ends with **Intel Core 2 Duo**, you are good to go.
* If it ends with **Intel Core Duo** or something else, you are **NOT** good to go. Please flag down a volunteer.
Expand Down
4 changes: 2 additions & 2 deletions sites/javascript-snake-game/javascript-snake-game.step
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ markdown <<-MARKDOWN

### Goal

Today, we're going to recreate the classic game ~SNAKE!~ in the Javascript programming language.
Today, we're going to recreate the classic game ~SNAKE!~ in the JavaScript programming language.
By the end of this session, you should understand the basics of the JavaScript language and how you can use it in a web browser.

The game you are going to create is going to work quite a bit like this:
Expand All @@ -29,7 +29,7 @@ markdown <<-MARKDOWN
### Schedule

* 2-ish hours of basic JavaScript syntax.
* 3-ish hours of creating and playing with a Javascript game and animations.
* 3-ish hours of creating and playing with a JavaScript game and animations.

This is just a rough guideline, not a mandate. Some steps you'll go
over and some you'll go under. It'll all work out by the end of the
Expand Down
6 changes: 3 additions & 3 deletions sites/javascript-snake-game/lesson-1.step
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ steps do

message <<-MARKDOWN
Press enter. Your browser should now look like this:
<img src="img/browser_console.png" alt="image of browser console with console.log"></img>
<img src="img/browser_console.png" alt="browser console with console.log"></img>

Congrats, you just wrote your first lines of JavaScript code! __console.log__ is an important function –
it allows you to print information to the browser's console. It's very helpful in debugging! You can also
Expand Down Expand Up @@ -85,14 +85,14 @@ steps do
end

step do
message "Variables can also hold more than just numbers and text. Another type of data in Javascript is called an **array**."
message "Variables can also hold more than just numbers and text. Another type of data in JavaScript is called an **array**."

source_code :javascript, 'var fruits = ["kiwi", "strawberry", "plum"]'
message <<-MARKDOWN
Here we're using the variable `fruits` to hold a collection of fruit names.
An array, designated by the `[ ]` (square-brackets), is a list of data that can be referenced by its index.
The index is the position inside the array, each separated by a comma. Arrays use 0-based indices, so the first element in an array is at Index 0, the second is at index 1, and so on.
For example, in the array above, to get the string 'strawberry' in Javascript, you would type 'fruits[1]', which Javascript understands as: get the value at index 1 in the array fruits.
For example, in the array above, to get the string 'strawberry' in JavaScript, you would type 'fruits[1]', which JavaScript understands as: get the value at index 1 in the array fruits.
MARKDOWN
end

Expand Down
2 changes: 1 addition & 1 deletion sites/javascript-snake-game/lesson-10.step
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ markdown <<-MARKDOWN
```

This returns a segment object, which looks great! But what happens if we try
a index of 0?
an index of 0?

```js
segmentFurtherForwardThan(0, snake);
Expand Down
4 changes: 2 additions & 2 deletions sites/javascript-snake-game/lesson-2.step
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,9 @@ js_expected_results 'lesson-2'
JAVASCRIPT

markdown <<-MARKDOWN
The first line declares the variable 'snake' and assigns an array to it. Within that array is one item which is defined by a set of curly-braces. These curly-braces represent another Javascript data type called an Object which is also referred to as a 'hash map'.
The first line declares the variable 'snake' and assigns an array to it. Within that array is one item which is defined by a set of curly-braces. These curly-braces represent another JavaScript data type called an Object which is also referred to as a 'hash map'.

Data stored in an hash map object involves two parts, a key and a value. In our code, we have two pieces of data in the object, a 'top' value and a 'left' value. The key is used to get the data from the object. So in our example, if we need to know what the current 'left' value of snake is, we type 'snake.left' which will return a value of '0'.
Data stored in a hash map object involves two parts, a key and a value. In our code, we have two pieces of data in the object, a 'top' value and a 'left' value. The key is used to get the data from the object. So in our example, if we need to know what the current 'left' value of snake is, we type 'snake.left' which will return a value of '0'.

On the second line, we declare the variable 'drawableSnake' and assign an object to its value. The object has two pieces, the first has the key 'color' and the value '"green"', and the second has the key 'pixels' which has the value 'snake'. 'snake' is the variable we defined on the previous line, which means 'drawableSnake.pixels' will return us the object we created on the first line.

Expand Down
2 changes: 1 addition & 1 deletion sites/javascript-snake-game/lesson-3.step
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ markdown <<-MARKDOWN
drawSnake(snake);
```

Because Javascript interprets code from top to bottom we can't call
Because JavaScript interprets code from top to bottom we can't call
functions until after we've defined them. Make sure you put this code at the
end of the `snake.js` file.
MARKDOWN
Expand Down
4 changes: 2 additions & 2 deletions sites/javascript-snake-game/lesson-6.step
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Lesson 6 - Snake can move in every direction

markdown <<-MARKDOWN
Now that the snake is moving on it's own, let's make it so it can move in
Now that the snake is moving on its own, let's make it so it can move in
different directions!

First, we'll create a function that moves the segment based upon it's
Expand Down Expand Up @@ -60,7 +60,7 @@ js_expected_results 'lesson-6'
markdown <<-MARKDOWN
### Switch statement

A `switch` statement is another way to organize a seried of `if` and `else if`s. Here's an example:
A `switch` statement is another way to organize a series of `if` and `else if`s. Here's an example:

```js
switch(color) {
Expand Down
Loading