SlideShare uma empresa Scribd logo
1 de 218
Baixar para ler offline
Quem sou eu?
Daniel Coelho de Andrade
Graduando em Engenharia de Computação - UEFS
Membro da Empresa Júnior de Engenharia de
Computação da UEFS
“Ruby”?
● Linguagem dinâmica
● Foco na simplicidade e produtividade
● Leitura natural
● Multiparadigma e propósito geral
● Scripts
● Interpretada
Um pouco de história...
● Criador: Yukihiro Matsumoto - “Matz”
● Primeira versão estável: 1996
● Versão atual (estável): 2.2.0
“Ruby is simple in appearance, but is very
complex inside, just like the human body”
– Matz
...mais uma linguagem?
● Matz queria uma linguagem que...
– Fosse mais poderosa que o Pearl
– Mais orientada a objetos que Python
– Simples como o Lisp
“Por que aprender Ruby?”
codeeval.com - 2014
“Mas Ruby é lento...”
Fonte: programmingzen.com/?s=benchmark
Fonte: bjpelc.wordpress.com
Está melhorando muito!
“Quero saber quem é que usa isso
aí”
Esse são só alguns...
Então...
Porque programar em Ruby?
● Fácil leitura
● Foco na simplicidade e produtividade
● Comunidade
● Desenvolvimento Ágil (Framework Rails)
● Sempre tem mais de um jeito de fazer a
mesma coisa
● É divertido :)
Além disso...
Interactive Ruby Shell
RubyGems
#gem install sqlite3
Só mais uma coisa...
Ruby is evil
“O Ruby é mal. Muito mal. Mas por que é tão
mal? Porque é tão bonito. A sintaxe é tão
elegante, tudo é objeto, tudo faz sentido. O
jeito Ruby de fazer as coisas é tão atraente...”
Simon Eskildsen
Responsável pela infraestrutura do Shopify
“Sim, tá falando demais”
Ok, chega. Vamos programar!
“Mas espera, como instala isso aí?”
No Windows
● Faça o download do executável em
http://rubyinstaller.org/
● Instale
No Linux
● Distribuições baseadas no Red Hat
– sudo yum install ruby irb rubygems
● Distribuições baseadas no Debian
– sudo apt-get install ruby irb rubygems
“O que vamos usar para programar
em Ruby?”
Ferramentas
● IRB
● Terminal
● Um editor de texto
“Como abro o IRB?”
Fácil!
● Abra o Terminal(ctrl+alt+t)
● Digite irb
Tradições...
No IRB...
puts “Hello, World!”
print “Hello, World!”
p “Hello, World!”
Comentários
Variáveis
Não precisa declará-las
O Ruby é dinâmico!
“Não entendi o 'dinâmico'...”
Vamos entender na a prática então
No IRB...
“E se eu quiser imprimir uma
variável junto a um texto?”
Simples, é só interpolar
Exemplo
numero = 42
puts “Eu escolhi o número #{numero}”
Sua vez
Escolha um número qualquer, atribua ele a
uma variável e imprima a mensagem “O
número (seu número) foi escolhido por mim”
“nil?”
Convenções
● CONSTANTE
● variavelComMaisDeUmNome
Vamos para algo um pouco mais
interessante...
Strings
Strings
● Array de sequência de bytes
● “String” é diferente de 'String'
● “a” é uma String
– Não existem caracteres
Lidando com Strings
● nome.upcase
● nome.downcase
● nome.capitalize
● nome.swapcase
● nome.reverse
● Vários outros...
Sim, parênteses são opcionais!
Voltando...
Transformando Strings
Strings são mutáveis
“Sempre existe mais de um jeito de
fazer a mesma coisa”
Jeito “comum”
nome=nome.capitalize
Jeito Ruby
nome.capitalize!
“O “!” funciona pra qualquer
método?”
“Como leio dados do teclado?”
Fácil!
● gets
● gets.chomp
“Tá ficando chato fazer isso no
Shell...”
“Como crio arquivos executáveis
em Ruby?”
Criando, Editando e Executando
● Arquivo de texto com extensão .rb
● ruby seuarquivo.rb
Para fixar o conhecimento...
Faça um programa que leia uma string e
imprima essa string ao contrário.
Fluxo de Controle
Comparando com C e Java...
● else if = elsif
● Sem chaves obrigatórias
● O bloco é finalizado com a palavra end
Operadores lógicos
● || ou or = ou
● and ou && = e
● not = negação
Exemplo
Escrito de outro jeito...
Compactando
Exercício para fixar a sintaxe :)
Um programa que lê uma string digitada pelo
usuário e substitui todas letras “a” por um “-”
Alguma sugestão de como fazer?
Vamos tentar de novo...
gsub(“a”, “b”)
include?()
Agora sim!
Um programa que lê uma string digitada pelo
usuário e substitui todas letras “a” por um “-”
Loops e Iteradores
While
x++? não
x+=1
For
1..5? Intervalos!
● 1..5 = 1,2,3,4,5
● 1...5 = 1,2,3,4
● Também funciona com letras!
“Jeito Ruby de fazer as coisas...”
Until
.times
.upto
.downto
Antes de falarmos sobre
Iteradores...
Arrays
Instanciando
● array = []
● array = Array.new
● array=Array.new(tamanho)
● array=Array.new(tamanho, elemento)
Acessando os elementos
● Index [x]
● Intervalos [x..y] ou [x...y]
● array.first
● array.last
● array.take(n)
● array.length
● array.include?
Adicionando elementos
● array.push(dado)
● array << dado
● array.insert(posição, dado)
Removendo elementos
● array.delete
● array.delete_at(posicao)
● array.pop
Soma e Subtração
“E lista?”
Lista == Array
Agora sim, Iterando em Arrays
Each
array.each{|variavel| comandos}
array.each do |variavel|
comandos
end
Ou..
“Quer dizer que Ruby aceita blocos
de comando como parâmetro?”
“Qual a diferença entre o uso das
chaves e do 'do...end'?”
Selecionando itens do Array
O problema
Eu tenho um array de strings e quero imprimir
somente as strings que começam com vogais,
como faço?
Alguma ideia?
A solução
string.select
array.include?
Definindo suas funções
Corpo de uma função em Ruby
Detalhes...
Em Ruby, toda função retorna um
valor
Voltando um pouco...
“Sim, mas o que é esse nil?”
Qual o retorno desse método?
Retorno explícito
Retorno implícito
Convenções
● Se a função retorna true/false, termina em ?
● Se o a função tiver nome composto, separa-os
por _
Exemplos
● e_par?
● e_impar?
● mais_uma_funcao
“Como é aquela coisa de passar
blocos como parâmetro?”
yield
Qual a saída desse código?
Pra fixar o conhecimento...
● Faça uma função que aceite um array como
parâmetro e, quando dado um bloco, imprima
cada um dos elementos do array.
Dicas: Para passar um array como parâmetro usa um *
antes do nome da variável. Para verificar se foi
passado um bloco como parâmetro, use a função
block_given?
Perguntas?
Próximos tópicos
● POO com Ruby
● Metaprogramação
● Rails
Iniciando com o básico...
Definindo uma classe
Instanciando uma Classe
Observações
● Nome de classe inicia sempre com letra
maíuscula
● ClasseComMaisDeUmNome
Antes de continuar vamos ver
algumas coisas...
Tudo é objeto
Até as classes são objetos!
As classes são abertas
“Classes abertas???”
Vamos mostrar isso na prática :)
Redefinindo a Classe Class
Live Coding
Isso é chamado de
Metaprogramação
“Se tudo é objeto, o que acontece
numa expressão do tipo x = 2+2?”
x= 2+ 2
x= 2+ 2
Chamada de método 1
Chamada de método 2
x= 2+ 2
Parâmetro do método 1
Parâmetro do método 2
Lembra? Parênteses são opcionais!
Rearranjando...
x=(2+(2))
x=(4)
“Mas como assim '+' e '=' são
métodos?”
Syntax Sugar
Poetry Mode
Fonte: courses.edx.org
“Como posso ver todos os métodos
dessas classes?”
ruby-doc.org
.methods
.respond_to?(:nomeDoMetodo)
Níveis de acesso das variáveis
● $var -> Variável global
● @var -> Variável de instância (atributo)
● @@var -> Variável de classe
Todos os atributos são privados
Métodos
● São públicos por padrão
● São divididos em seções de visibilidade
● Ruby não suporta sobrecarga de métodos
Parâmetros opcionais
Chamada sem parâmetro
Chamada com parâmetro
Métodos de Classe
Definindo
Acessando
Convenções sobre métodos
● metodo_com_mais_de_um_nome
● Atribuicao=
● retorno_booleano?
Construindo uma classe simples
Atribuição Condicional
Como você faria os métodos para
alterar o endereco de uma pessoa?
“Jeito Ruby”
Código gerado na classe
“E se eu quiser só ler ou alterar o
atributo?”
Equivale a
Exercício para fixar a sintaxe
● Classe Telefone(numero:String, crédito:inteiro)
● Métodos
– Ligar(número:String) [Desconta 5 créditos por
ligação)
– Adicionar créditos
– Total de Telefones [Retorna o total de telefones]
● Obs: Se não for passado um valor, os créditos iniciam em
quantidade igual a 50.
● Obs²: A ligação só pode ser feita se os créditos forem
suficientes
“Ok. Como faço uma classe herdar
de outra?”
Observações sobre Herança
● Ruby não suporta herança múltipla
● Simula herança múltipla por mixins
Antes do mixin propriamente dito...
Modules
Maneira de agrupar métodos, variáveis e
constantes
Include vs Require
Mixin é o resultado da inclusão de
um module em uma classe.
“Como importo classes em outros
arquivos .rb?”
require_relative “caminho/para/arquivo”
Outro exercício
● Crie um Module chamado Motor e uma classe
chamada Veículo. Em module, defina os
métodos “Ligar” e “Desligar”, que devem
imprimir “Motor ligado” e “Motor ligado”,
respectivamente. Faça um mixin com a classe
Veiculo e o Module Motor.
Mais metaprogramação!
Criando métodos que criam
métodos
Temos uma classe professor e temos uma
classe aluno. Como fazemos para o professor
ensinar ao aluno a escrever?
Primeiro passo: Classe Aluno
Segundo passo: Classe Professor
Terceiro passo: Classe Aula
Fonte do Exercício: Caelum
Exercício
Crie uma classe Superman e uma classe
Pessoa. Faça com que Superman ensina uma
pessoa a voar numa Aula. Superman, Pessoa e
Aula devem estar em arquivos separados.
Desvantagens do Ruby
● Ainda é considerado lento
● Pouco material disponível comercialmente
● Codificação única
Com Ruby, evite:
● Aplicações com processamento tempo real
● Aplicações que exigem muito processamento
Perguntas?
Onde encontrar mais:
● Ruby-lang.org
● Manual Ruby TAC
● Sirupsen.com – Simon Eskildsen
● Akita On Rails – Fábio Akita
● Caelum
Isso é tudo, Obrigado :)
Introdução à programação em Ruby

