Курс «Операционные системы» посвящен основным концепциям, принципам, алгоритмам, структурам и моделям, положенных в основу современных операционных систем. Особое внимание уделяется изучению абстракций
операционных систем: процессы, потоки, виртуальная память, файл, ввод/вывод и т. д.


Функциональное программирование  —  это парадигма  программирования, в которой программы создаются путем последовательного применения функций, а не инструкций.  В процессе ФП мы создаем код, состоящий из множества модулей, поскольку функции в нем могут повторно использоваться в разных частях программы путем вызова, передачи в качестве параметров или возвращения.Функциональная парадигма поддерживается не во всех языках. Некоторые из них, например Haskell, спроектированы именно для этой задачи, в то время как другие, например JavaScript, реализуют возможности и ООП, и ФП. Есть же и такие языки, где функциональное программирование невозможно в принципе. 

  • Haskell: это наиболее популярный язык среди функциональных программистов. В нем реализована защита памяти, отличный сбор мусора, а также повышенная скорость, обусловленная ранней компиляцией машинного кода. Его богатая статическая система типов дает вам доступ к уникальным алгебраическим и полиморфным типам, которые делают процесс программирования более эффективным, а код более читаемым. 
  • В ходе обучения предполагается изучение специфических подходов в программировании с использованием рекурсивных функций

Цель курса

Изучить основные понятия и методы организации реляционных баз данных и манипулирования ими, а также базовые подходы к их проектированию. Изучить понятия реляционной модели баз данных, структурной, манипуляционной и целостной составляющих модели. Изучить основные аспекты теории баз данных, связанные с функциональными зависимостями.

Рассмотреть процесс проектирования реляционных баз данных на основе принципов нормализации, а также подходы к проектированию реляционных баз данных с использованием диаграммных семантических моделей данных.

Краткое описание учебной дисциплины

В первой, вводной теме обосновывается потребность в технологии баз данных и рассматриваются основные функции СУБД. Во 2й теме проводится общее введение в реляционную модель данных. Вводятся основные термины, рассматриваются структурная и целостная части модели. Темы 3-5 посвящены манипуляционной части реляционной модели данных. В теме 3 описываются классический вариант реляционной алгебры, восходящий к основоположнику реляционного подхода Эдгару Кодду, в теме 4 – современная версия алгебры Криса Дейта и Хью Дарвена. В теме 5 обсуждаются две разновидности реляционных исчислений – исчисления кортежей и доменов. В теме 6 приводятся основные определения, утверждения и теоремы теории реляционных баз данных, связанные с функциональными зависимостями. В теме 7 рассматриваются фундаментальные методы проектирования реляционных баз данных путем нормализации отношений на основе учета функциональных зависимостей. Тема 8 посвящена методам дальнейшей нормализации реляционных баз данных с принятием во внимание и многозначных зависимостей и зависимостей проекции/соединения. Материал тем 9-10 посвящен практическим методам проектирования реляционных баз данных с использованием семантических моделей данных.