Про що не говорять програмісти, про що мовчать науковці (ucu2015)

Про що не говорять програмісти, про що мовчать науковці (ucu2015)

Presentation about hackers, software ethics, recession of programmers' evolution for 1st semester students of CS program @ Ukrainian Catholic University

9847702de1f7f19db8c3e158325baa8e?s=128

Yuriy Tymchuk

December 16, 2015
Tweet

Transcript

  1. Про що не говорять програмісти, про що мовчать науковці Юрко

    Тимчук REVEAL, University of Lugano SCG, University of Bern
  2. Про що не говорять програмісти, про що мовчать науковці REVEAL,

    University of Lugano SCG, University of Bern yuriy_tymchuk
  3. None
  4. Хто я?

  5. Хто я? Тепер. 24 роки 2006. 15 років Ph.D. UniBe

    Unikernel Фріланс команда Тех-підтримка / адмін. мережі УАРНЕТ Програміст Інтерлогіка Львівський фізико- математичний ліцей Програміст Innocode Мала академія наук України Бакалаврат Факультет інформатики. ЛНУ Ph.D. USI Стажування RMoD Магістратура Кафедра програмування. ЛНУ
  6. None
  7. Швидкий вступ у напрямки комп’ютерних наук

  8. Обчислювальні науки

  9. Інформаційні системи

  10. Комп’ютерна графіка

  11. Інтелектуальні системи

  12. None
  13. Швидкий вступ в об’єктно-орієнтоване програмування

  14. Objects are like people. They’re living, breathing things that have

    knowledge inside them about how to do things and have memory inside them so they can remember things. And rather than interacting with them at a very low level, you interact with them at a very high level of abstraction, like we’re doing right here. Steve Jobs 1995
  15. „Пральний“ об’єкт

  16. „Пральний“ об’єкт

  17. „Пральний“ об’єкт попериБудьЛаска:

  18. „Пральний“ об’єкт

  19. „Пральний“ об’єкт

  20. „Пральний“ об’єкт

  21. „Пральний“ об’єкт

  22. „Пральний“ об’єкт

  23. „Пральний“ об’єкт

  24. „Пральний“ об’єкт

  25. „Пральний“ об’єкт осьТвійПопранийОдяг:

  26. „Пральний“ об’єкт ?

  27. „Пральний“ об’єкт попериБудьЛаска:

  28. None
  29. REVEAL (Reverse Engineering, Visualization, Evolution Analysis Lab)

  30. CodeCity

  31. None
  32. None
  33. None
  34. None
  35. None
  36. None
  37. None
  38. SCG Software Composition Group

  39. Traits

  40. Traits Smalltalk Perl Scala C# PHP

  41. None
  42. None
  43. Ph.D. UniBe Unikernel Фріланс команда Тех-підтримка / адмін. мережі УАРНЕТ

    Програміст Інтерлогіка Львівський фізико- математичний ліцей Програміст Innocode Мала академія наук України Бакалаврат Факультет інформатики. ЛНУ Ph.D. USI Стажування RMoD Магістратура Кафедра програмування. ЛНУ Pascal C++ C++ Java C# PHP JavaScript Prolog Lisp Erlang Ruby Smalltalk Java Scala Ruby Pharo Pharo Python Racket Swift Objective-C C Bash
  44. Філософія хакерів Ха ́кер (англ. Hacker) — особа, що намагається

    отримати несанкціонований доступ до комп'ютерних систем, як правило з метою отримання секретної інформації.
  45. Філософія хакерів

  46. Доступ до знань про світ

  47. Вільна інформація

  48. Визнання навичок

  49. Мистетство програм

  50. Покращення життя

  51. Програмне забезпечення з відкритим кодом

  52. Програмне забезпечення з відкритим кодом

  53. Про катедру і базар

  54. Як стати хакером?

  55. C/С++ Python Lisp Java Perl Рекомендації Еріка Реймонда

  56. C Lisp Pharo Python/Ruby Java Мої рекомендації

  57. C Lisp Pharo Python/Ruby Java низько-рівнева функіональна об’єктна скриптова “супер-популярна”

    Мої рекомендації
  58. На скільки пітонічний ваш код? countriesWithA = []
 i=0
 while

    i < len(countryList): if "a" in countryList[i]: countriesWithA.append(countryList[i]) i += 1
  59. На скільки пітонічний ваш код? countriesWithA = [] for i

    in range(len(countryList)): if "a" in countryList[i]: countriesWithA.append(countryList[i])
  60. На скільки пітонічний ваш код? countriesWithA = [] for country

    in countryList: if "a" in coutry: countriesWithA.append(country)
  61. На скільки пітонічний ваш код? countriesWithA = [country for country

    in countryList if "a" in country]
  62. Потоваришуйте з Лінуксом

  63. Потрібне відео?

  64. Потрібне відео?

  65. Потрібне відео?

  66. Потрібне відео?

  67. Потрібне відео?

  68. Потрібне відео?

  69. використовуйте покращуйте робіть внесок у

  70. Інша сторона хакерства

  71. Samy Kamkar

  72. Samy Kamkar

  73. Samy Kamkar “but most of all, samy is my hero”

  74. Samy Kamkar “but most of all, samy is my hero”

    20 годин - 1 000 000 друзів
  75. Aaron Swartz

  76. Aaron Swartz

  77. None
  78. Ще трохи про етику

  79. Ви зміните світ… пам’ятайте про це

  80. Хто має доступ до пошти?

  81. Хто має доступ до пошти?

  82. Хто має доступ до пошти?

  83. Хто має доступ до пошти?

  84. Хто має доступ до пошти?

  85. Хто має доступ до пошти?

  86. Хто має доступ до пошти?

  87. Хто має доступ до пошти?

  88. Хто має доступ до пошти?

  89. Хто має доступ до пошти?

  90. Хто має доступ до пошти?

  91. Хто має доступ до пошти?

  92. Хто має доступ до пошти?

  93. Хто має доступ до пошти?

  94. Хто має доступ до пошти?

  95. Хто має доступ до пошти?

  96. Чи потрібна вам безпека? From: To: Subject: року виповнюєтьÑÑроків з

    Ð´Ð½Ñ Ð·Ð°ÑнувР°Ð½Ð½Ñ ЛьвівÑького національного універÑитету імені Івана Франка. ІÑÑ‚Ð¾Ñ€Ñ–Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð›ÑŒÐ²Ñ–Ð²Ñького уні верÑитету ÑÑгає витоками Ð¥VІІ ÑÑ‚. У Ð¥VІ – Ð¥VІІ ÑÑ‚. центрами культурного Ð¶Ð¸Ñ‚Ñ‚Ñ Ð½Ð° українÑьких землÑÑ… були Ñ†ÐµÑ €ÐºÐ¾Ð²Ð½Ñ– братÑтва. Mr. Smith Ms. Smith cancer
  97. Що робити зі старим кодом?

  98. Чірлідери для програмістів?

  99. Technical Debt очима замовника очима програміста

  100. Еволюція програмістів

  101. Еволюція людства та програмістів

  102. Еволюція людства та програмістів

  103. Еволюція людства та програмістів

  104. Еволюція людства та програмістів

  105. Еволюція людства та програмістів

  106. Еволюція людства та програмістів

  107. Еволюція людства та програмістів

  108. Xerox Alto

  109. Чиста об’єктна мова Прекрасна спільнота Повний доступ Елегантна Жива 100%

    MIT ліцензія Mac, Linuxes, Windows, iOS http://pharo.org
  110. exampleWithNumber: x <syntaxOn: #aSlide> "This is a complete* syntax of

    Pharo language" | y | true & false not & (nil isNil) ifFalse: [ self halt ]. y := self size + super size. { 1 . 2 . #($a #a 'a' 1.0 1) } do: [ :each | Transcript show: each class name; show: each printString; show: ' ' ]. ^ x < y
  111. None
  112. None
  113. None
  114. None
  115. None
  116. None
  117. None
  118. None
  119. None
  120. None
  121. None
  122. None
  123. None
  124. None
  125. None
  126. None
  127. None
  128. None
  129. middleOf: a and: b | sum | sum := a

    + b. ^ sum / 2 Синтаксичні дерева
  130. #middleOf:and: middleOf: a and: b | sum | sum :=

    a + b. ^ sum / 2 Синтаксичні дерева
  131. #middleOf:and: b a middleOf: a and: b | sum |

    sum := a + b. ^ sum / 2 Синтаксичні дерева
  132. #middleOf:and: b a sum middleOf: a and: b | sum

    | sum := a + b. ^ sum / 2 Синтаксичні дерева
  133. #middleOf:and: b a sum ^st st middleOf: a and: b

    | sum | sum := a + b. ^ sum / 2 Синтаксичні дерева
  134. #middleOf:and: b a sum ^st st := middleOf: a and:

    b | sum | sum := a + b. ^ sum / 2 Синтаксичні дерева
  135. #middleOf:and: b a sum ^st st := sum + middleOf:

    a and: b | sum | sum := a + b. ^ sum / 2 Синтаксичні дерева
  136. #middleOf:and: b a sum ^st st := sum + a

    b middleOf: a and: b | sum | sum := a + b. ^ sum / 2 Синтаксичні дерева
  137. #middleOf:and: b a sum ^st st := sum + a

    b / middleOf: a and: b | sum | sum := a + b. ^ sum / 2 Синтаксичні дерева
  138. #middleOf:and: b a sum ^st st := sum + a

    b / sum 2 middleOf: a and: b | sum | sum := a + b. ^ sum / 2 Синтаксичні дерева
  139. None
  140. Платформа для аналізу даних http://moosetechnology.org

  141. Платформа для аналізу даних http://moosetechnology.org

  142. Платформа для аналізу даних http://moosetechnology.org

  143. Платформа для аналізу даних http://moosetechnology.org

  144. None
  145. None
  146. None
  147. None
  148. None
  149. None
  150. None
  151. Smalldromeda

  152. Smalldromeda

  153. Core Pharo dev (RMoD) Smalldromeda

  154. MOOSE Smalldromeda

  155. Seaside Smalldromeda

  156. Духи минулого різдва (Pharo10) Smalldromeda

  157. Smalldromeda

  158. Сузір’я Бернарта

  159. http://yuriy.tymch.uk/Smalldromeda/

  160. Якість коду

  161. Якість коду Наскільки легко зрозуміти змінити перевірити програмне забезпечення ISO/IEC,

    ISO/IEC 9126. Software Engineering – Product quality 6.5. ISO/IEC, 2001 (maintainability)
  162. Code Review A. Bacchelli, C. Bird. Expectations, outcomes, and challenges

    of modern code review. In Proceedings of ICSE’13, pp. 712–721, IEEE, 2013
  163. Статичний аналізатор

  164. Статичний аналізатор

  165. Правила якості Статичний аналізатор

  166. Вихідний код Правила якості Статичний аналізатор

  167. Правила якості Статичний аналізатор

  168. Критики Правила якості Статичний аналізатор

  169. Find Bugs

  170. Visual Design Inspection Y. Tymchuk, A. Mocci, and M. Lanza.

    Code Review: Veni, ViDI, Vici. In Proceedings of SANER’15, pp. 151-160, IEEE, 2015
  171. Y. Tymchuk, A. Mocci, and M. Lanza. Code Review: Veni,

    ViDI, Vici. In Proceedings of SANER’15, pp. 151-160, IEEE, 2015 Y. Tymchuk, A. Mocci, and M. Lanza. Vidi: The Visual Design Inspector. In Proceedings of ICSE’15, to be published, IEEE, 2015 ViDI
  172. None
  173. None
  174. ViDI є …

  175. Відірваною від середовища розробки

  176. QualityAssistant

  177. None
  178. None
  179. None
  180. None
  181. None
  182. yuriy_tymchuk