Язык С Основы программирования

2 участника

О чём курс

Курс «Язык С: Основы программирования» представляет собой фундаментальную образовательную программу, разработанную для широкого круга слушателей. Он одинаково полезен как для тех, кто только начинает свой путь в 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; Открытие и закрытие файлов; Операции ввода и вывода; Указатель чтения или записи в файле; Добавление в проект (с предыдущего занятия) работы с файлами (ввод, вывод, обработка); Вопрос оптимизации кода и проектов

Складчина создана 1 июля 2015 г. · описание обновлено 30 мая 2026 г.

Теги курса

Инструменты

Другие материалы школы 12

G GeekBrains Все материалы
6 094 ₽ 9 970 ₽