Mais conteúdo relacionado

Mais procurados

Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Zarathon Maia
 
JavaScript: agora é sério
JavaScript: agora é sérioJavaScript: agora é sério
JavaScript: agora é sérioLuciano Ramalho
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptRodrigo Branas
 
JavaScript for Beginners
JavaScript for BeginnersJavaScript for Beginners
JavaScript for BeginnersSAPO Sessions
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Apresentação ruby + rails
Apresentação ruby + railsApresentação ruby + rails
Apresentação ruby + railsMarcelo Bohn
 
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIDelphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIMario Guedes
 
Ruby com Singleton class, Metaprogramação e muito mais
Ruby com Singleton class, Metaprogramação e muito maisRuby com Singleton class, Metaprogramação e muito mais
Ruby com Singleton class, Metaprogramação e muito maisWende Mendes
 
JavaScript - Expressões Regulares
JavaScript - Expressões RegularesJavaScript - Expressões Regulares
JavaScript - Expressões RegularesRodrigo Branas
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Railsismaelstahelin
 
Ruby para programadores PHP
Ruby para programadores PHPRuby para programadores PHP
Ruby para programadores PHPJuan Maiz
 
Conhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformConhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformMilfont Consulting
 
Prazer,Ruby On Rails
Prazer,Ruby On RailsPrazer,Ruby On Rails
Prazer,Ruby On RailsAlberto Leal
 
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadDelphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadMario Guedes
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHPAugusto Pascutti
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Julio Monteiro
 

