10 класс: оценки, задания, базовые оценки. | 11 класс: оценки, задания, экзамен, базовые оценки. | Список учеников, прошения, правила. |
Последнее штатное занятие в году. Принимал задания.
Спросил «А нет ли вопросов?», разъяснил про два оставшихся занятия и стал принимать программы.
Спросил «А нет ли вопросов?», разъяснил все непонятное и взялся принимать программы. Домашнего задания не задал.
Рассказал про раздельную компиляцию и стадии, которые проходит исходный файл, чтобы из куколки стать бабочкой: препроцессирование, компиляцию и компоновку. Также рассказал про то, что из себя представляют библиотеки функций и для чего они нужны.
Рассказал про ключевое слово «static» в трех его ипостасях:
Рассказал про сортировку методом вставки и порочащей ее связи с азартными играми.
Рассказал про битовые операции AND, OR, XOR, NOT и битовые сдвиги вправо и влево. Научились выделять конкретный бит из байта, а также устанавливать этот бит в 1 или 0 и инвертировать.
Рассказал про двоичный поиск (дихотомию) и сортировку, которая в подавляющем числе случаев нужна именно для поиска. Всем группам успел рассказать про метод сортировки подсчетом и метод «пузырька». Упомянул про стабильные и нестабильные алгоритмы сортировки и про понятие ключа сортировки для многокомпонентных записей.
Также рассказал про экспоненту и логарифм, и про сравнительное поведение степенных функций, экспоненты и логарифма на бесконечности. На уроке оценивали быстродействие всех пройденных алгоритмов и смотрели, как лучше искать: прямым перебором или сортировкой + двоичным поиском.
Рассказал про односвязные списки двух примерах:
Одной из групп вдобавок досталось объяснение про то, для чего еще люди оформляют куски кода в функции.
Рассказал про структуры, типовую застройку и жильцов по-умолчанию. В-основном, конечно, про структуры: объявление самого типа данных, объявления переменных типа «структура», присваивание, взятие адреса, операторы «.» и «->», действие оператора sizeof.
Продолжил (и даже почти закончил) рассказывать про файловый ввод/вывод: изучили функции fprintf/fscanf, fgetc/fputc, fgets/fputs и feof. Рассказал про константу EOF и про то, почему fgetc возвращает int, а не char.
Рассказывал про файловый ввод/вывод: описатель FILE*, функции fopen()/fclose() и fseek()/ftell().
Еще рассказал про аргументы командной строки: int argc и char* argv[]. Упомянул, что при объявлении многомерного массива в качестве параметра функции старшая размерность может быть опущена.
Повторил (кратенько, минут на 40) то, что рассказывал Роман Игоревич. Добавил некоторые слова про графы и гамильтоновы циклы. Принимал задание прямо на уроке, поскольку уроков было всего четыре. Но дополнительные занятия тоже были.
Ничего не задал. Совсем! Старею...
Не поверите — опять уезжал. Роман Игоревич наставлял учащихся уже в который раз. Был продолжен рассказ про рекурсивные функции на примере задач про обход доски конем и расстановки N ферзей.
Бегло повторил содержание прошлого урока. Рассказал про рекурсивные функции на примере вычисления факториала. Соответственно, рассказал про экземпляры рекурсивных функций и независимость локальных переменных и параметров в каждом экземпляре. Поведал про Фибоначчи и кроликов, в который раз убедился, что школьнику понять как выводятся соотношения для общего члена рекуррентной последовательности второго порядка — очень трудно.
Был в CERN, поэтому вместо меня учил Роман Игоревич. Он рассказал про арифметику указателей, функции malloc и free, тип «void*» и его специфику и напоследок немного поглумился, показывая конструкции типа «(*(*x())[])()».
Учились в школе. Рассказывал про указатели, оператор разименования, передачу значений по значению и по указателю. Показал, как реализуется функция swap.
Ничего не рассказывал — принимал задание. Долго принимал. Часов до шести. Никто не ушел обделенным, но некоторые, возможно, ушли обиженными.
Рассказал про алгоритм Евклида поиска наибольшего общего делителя пары чисел. Школьники даже доказывали правильность формул алгоритма, а я — его конечность. После этого рассказывал про функции: прототипы, объявление тел и вызов этих самых функций. Ещё рассказал про аргументы функций, передачу параметров по значению и о том, что делает компилятор, если функцию вызывают, а прототипа ещё не подвезли. Принимал задачи ровно до трех часов, поэтому многие сдать не успели.
Рассказывал про ASCII-таблицу и ASCIIZ-строки. Демонстрировал функции strlen(), strcpy() и strncpy(): (надеюсь) обучил использованию strncpy() вместо strcpy(). Рассказал про спецификатор формата «%s» для printf() и scanf(). Вовремя вспомнил, что про прототипы функций я ещё не рассказывал, хотя на доске их уже вовсю рисовал: уже хотел упомянуть уши, в которые влетает и вылетает. Немного подумав, решил, что так даже лучше: «Repetitio est mater studiorum». Упоминал про русские кодировки, иероглифы и Unicode. И принимал, принимал, принимал задачи… Как говорится, «наш бар работает до последнего человека».
Рассказал про операторы break и continue и конструкцию switch. Немного поговорили про то, обязателен ли break при использовании switch. Принимал домашнее задание на уроках, дополнительных занятиях и ещё 47 минут сверх всяких норм. Надеюсь, обиженым ни ушел никто.
Обсуждали организацию (статического) одномерного массива с точки зрения оперативной памяти. Рассказал про многомерные массивы и про общую формулу для смещения заданного элемента относительно начала массива. Также обучающимся досталось знаний про размерность объектов: они теперь в курсе, что график функции на двумерном листе бумачи чаще всего имеет единичную размерность.
Рассказывал про модификатор «const», глобальные и локальные переменные и директиву препроцессора «#define». Также поведал про одномерные массивы, индексы, оператор «[]» и способы инициализации массива при его объявлении. Упомянул про адрес i-го элемента массива: &(arr[i]).
Не болел, но меня опять заменял Роман Игоревич. Он рассказывал про оператор взятия адреса объекта «&», немножко про тип данных «указатель на объект», про тип «char» и про функцию scanf(). Я в это время бегал вокруг отделочника, который пытался заделать пластиковую дверь на балконе: закончил бегать около десяти вечера, в результате чего не успел даже на родительское собрание. Итог: все равно дует. Будем разбираться.
Объяснял про циклы for и while. Кое-кому досталось объяснений про комплексные числа. Особо настойчивые получили объяснения про «goto» и «break». Всем досталось объяснений про экспоненту, ряд Тейлора и остаточный член. Считаю большим педагогическим достижением, что при рассказе из всех групп заснул только один человек. Это успех!
Объяснял про условия, логические операторы «И» и «ИЛИ», оператор отрицания «НЕ» и конструкцию «if»—«else if»—«else».
Пытался болеть, но, как говаривал Марк Твен, «слухи о моей смерти сильно преувеличены». Вместо меня преподавал Роман Игоревич: объяснял «Hello, world!», рассказывал про переменные и их типы, а также про арифметические операции, автоматическое приведение типов и функцию printf.
Показал классу «Hello, world!», бегло объяснил про printf. Учились работать в редакторе GNU Nano и компилировать программы.
Урок был, но что там рассказывалось — не помню. Пора лечить склероз. Вспоминаю только что про компьютеры рассказывал. Или не про них? Или не было урока? Неясно…
Писали первый тест на внимательность. Продолжал объяснять про устройство компьютера.
Первое занятие проходило в школе. Попали на тренировочную эвакуацию персонала и учеников: ни одного человека не пострадало. На уроке рассказывал про общую философию программирования и начал объяснять устройство компьютера.