Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Програмиране с Ruby 2014, лекция 0

Програмиране с Ruby 2014, лекция 0

Уводна лекция за курса "Програмиране с Ruby", който се води във ФМИ към СУ през учебната 2014/15 г. Повече информация: http://fmi.ruby.bg/

More Decks by Programming Ruby @ fmi.uni-sofia.bg

Other Decks in Programming

Transcript

  1. Две целеви групи: 1. По-напреднали и по-“лакоми” за информация 2.

    Студенти с минимални познания, опит и понякога – демотивирани
  2. Записване с молба Става, но трябва да ни пишете, ако

    ви няма в СУСИ – три имена и факултетен номер [email protected]
  3. Задачите • десет броя • предават се онлайн • проверяват

    се автоматично • обикновено 0-6 точки
  4. Задачите • десет броя • предават се онлайн • проверяват

    се автоматично • обикновено 0-6 точки • могат да дават допълнителни точки
  5. Задачите • десет броя • предават се онлайн • проверяват

    се автоматично • обикновено 0-6 точки • могат да дават допълнителни точки • има и наказателни точки
  6. Задачите • десет броя • предават се онлайн • проверяват

    се автоматично • обикновено 0-6 точки • могат да дават допълнителни точки • има и наказателни точки • имате право да пропуснете три
  7. Задачите • десет броя • предават се онлайн • проверяват

    се автоматично • обикновено 0-6 точки • могат да дават допълнителни точки • има и наказателни точки • имате право да пропуснете три • чуждите решения са публични
  8. Тестове • два броя • 30 въпроса за един час

    • 30 точки на тест • много гнусни, но не са критични за оценката
  9. Проекти • на края на семестъра • вие измисляте или

    ние избираме • 60 точки • 1/3 функционалност, 1/3 стил, 1/3 тестове
  10. Проекти • на края на семестъра • вие измисляте или

    ние избираме • 60 точки • 1/3 функционалност, 1/3 стил, 1/3 тестове • да работят е задължително, но не достатъчно
  11. Бонуси • Предизвикателства • Участие в час • Участие във

    форумите (помощ на другарчето) • Бонус точки за елегантни решения
  12. Бонуси • Предизвикателства • Участие в час • Участие във

    форумите (помощ на другарчето) • Бонус точки за елегантни решения • Принос в GitHub
  13. Бонуси • Предизвикателства • Участие в час • Участие във

    форумите (помощ на другарчето) • Бонус точки за елегантни решения • Принос в GitHub • Изнасяне на кратка презентация по време на курса
  14. Участие в час • даваме Snickers за добри въпроси, отговори

    или коментари • обикновено на тях има код, който ви носи 1 точка
  15. Участие в час • даваме Snickers за добри въпроси, отговори

    или коментари • обикновено на тях има код, който ви носи 1 точка • насърчават да не спите в час
  16. Участие в час • даваме Snickers за добри въпроси, отговори

    или коментари • обикновено на тях има код, който ви носи 1 точка • насърчават да не спите в час • ако прекалите с глупостите ще хванете захарна болест
  17. Предизвикателства • малка задачки относително често • малки: 4-10 реда

    код • често: 1-2 пъти в седмицата • ще имате около 24 часа за всяко
  18. Тежките ограничения максимум X реда код в метод максимум Х

    нива на влагане в метод максимум Х метода в клас
  19. Тежките ограничения максимум 7 реда код в метод максимум 2

    нива на влагане в метод максимум 10 метода в клас
  20. “Besides a mathematical inclination, an exceptionally good mastery of one's

    native tongue is the most vital asset of a competent programmer.” ! — Edsger Dijkstra* * изобретател на blog post-а
  21. “Programs must be written for people to read, and only

    incidentally for machines to execute.” ! — H. Abelson and G. Sussman
  22. web framework най-популярното нещо в Ruby няма да говорим за

    него (или поне най-много лекция-две)
  23. В този курс ще се учим как се дялкат камъни,

    а не как се строят катедрали.
  24. $ cat hello.rb puts "Hello world!" forty_two = 6 *

    9 puts "The answer is #{forty_two}" ! $ ruby hello.rb Hello world! The answer to is 54 интерпретира се
  25. # Output "I love Ruby"
 say = "I love Ruby"


    puts say
 
 # Output "I *LOVE* RUBY"
 say['love'] = "*love*"
 puts say.upcase
 
 # Output "I *love* Ruby"
 # five times
 5.times { puts say } из http://ruby-lang.org/
  26. (1..9).select { |x| x.odd? }.map { |x| x ** 2

    } (1..9).select(&:odd?).map { |x| x ** 2 }
  27. class Integer
 def factorial
 1.upto(self).inject { |a, b| a *

    b }
 end
 end
 
 puts 10.factorial
  28. Още днес • Регистрирайте се на сайта: http://fmi.ruby.bg/ • Качете

    си профилна снимка • Попълнете анкетата
  29. Още днес • Регистрирайте се на сайта: http://fmi.ruby.bg/ • Качете

    си профилна снимка • Попълнете анкетата • Инсталирайте си Ruby 2.1.3