Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master

This branch is 0 commits ahead and 0 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time

README
http://stackoverflow.com/questions/49092/online-interactive-consoles
http://tryruby.org/
http://www.codecademy.com/#!/exercise/0
- develop lesson plan before the date


Installation on windows
- Navigate to rubyinstaller.org
- Click the link 'Ruby 1.9.2-p290' to download the latest stable version
- Once the file is downloaded, double-click on rubyinstaller-1.9.2-p290.exe
- Once setup is running, click 'I accept the License'
- Click 'Next'
- Do not change the default install directory, C:\Ruby192
- Check off 'Add Ruby executables to your PATH'
- Check off 'Associate .rb and .rbw files with this Ruby installation'
- Click 'Install'
- Click 'Finish' when you see the completion window

What is Ruby? - don't dwell on this too much
- A programming language
- Talk to your computer via a programming language
- Examples of common web apps the they would know in Ruby

- Screenshots of apps

- Easy on the developer

- Show C#/Java example vs Ruby example

- Think of Rails example, try and explain framework vs. language

Starting the console (OS X)
- Applications -> Terminal

Starting the console (Windows)
- Click 'Start' -> 'All Programs' -> 'Accessories' -> 'Command Prompt' (C:\windows\system32\cmd.exe)

Integers
- Numbers without decimals

Running ruby
- Type ruby -v
- You should see ruby 1.9.2p290 followed by other information
- Type irb to enter the ruby console
- Type 1 + 2
- See the result 2 printed to the screen
- Type 2 * 5
- You can see the Ruby can perform calculations
- You've just met your first data type! An integer. 
- Why Ruby?

- This is what you can do, this is what we're going to do

- THINK OF ANALOGIES THE ENTIRE TIME!
What are data types?
- Look at the two words separately: data and type
- Data can be a word, a collection of words, a number, an integer, a decimal, or anything you would traditionally think of as data
- Type refers to the kind of data that is provided; important because you have to be able to tell the computer what you expect to be able to do with the data you provide it
- For instance, try typing 1 + 5 and then try typing 'ladies' + 'learning' + 'code'
- Let's break down the two statements you just typed
- Each one is made up of data and an operator
- The data between the first and second is different; in the first statement you're using numbers, and in the second words
- The operator in the first and second statement is the same, the + operator
- Notice that Ruby did two different things with the data provided, using the same operator. How did ruby know what to do with the data provided?
- The data has a type, and depending on the type, Ruby knows what to do with the data provided when an operator is applied to it. 
- In the first statement, the data types of 1 and 5 is Integer, and in the second, the words are all of type String
- Integer and String are only two of several data types in Ruby. We'll cover more a bit later on. 
- Talk about arrays

(30 mins)

- string manipulation - count number of words, count number of characters (Twitter 140 chars), ask them to do it and ask what they got

- example of 5 different tweets, tell me which ones are under 140 chars

Writing a script and running it from the console
- Write a simple script, save it, and run it

Ruby I/O
- Basic user input/output
- Give them basic I/O script, get them to use it, break it down after

Logic
- Basic logic
- booleans
- if statements

Methods
- Extend the operator conversation earlier by introducing methods

Loops
- Introduce arrays
- Discuss the basics of loops
- Loop through a simple array

Classes
- Talk about OOP
- Create a very simple class

Ruby console game
- Create a small game using only a few classes
- Blackjack
- Scrabble
- Twitter game - very very basic Twitter
- Password verification game
Something went wrong with that request. Please try again.