Slides da última aula

13 de Junho de 2017, por Arthur de Moura Del Esposte

Seguem os slides sobre Depuração e Refatoração da última aula:



Slides RSPEC

26 de Maio de 2017, por Arthur de Moura Del Esposte

Segue o link dos meus slides sobre RSpec:

https://social.stoa.usp.br/tecnicas-de-programacao-2/rspec-tecprog2.pdf

 



Dicas de Git e Gitlab

5 de Maio de 2017, por Arthur de Moura Del Esposte

O Git é uma excelente ferramenta para gerenciamento de versões do código-fonte, além de ser muito utilizada no mercado e por comunidades de software livre.

Para desenvolver os projetos, vocês irão utilizá-lo junto com o Gitlab, para desenvolvimento colaborativo com os outros membros do grupo.

Seguem alguns recursos para quem quer aprender mais sobre o uso do Git e Gitlab:



Semana 7 (15/04 - 21/04)

17 de Abril de 2017, por Arthur de Moura Del Esposte

Não haverá aula também no dia 21/04 por causa do feriado. Portanto, para vocês não ficarem sem aprender algo novo durante 3 semanas consecutivas :-) vocês deverão realizar as seguintes atividades para continuar os estudos introdutórios sobre Ruby on Rails:

  • Assistir e completar as aulas do EDX - Rails Intro (Week 6 and 7), que acompanha o capítulo 4 do livro-texto
  • Exercitar seguindo o tutorial introdutório da página oficial do Rails -> "Getting Started with Rails"
  • Iniciar o desenvolvimento do HW3 que deverá ser entregue até dia 27 de abril - 22:00 BRT sem adiamento (fazer preferencialmente em dupla, cada membro da dupla envia a sua solução; plágio -> nota -10 para dupla plagiada e dupla plagiadora)

Para aqueles que quiserem se aprofundar um pouco mais no conteúdo sobre Rails, os seguintes recursos podem ser acessados opcionalmente:

 



Exercícios que vimos na aula de hoje

7 de Abril de 2017, por Fabio Kon

Se você teve dificuldades em algum deles, por favor, refaça em casa no computador.

Ruby collection methods.  Write 1 to 3 lines of Ruby code for each of the following tasks.  Don't use any explicit looping (for, loop, each, while, etc.): use only the collection operators, most of which are defined in the module Enumerable.  

 

Assuming the variable words is an array in which each element is either a string (which may be empty) or nil, write a short amount of Ruby code that will return:

 

  1. a copy of words with nil elements removed.
  2. a copy of words with both nil and empty string elements removed
  3. only those words that are exactly 3 letters long
  4. only those words that contain at least one vowel (a, e, i, o, u)
  5. a string that is the concatenation of all the words (hint: use inject)
  6. a string that contains exactly one of each letter contained in any word, in sorted order.  So if words contains ["apple", "banana", nil, "cat"], the string should be "abcelnpt".  Hint 1: consider using uniq.  Hint 2: To use uniq, consider also using chars.

 

Iterators review: Write an iterator fib(n) that iterates over the first n Fibonacci numbers.  Example usage:

 

>> fib(5) { |x| puts x }

0

1

1

2

3

5

 

Extending Ruby classes

  • Write code to add instance method #perfect_square? to Numeric.  It should return true if the number is a perfect square, e.g. 49.perfect_square? is true but 35.perfect_square is false.

 

  • Add an iterator method #each_pair to Enumerable which yields a pair of elements each iteration through a simple collection.  On what object(s) (of what type or class) could you use this new iterator method?

 

Duck Typing

 

What is an example of duck typing that you’ve seen in this worksheet?

 

What is duck typing useful for?

 

What does “<<” do for an instance of String? Array? (Hint: experiment with irb to find out.)