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

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

Presentation about hackers, recession of programmers' evolution, and about my research for the bachelor students of CS program @ Ukrainian Catholic University

9847702de1f7f19db8c3e158325baa8e?s=128

Yuriy Tymchuk

October 27, 2016
Tweet

Transcript

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

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

    Assistant SCG, University of Bern yuriy_tymchuk Mark II
  3. None
  4. Хто я?

  5. Хто я?

  6. Хто я? Тепер. 25 років

  7. Хто я? Тепер. 25 років 2006. 15 років

  8. Хто я? Тепер. 25 років 2006. 15 років Львівський фізико-

    математичний ліцей
  9. Хто я? Тепер. 25 років 2006. 15 років Львівський фізико-

    математичний ліцей Мала академія наук України
  10. Хто я? Тепер. 25 років 2006. 15 років Львівський фізико-

    математичний ліцей Мала академія наук України Бакалаврат Факультет інформатики. ЛНУ
  11. Хто я? Тепер. 25 років 2006. 15 років Тех-підтримка /

    адмін. мережі УАРНЕТ Львівський фізико- математичний ліцей Мала академія наук України Бакалаврат Факультет інформатики. ЛНУ
  12. Хто я? Тепер. 25 років 2006. 15 років Unikernel Фріланс

    команда Тех-підтримка / адмін. мережі УАРНЕТ Львівський фізико- математичний ліцей Мала академія наук України Бакалаврат Факультет інформатики. ЛНУ
  13. Хто я? Тепер. 25 років 2006. 15 років Unikernel Фріланс

    команда Тех-підтримка / адмін. мережі УАРНЕТ Львівський фізико- математичний ліцей Мала академія наук України Бакалаврат Факультет інформатики. ЛНУ Магістратура Кафедра програмування. ЛНУ
  14. Хто я? Тепер. 25 років 2006. 15 років Unikernel Фріланс

    команда Тех-підтримка / адмін. мережі УАРНЕТ Програміст Інтерлогіка Львівський фізико- математичний ліцей Мала академія наук України Бакалаврат Факультет інформатики. ЛНУ Магістратура Кафедра програмування. ЛНУ
  15. Хто я? Тепер. 25 років 2006. 15 років Unikernel Фріланс

    команда Тех-підтримка / адмін. мережі УАРНЕТ Програміст Інтерлогіка Львівський фізико- математичний ліцей Мала академія наук України Бакалаврат Факультет інформатики. ЛНУ Стажування RMoD Магістратура Кафедра програмування. ЛНУ
  16. Хто я? Тепер. 25 років 2006. 15 років Unikernel Фріланс

    команда Тех-підтримка / адмін. мережі УАРНЕТ Програміст Інтерлогіка Львівський фізико- математичний ліцей Програміст Innocode Мала академія наук України Бакалаврат Факультет інформатики. ЛНУ Стажування RMoD Магістратура Кафедра програмування. ЛНУ
  17. Хто я? Тепер. 25 років 2006. 15 років Unikernel Фріланс

    команда Тех-підтримка / адмін. мережі УАРНЕТ Програміст Інтерлогіка Львівський фізико- математичний ліцей Програміст Innocode Мала академія наук України Бакалаврат Факультет інформатики. ЛНУ Ph.D. USI Стажування RMoD Магістратура Кафедра програмування. ЛНУ
  18. Хто я? Тепер. 25 років 2006. 15 років Ph.D. UniBe

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

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

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

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

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

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

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

    knowledge inside them about how to do things and have memory i n s i d e t h e m s o t h e y c a n 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
  28. „Пральний“ об’єкт

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

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

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

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

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

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

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

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

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

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

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

  40. None
  41. REVEAL (Reverse Engineering, Visualization, Evolution Analysis Lab)

  42. CodeCity

  43. SCG Software Composition Group

  44. Traits

  45. Traits Smalltalk Perl Scala C# PHP

  46. None
  47. None
  48. Pascal C++ C++ Java C# PHP JavaScript Prolog Lisp Erlang

    Ruby Smalltalk Java Scala Ruby Pharo Pharo Python Racket Swift Objective-C C Bash Ph.D. UniBe Unikernel Фріланс команда Тех-підтримка / адмін. мережі УАРНЕТ Програміст Інтерлогіка Львівський фізико- математичний ліцей Програміст Innocode Мала академія наук України Бакалаврат Факультет інформатики. ЛНУ Ph.D. USI Стажування RMoD Магістратура Кафедра програмування. ЛНУ Java? LaTeX?
  49. Хто я?

  50. None
  51. Дія 1: Філософія Хакерів

  52. Філософія хакерів Ха ́ кер (англ. Hacker) — особа, що

    намагається отримати несанкціонований доступ до комп'ютерних систем, як правило з метою отримання секретної інформації.
  53. Філософія хакерів Hacker — originally, someone who makes furniture with

    an axe. Хакер — оригінально, людина, яка робить меблі сокирою
  54. Доступ до знань про світ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  78. None
  79. If that guy knew half the shit that I know,

    his fuzzy little head would explode.
  80. Інша сторона хакерства

  81. Samy Kamkar

  82. Samy Kamkar

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

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

    20 годин - 1 000 000 друзів
  85. None
  86. Дія 2:Еволюція програмістів

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

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

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

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

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

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

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

  94. A як же лінукс?

  95. Метафора із стоматологами

  96. Метафора із стоматологами

  97. Метафора із стоматологами

  98. Метафора із стоматологами

  99. Метафора із стоматологами

  100. Метафора із стоматологами

  101. Метафора із стоматологами

  102. None
  103. None
  104. None
  105. None
  106. None
  107. None
  108. None
  109. None
  110. None
  111. Xerox Alto

  112. None
  113. None
  114. None
  115. Дія 3:

  116. Програміст

  117. Програміст

  118. Програміст

  119. Програміст

  120. Піднімаємо пітонічність countriesWithA = []
 i=0
 while i < len(countryList):

    if "a" in countryList[i]: countriesWithA.append(countryList[i]) i += 1
  121. Піднімаємо пітонічність countriesWithA = []
 i=0
 while i < len(countryList):

    if "a" in countryList[i]: countriesWithA.append(countryList[i]) i += 1
  122. Піднімаємо пітонічність countriesWithA = [] for country in countryList: if

    "a" in country: countriesWithA.append(country) countriesWithA = []
 i=0
 while i < len(countryList): if "a" in countryList[i]: countriesWithA.append(countryList[i]) i += 1
  123. Якість коду

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

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

    of modern code review. In Proceedings of ICSE’13, pp. 712–721, IEEE, 2013
  126. Find Bugs

  127. 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
  128. 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
  129. None
  130. ViDI є …

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

  132. QualityAssistant

  133. Very disturbing Disturbing Sometimes Disturbing Not influential Sometimes Useful Useful

    Very useful How do you Snd QualityAssistant?
  134. Very disturbing Disturbing Sometimes Disturbing Not influential Sometimes Useful Useful

    Very useful How do you Snd QualityAssistant?
  135. Very disturbing Disturbing Sometimes Disturbing Not influential Sometimes Useful Useful

    Very useful 46% 29% 17% 4% 4% How do you Snd QualityAssistant?
  136. Але CriticBrowser вже існує пів дюжини років!

  137. Як часно ви користуєтеся CriticBrowser?

  138. Не знаю такого Ніколи Щороку Щомісяця Щотижня Щодня 24% 24%

    22% 11% 11% 9% Як часно ви користуєтеся CriticBrowser?
  139. Аналіз еволюцїї Фаро

  140. 680 Versions Аналіз еволюцїї Фаро

  141. 40K 30K 20K 10K 680 Versions 0 Аналіз еволюцїї Фаро

  142. 40K 30K 20K 10K 680 Versions Critiques 0 Аналіз еволюцїї

    Фаро Number of Critiques Σ=19.5M
  143. 680 Versions Аналіз еволюцїї Фаро Number of Critiques Σ=19.5M Δ=64.5K

  144. Number of Critiques Σ=19.5M Δ=64.5K Погана еволюція

  145. Number of Critiques Σ=19.5M Δ=64.5K Добра еволюція

  146. Number of Critiques Σ=19.5M Δ=64.5K

  147. Packages Versions Rules

  148. None
  149. None
  150. 46% 29% 17% 4% 4%

  151. None