Mais procurados (20)

Curso ruby on rails
Curso ruby on railsCurso ruby on rails
Curso ruby on rails
 
Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014
 
JavaScript: agora é sério
JavaScript: agora é sérioJavaScript: agora é sério
JavaScript: agora é sério
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 
JavaScript for Beginners
JavaScript for BeginnersJavaScript for Beginners
JavaScript for Beginners
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Apresentação ruby + rails
Apresentação ruby + railsApresentação ruby + rails
Apresentação ruby + rails
 
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIDelphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
 
Ruby com Singleton class, Metaprogramação e muito mais
Ruby com Singleton class, Metaprogramação e muito maisRuby com Singleton class, Metaprogramação e muito mais
Ruby com Singleton class, Metaprogramação e muito mais
 
JavaScript - Expressões Regulares
JavaScript - Expressões RegularesJavaScript - Expressões Regulares
JavaScript - Expressões Regulares
 
Palestra Ruby
Palestra RubyPalestra Ruby
Palestra Ruby
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Rails
 
Ruby para programadores PHP
Ruby para programadores PHPRuby para programadores PHP
Ruby para programadores PHP
 
Conhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformConhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java Platform
 
Prazer,Ruby On Rails
Prazer,Ruby On RailsPrazer,Ruby On Rails
Prazer,Ruby On Rails
 
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadDelphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
 
