5. Задачі
• Система для торгівлі на біржі
• Сайт для "Планети кіно”
• CRM система для Київстару
• Новий Facebook
• Програма для автоматизації обрахунків у космічній обсерваторії
• Двигун для 3D гри
• Компілятор
• Музичний додаток для iPhone
• Текстовий редактор для Windows
7. Комп’ютерні науки
• Теорія обчислень
• Алгоритми та структури даних
• Методології та мови програмування
• Елементи та архітектура комп’ютерів
8. Мова програмування
• Штучна мова для передачі інструкцій машині, зокрема
комп’ютеру
• Синтаксис (форма), семантика (значення)
• Поділ за:
• Парадигмами
• Сферами застосування
• Історія
9. Парадигми програмування
• Фундаментальні стилі програмування
• 4 основних парадигми:
• Імперативна
• C, C++, Java, PHP, Python
• Декларативна
• SQL, RegExp, CSS
• Функціональна
• Erlang, Haskell, Lisp, Clojure, Scala
• Об’єктно-орієнтована
• C++, C#, Java, PHP, Python, Ruby
• Мультипарадигмові мови
10. Історія
• 1940-і: перші електричні комп’ютери
• ENIAC, Electric Numerical Integrator And Computer
• 1950-і та 1960-і: перші сучасні мови
• FORTRAN, FORmula TRANslator
• LISP, LISt Processor
• COBOL, COmmon Business Oriented Language
• ALGOL, ALGOrithmic Language
• 1968-1979: формування основних парадигм
• Simula, Smalltalk – початок ООП
• С – системне програмування
• Prolog – початок логічного програмування
• ML – перша статично-типізована ф-на мова (поліморфізм)
11. Історія (продовження)
• 1980-і: консолідація, модулі, продуктивність
• C++, Ada, Common Lisp, Eiffel, Objective-C, Erlang, Perl
• 1990-і: ера Інтернету
• Поширення функціональних мов, поява ОО Rapid App
Development мов, скриптові мови
• Haskell, Python, Visual Basic, HTML, Ruby, Lua, Java, Object
Pascal, JavaScript, PHP
• Сучасні тенденції
• Functional programming; concurrent and distributed
programming; mixins, delegates, aspects; component-oriented
software development; distribution and mobility; open source;
massively parallel languages
• ActionScript, C#, Groovy, Scala, Clojure, Go
13. Розвиток Java
• Грудень 1990: Patrick Naughton, Stealth Project,
альтернатива С/С++
• Green Project: James Gosling, Mike Sheridan
• Нова технологія для програмування розумних приладів
нового покоління
• Літо 1992: Oak
• PDA with Duke
• Телеіндустрія
• Літо 1994: WWW
• Бровзери – інтерактивний медіум
• Java
15. Enterprise vs Consumer Web
1. Scale (Users vs Applications)
2. Experience (Simplicity vs Functionality)
3. Security (One for One vs One to Many)
4. Transaction (Decoupled vs Complete)
5. Integration (Loose vs Strict)
6. Search (Page vs Data)
16. Задачі 2
• Система для торгівлі на біржі
• Scala, Java, and C#
• Сайт для "Планети кіно”
• PHP, Ruby, Python, JavaScript, Java (Android), and Objective-C
• CRM система для Київстару
• Java, C#
• Новий Facebook
• PHP, Ruby, Python, JavaScript
17. Задачі 2
• Програма для автоматизації обрахунків у космічній обсерваторії
• Scala, C++, Erlang
• Двигун для 3D гри
• C/C++
• Компілятор
• C/C++
• Музичний додаток для iPhone
• Objective-C
• Текстовий редактор для Windows
• C#