Если вы новичок, сдайте CS 1. Поборите свой страх перед тем, насколько это может быть сложно, то есть насколько это будет мешать вам посещать предварительные игры Bissell. Это будет нелегко, но вы первокурсник и все еще умеете усердно работать. «Жаль, что я не сдал CS 1 раньше» — это фраза, придуманная в выпускном классе, когда приоритеты другие, а времени на академические исследования значительно меньше. NRO это, если вы действительно беспокоитесь — поверьте мне, вы вряд ли когда-нибудь воспользуетесь всеми своими NR.

Когда вы подписываетесь на CS 1, попробуйте поймать Hany Farid или Devin Balkcom, хотя все профессионалы CS 1 в целом хороши.

В общем, ожидайте, что классы TAS с большим количеством кода и задач будут сложными. Даже если вы гений, они требуют значительных умственных способностей — дополните классы CS раздачами или веселыми/интересными курсами. Психическое здоровье хорошее.

Особенности

Здесь — ссылка на ближайшие курсы. Это — основные требования, если задуматься. Ниже приведены заметки, основанные на моем собственном опыте 2012–2015 годов, и метаданные одноклассников.

КС 1 Введение

Сложность: например, вызов Ледьярда. Зависит от того, насколько вы здоровы, трезвы и чувствуете себя комфортно в обнаженном или арестованном состоянии, а также от того, сколько градусов ниже нуля на улице (т. е. от предыдущего опыта).

Язык: Python

Плюсы. Очень здорово узнать, что такое «информатика», на что она способна и как создавать реальные вещи на своем компьютере. Python также является исключительно полезным языком в рабочем мире.

Минусы: отнимает много времени и крутая кривая обучения. Джонни «Я программировал с тех пор, как мне было 3», сидя перед классом и задавая эти ужасные вопросы, которые никому не известны и до которых нет дела. Большие размеры классов из-за небольшого отдела, что может затруднить общение с профессионалами один на один, но будут студенческие ассистенты с открытыми лабораторными часами. Или вы можете подружиться со своим симпатичным одноклассником, потому что вам так нужна «дополнительная помощь», что в конечном итоге вы решаете свои задачи вместе до полуночи. И под выполнением задач до полуночи я подразумеваю DFMO на танцполе вечеринки Heorot.

CS 10 объектно-ориентированное программирование

Сложность: все равно, что пытаться пробежать Рип-роуд в воскресенье утром после Зеленого ключа: очень полезно, но это может просто убить вас.

Язык: Java

Плюсы: вы изучаете, переучиваете и реализуете некоторые настоящие фундаментальные темы информатики в этом классе, где у вас теперь также есть базовое понимание программирования.

Минусы: переход с Python на Java поначалу немного пугает, к тому же некоторые проекты очень сложно выполнить, если вы начинаете накануне вечером и/или никогда не посещаете лабораторные часы и/или класс. Если вы закончили CS 10 и все еще любите или даже любите программировать, это хороший знак.

CS 30 Дискретная математика

Трудность: например, родить сразу 8 детей.

Язык: математика, доказательства

Плюсы: точно не знаю. Не многие знают. Он разблокирует алгоритмы, так как является предварительным требованием для 31. Что ж, он заставляет ваш разум мыслить более абстрактными математическими способами, но алгоритмы определенно более полезны в контексте компьютерных наук.

Минусы: только очень сложные и абстрактные вещи, плюс еженедельные наборы задач и экзамены, которые вам постоянно нужно быть в своей игре, чтобы преуспеть. Вероятно, единственное спасение — иметь Прасад Джаянти в качестве проф., но даже тогда это сложно. Избавьтесь от этого, если вы собираетесь полностью или второстепенно играть в CS. Если вам не нужно проходить этот курс, не делайте этого. Если вы действительно не планируете изучать алгоритмы, что вам действительно нужно и сделает этот курс стоящим, но все зависит от того, сколько времени у вас осталось.

Алгоритмы CS 31

Сложность: например, добраться до Фоко и понять, что вы оставили свое удостоверение личности в своей комнате, но вы живете в реке, и на улице -17 градусов, и вы решили не носить носки с вашими ботинками Bean, но все ты хочешь эти куриные наггетсы Foco, так что ты возвращаешься в свою комнату, берешь свою карточку, возвращаешься к Foco и получаешь эти чертовы куриные наггетсы. Тоже обморожение.

Язык: математика

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

Минусы: сложно, но не убийственно. Еженедельные наборы задач, которые вы должны начать как можно раньше. Это математика, но это математика в области компьютерных наук, так что у вас есть структура мышления для поддержки работы, которую вам нужно выполнить.

Разработка и внедрение программного обеспечения CS 50

Сложность: например, пробежать 40 очков менее чем за 40 секунд.

Язык: C, UNIX, Bash.

Плюсы: ни один другой проект, который вы завершите за свою карьеру в CS в Дартмуте, не заставит вас чувствовать себя более плохой сукой, чем ваш крошечный краулерный проект, написанный на м****ф***. ** C. И вы можете говорить об этом вечно, кому угодно. 50 также открывает большинство курсов CS более высокого уровня, которые становятся очень интересными и менее болезненными.