Desenvolvimento web e PHP
Desenvolvimento web e PHPDesenvolvimento web e PHP
Desenvolvimento web e PHP
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)
 

Destaque

Estrutura condicional com Ruby[AULA-2]
Estrutura condicional com Ruby[AULA-2]Estrutura condicional com Ruby[AULA-2]
Estrutura condicional com Ruby[AULA-2]Ricardo Silva
 
Funções com Ruby[AULA 5]
Funções com Ruby[AULA 5]Funções com Ruby[AULA 5]
Funções com Ruby[AULA 5]Ricardo Silva
 
Logica de programação. introdução[AULA-1]
Logica de programação. introdução[AULA-1]Logica de programação. introdução[AULA-1]
Logica de programação. introdução[AULA-1]Ricardo Silva
 
Apostila ruby-completa
Apostila ruby-completaApostila ruby-completa
Apostila ruby-completamako2887
 
Curso de introdução ao ruby
Curso de introdução ao rubyCurso de introdução ao ruby
Curso de introdução ao rubyFrancis Wagner
 
Estrutura de repetição com Ruby[AULA-3]
Estrutura de repetição com Ruby[AULA-3]Estrutura de repetição com Ruby[AULA-3]
Estrutura de repetição com Ruby[AULA-3]Ricardo Silva
 

Destaque (7)

Estrutura condicional com Ruby[AULA-2]
Estrutura condicional com Ruby[AULA-2]Estrutura condicional com Ruby[AULA-2]
Estrutura condicional com Ruby[AULA-2]
 
Funções com Ruby[AULA 5]
Funções com Ruby[AULA 5]Funções com Ruby[AULA 5]
Funções com Ruby[AULA 5]
 
Logica de programação. introdução[AULA-1]
Logica de programação. introdução[AULA-1]Logica de programação. introdução[AULA-1]
Logica de programação. introdução[AULA-1]
 
Introdução ao Ruby
Introdução ao RubyIntrodução ao Ruby
Introdução ao Ruby
 
Apostila ruby-completa
Apostila ruby-completaApostila ruby-completa
Apostila ruby-completa
 
Curso de introdução ao ruby
Curso de introdução ao rubyCurso de introdução ao ruby
Curso de introdução ao ruby
 
Estrutura de repetição com Ruby[AULA-3]
Estrutura de repetição com Ruby[AULA-3]Estrutura de repetição com Ruby[AULA-3]
Estrutura de repetição com Ruby[AULA-3]
 

Semelhante a Introdução à programação em Ruby

Programacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshareProgramacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshareMarcio Junior Vieira
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicMarcio Junior Vieira
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicAmbiente Livre
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsLucas Caton
 
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Julio Betta
 
Ruby para-programadores-php
Ruby para-programadores-phpRuby para-programadores-php
Ruby para-programadores-phpJuan Maiz
 
Ruby, Rails e Diversão
Ruby, Rails e DiversãoRuby, Rails e Diversão
Ruby, Rails e DiversãoJulio Monteiro
 
Rails - EXATEC2009
Rails - EXATEC2009Rails - EXATEC2009
Rails - EXATEC2009Caue Guerra
 
Linguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo LuaLinguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo LuaSérgio Souza Costa
 
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...David Paniz
 

Semelhante a Introdução à programação em Ruby (20)

Python
PythonPython
Python
 
Programacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshareProgramacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshare
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice Basic
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice Basic
 
Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on Rails
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on Rails
 
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
Ruby on Rails (VERSAO COM LAYOUT CONSERTADO)
 
Ruby para-programadores-php
Ruby para-programadores-phpRuby para-programadores-php
Ruby para-programadores-php
 
Aula python
Aula pythonAula python
Aula python
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Lapidando ruby
Lapidando rubyLapidando ruby
Lapidando ruby
 
Curso Ruby
Curso RubyCurso Ruby
Curso Ruby
 
Curso javascript básico
Curso javascript básicoCurso javascript básico
Curso javascript básico
 
Ruby, Rails e Diversão
Ruby, Rails e DiversãoRuby, Rails e Diversão
Ruby, Rails e Diversão
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem Python
 
Rails - EXATEC2009
Rails - EXATEC2009Rails - EXATEC2009
Rails - EXATEC2009
 
Linguagem Java, fundamentos da linguagem Java
Linguagem Java, fundamentos da linguagem JavaLinguagem Java, fundamentos da linguagem Java
Linguagem Java, fundamentos da linguagem Java
 
Linguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo LuaLinguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo Lua
 
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
 

Introdução à programação em Ruby