Приятная новость. На главной странице Stepik в разделе Часто ищут есть подборка C/C++.
Сегодня в неё добавили и наш курс. Троекратное ура!
Пока, к сожалению, только вторая страница в выдаче, но всё лучше, чем ничего. Какой-то закономерности в ранжировании курсов я не увидел. Единственно, что можно сказать определённо, платные курсы имеют приоритет над бесплатными. Даже "Поколение Python: курс для начинающих" у которого почти полтора миллиона учеников (больше чем у любого курса на платформе) и тот в категории Python стоит лишь на 4 месте! =D
Поглядим, как это отразится на количестве новых youngcoderов.
Сегодня в неё добавили и наш курс. Троекратное ура!
Пока, к сожалению, только вторая страница в выдаче, но всё лучше, чем ничего. Какой-то закономерности в ранжировании курсов я не увидел. Единственно, что можно сказать определённо, платные курсы имеют приоритет над бесплатными. Даже "Поколение Python: курс для начинающих" у которого почти полтора миллиона учеников (больше чем у любого курса на платформе) и тот в категории Python стоит лишь на 4 месте! =D
Поглядим, как это отразится на количестве новых youngcoderов.
🔥7👍2
Выложил новое мини-видео о работе со стандартными потоками ввода и вывода.
В теоретической части я сказал, что программа ничего не знает о внешних устройствах, а взаимодействует лишь со стандартными потоками ввода и вывода. В этом видео я демонстрирую, как это происходит на примере программы сложения двух чисел (sum2).
Не изменяя ни одного бита в самой программе, я заставляю её читать числа, которые надо сложить, из файла и записывать результат сложения в другой файл.
Это становится возможным благодаря двум вещам:
Кстати, по такому же принципу построена и проверяющая система на платформе Stepik. =)
Когда вы отправляете решение, система создаёт из него исполняемый файл и запускает его. При этом на стандартный поток ввода подаются тестовые данные, а данные из стандартного потока вывода сравниваются с эталонным решением.
p.s. Ещё раз благодарю всех помогальников за донаты! Полагаю, что вы здесь есть. )
В теоретической части я сказал, что программа ничего не знает о внешних устройствах, а взаимодействует лишь со стандартными потоками ввода и вывода. В этом видео я демонстрирую, как это происходит на примере программы сложения двух чисел (sum2).
Не изменяя ни одного бита в самой программе, я заставляю её читать числа, которые надо сложить, из файла и записывать результат сложения в другой файл.
Это становится возможным благодаря двум вещам:
— 1. из-за того, что программа работает с потоками, а не с конкретными устройствами;
— 2. операционная система позволяет перенаправить стандартные потоки ввода и вывода и связать их, например, с текстовыми файлами.
Кстати, по такому же принципу построена и проверяющая система на платформе Stepik. =)
Когда вы отправляете решение, система создаёт из него исполняемый файл и запускает его. При этом на стандартный поток ввода подаются тестовые данные, а данные из стандартного потока вывода сравниваются с эталонным решением.
p.s. Ещё раз благодарю всех помогальников за донаты! Полагаю, что вы здесь есть. )
YouTube
Потоки ввода и вывода программы stdin, stdout #it #code #youngcoder #programming #C
В видео демонстрируется, что программы взаимодействуют с потоками ввода (stdin) и вывода (stdout), а не напрямую с клавиатурой или экраном консоли.
БЕСПЛАТНЫЙ КУРС обучения основам программирования на Си: https://youngcoder.ru/
Поддержать курс и канал: …
БЕСПЛАТНЫЙ КУРС обучения основам программирования на Си: https://youngcoder.ru/
Поддержать курс и канал: …
🔥4👍2
Моя первая программа
Пост приурочен к мини-опросу про прошлый опыт в программировании, пройдите его, пожалуйста.
Насколько я помню, первым языком программирования у меня был BASIC под самой настоящей MS DOS. Примерно 5-6 уроков Информатики. На последнем уроке из этого программистского цикла нам задали задачу: посчитать количество дней между двумя произвольными датами с учётом високосных годов. Доступа к ПК у меня не было, поэтому я просто писал свой код на бумажке и построчно его выполнял, пытаясь решить задачу. К сожалению, эта задача оказалась мне не по зубам.
Первым языком, который я изучал самостоятельно был PHP (где-то месяца через 3-4 после того, как состоялось моё печальное знакомство с BASIC). Почему PHP? Для меня главным и решающим преимуществом этого языка было то, что он не требовал наличия компьютера. Можно было написать текст скрипта на смартфоне Nokia 6670, загрузить его на бесплатный хостинг и проверить, как работает программа.
Доступ к смартфону тоже был ограниченным. Я мог использовать его достаточно непродолжительное время вечером и ночью. Поэтому мой "алгоритм" программирования и отладки скриптов на PHP выглядел следующим образом.
Кстати, этот извращённый опыт меня серьёзно закалил. Когда через несколько лет мне потребовалось пройти процедуру ЕГЭ по информатике, то я вообще не видел для себя проблемы в том, что там нет компьютера (сейчас, говорят, есть). Написать код программы на листочке и не упустить ни одной точки с запятой, закрывающей фигурной скобки и тп. — раз плюнуть. Выполнить код и сказать, что выведет программа? Да запросто! Найти ошибку в условных конструкциях? Проще пареной репы. Я видел код насквозь, как рентген. =D
Первой программой, которую я написал на PHP, была "Библиотека".
Скрипт просматривал директорию с файлами и составлял из них страничку со ссылками для чтения. Можно было открыть любой файл и читать его в постраничном режиме, задавая размер шрифта, количество слов на странице и пр. За несколько прогонов алгоритма, изложенного выше, прибегая к помощи гугла и интернет-форумов, я таки справился с этой задачей.
Именно этот скрипт я считаю своей первой полноценной программой.
Пост приурочен к мини-опросу про прошлый опыт в программировании, пройдите его, пожалуйста.
Насколько я помню, первым языком программирования у меня был BASIC под самой настоящей MS DOS. Примерно 5-6 уроков Информатики. На последнем уроке из этого программистского цикла нам задали задачу: посчитать количество дней между двумя произвольными датами с учётом високосных годов. Доступа к ПК у меня не было, поэтому я просто писал свой код на бумажке и построчно его выполнял, пытаясь решить задачу. К сожалению, эта задача оказалась мне не по зубам.
Первым языком, который я изучал самостоятельно был PHP (где-то месяца через 3-4 после того, как состоялось моё печальное знакомство с BASIC). Почему PHP? Для меня главным и решающим преимуществом этого языка было то, что он не требовал наличия компьютера. Можно было написать текст скрипта на смартфоне Nokia 6670, загрузить его на бесплатный хостинг и проверить, как работает программа.
Доступ к смартфону тоже был ограниченным. Я мог использовать его достаточно непродолжительное время вечером и ночью. Поэтому мой "алгоритм" программирования и отладки скриптов на PHP выглядел следующим образом.
1. Написать код программы в тетрадке
2. Проверить самостоятельно синтаксис
3. Пошагово выполнить программу на листочке
4. Исправить найденные ошибки и вернуться к п.2
4.1 если ошибок нет ждать вечера
5. Вечером перенести итоговый код с листочка в смартфон и загрузить файл на хостинг
6. Запустить скрипт на хостинге
7. Если всё хорошо, то радоваться, если ошибка:
7.1 - простая и понятная, то быстренько исправить, загрузить файл заново и перейти к п.6.
7.2 - сложная или непонятная, то пометить её себе на листочке, мб, немного погуглить/спросить на форумах, почему такая ошибка происходит, чтобы на следующий день вернуться к п.4
Кстати, этот извращённый опыт меня серьёзно закалил. Когда через несколько лет мне потребовалось пройти процедуру ЕГЭ по информатике, то я вообще не видел для себя проблемы в том, что там нет компьютера (сейчас, говорят, есть). Написать код программы на листочке и не упустить ни одной точки с запятой, закрывающей фигурной скобки и тп. — раз плюнуть. Выполнить код и сказать, что выведет программа? Да запросто! Найти ошибку в условных конструкциях? Проще пареной репы. Я видел код насквозь, как рентген. =D
Первой программой, которую я написал на PHP, была "Библиотека".
Скрипт просматривал директорию с файлами и составлял из них страничку со ссылками для чтения. Можно было открыть любой файл и читать его в постраничном режиме, задавая размер шрифта, количество слов на странице и пр. За несколько прогонов алгоритма, изложенного выше, прибегая к помощи гугла и интернет-форумов, я таки справился с этой задачей.
Именно этот скрипт я считаю своей первой полноценной программой.
👍6👏2🔥1🫡1
В комментариях на Stepik задали вопрос про то, как могут быть записаны очень-очень большие числа в переменной double.
На примере небольшого числа
Кому интересно про хранение вещественных чисел, предлагаю к изучению соответствующую ветку комментариев.
#из_комментариев_на_stepik
На примере небольшого числа
double r = 140737488355329.984375; попытался объяснить, как компилятор сохранит его в памяти компьютера. Кому интересно про хранение вещественных чисел, предлагаю к изучению соответствующую ветку комментариев.
#из_комментариев_на_stepik
Stepik: online education
Математические функции. Заголовочный файл math.h
❤2👍1🔥1
Вчера обновил теоретическую часть в уроке про арифметические операторы. Дополнил его нюансами работы оператора
p.s. И чтобы дважды не вставать, публикую ежемесячную статистику.
На 1 августа:
— 1 761 720 верных решений для задач на программирование;
— 790 отзывов
— 67106 учеников.
В Зале славы 5-го урока 6 учеников. Не густо!
% (взятие остатка от деления), добавил исследовательскую задачку для хакеров + поправил разметку. Повторите, если кто успел забыть. К соответствующему уроку на Stepik добавил шпаргалку.p.s. И чтобы дважды не вставать, публикую ежемесячную статистику.
На 1 августа:
— 1 761 720 верных решений для задач на программирование;
— 790 отзывов
— 67106 учеников.
В Зале славы 5-го урока 6 учеников. Не густо!
👍4🔥2
Дополнил урок по математическим функциям и неявному преобразованию типов.
Добавил немного поясняющих примеров, поправил разметку, добавил практических задач, включая пару исследовательских задачек.
Попробуйте решить задачу со скрина.
Если найдёте опечатки/ошибки, пишите в комменты к уроку. Заранее благодарю за помощь!
Добавил немного поясняющих примеров, поправил разметку, добавил практических задач, включая пару исследовательских задачек.
Попробуйте решить задачу со скрина.
Если найдёте опечатки/ошибки, пишите в комменты к уроку. Заранее благодарю за помощь!
👍5🔥3
Чуть-чуть дополнил материал по приоритетам операций. В основном дополнительные материалы и практические задания для самостоятельного решения.
🔥2👍1
Пару дней назад составил диаграмму распределения лайков и дизлайков по урокам на Stepikе. Заметил, что у раздела 5.1 очень удручающее соотношение между лайками и дизами. Стал разбираться, что не так. Изучил внимательно комментарии и обратную связь.
Основные жалобы:
— формулировки условий задач: запутанность, неясность.
— задачи требуют знания циклов, которые к этому моменту ещё не пройдены.
— много математики и надо самому искать формулы.
По итогам работы:
— переписал и поправил условия для всех задач (добавил элементы научно-фантастического сеттинга);
— кое-где добавил формулы, либо обыграл их отсутствие в тексте задачи и сослался на закреплённые комменты.
— удалил одну задачу;
— везде, где можно, добавил кнопку для запуска кода на своих данных;
— добавил небольшой теоретико-методический шаг про экономию вычислений. Задача этого шага подготовить ученика к последующим трём задачам и к дальнейшему изучению циклов. =)
— убрал баллы за оставление обратной связи по уроку.
В общем, предлагаю вам заценить новую версию. Если новая версия придётся вам по вкусу, не пожалейте лайка (не тут, на Stepikе)! =)
p.s. Для истории. Текущие показатели по лайкам и дизам: 535 / 275.
Основные жалобы:
— формулировки условий задач: запутанность, неясность.
— задачи требуют знания циклов, которые к этому моменту ещё не пройдены.
— много математики и надо самому искать формулы.
По итогам работы:
— переписал и поправил условия для всех задач (добавил элементы научно-фантастического сеттинга);
— кое-где добавил формулы, либо обыграл их отсутствие в тексте задачи и сослался на закреплённые комменты.
— удалил одну задачу;
— везде, где можно, добавил кнопку для запуска кода на своих данных;
— добавил небольшой теоретико-методический шаг про экономию вычислений. Задача этого шага подготовить ученика к последующим трём задачам и к дальнейшему изучению циклов. =)
— убрал баллы за оставление обратной связи по уроку.
В общем, предлагаю вам заценить новую версию. Если новая версия придётся вам по вкусу, не пожалейте лайка (не тут, на Stepikе)! =)
p.s. Для истории. Текущие показатели по лайкам и дизам: 535 / 275.
Stepik: online education
Набор задач для программирования.
❤7👍1
Замечаю в обратной связи, в комментариях и на форуме решений упоминание того, что кто-то решил задачу с помощью нейронки.
Генеративный AI это серьёзное явление, которое теперь с нами навсегда, поэтому посчитал важным написать небольшую заметку в блоге на этот счёт.
Использовании LLM при обучении программированию
Генеративный AI это серьёзное явление, которое теперь с нами навсегда, поэтому посчитал важным написать небольшую заметку в блоге на этот счёт.
Использовании LLM при обучении программированию
Teletype
Использование AI при обучении основам программирования
Стал замечать, что многие ребята используют AI (различные LLM) при прохождении курса. При этом, используют его совершенно неправильно.
👍5🔥2
Хорошая новость. Сегодня впервые получил в репозитории курса Pull Request с исправлением опечатки от человека, которого я не знаю. Спасибо, mavensk! =)
Неделю назад я добавил опрос о прошлом опыте программирования. Прикладываю распределение ответов. Полных новичков абсолютное меньшинство =D
Неделю назад я добавил опрос о прошлом опыте программирования. Прикладываю распределение ответов. Полных новичков абсолютное меньшинство =D
❤1👍1🔥1
Поиск рассеянных с улицы Бассейной, 21.
Указывайте в комментариях свой город и дату. Знакомьтесь, объединяйтесь и готовьтесь вместе.
Указывайте в комментариях свой город и дату. Знакомьтесь, объединяйтесь и готовьтесь вместе.
🔥17😁15❤5
Занимаюсь улучшением урока про условные инструкции. Сегодня обновил вступительную заметку.
А ещё добавил раздел manuals на сайт. Туда буду добавлять дополнительные материалы, которым пока не нашлось места в структуре курса. Будет что-то вроде маленькой базы знаний. Для тестирования добавил короткую заметку с таблицей приоритетов операторов в Си.
p.s. Ураааа! Нас ровно 107 человек. Скоро обгоним ютуб-канал! =)
А ещё добавил раздел manuals на сайт. Туда буду добавлять дополнительные материалы, которым пока не нашлось места в структуре курса. Будет что-то вроде маленькой базы знаний. Для тестирования добавил короткую заметку с таблицей приоритетов операторов в Си.
p.s. Ураааа! Нас ровно 107 человек. Скоро обгоним ютуб-канал! =)
youngcoder.ru
Урок 6: Инструкции ветвления в языке Си
Знакомимся с инструкциями ветвления в языке Си: if-else и switch. Разбираемся на простых примерах из жизни, когда и какую инструкцию использовать для принятия решений в программе.
🔥8👍3❤1
Новая версия урока про инструкцию переключения switch
Как обычно, объём текста вырос почти в два раза, но я всё равно доволен получившимся результатом.
— Урок стал более структурированным и подробным.
— Добавлены новые примеры на вложенные инструкции switch, а для старых примеров добавлены пояснения.
— Добавлены дополнительные материалы про ассемблер, константы, и, что меня радует всех больше, про конечные автоматы.
— Добавлена исследовательская задача для хакеров, посвящённая расширенной версии switch, поддерживаемой некоторыми компиляторами.
В общем, кто недавно читал старую заметку, предлагаю перечитать новую. Она гораздо лучше.
p.s. Если прочитали, отпишитесь тут или в комментах, всё ли понятно или где-то возникают трудности? Всем, кто найдёт опечатки, ошибки и т.п., отдельный респект.
Как обычно, объём текста вырос почти в два раза, но я всё равно доволен получившимся результатом.
— Урок стал более структурированным и подробным.
— Добавлены новые примеры на вложенные инструкции switch, а для старых примеров добавлены пояснения.
— Добавлены дополнительные материалы про ассемблер, константы, и, что меня радует всех больше, про конечные автоматы.
— Добавлена исследовательская задача для хакеров, посвящённая расширенной версии switch, поддерживаемой некоторыми компиляторами.
В общем, кто недавно читал старую заметку, предлагаю перечитать новую. Она гораздо лучше.
p.s. Если прочитали, отпишитесь тут или в комментах, всё ли понятно или где-то возникают трудности? Всем, кто найдёт опечатки, ошибки и т.п., отдельный респект.
👍4🔥2
Три новые задачи на инструкцию switch
Добавил задачек в курс:
Дни недели
Калькулятор v.0.3
Конвертер прав доступа UNIX
Мне всех больше нравится последняя. =)
Кроме того, добавил шпаргалку по switch на степик.
Добавил задачек в курс:
Дни недели
Калькулятор v.0.3
Конвертер прав доступа UNIX
Мне всех больше нравится последняя. =)
Кроме того, добавил шпаргалку по switch на степик.
Stepik: online education
Инструкция переключения switch
👍8🔥4😍2
Обновил урок про Отношения и логические операторы
Из новенького:
— как избежать проблем при сравнении вещественных чисел;
— как правильно проверять попадание значения в диапазон.
Теперь можно и отдохнуть! =)
Из новенького:
— как избежать проблем при сравнении вещественных чисел;
— как правильно проверять попадание значения в диапазон.
Теперь можно и отдохнуть! =)
👍5🔥5
Чёт забыл, что собирался сегодня отдыхать и дополнил урок про Отношения и логические операторы на Stepik краткой шпаргалкой и дополнительными задачами:
Сравнение вещественных чисел
Минимум из двух чисел
Гилл Байтс и модуль числа
Валидация IP-адреса
UPD: Кто решит, отпишитесь здесь или на степике, как вам новые задачки?
Сравнение вещественных чисел
Минимум из двух чисел
Гилл Байтс и модуль числа
Валидация IP-адреса
UPD: Кто решит, отпишитесь здесь или на степике, как вам новые задачки?
Stepik: online education
Отношения и логические операторы
❤6🔥3
Остапа понесло...
Добавил ещё одну задачку:
Система управления освещением
Её можно решить через switch, но я предлагаю подумать над решением без switch, а только через логические выражения.
p.s. на сегодня точно всё. В этот урок больше нельзя добавить задач.
Добавил ещё одну задачку:
Система управления освещением
Её можно решить через switch, но я предлагаю подумать над решением без switch, а только через логические выражения.
p.s. на сегодня точно всё. В этот урок больше нельзя добавить задач.
Stepik: online education
Отношения и логические операторы
👍7🔥3
Linux — 34 года
В этот день в 1991 году молодой финский парень Линус Торвальдс написал сообщение о разработке прототипа новой операционной системы.
Теперь Linux завоевал весь мир. А на чём написано ядро Linux? Правильно, на языке Си! Поэтому всех с праздником.
В честь такого дня подготовил небольшую заметку об одном стандартном подходе к тестированию программ — тестирование на основе классов эквивалентности. Это базовая база, которую должен знать любой, кто пишет программы.
В этот день в 1991 году молодой финский парень Линус Торвальдс написал сообщение о разработке прототипа новой операционной системы.
Я создаю (свободную) операционную систему (просто хобби, ничего большого и профессионального, типа GNU)
Теперь Linux завоевал весь мир. А на чём написано ядро Linux? Правильно, на языке Си! Поэтому всех с праздником.
В честь такого дня подготовил небольшую заметку об одном стандартном подходе к тестированию программ — тестирование на основе классов эквивалентности. Это базовая база, которую должен знать любой, кто пишет программы.
❤🔥8👍3