?

Log in

No account? Create an account
entries friends calendar profile My Website Previous Previous Next Next
Сочинение на заданную тему: выпускник бакалавриата по Computer Science - Уголок Школьника
scolar
scolar
Сочинение на заданную тему: выпускник бакалавриата по Computer Science
Я, конечно, не Яндекс и не ВШЭ, но попытался провести одиночный мозговой штурм, каким бы я хотел видеть идеального свежевыпущенного бакалавра (4 года учёбы).

Обязательные программистские курсы
- Классические алгоритмы
- Компиляторы
- Графика / digital image processing
- Signal processing (как это будет по-русски)
- Базы данных (реляционные + всё это современное nosql безумие, непонятно почему быстро работающее)
- Распределенные системы
- Анализ данных
- Криптография / data security

Computer Science
- Хорошо бы, чтобы бакалавр имел информированное мнение о каждом символе в выражении P ≠ NP
- Теория языков?

Обязательные сопутствующие курсы
- Юридический ликбез (типы лицензий, copyright, патенты, стандарты и организации их поддерживающие)
- Архитектура (зачем процессору кэш, если браузер уже всё закэшировал)
- Английский язык
- Машинопись (жаль, что в школе не приучают не искать каждую клавишу по 3 секунды)
- Документирование (диаграммы UML? ER? и комментирование кода)
- История нашего ремесла и инструментов

Программистская практика
- курсы (программистские и частично математика) должны быть привязаны к практическому программированию. Нужна система, которая бы позволяла, написав немного кода, увидеть визуализацию происходящего (кажется, была статья Седжвика про то, что они в Принстоне что-то такое сделали, ну и matlab никто не отменял)
- работа программистом-интерном после второго и третьего курсов
- практические групповые проекты каждый семестр
- использование реальных инструментов и библиотек (грубые примеры: на машинной графике важно не только алгоритм Брезенхема на С запрограммировать, но и с OpenGL поиграться; на криптографии не только понять, как в RSA связаны ключи с исходными простыми числами, но и на клиенте с помощью OpenSSL что-нибудь подписать, а на сервере из Java проверить имеющимся сертификатом).
- системы контроля версий (Git - наше всё?)
- разные парадигмы (ООП - Java/C++, JavaScript в хорошем смысле, что-то функциональное, многопоточность, асинхронность)
- мобильные платформы


Необходимая математика (хорошо бы понять, в каком объёме и всё ли с доказательствами)
- мат. анализ (+ комплексный анализ? + дифуры?)
- линейная алгебра
- алгебра
- аналитическая геометрия
- мат. логика / дискретная математика
- теорвер / матстат

Неочевидно нужная математика
- уравнения в частных производных
- функциональный анализ
- оптимальное управление
- теория категорий
- дифференциальная геометрия
- теория чисел
36 comments or Leave a comment
Comments
akteon From: akteon Date: April 5th, 2014 10:17 am (UTC) (Link)
Я бы сказал, что было бы крайне полезно какое-то количество "производственных" курсов.
Начиная от обязательного чтения "Mythical Man-Month", и кончая разговорами о жизненном цикле софтвера, product management, управления проектами, принципами организации и управления корпоративными ИТ-системами и т.д.
vvagr From: vvagr Date: April 5th, 2014 10:20 am (UTC) (Link)
Это software engineering. В computer science должен входить одной ссылкой :-)
xgrbml From: xgrbml Date: April 5th, 2014 10:19 am (UTC) (Link)
А что ты понимаешь под теорией чисел, что она неочевидно нужна? А неправда, что нужно свободно ориентироваться в малой теореме Ферма, первообр. корнях, китайской об остатках и пр.?
xgrbml From: xgrbml Date: April 5th, 2014 10:21 am (UTC) (Link)
С другой стороны, я не понимаю, зачем дифуры. Но я и не программист, конечно.
vvagr From: vvagr Date: April 5th, 2014 10:19 am (UTC) (Link)
Диаграммы UML и ER должны преподать в Базах данных (которые хорошо бы назвать Моделированием данных).

Теория множеств попала в мат. логика / дискретная математика?

Теория языков, сдаётся мне, состоит из теории множеств, теории типов, дискретной математики (если Тьюринг и Марков там).

