Министерство образования и науки РФ
ГБПОУ РМЭ "Йошкар-Олинский Технологический колледж
Курс лекций по предмету
"Основы алгоримизации и программирования"
для группы И-21
Разработал:
Колесников Евгений Иванович
г.Йошкар-Ола, 2021-2025 гг
# Основы алгоримизации и программирования
## Тема 1. Основные принципы алгоритмизации и программирования
### Теория
1. [Основные понятия алгоритмизации. Понятие алгоритма. Свойства алгоритма. Формы записи алгоритмов. Общие принципы построения алгоритмов. Определение сложности работы алгоритмов.](./articles/t1l1.md)
1. [Основные алгоритмические конструкции: линейные, разветвляющиеся, циклические. Программы для графического отображения алгоритмов](./articles/t1l2.md)
1. [Логические основы алгоритмизации. Основы алгебры логики. Логические операции с высказываниями: конъюнкция, дизъюнкция, инверсия. Законы логических операций. Таблицы истинности.](./articles/t1l3.md)
### Лабораторные работы
1. [Разработка алгоритмов для конкретных задач. Определение сложности работы алгоритмов.](./articles/t1lab1.md)
2. Использование программ для графического отображения алгоритмов.
3. Таблицы истинности
### Контрольные вопросы
1. [Этапы решения задачи на компьютере? Охарактеризуйте их. Проиллюстрируйте этапы постановки и формализации на примере задачи: вычислить время движения моторной лодки между двумя пунктами.](./articles/t1l1.md#основные-понятия-алгоритмизации)
1. [Понятие алгоритма.](./articles/t1l1.md#понятие-алгоритма)
1. [Основные типы данных.](./articles/t1l1.md#основные-типы-данных)
1. [Свойства алгоритма.](./articles/t1l1.md#свойства-алгоритма)
1. [Формы записи алгоритмов.](./articles/t1l1.md#формы-записи-алгоритмов)
1. [Что такое структурное программирование? Каковы основные прнципы структурной методики построения алгоритмов? ](./articles/t1l1.md#структурное-программирование)
1. [Линейный алгоритм](./articles/t1l2.md#линейный-алгоритм)
1. [Разветвляющийся алгоритм](./articles/t1l2.md#разветвляющийся-алгоритм)
1. [Циклический алгоритм](./articles/t1l2.md#циклический-алгоритм)
1. [Вспомогательные алгоритмы и процедуры](./articles/t1l2.md#вспомогательные-алгоритмы-и-процедуры)
1. [Основные формы мышления.](./articles/t1l3.md#основные-формы-мышления)
1. [Что такое логическое высказывание?](./articles/t1l3.md#логическое-высказывание)
1. [Способы описания логических функций.](./articles/t1l3.md#способы-описания-логических-функций)
1. [Основные логические операции.](./articles/t1l3.md#логические-операции)
1. [Приоритет логических операций](./articles/t1l3.md#приоритет-логических-операций)
1. [Законы логических операций](./articles/t1l3.md#законы-логических-операций)
1. [Проверка законов построением таблиц истинности](./articles/t1l3.md#решение-логических-выражений)
1. [Классификация языков программирования](./articles/t2l1.md#классификация-языков-программирования)
1. [компиляция и интерпретация, основные отличия](./articles/t2l1.md#методы-трансляции)
1. [Методы программирования](./articles/t2l2.md#методы-программирования)
1. [Общие принципы разработки программного обеспечения](./articles/t2l2.md#общие-принципы-разработки-программного-обеспечения)
1. [Жизненный цикл программного обеспечения](./articles/t2l2.md#жизненный-цикл-программного-обеспечения)
1. [Типы приложений](./articles/t2l2.md#типы-приложений)
## Тема 2. Языки и методы программирования
1. [Языки программирования. Эволюция языков программирования. Классификация языков программирования. Понятие системы программирования. Исходный, объектный и загрузочный модули. Интегрированная среда программирования.](./articles/t2l1.md)
2. [Методы программирования: структурный, модульный, объектно-ориентированный. Достоинства и недостатки методов программирования. Общие принципы разработки программного обеспечения. Жизненный цикл программного обеспечения.](./articles/t2l2.md)
## Тема 3. Системы контроля версий
1. [Системы контроля версий.](./articles/skv.md)
### Лабораторные работы
1. [Создание аккаунта и репозитория в СКВ gihtub. Создание консольного приложения и инициализация нового репозитория в проекте.](./articles/skv_lab.md)
## Тема 4. Программирование на языке C#. Основы.
1. [Основные элементы языка. Структурная схема программы на алгоритмическом языке. Лексика языка. Переменные и константы. Типы данных. Выражения и операции.](./articles/t3l1.md)
1. [Операторы и операции языка. Синтаксис операторов. Составной оператор. Вложенные условные операторы. Циклические конструкции.](./articles/t3l1_2.md)
1. [Массивы как структурированный тип данных. Объявление массива. Ввод и вывод одномерных и двумерных массивов. Обработка массивов. Стандартные функции для массива целых и вещественных чисел. Коллекции и последовательности.](./articles/t3l1_3.md)
1. [Строки. Объявление строковых типов данных. Поиск, удаление, замена и добавление символов в строке. Операции со строками. Стандартные функции и процедуры работы со строками.](./articles/4_prog_string.md)
1. [Объявление множества. Работа с датами. Кортежи.](./articles/cs_misc_types.md)
### Лабораторные работы
1. [Знакомство со средой программирования и структурой проекта. Создание репозитория с ветками. Составление программ линейной структуры.](./articles/lab1.md)
1. [Отладка приложения](./articles/lab_debug.md)
1. [Составление программ разветвляющейся структуры.](./articles/lab2.md)
1. [Составление программ циклической структуры. Обработка одномерных и двумерных массивов.](./articles/lab3.md)
1. [Работа со строковыми переменными.](./articles/lab4_4.md)
1. [Работа с данными типа: множество, дата, кортежи.](./articles/lab4_5.md)
## Тема 5. Продвинутый C#: функции, лямбды, исключения, работа с файлами, многопоточность, регулярные выражения.
1. [Общие сведения о подпрограммах. Определение и вызов подпрограмм. Область видимости и время жизни переменной. Механизм передачи параметров. Лямбда-функции.](./articles/t5_function.md)
1. [Делегаты, события и лямбды](./articles/t5_delegate.md)
1. [Исключения. Null.](./articles/t5_exception.md)
1. [Многопоточность. Потоки, асинхронные вычисления](./articles/t5_thread_async.md)
1. [Работа с файловой системой и файлами.](./articles/t5_files.md)
1. [Типы файлов: CSV, XML, JSON.](./articles/t5_file_types.md)
1. [Регулярные выражения](./articles/t5_regex.md)
### Лабораторные работы
1. [Организация и использование функций.](./articles/lab5_function.md)
1. [Исключения. NULL.](./articles/lab5_try_null.md)
1. [Асинхронные вычисления.](./articles/lab5_async.md)
1. [Работа с файлами](./articles/lab5_files.md)
1. [Типы файлов, сериализация.](./articles/lab5_file_types.md)
1. [Регулярные выражения.](./articles/lab5_regex.md)
## Тема 6. Основные принципы объектно-ориентированного программирования
1. [История развития ООП. Базовые понятия: объект, его свойства и методы, класс, интерфейс. Основные принципы ООП: инкапсуляция, наследование, полиморфизм.](./articles/t6_oop1.md)
1. [Ещё раз про классы. Интерфейсы.](./articles/t6_oop_habr.md)
1. [LINQ](./articles/t6_linq.md)
1. [Шаблоны проектирования.](./articles/t6_templates.md)
### Лабораторные работы
1. [ООП. Основы.](./articles/lab8-oop1.md)
1. [ООП. Основы (CSV)](./articles/lab8-oop2.md)
1. [ООП. Основы (JSON)](./articles/lab8-oop-json.md)
1. [ООП. Наследование.](./articles/lab8-oop3.md)
1. [ООП. Интерфейсы.](./articles/lab8-oop4.md)
## Тема 7. Библиотеки классов.
1. [Библиотеки классов. Создание. Подключение. Динамическая загрузка сборок и позднее связывание.](./articles/t7_dll.md)
### Лабораторные работы
1. [Создание библиотеки классов](./articles/lab_class_lib.md)
## Тема 8. Оконные приложения.
1. [Обзор типов оконных приложений в C#. Знакомство со структурой проекта WPF/Avalonia. Компоновка. Image. Ресурсы.](./articles/t8_win_app.md)
1. [Ресурсы](./articles/wpf_resource.md)
1. [Привязка (Binding). Интерфейс INotifyPropertyChanged. Форматирование значений привязки и конвертеры значений.](./articles/t8_binding.md)
1. [Элементы управления. Обзор.](./articles/t8_elements.md)
1. [Каркас приложения. Модель данных. Привязка данных. Табличный вывод.](./articles/wpf_template.md)
1. [Фильтрация данных](./articles/wpf_filtering.md)
1. [Поиск, сортировка](./articles/wpf_search_sort.md)
1. [Вывод данных согласно макета (ListBox, Image)](./articles/wpf_listbox.md)
1. [Стили, триггеры и темы](./articles/wpf_style.md)
1. [Создание окон. Модальные окна](./articles/wpf_window.md)
1. Создание WPF-приложений по индивидуальным заданиям (подготовка к экзамену)
### Лабораторные работы
1. [Создание WPF-приложения, знакомство с вариантами компоновки.](./articles/lab_wpf_base.md)
1. [Исследование визуальных компонентов WPF.](./articles/lab_wpf_elements.md)
1. [Каркас приложения. Модель данных. Привязка данных.](./articles/lab_wpf_binding.md)
1. [Получение данных из внешних источников. CSV.](./articles/lab_wpf_data_csv.md)
1. [Получение данных из внешних источников. JSON.](./articles/lab_wpf_data_json.md)
1. [Фильтрация списка](./articles/lab_wpf_filter.md)
1. [Поиск/сортировка](./articles/lab_wpf_search_sort.md)
1. Создание WPF-приложений по индивидуальным заданиям (подготовка к экзамену)
## [ЭКЗАМЕН](./articles/exam.md)