Раздел «Образование».GeneralSuggestions:

Предложения по изменению содержания курса "Основы информатики"

Здесь размещайте свои предложения общего характера. Предложения по конкретному семестру пишите соответственно в

Содержание:

С и Pascal

Язык Pascal — замечательный язык. Он придуман специально для того, чтобы учить студентов программированию. Он еще хорошо тем, что многие его проходят в школе. Но есть целый ряд аргументов в пользу C:

с третьим и четветым семестром.__

Языки Pascal и C основаны на одной и той же парадигме, и рассказывать их обоих вредно. Поскольку это означает, что мы в два раза сильнее засоряем распухшие мозги студентов подробностями синтаксиса дабы преподать одну и ту же идею.

Имеет смысл изучать два языка только в том случае, если они несут в себе две различные идеи (метода мышления при программировании).

Согласовать лекции с семинарами.

Это желание есть у всех — и у лекторов и у семинаристов. В первом и втором семестре между тем, что рассказывается на лекциях и на семинарах пролегает пропасть. Возможно, это не так уж плохо, но оценка в конце ставится одна.

Студенты быстро осознают, что эту оценку ставит семинарист, видят, что лекции нисколько не помогают решать поставленные семинаристом задачи, и перестают ходить на лекции.

Решение
каждый курс разбить на блоки и для каждого блока прописать теоретическую часть, которая рассказывается на лекциях, и завязанные на эту теорию задачи, котрые решаются на практические занятиях (семинарах). Лучше всего для каждого семестра сделать учебное пособие, как это сделано в третьем семестре: пример учебного пособия.

О фундаменте информатики

Все преподаватели согласны, что рассказывать нужно фундаментальные вещи, а технологии и другие переходящие вещи — не нужно, по крайней мере в обязательном цикле. Для технологии и специальных тем есть курсы по выбору.

Но все преподаватели к фундаменту информатики относят разные вещи: некоторые фундаментом считают теория компиляции и языков программирования, другие — теорию вычислимых функций, третьи — теорию алгоритмов, четвертые — базы данных, пятые — теорию формальных языков и исчислений и т.д.

Конечно — все перечисленное есть фундамент компьютерных наук. И есть еще много вещей, которые можно отнести к фундаменту — часть дискретной математики, архитектура компьютера и др.

Но среди этих фундаментальных вещей есть

На кафедре математики первокурсникам почему-то не рассказывают ни о теории множеств Кантора-Бернштейна, о теореме Цермело и лемме Цорна, о трансфинитной индукции и базисе Гамеля, ни о теории категории — хотя это все вещи, которые по логике должны идтив самом начале курса матанализа, поскольку на них базируется все остальное.

Не рассказывают – и правильно делают. Есть фундаментальные вещи, которые на первом курсе матанализа просто нельзя рассказывать.

О чем же в таком случае рассказывать на лекциях?

Есть много вещей, которые являются естественным продолжением школьной программы. В качестве введения было бы чрезвычайно полезно рассказать

Второй семестр: Сравнительный анализ языков программирования

Относительно второго семестра –- есть слишком много вещей, которые вписываются в курс органичнее, чем "Архитектура ЭВМ и ASM", и вообще полезней для студентов МФТИ и фундаментальней.

Здесь надо помнить, что студенты МФТИ — это математики и физики. И не нужно здесь аргументов типа "На студентов ориентироваться себя и науку не уважать". Сегодня это не так.

Было бы нелепо, если кафедра высшей математики МФТИ скопировала бы курс у мехмата МГУ, а кафедра информатики МФТИ — у ВМК МГУ. Кафедра математики поступила разумно — она разработала свою программу. А втот кафедра информатики решила, что программа информатики для системных программистов ВМК подходит и для МФТИ. Это не так. Курс "2. Аритектура ЭВМ" не вписывается между "1. Введение в программирование" и "3. Системное программное обеспечение".

Первый и третий семестр посвящены языку программирования C, а именно, первый — знакомству и программированию алгоритмов, третий — программированию по операционную систему Linux. Второй семестр — это разрыв между ними.

Одна из возможных тем второго семестра --– Сравнительный анализ языков программирования. Это очень фундаментальная тема, поскольку каждый язык одаряет студента способом мышления, некоторой парадигмой. Надо подобрать три или четыре языка с разными парадигмами, например:

Речь идет не об изучении новых языков, а изучении различных парадигм и типов языков.

У нас в институте учатся физики и математики, для них понимание архитектуры компьютера менее важно, чем понимание того, какие языки существуют и для решения каких задач они предназначены.

Это может быть макро языки для создания математических моделей и их анализа (Mathematica), функциональные языки (Lisp, Haskell) или логические языки (logic production languages, constraint programming).

А вообще, было бы гораздо полезнее вместо ASM познакомить студентов с нетипизироваными скриптовыми языками типа Tcl и Perl.

Язык Python

Есть довольно необычная идея, но как ни странно очень многие специалисты не возражают, а даже голосуют за неё. Одна заключается в том, что язык Python очень даже неплох как первый для изучения язык программирования. Конечно, начать с него в первом семестре видимо все таки не получится, но познакомится с ним во втором семестре было бы полезно.

-- ArtemVoroztsov - 24 Mar 2004