Не хватает упоминания микроэлектроники и программирования микропроцессоров, кажется.

Математические фокусы типа квантового компьютинга нужны. В общем, физика :-)
scolar From: scolar Date: April 5th, 2014 10:56 am (UTC) (Link)
Теория множеств так или иначе будет покрыта в первом же семестре либо в матане, либо в алгебре, вероятно и там, и там. Высшая математика для ВТУЗов.
From: a_shen Date: April 5th, 2014 10:43 am (UTC) (Link)

всё же это

из жанра - что в принципе могло бы быть полезно, или это воспринимается как реальная программа, которую можно преподать реальным (хорошим, но всё же не совсем уникальным) студентам за четыре года?
scolar From: scolar Date: April 5th, 2014 11:17 am (UTC) (Link)

Re: всё же это

Саш, это очень тяжелый вопрос. Нужно сидеть и расписывать часы и пререквизиты. Скорее всего, что-то нужно будет выносить в курсы по выбору, возможно, сделать несколько треков.
cunctator_ From: cunctator_ Date: April 5th, 2014 12:52 pm (UTC) (Link)
А зачем в computer science функциональный анализ? Если не УрЧП и не численные методы.
scolar From: scolar Date: April 5th, 2014 05:11 pm (UTC) (Link)
Так я его в не очевидные и занёс. Грубо говоря, контекст такой: что из университетского курса оставить нужно, а что нет.
trurle From: trurle Date: April 5th, 2014 02:34 pm (UTC) (Link)
Где языки программирования, структуры данных и архитектура ОС?
scolar From: scolar Date: April 5th, 2014 05:16 pm (UTC) (Link)
Структуры данных - в классических алгоритмах, языки - в практической части (ну и в курсе компиляторов), архитектуру ОС - да, надо бы, непонятно только с каким практическим курсом связать.
sorotokin From: sorotokin Date: April 5th, 2014 04:38 pm (UTC) (Link)
+ Statistics (не только в тандеме с теорвером) и machine learning.
xgrbml From: xgrbml Date: April 5th, 2014 06:38 pm (UTC) (Link)
Пункт про машинопись явно лишний: это не предмет для вузовского курса, с расписанием, зачетами и пр. Это то, что человек должен сам подцепить по ходу дела. Л.Д.Кудрявцев приводил еще пример такого не-предмета: умение писать канцелярские бумажки.

Возможно, стоит пройтись по списку на премет других аналогичных вещей.
scolar From: scolar Date: April 5th, 2014 08:01 pm (UTC) (Link)
Практикум в первом же семестре, с зачетом.
zhesh From: zhesh Date: April 5th, 2014 07:16 pm (UTC) (Link)
Зачем программисту матан, а потом и продвинутый матан?
scolar From: scolar Date: April 5th, 2014 07:56 pm (UTC) (Link)
Матан решает две задачи:
- это проверенный веками способ привития культуры мышления;
- это необходимая база для статистики.
From: ex_juan_gan Date: April 5th, 2014 09:33 pm (UTC) (Link)
Теорию множеств забыли. И автоматы.
scolar From: scolar Date: April 5th, 2014 10:34 pm (UTC) (Link)
Теория множеств многократно покрывается разными курсами первого семестра: и матаном, и алгеброй.
a_bronx From: a_bronx Date: April 11th, 2014 09:29 am (UTC) (Link)
- стандартизация и контроль качества, теория надёжности
- экономика и маркетинг
- промышленный дизайн, юзабилити и доступность, инженерная психология

Edited at 2014-04-11 09:32 am (UTC)
gevor From: gevor Date: July 10th, 2014 06:24 pm (UTC) (Link)
Я бы еще "численные методы" включил.

Только вот не уверен, что за 4 года можно все это дать.

Помимо "аппаратной архитектуры" я бы еще дал "программную архитектуру", весь низкий уровень.

Лет 15 назад я бы предложил отдельный курс по суперкомпьютерам, но сейчас он, видимо, покрывается "распределенными системами" и немного "историей".

Ну и "основы экономики". Не потому, что это нужно для программирования, но потому, что это полезно по жизни.
36 comments or Leave a comment