больше 1 года назад
Курс:  Логическое программирование
38 подписчиков

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

Курс содержит достаточно подробное изложение теоретических основ логического подхода к программированию, а также служит практическим пособием по современным языкам логического программирования – Пролог и Mercury – которые могут использоваться и используются для разработки исследовательских и промышленных систем наряду с более традиционными императивными языками. Наличие систем программирования на этих языках для платформы Microsoft .NET позволяет эффективно применять полученные знания и навыки в промышленных разработках. В курсе также рассматривается использование логического программирования для создания интеллектуальных систем, излагаются основные понятия искусственного интеллекта, такие, как общение на естественном языке, представление знаний, методы эвристического поиска в пространстве состояний и т.д. 

Цель курса – познакомить слушателя с новой парадигмой программирования и соответствующей алгоритмической моделью, дать практические навыки программирования на языках Пролог (P#) и Mercury для платформы Microsoft .NET, познакомить с основными методами решения задач искусственного интеллекта.

После изучения первой части курса слушатель должен:

<li>иметь понятие об императивной, логической и функциональной парадигмах программирования, называть различные языки программирования в этих классах 

<li>понимать связь формальной математической теории логики предикатов первого порядка с программированием в терминах логики, иметь понятие об ограничениях логического программирования и алгоритмической неразрешимости ряда задач, об алгоритмах автоматического логического вывода на основе различных стратегий резолюции (SLD, SLDNF), о типизированном логическом программировании:

  • знать инструментальные средства логического программирования: языки Пролог и Mercury, и способы их совместного использования с другими программными средствами на платформе Microsoft .NET
  • владеть основными приемами использования языков Пролог и Mecrury для решения типовых задач (различные алгоритмы поиска в пространстве состояний, упрощение и преобразование выражений, анализ текста на естественном языке и т.д.).

Он должен уметь:

  • использовать языки логического программирования для реализации известных алгоритмов информатики, включая реализацию типовых структур данных, поиск в графах и т.д.
  • выделять характерные задачи для эффективного применения методов искусственного интеллекта и логического программирования в частности, предлагать способы их решения
  • реализовывать на языке логического программирования (Пролог) различные способы представления знаний и использования этих представлений
  • использовать подходы и языки логического программирования при построении программных систем, в том числе совместно с традиционными системами программирования.

Для успешного изучения курса желательно (но не обязательно) предварительное знакомство с некоторыми разделами дискретной математики (логика и исчисление высказываний и предикатов, теория решеток), а также с вычислительной платформой Microsoft .NET. Навыки программирования на императивных языках не обязательны, хотя местами в курсе проводятся сравнения логического подхода с более традиционным императивным программированием, которое в подавляющем большинстве учебных планов изучается на ранних этапах образовательного процесса.