Історія програмування

Концепції комп'ютерних наук

Pritesh Patel

Computer Scientist & Data Scientist for over 20 years

Вступ до мов програмування

Анімація, що показує компіляцію циклу for у двійковий код

  • Мета: Передавати комп'ютеру інструкції.
  • Загалом
    • Мови високого рівня: легкі для читання й написання людиною.
    • Мови низького рівня: близькі до машинного коду; їх важче читати, але легше керувати деталями низького рівня.
  • Високий рівень

    • Логотип мови програмування Java
  • Низький рівень

    • Логотип мови програмування C
    • Логотип мови програмування Forth
Концепції комп'ютерних наук

Функційне, процедурне та низькорівневе програмування

  • Функційне програмування
    • Математичні функції (чиста функція — напр.: прибрати на столі)
    • Незмінність (без побічних ефектів — напр.: без змін у картотеці)
  • Процедурне програмування
    • Послідовність команд (крокові інструкції — напр.: прибрати стіл, покласти файл у шафу)
    • Змінювані дані (побічні ефекти — напр.: нові файли в шафі чи підписати документ)
  • Низькорівневе програмування
    • Доступ до внутрішньої роботи (керування «залізом» — напр.: змінити термостат в офісі)
    • Змінність (побічні ефекти — напр.: термостат, розкладка в картотеці)
  • Приклади
    • Функційні: (Lisp, Scheme)
    • Процедурні: (Python, Java)
    • Низькорівневі: (C, Assembly)
Концепції комп'ютерних наук

Еволюція мов програмування

Анімація, що показує етапи програмування в часі

Приклади:

  • LLM (Large Language Models):GPT-4, Claude-3, Google Gemini
  • Мови високого рівня:Python, Java, Cobol, Javascript
  • Мови асемблера:x86, ARM
  • Машинна мова:binary
  • Апаратне забезпечення: Програмування не виконується; це ядро, що робить обчислення
Концепції комп'ютерних наук

Зверніться до парадигм програмування

Знімок екрана з іншим курсом для глибшого занурення в програмування

Концепції комп'ютерних наук

Давайте потренуємось!

Концепції комп'ютерних наук

Preparing Video For Download...