Язык С Основы программирования
О чём курс
Курс «Язык С: Основы программирования» представляет собой фундаментальную образовательную программу, разработанную для широкого круга слушателей. Он одинаково полезен как для тех, кто только начинает свой путь в IT и делает первые шаги в написании кода, так и для опытных разработчиков, уже владеющих языками высокого уровня, такими как C++, Java, C# или Objective C. Несмотря на то, что многие современные языки программирования исторически базируются на синтаксисе и концепциях языка С, многие программисты часто испытывают нехватку глубоких знаний о том, как именно организовано хранение и обработка данных в компилируемых программах. Данный курс призван устранить этот пробел, предоставляя исчерпывающее понимание низкоуровневых механизмов работы компьютера.
Язык С является инструментом общего назначения, который уникальным образом сочетает в себе мощь высокоуровневых абстракций и гибкость низкоуровневого управления ресурсами. Изучение этого языка критически важно для любого специалиста, стремящегося к профессиональному росту, так как именно на его базе созданы технологии, востребованные сегодня в разработке сложного программного обеспечения, мобильных приложений и системных решений. Цель курса — не просто научить синтаксису, а заложить прочный фундамент алгоритмического мышления, обучить принципам структурного программирования и дать навыки решения типичных задач, с которыми сталкивается профессиональный разработчик.
В процессе обучения слушатели освоят искусство моделирования алгоритмов, научатся делать осознанный выбор при создании структур данных, функций и переменных. Особое внимание уделяется культуре написания кода: вы научитесь создавать чистые, поддерживаемые мультифайловые проекты, правильно обрабатывать пользовательский ввод, проверять данные на корректность и осуществлять их вывод в требуемом формате. Вы освоите принципы модульности, минимальной связанности, а также разделения интерфейса и реализации, что является стандартом индустрии. Кроме того, программа включает глубокое погружение в анализ и оптимизацию кода, а также работу с данными на уровне отдельных битов, что дает уникальное преимущество при разработке высокопроизводительных приложений.
Формат курса предполагает сочетание теоретических лекций и интенсивной практической работы. Значительная часть времени отводится на написание кода в режиме реального времени, что позволяет закрепить полученные знания на практике под руководством преподавателя. Вы научитесь читать чужой код, анализировать его эффективность и вносить необходимые улучшения. По завершении обучения вы будете обладать всеми необходимыми навыками для того, чтобы уверенно чувствовать себя в профессиональной среде разработки, понимая, что происходит «под капотом» ваших программ. Это инвестиция в фундаментальные знания, которые не устареют со временем и станут надежной базой для освоения любых других технологий в будущем.
Программа обучения
1 Урок 1. Введение в язык С (Си) Краткий рассказ о плане и целях курса; История и развитие языка C/C++; Алфавит языка; Лексемы (все 6 классов лексем со всеми нюансами); Основные типы данных (+сочетания); Декларация переменных; Константы и способы их создания; Общая структура программы; Вызов заголовочных файлов; Основные библиотечные функции (ввода и вывода, математические...); Написание небольшой программы; Ответы на вопросы и домашнее задание 2 Урок 2. Выражения, операнды, операторы Знакомство со средой разработки; Microsoft Visual Studio; Культура написания кода (табуляция, имена объектов, комментарии...); Понятие выражения, операнда, операции; Понятие приоритета и ассоциативности операций; Операции присваивания; Явное и неаявное приведение типов; Математические операции; Комбинации различных операций; Операции сравнения и логические операции; Побитовые операции сравнения и сдвига; Операции получения значения и адреса, а так же операция разадресации; Написание кода в реальном времени на основе различных вариаций с присваиваниями, сравнениями, приведением типов; Ответы на вопросы. Домашнее задание 3 Урок 3. Операторы ветвления и циклов Показ полной таблицы приоритетов и ассоциативности языка C и подведение вывода по теме операций; Понятие оператора(так же упоминание о метках) + создание комментариев; Составное оператор {} и пустой оператор ; Оператор ветвления if(){}else{} и оператор-переключатель switch{}; Тернарный оператор; Оператор цикла while(){} и do{}while(); (предусловие и постусловие); Оператор цикла for(;{}; Операторы return, continue, break, goto; Ответы на вопросы и домашнее задание 4 Урок 4. Массивы Понятие массива и их типы (статический, динамический и гетерогенные). Понятие индекса; Декларация массива и размещение в памяти; Индексация и доступ к элементам массива; Символьные массивы (строки); Основыне функции для обработки символьных массивов (строк); Многомерные массивы; Двумерный символьный массив, то есть одномерный массив строк (полноценный текст); Всё оставшееся время написание кода в реальном времени, используя циклы и массивы, ввод, обработку и вывод данных в форматированном виде; Ответы на вопросы. Домашнее задание 5 Урок 5. Функции Директивы препроцессора (include, define, ifndef, endif); Функции и их назначение; Типы возвращаемых значений функций и их различия; Декларация функций; Прототип функции (объявление); Вызов функции; Передача параметров по значению; Передача параметров по адресу; Рекурсия; Всё оставшееся время написание кода в реальном времени, используя массив; Создание функций ввода и вывода массива; Создание рекурсивной функции вычисления факториала числа; Ответы на вопросы. Домашнее задание 6 Урок 6. Классы памяти и адресная арифметика Классы памяти. Время и область видимости объекта; Типы объектов относительно хранения их в памяти (внешние, статические, автоматические, регистровые); Отличие области видимости (лексической) от области действия имен; Декларация на внутреннем и внешнем уровнях; Описатель класса памяти auto; Описатель класса памяти extern; Описатель класса памяти static; Описатель класса памяти register; Динамическое распределение памяти (в зависимости от класса памяти); Декларация указателей; Адресная арифметика; Операции с указателями; Использование указателей как аргументов функций; Указатели и массивы; Динамическое выделение памяти (функции malloc, realloc, calloc, free); Указатели и строки (массив char); Разбор классов памяти и указателей на примерах; Ответы на вопросы. Домашнее задание (мультифайловый проект) 7 Урок 7. Структуры, битовые поля, перечисления, объединения Декларация структур; Инициализация и доступ к полям структур; Вложенные структуры и массивы структур; Битовые поля; Перечисления; Объединения (смеси); Написание более сложного мультифайлового проекта в реальном времени; Ответы на вопросы. Домашнее задание 8 Урок 8. Понятие потока и работа с файлами Понятие потока Stream; Структура типа FILE; Открытие и закрытие файлов; Операции ввода и вывода; Указатель чтения или записи в файле; Добавление в проект (с предыдущего занятия) работы с файлами (ввод, вывод, обработка); Вопрос оптимизации кода и проектов
Теги курса
Другие материалы школы 12
G GeekBrains Все материалыОтзывов пока нет. Будьте первым!
Этот курс сейчас в процессе организации складчины. Нажмите кнопку «Записаться» и ожидайте старта — вам придёт уведомление. Когда складчина стартует, в карточке курса будет указан актуальный взнос. Текущая цена пока в процессе формирования и может отличаться от финальной.
Да, мы стремимся, чтобы финальный взнос был не больше ≈10% от оригинальной цены курса. Чем больше участников записывается в складчину, тем ниже выходит взнос для каждого.
Нажмите кнопку «Записаться» и авторизуйтесь на сайте через email (через ту же почту, которую будете использовать для входа). В личном кабинете вас будут ждать инструкции, как пригласить других участников — чем больше людей записалось, тем быстрее стартует складчина и тем ниже взнос. Как только складчина готова к приобретению, вам придёт уведомление.