Introduction to Ruby Programming

COURSE OUTLINE:

Description

In this course, you will learn about the fundamental components of the Ruby programming language. Working in a lab intensive, hands-on programming environment, you will explore object-oriented aspects of Ruby and best practices for developing robust applications with Ruby. Topics include arrays, hashes, regular expressions, IO, exceptions, modules, and applications areas such as Common Gateway Interface (CGI), client/server, and network programming.

Audience

Individuals who have programmed in other programming languages such as, but not limited to, C, C++, Java, or Perl

Prerequisites

You should have taken the Software Development for Non-Programmers course or have at least six months of programming experience in at least one programming language such as

Learning Objectives

  • Distinguish and use various Ruby datatypes
  • Master the use of arrays and hashes
  • Build home grown classes
  • Use the extensive pre bundled classes
  • Use the I/O facilities of Ruby to read and write binary and text files
  • Master the use of Iterators to loop through various data structures
  • Use exceptions in handling various run time errors
  • Create Ruby modules
  • Use the wide variety of Ruby modules that come with the Ruby distribution
  • Use Ruby to write CGI programs
  • Write client/server apps using Ruby
  • Write graphical user interfaces (GUIs) in Ruby

1. An Overview of Ruby (Part 1)

  • What is Ruby?
  • Ruby References
  • Executing Ruby Code
  • Getting Input
  • Comments
  • Numbers
  • Strings
  • The Class Class
  • Decision Making
  • The case Construct
  • Loops
  • Iterators
  • Regular Expressions
  • Functions
  • Odds and Ends
  • Time Methods
  • Command Line Arguments

2. An Overview of Ruby (Part 2)

  • Arrays
  • Array Operator Methods
  • Array Equality Operator
  • Arrays as Stacks and Queues
  • Higher Dimensional Arrays
  • Other Useful Arrays Methods
  • Hashes
  • Common Hash Methods
  • Sorting Hashes
  • Iterators with Arrays and Hashes
  • Arrays and Functions
  • Hashes and Functions
  • Named Parameters
  • Symbols
  • Proc Objects
  • Closures

3. Classes

  • Objects
  • Brief History of OOP
  • OOP Vocabulary
  • Creating a New Class
  • Using Objects
  • Defining Operator Methods
  • Inheritance
  • Ancestors
  • Self
  • Access Levels-Public
  • Access Levels-Private
  • Access Levels-Protected
  • Access Levels-Specification
  • Class Data and Class Methods
  • Adding Methods to Classes and Objects
  • Special Global Variables
  • Scope of Variables
  • Built-in Classes
  • The Math Class
  • The Time Class
  • The NilClass Class
  • TrueClass and FalseClass
  • Built-in Class Hierarchy

4. Input and Output

  • Introduction
  • Reading from the Standard Input
  • Reading a Character at a Time
  • Writing to the Standard Output
  • Reading and Writing Disk Files
  • Reading Files Using Iterators
  • I/O with Command Line Commands
  • Seeking about Files
  • ftell
  • Capturing Data about Files
  • Processing Directories

5. Exceptions

  • Introduction
  • Exceptions
  • Handling Exceptions
  • Multiple Rescue Clauses
  • Exceptions Are Classes
  • Ensure
  • Retry
  • Raise
  • Creating Your Own Exceptions
  • Catch and throw

6. Modules

  • Introduction
  • Using Core Ruby Classes
  • Ruby Standard Library
  • Require
  • Search Path
  • File Organization
  • Load
  • Modules
  • Include
  • Mixins
  • Using the Comparable Module
  • Collection Classes
  • Yield
  • Using the Enumerable Module

7. Odds and Ends

  • Ruby Conventions
  • Strings Are References
  • The Selection Operator, [ ]
  • Index Methods
  • Stripping Whitespace Characters
  • Bit Manipulation
  • The upto Method