Язык программирования Си | Кафедра математического моделирования и информатики
Учебно-методическое пособие
Бикулов Д.А., Иваницкая Н.В., Иванов А.П.
Аннотация
Учебно-методическое пособие охватывает все основные разделы учебной программы курса по программированию на языке Си, и подготовлено на основе курса, который много лет читается в первом семестре для студентов физического факультета МГУ. Каждая глава курса соответствует теме проводимого семинара и содержит пояснения к учебному материалу, разбираемому на данном семинаре, а также большое количество вариантов индивидуальных заданий, выполняемых студентами самостоятельно в практикуме.
Для контроля успеваемости в середине семестра проводится коллоквиум в форме индивидуального опроса всех без исключения студентов по уже прослушанным к этому моменту разделам курса, а в конце семестра проводится зачет.
Методические рекомендации по проведению коллоквиума и зачета, типовые вопросы для их проведения, и варианты практических заданий зачета даны в соответствующих разделах пособия.
В дальнейшем планируется разбить приводимое ниже издание на два отдельных: более развернутое описание синтаксиса языка Си включено в пособие, изданное в 2022 году:
Антонюк В.А., Задорожный С.С., Иванов А.П., Лукашёв А.А., Панов Н.А., Шленов С.А.
«Язык программирования Си. Учебно-методическое пособие (I семестр).»,
а приводимое нижнее предыдущее учебно-методическое пособие в 2023 году будет переработано в задачник компьютерного практикума по данному курсу.
Содержание
- Семинар 1. Средства программирования. Структура консольного приложения, этапы компиляции и сборки программы. Первая программа.
- Семинар 2. Основы синтаксиса языка Си. Базовые типы данных. Определение переменных и констант. Правила видимости. Условный оператор, циклы и операторы управления циклами.
- Семинар 3. Операторы в выражениях, приоритет операторов, преобразование типа. Директивы препроцессора и их использование. Массивы. Оператор sizeof(). Оператор typedef. Математические функции стандартной библиотеки Си.
- Семинар 4. Функции, передача параметров по значению. Модульный подход в программировании. Раздельная компиляция, глобальные и статические переменные. Правила видимости переменных. Рекурсия.
- Семинар 5.Коллоквиум: методика его проведения и типовые вопросы.
- Семинар 6. Указатели. Передача параметра в функцию по указателю. Функции работы с динамической памятью (malloc/free/realloc). Динамические массивы. Указатель на функцию.
- Семинар 7. Ввод и вывод: форматированный и беcформатный. Работа с файлами. Строки Си. Функции работы со строками.
- Семинар 8. Пользовательские типы данных (enum, struct, union). Битовые операторы.
- Семинар 9. Зачет: методика его проведения, теоретический минимум и типовые задания.
Литература
- В.В. Подбельский, С.С. Фомин. «Программирование на языке Си» – Москва, «Финансы и статистика», 2005, 600 с.
- Б. Керниган, Д. Ритчи. «Язык программирования С» – Москва, «Вильямс», 2015, 304 с.
- Стивен Прата. «Язык программирования C. Лекции и упражнения» – Москва, «Вильямс», 2015, 928 с.
- В.А. Антонюк, А.П. Иванов. «Программирование и информатика. Краткий конспект лекций.» М.: ООП физического ф-та МГУ им. М.В.Ломоносова 2015, 64 с.
- В.А. Антонюк, С.С. Задорожный. «Язык программирования С/С++, часто встречающиеся ошибки при написании программ» Учебно-методическое пособие по дисциплине «Программирование и информатика» М.: ООП физического ф-та МГУ им. М.В.Ломоносова 2021, 64 с.
Курс программирования на C++. Уровень 2
Курс Основы программирования на C++. Уровень 2
Доступные
способы оплаты
Описание курса
Курс «Основы программирование на языке C++. Уровень 2″ является продолжением курса Основы программирование на языке C++. Уровень 1 и охватывает большую часть практических аспектов языка C++, необходимых начинающему разработчику.
Данный курс С++ рассчитан на тех, кто уже знаком с основами программирования на языке C++, стремится развиваться дальше и в настоящий момент нуждается в наставнике при освоении языка C++ на практике.
В данный курс входит полностью весь язык С++:
- Общие понятия
- Наследование
- Инкапсуляция
- Полиморфизм
- Классы
- Спецификаторы доступа
- Конструкторы, деструткоры.
- Методы
- Операторы
- Наследование
Одновременно c ООП настоящий курс С++ охватывает такие необходимые для разработчика темы, как:
-
Интерфейсы
-
STL
-
умные указатели
- алгоритмы
- контейнеры
- потоки, примитивы синхронизации
- файловая система
- Шаблоны проектирования
Данный курс не затрагивает мета программирование и функциональное программирование на языке С++.
По завершению курса у участников будут знания и умения для того, что бы разработать программу практически любой сложности на языке С++ начиная от идеи и заканчивая реализацией.
Курсовой проект:
Начиная примерно с середины курса участники будут работать над курсовыми проектами, сдача которых является обязательным условием для получения сертификата.
Все курсовые проекты основаны на том, что участнику курса придется самостоятельно познакомиться с одной из множества существующих библиотек.
Возможные темы проектов:
- Мини игра в стиле «Pacman» — графическая библиотека (OpenGl, WinAPI, Borland…).
- Детектор движения в видео потоке — библиотека работы с видео потоком (Gstreamer…)
- Плеер — библиотека работы со звуком (vlc, alsa…)
- База данных — библиотека работы с базами данных (sqlite…)
- Шифрователь — библитеки шифрования (openssh…)
- Умный дом — библиотеки работы с контроллерами (stm…)
- Бот для игры
Требования к участникам:
- Опыт программирования на языке C (Си)
- Знание основ написания тестов
- Понимание процесса review кода
- Опыт работы с системами контроля версий
Пример того, как проходит занятие:
youtube.com/embed/xakBvyCgAFY» title=»YouTube video player» frameborder=»0″ allow=»accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture» allowfullscreen=»»>Программа
развернуть
Занятие 1
- Понятие ООП
- Понятие класса
- Спецификаторы доступа
- Конструкторы, деструкторы
- Move семантика
- Ссылки
- Практика:
- Написание программы выводящей информацию о том, какие конструкторы когда вызываются
- Разбор всех видом конструирования объектов на примерах
развернуть
Занятие 2
- Методы класса
- Операторы класса
- Друзья
- Псевдонимы
- Шаблоны
- Практика:
- Реализация вектора
развернуть
Занятие 3
- Универсальные ссылки
- Наследование
- Виртуальные функции
- Интерфейсы
- Наследование конструкторов
- Практика:
- Уход от зависимостей от реализации, на зависимости от интерфейсов
развернуть
Занятие 4
- Динамическое выделение памяти
- Умные указатели
- Методы работы с умными указателями
- Практика:
- Реализация фабрики
развернуть
Занятие 5
- constexpt
- Функциональные объекты
- Лямбда выражения
- Стандартные алгоритмы
- std::find…
- std::copy…
- std::sort
- std::binary_search. .
- std::equal
- Практика:
- Задачи на уменьшение асимптотической сложности при помощи сортировки и поиска
развернуть
Занятие 6
- Стандартные контейнеры
- std::vector
- std::list
- std::forward_list
- std::array
- std::deque
- std::set
- std::map
- std::multiset
- std::multimap
- std::unordered_map
- std::unordered_multiset
- std::unordered_multimap
- std::stack
- std::queue
- std::priority_queue
- Стандартные итераторы
- Практика:
- Задачи на уменьшение асимптотической сложности при помощи стандаартных контейнеров
развернуть
Занятие 7
- Контрольная работа
развернуть
Занятие 8
- Исключения
- Безопасность исключений
- Пространства имен
- Практика:
- Разбор примеров генерации исключений в самых неожиданных местах
- Примеры реализации функций не генерирующих исключения
развернуть
Занятие 9
- Потоки
- Примитивы синхронизации
- Атомарные переменные
- Future/promise
- Практика:
- Реализация задачи нахождения БПФ с использованием параллельного программирования
- Реализация очереди сообщений
развернуть
Занятие 10
- Работа с файлами
- Работа с файловой системой
- Строки
- Потоки строк
- Практика:
- Работа с файлами настроек
- Реализация простейшей БД хранящей данные в текстовом формате
развернуть
Занятие 11
- Идиомы и паттерны проектирования
- Распространенные идиомы
- Практика:
- Реализация COW строки
- Реализация идиомы Pimpl
развернуть
Занятие 12
- Сдача курсового проекта
- Подведение итогов
- Куда двигаться дальше?
Сертификат после обучения
По окончании обучения вы получите сертификат. Нас знают и ценят работодатели, поэтому сертификат станет вашим дополнительным преимуществом при трудоустройстве в IT-компанию.
Сертификат о прохождении курса мы отправим вам на почту. Вы легко сможете добавить ссылку на сертификат в резюме и подтвердить свой уровень подготовки.
Преподаватели
Фото с очных занятий в СПб
Курсы программирования, тестирования, мобильных и веб-технологий от Level UP!
Учитесь с профессионалами в сфере IT-образования!
C для всех: основы программирования
Об этом курсе
361 310 недавних просмотров
Этот курс предназначен для всех. В новом мире, в котором мы живем, кодирование — универсально ценный навык, будь вы ученым, художником или гуманистом. Алгоритмы повсюду, и мы все должны понимать, как они работают. Язык C особенно хорошо подходит для знакомства с программированием: это проверенный временем язык, который позволяет вам понимать вычислительные процессы на более глубоком уровне.
Гибкие срокиГибкие сроки
Сброс сроков в соответствии с вашим графиком.
Общий сертификатОбщий сертификат
Получите сертификат по завершении
100% онлайн100% онлайн
Начните сразу и учитесь по собственному графику.
СпециализацияКурс 1 из 4 курса
Программирование для всех: специализация C и C++
Начальный уровеньНачальный уровень
Часов для завершенияПрибл. 15 часов на выполнение
Доступные языкиАнглийский
Субтитры: арабский, французский, португальский (европейский), итальянский, вьетнамский, немецкий, русский, английский, испанский
Гибкие срокиГибкие сроки
Сбрасывайте сроки в соответствии с вашим графиком.
Общий сертификатОбщий сертификат
Получите сертификат по завершении
100% онлайн100% онлайн
Начните немедленно и учитесь по собственному графику.
СпециализацияКурс 1 из 4 курса
Программирование для всех: специализация C и C++
Начальный уровеньНачальный уровень
Часов на прохождениеПрибл. 15 часов
Доступные языкиАнглийский
Субтитры: арабский, французский, португальский (европейский), итальянский, вьетнамский, немецкий, русский, английский, испанский
Инструктор
IRA POHL
Профессор
Компьютерная наука
442,294 Ученики
6 Курсы
6 Университет 9006 2 . государственный исследовательский университет с глубокой приверженностью к бакалавриату. Это место, которое неожиданным образом объединяет людей и программы, предоставляя студентам беспрецедентные возможности учиться на собственном опыте.Reviews
4.5
Filled StarFilled StarFilled StarFilled StarHalf Filled Star1598 reviews
5 stars
68.35%
4 stars
21.59%
3 stars
5.34%
Starll Stared Stared 2 звезды
1,64%
1 звезда
3,05%0004 от MAS 20 сентября 2022 г.
Отличный курс.. можно добавить больше викторин mcq, чтобы обеспечить понимание концепций.
Курс может быть немного сложным для тех, кто ничего не знает о вычислениях или программировании.
Заполненная звездаЗаполненная звездаЗаполненная звездаЗаполненная звездаЗаполненная звездаby RBApr 20, 2020
Это был действительно отличный опыт обучения на этом курсе. Преподаватель отличный, но часть курса — это хорошо организованные задания и тесты. Снова снимаю шляпу перед всей командой.
Спасибо.
Filled StarFilled StarFilled StarFilled StarFilled Starот MA22 июня 2020 г.
Я очень рад, что прошел этот курс. Инструктор действительно опытный преподаватель. Этот курс дал хороший старт для изучения основ и перехода к сложным языкам программирования, таким как C++.
Filled StarFilled StarFilled StarFilled StarStarот YROct 9, 2020
потрясающий опыт!! Мне понравилось изучать программирование на C, и я наткнулся на много знаний и идей. Спасибо Coursera за предоставление такой хорошей платформы для начинающих студентов со всего мира.
Посмотреть все отзывы
О программе «Кодирование для всех»: специализация C и C++
Эта специализация предназначена для всех энтузиастов программирования, а также для начинающих, компьютерных и других ученых, энтузиастов искусственного интеллекта, стремящихся развить свои навыки программирования. на основных языках C и C++. В ходе четырех курсов — двух на C и двух на C++ — вы познакомитесь с основами программирования на C и перейдете к более продвинутой семантике и синтаксису C++, которые подготовят вас к применению этих навыков в ряде высокоуровневых программ. проблемы с использованием алгоритмов ИИ и оценки методом Монте-Карло в сложных играх.
Часто задаваемые вопросы
Когда я получу доступ к лекциям и заданиям?
Что я получу, подписавшись на эту специализацию?
Доступна ли финансовая помощь?
Есть вопросы? Посетите Справочный центр для учащихся.
Программирование на C: основы языка | edX
Доступна одна сессия:
63 478 уже зарегистрированы!
Я хочу получать электронные письма от Dartmouth_IMTx, DartmouthX, IMTx и узнавать о других предложениях, связанных с программированием на C: основы языка.
Об этом курсе
Что вы выучите
Инструкторы
Способы для прохождения этого курса
EDX для бизнеса
5 недель
2–4 часа в неделю
собственная скорость
Бесплатно
Доступно дополнительное обновление
Доступен один сеанс:
Я хотел бы получать электронные письма от Dartmouth_IMTx, DartmouthX, IMTx и узнавать о других предложениях, связанных с программированием на C: Language Foundations.
Программирование на C: основы языка
В этом курсе, являющемся частью программы C Programming with Linux Professional Certificate, вы научитесь использовать логические операторы и массивы в C. Логические операторы используются для принятия решений с последующими действиями. инструкции, основанные на условиях, которые вы определяете. Массивы используются для хранения, отслеживания и организации больших объемов данных. Кроме того, вы будете реализовывать некоторые фундаментальные алгоритмы для поиска и сортировки данных.
Через несколько минут этого курса вы будете программировать на практике в новом инструменте браузера, разработанном специально для этого курса, получая мгновенную обратную связь по вашему коду. Не нужно ничего устанавливать!
Зачем изучать Си? Это не только один из самых стабильных и популярных языков программирования в мире, он также используется почти во всех электронных устройствах. Язык программирования C представляет собой один из строительных блоков современных компьютерных информационных технологий.
К концу этого курса вы приобретете опыт работы с концепциями программирования, лежащими в основе любого языка программирования, и станете на один шаг ближе к карьере в области вычислительной техники.
Этот курс получил финансовую поддержку от Фонда Патрика и Лины Драи.
Краткий обзор
- Язык: английский
- Расшифровка видео: английский
- Связанные программы:
- Профессиональный сертификат по программированию на C в Linux
- Использование логических условий программы для управления потоком операторов (if-else), повторение (цикл for или while) и вложенность этих структур
- Создайте и измените массивы для хранения целых чисел и чисел с плавающей запятой и объясните, как массивы организованы в памяти
- Создание массивов символов с завершающим нулем для хранения и изменения строк (символов)
- Сортировка и поиск массивов чисел и символов с использованием пузырьковой сортировки, сортировки выбором, линейного поиска и деления пополам
Выберите путь при регистрации.