Дискретная математика – это необходимый базис для карьеры прикладного математика и программиста, и в то же время один из предметов, вызывающих у студентов наибольшие трудности. Это учебное пособие познакомит вас с главными понятиями и методами дискретной математики, а также даст основы программирования в математической компьютерной среде Mathematica. В доступной форме изложен теоретический материал разделов: комбинаторика и перечислительная комбинаторика; структуры данных – двоичные кучи и двоичные деревья поиска – и основные алгоритмы на них; алгоритмы сортировки и сравнение их трудоемкости; сравнения по модулю, операции в кольцах вычетов и современные методы шифрования; графы и деревья. Приведены решения задач, иллюстрирующих вводимые понятия, а также даны задачи и упражнения для самостоятельной работы. На двенадцати «уроках программирования» приведены реальные программные коды, реализующие все введенные ранее алгоритмы. Кроме того, на этих уроках показано, каким образом Mathematica поможет при решении различных задач дискретной математики. Книга будет полезна студентам и преподавателям вузов, а также всем, кто желает научиться программировать, используя Wolfram Mathematica. Рекомендовано в качестве учебного пособия для студентов направлений подготовки 01.03.02 «Прикладная математика и информатика», 01.03.04 «Прикладная математика», а также для студентов других направлений, изучающих дисциплину «Дискретная математика».