Минусы: многие впервые откроют свои терминалы, напишут сценарии оболочки и напишут код на C. У вас есть 1 неделя, чтобы изучить все это, дай Бог, потому что затем наступает здоровенный еженедельный проект. В этом курсе больше нет рук, так как, вероятно, будет 1 профессор и 1 ассистент аспирантуры, у которых не будет времени быть ассистентом. Не говоря уже о том, что существует ~ миллион способов реализовать (облажаться) на C. Будьте готовы посвящать этому курсу много вечеров в неделю. Но как только вы пройдете этот курс, оставшаяся часть вашей карьеры программиста в Дартмуте пройдет гладко.

CS 51 Архитектура

Сложность: как получить жаркое от Коллиса в течение 12 секунд.

Язык: машинный код (LC3), ассемблер, C

За: здесь я необъективен, но я подумал, что было бы очень круто наконец-то заглянуть под капот всего и увидеть самые основы того, как работает компьютер, и написать ряды нелепых функций TRAP и ADD, которые создают простые циклы и операции. Плюс построение схем на Logisim было довольно забавным; Более практическая версия этого курса — CS 56 Digital Electronics, в которой вы приступаете к созданию аппаратного обеспечения, а не к программированию на C.

Минусы: многие специалисты по компьютерным наукам будут проходить этот курс летом на втором курсе, так как он один из немногих, которые предлагаются, так что это облом, когда на самом деле нужно быть функциональным, думать и готовиться к этому курсу в течение __X семестра. . Тем не менее, рабочая нагрузка вполне управляема.

Сети CS 60

Сложность: Президентская лужайка Дартмут 7: насколько я слышал, сложно, но выполнимо.

Язык: idk

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

Системы баз данных CS 61

Сложность: 50-ярдовая линия Дартмут 7: довольно легко, если ворота открыты. Если он не открыт, не стоит получать какие-то ужасные травмы при попытке перелезть через забор, который вам затем придется перевязывать своими грубыми пивными руками в колледже, ожидая, пока приедет скорая помощь.

Язык: SQL

Информация: хорошо, у меня также не было возможности пройти этот курс из-за расписания, но от основных друзей CS, которые сделали это, и работали инженером-программистом в реальной жизни, зная, по крайней мере, основы того, как работают базы данных и как писать SQL-запросы в ближайшее время не выйдет из моды. Веб-сайты и приложения часто можно считать прославленными интерфейсами баз данных.

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

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

Программирование смартфона CS 65 (Android)

Сложность: как в последний день поездки. Вы уже прошли через два вонючих дня, но это ваш последний день, и Лодж уже в поле зрения, и, черт возьми, вы можете даже отправиться в поход на рассвете.

Язык: Android Java

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

Минусы: Возможны изменения, но класс может быть неорганизованным из-за постоянного обновления Android API. Также не предлагается для iOS.

CS 77 Графика

Сложность: суета женского общества зимой.

Язык: C++

Плюсы. Хотя поначалу математика может показаться сложной, операторы предопределены, и на уравнения можно ссылаться. Графические баги и ошибки — это феноменальные произведения искусства, и выполнение заданий (рендеринг, анимация и т. д.) чрезвычайно полезно.

Минусы: это определенно специализированный путь программирования, который на самом деле не будет использоваться, если вы не займетесь непосредственно какой-либо графической разработкой или производством, но все же интересно знать.

CS 89, варьируется, приветствуется вычислительное производство

Сложность: игра в команде по софтболу IM.

Язык: C++, различные

Плюсы: к этому моменту вы, вероятно, уже прошли несколько предварительных, выматывающих душу занятий по CS. Факультативы, подобные этим, являются вашей наградой. Вычислительное производство, т.е. 3D-печать и лазерная резка — это бесконечно интересная и развивающаяся область обучения, и этот класс, безусловно, является практическим опытом обучения, который позволяет вам оказывать непосредственное влияние на сообщество в целом.

Минусы: хотя это и не самый сложный класс, он может отнимать много времени. Требует много времени вне занятий в лаборатории, присматривая за 3D-принтерами, пока ваши друзья получают приятный здоровый загар на солнце.

Итак, как степень информатики, полученная в гуманитарной школе, поможет вам в реальной жизни?

Отличный вопрос. Вы не в IT, вы не в Карнеги-Меллон. Но вы учитесь в Дартмуте, а это значит, что вы всесторонне развиты с точки зрения поощрения и необходимости посещать такие предметы, как индейские исследования, в дополнение к вашей специальности. Что довольно круто.

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

CS 1 и 10: отлично сыграйте в понг, успешно пройдите собеседование

CS 30 и 31: успешно пройти собеседование

CS 50: станьте HAXXOR

CS 51: лучше исправляйте ошибки

Не так уж плохо. С CS Minor вы можете многое. По крайней мере, по мере того, как компьютеры все больше укореняются в нашем существовании, базовые знания, которые вы усвоите на курсах CS в Дартмуте, погрузит вас в знания компьютерных наук. Кроме того, разве ты не хочешь оставаться с ним, как маленькая Рози-семимесячная-с-iPad, за которой твой друг присматривает по вечерам в будние дни?

Первоначально опубликовано на blog.lisaluo.com.