Факультатив по информатике 9 класс программирование: Программа элективного курса по информатике «Основы программирования»

Содержание

Программа элективного курса по информатике «Основы программирования»

Элективный курс по информатике и ИКТ «Основы программирования» для обучающихся 9 класса рассчитан на 18 часов (1 час в неделю). Курс ориентирован на предпрофильную подготовку и направлен на изучение языка программирования Паскаль.

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

В данном курсе изучаются основы языка Паскаль, типы данных, базовые алгоритмические структуры (следование, ветвление, циклы), структурное программирование; положена работа с простыми типами данных.

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

д.

За основу элективного курса «Основы программирования» взята программа из книги «Программы для общеобразовательных учреждений: Информатика. 2-11 классы / Составитель М.Н. Бородин. – 7-е изд. – М.: БИНОМ. Лаборатория знаний, 2010».

Цели элективного курса:

  • раскрытие значения программирования и сути профессии программиста;

  • ознакомление учащихся со средой Паскаль и основами программирования;

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

Задачи элективного курса:

  • развитие алгоритмического мышления;

  • знакомство с типовыми алгоритмами: ввод-вывод данных, использование циклов, работа с массивами;

  • знакомство со структурированными типами данных;

  • формирование интереса к изучению профессии, связанной с программированием;

  • профессиональное самоопределение.

Методы обучения

Основным методом обучения в данном курсе является метод проектов. Проектная деятельность позволяет развить исследовательские и творческие способности учащихся. В процессе обучения учитель кратко объясняет новый материал и ставит задачи, а затем консультирует учащихся в процессе решения этих задач.

Организация учебного процесса

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

  • урочная форма, в которой учитель объясняет новый материал (лекции), консультирует учащихся в процессе решения задач, учащиеся защищают практикумы по решению задач;

  • внеурочная форма, в которой учащиеся после занятий (дома или в компьютерном классе) самостоятельно выполняют компьютерные практикумы.

Лекции. Представление учебного материала учащимся проводится в форме лекций. Для лучшего восприятия материала — лекции сопровождаются демонстрацией презентаций.

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

  • Каждому ученику подбираются индивидуальные задачи

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

  • Задачи каждому ученику выдаются адресно. Каждый ученик на разных практикумах имеет разный вариант (сегодня первый, в следующий раз девятый и т. д.) – это тоже важный момент, ориентированный на личность учащегося.

  • Задачи для каждого ученика посильные, т.е. он заведомо уверен в своем успехе.

Текущий контроль уровня усвоения материала осуществляется по результатам выполнения учащимися практикумов по каждому разделу курса.

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

Методы оценивания уровня достижения учащихся

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

для этого необходимо выполнение следующих условий:

  • ни одно задание не должно быть оставлено без проверки и оценивания со стороны преподавателя;

  • результаты проверки должны сообщаться незамедлительно;

  • школьник должен максимально участвовать в процессе проверки выполненного им задания.

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

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

Требования к уровню подготовки учащихся

В результате освоения элективного курса:

обучающиеся должны знать:

  • алгоритмические конструкции, исполнители;

  • основы программирования на одном из языков программирования;

  • общую структуру языка программирования, его синтаксис;

  • правила определения типа переменной и ее описания;

  • правила записи операторов языка, порядок выполнения операций, стандартные и пользовательские функции, записи и выполнения арифметических и логических функций;

  • правила записи на языке программирования условного оператора, оператора выбора, цикла с предусловием, цикла с постусловием, цикла со счётчиком, процедуры, функции;

  • основные приёмы отладки и тестирования программ.

Обучающиеся должны уметь:

  • составлять и записывать программы, используя известные алгоритмические конструкции;

  • распознавать необходимость применения той или иной алгоритмической конструкции при решении задачи;

  • использовать процедуры и функции при решении задач;

  • правильно записывать символы и ключевые слова языка программирования;

  • записывать числовые и логические константы, задавать и описывать переменные;

  • описывать тип и размерность массивов;

  • составлять математическую модель, алгоритм и программу для решения простых задач;

  • понимать листинг, корректировать программу;

  • выводить результаты на дисплей;

  • проводить отладку и тестирование программ.

Содержание курса

Раздел 1. Решение задач с помощью компьютера.

Основные этапы компьютерного решения задач. Постановка задачи и спецификация программы, способы записи алгоритма. Программа на языке высокого уровня. Понятия тестирования и отладки. Критерии качества программы. Диалоговые программы, дружественность интерфейса. Стиль программирования.

Раздел 2. Основы программирования на языке Паскаль

Программа на языке Pascal: структура программы, понятие констант и переменных, типов данных, операторов, процедур и функций. Лексика языка Pascal. Описание синтаксиса языка.

Понятие типа данных. Стандартные простые типы данных. Числовые типы. Тип Boolean. Тип Char. Операции и стандартные функции. Операторы и основные управляющие структуры: итерация, ветвление, повторение. Решение задач с использованием основных управляющих структур. Вложенные циклы.

Учебно-тематический план

п/п

Тема

Количество часов

Решение задач с помощью компьютера

4

Алгоритмические конструкции.

10

Зачетная работа.

4

ИТОГО:

18

9 класс

п/п

Тема

Количество часов

Дата

1

Алфавит языка. Структура программы.

1

2

Типы данных языка Паскаль.

1

3

Простейшие программы. Арифметические выражения.

1

4

Вычисления по известным формулам.

1

5

Выделение цифр в записи числа.

1

6

Полный условный оператор.

1

7

Использование сложных условий.

1

8

Неполный и вложенные условные операторы.

1

9

Оператор варианта (выбора).

1

10

Организация вывода данных по требуемому формату.

1

11

Обработка данных во время ввода.

1

12

Обработка числовых последовательностей.

1

13

Определение максимального и минимального значений во время ввода данных.

1

14

Организация вывода с использованием вложенных циклов.

1

15

Выполнение проекта.

1

16

Выполнение проекта.

1

17

Выполнения проекта.

1

18

Защита проектов.

1

ИТОГО:

18

Техническое и программное обеспечение курса

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

Предпочтительная конфигурация технических и программных средств включает:

  • учебный компьютерный класс. Компьютеры объединены в локальную сеть, имеют доступ к локальному веб-серверу, серверу электронной почты и имеют выход в Интернет;

В качестве дополнительных источников информации по курсу рекомендуются разделы «Справка» в изучаемых компьютерных программах. Выработка навыка самостоятельного изучения программных средств позволит учащимся самостоятельно продолжать образование после окончания данного курса.

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

В процессе обучения используется следующее программное обеспечение:

Список литературы для преподавателей

  1. Информатика Задачник – практикум в 2-х томах/ Под ред. И.Г.Семакина – М.: Бином. Лаборатория знаний, 2009.

  2. Информатика и ИКТ. 9 класс/ Под ред. Н.В. Макаровой.- СПб.: Питер, 2008.

  3. Информатика: весь курс: для подготовки к ЕГЭ/ О.Ю. Заславская./М.: Эксмо, 2009.

  4. ГИА. Информатика. 9 класс. Тематические тестовые задания для подготовки к ГИА / О.В. Ярцева, Е.Н. Цикина. – Ярославль.: Академия развития, 2012.

  5. ГИА – 2011. Экзамен в новой форме: Информатика: 9 класс/ сост. Д.П. Кириенко и др. –М.: АСТ: Артель, 2011

  6. Информатика. Сборник тренировочных вариантов экзаменационных работ. ФИПИ 2012. АСТ, «Астрель» Москва.

  7. Информатика. Сборник тренировочных вариантов экзаменационных работ. ФИПИ 2012. АСТ, «Астрель» Москва.

  8. Готовимся к ГИА. Информатика. 8, 9 класс. Итоговое тестирование в формате экзамена./ Сост. О.В. Ярцева, Е.Н. Цикина. – Ярославль.: Академия развития, 2010.

  9. Материалы информационных ресурсов Интернета.

  10. Сборник задач по программированию. – 2-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2007. – 240 с.: ил.

  1. http://www.computer-museum.ru — учебные материалы по информатике Виртуальный компьютерный музей

  2. http://inf.1september.ru — газета «Информатика» Издательского дома «Первое сентября»

  3. http://comp-science. narod.ru — Дидактические материалы по информатике и математике

  4. http://www.intuit.ru — интернет-университет информационных технологий (ИНТУИТ.ру)

  5. http://www.phis.org.ru/informatika/ — Информатика и информация: сайт для учителей информатики и учеников

  6. http://school87.kubannet.ru/info/ — Информатор: учебно-познавательный сайт по информационным технологиям

  7. http://www.child.ru — Московский детский клуб «Компьютер»

  8. http://www.botik.ru/~robot/ — Негосударственное образовательное учреждение «Роботландия+»

  9. http://www.osp.ru — Открытые системы: издания по информационным технологиям

  10. http://www.orakul.spb.ru/azbuka.htm — Персональный компьютер, или «Азбука PC» для начинающих

  11. http://emc.km.ru — Учебные модели компьютера, или «Популярно о работе компьютера»

  12. http://niac. natm.ru/graphinfo — Энциклопедия компьютерной графики, мультимедиа и САПР

  13. http://www.itdrom.com — Школьный университет: профильное и индивидуальное ИТ-обучение

  14. http://algolist.manual.ru — Учебные материалы по алгоритмизации и программированию Алгоритмы, методы, исходники

  15. http://acm.timus.ru — Задачи соревнований по спортивному программированию с проверяющей системой

  16. http://inform-school.narod.ru — Изучаем алгоритмизацию

  17. http://algorithm.narod.ru — Некоторые математические алгоритмы

Факультативный курс. Информатика. 9 класс. Тематическое планирование.

Классы 9. Учитель Якушева Г.Л.

Количество часов: 68(32–в 1-м полугодии, 36 во втором), в неделю -2часа.

Рабочая программа по факультативному курсу «Информатика и ИКТ» для 9 классов основной школы составлена с целью углубленного изучения учебного материала по отдельным темам предмета в соответствии с федеральным компонентом государственного образовательного стандарта основного общего образования по информатике и ИКТ.  

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

Курс опирается на опыт постоянного применения ИКТ, уже имеющийся у учащихся, дает теоретическое осмысление, интерпретацию и обобщение этого опыта.

№ занятия

Тема занятия

Дата

Кол. часов

Домашнее

задание

Системы счисления (9 часов)

1

Повторение основных понятий позиционных систем счисления

03-07. 09

§1.1.

2

Непозиционные системы счисления.

03-07.09

3

Двоичная система счисления. Двоичная арифметика

10-14.09

§1.1.

4

Перевод целых чисел из 10-ой системы счисления в двоичную и наоборот.

10-14.09

5

Восьмеричная и шестнадцатеричные системы счисления. Перевод целых чисел из 10-ой системы счисления в 8-ю и 16-ю системы счисления

17-21.09

§1. 1.

6

Перевод целых чисел из 2-ой системы счисления в 8-ю и 16-ю системы счисления

17-21.09

7

Перевод дробной части числа из одной системы счисления в другую.

24-28.09

§1.1.

8

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

24-28.09

9

Решение уравнений с неизвестным основанием системы счисления

01-05.10

§1.2.

Математическая логика (10 часов)

10

Основы булевой алгебры. Высказывание. Логические операции: конъюнкция, дизъюнкция, инверсия, исключающая дизъюнкция, импликация, эквиваленция.

 01-05.10

11

Представление высказывания в виде логического выражения

 08-12.10

§1.3.

12

Законы алгебры логики

 08-12.10

13

Приоритетность логических операций

 15-19.10

14

Круги Эйлера

  15-19.10

15

Применение логических операций при формировании запроса в сети Интернет

 22-26. 10

16

Решение логических задач способом построения таблиц истинности для логических выражений

 22-26.10

17

Решение логических задач с использованием правил и законов алгебры логики

 29-02.11

18

Логические элементы.

 29-02.11

§1.3.

19

Триггер, сумматор – изобретения XX века.

 12-16.11

§1.3.

Алгоритмизация и программирование (47 часов)

20

Алгоритмы и исполнители. Способы записи алгоритмов

 12-16.11

§3.1

21

Алгоритм (АЯ) и программа на языке программирования Паскаль.

 19-23.11

§3.2

22

Типы данных. Целый тип данных. Логический тип данных.

 19-23.11

§3.3

23

Версии языка Pascal: Turbo Pascal, Free Pascal, ABC Pascal. Опции меню.

 26-30.11

§3.4

24

Стандартные функции на алгоритмическом языке и на Паскале

 26-30. 11

25

Алгоритмическая конструкция «следование». Программирование линейных алгоритмов.

 02-07.12

§3.4

26

Алгоритм и программа с целочисленными величинами.

  02-07.12

§3.4

27

Этапы решения задачи. Математическое моделирование. Формализация. Компьютерное моделирование.

 10-14.12

28

Программирование как этап решения задачи на компьютере

 10-14.12

§3. 4

29

Практическая работа. Алгоритмическая конструкция «следование». Программирование линейных алгоритмов.

10-14.12

30

Этап формализация: методы разработки: словесный, графический, математический.

 10-14.12

§3.4

31

Алгоритмическая конструкция «ветвление». Полная форма ветвления

 24-28.12

§3.4

32

Сокращённая форма ветвления.

 24-28.12

§3.5

33

. Программирование разветвляющихся алгоритмов. Условный оператор.

 14-18.01.

§3.6

34

Практическая работа. Применение алгоритмической конструкции «ветвление» к решению задач с простым условием. Простой выбор: большее из двух.

 14-18.01.

35

Практическая работа. Применение алгоритмической конструкции «ветвление» к решению задач с составным условием.

 21-25.01

§4.1

36

Решение задач с последовательным ветвлением.

  21-25.01

§4.2

37

Решение задач с вложенным ветвлением. Логические скобки begin – end.

 28.01-01.02

§4.3

38

Создание программ решения линейного уравнения, квадратного и биквадратного уравнений. Составной оператор.

  28.01-01.02

§4.3

39

Многообразие способов записи ветвлений

 04-08.02

40

Выбор оптимального способа решения задачи.

 04-08.02

§4.4

41

Алгоритмическая конструкция «повторение». Цикл с заданным условием продолжения работы.

 11-15.02

42

Программирование циклов с заданным условием продолжения работы. Трассировочная таблица.

 11-15.02

43

Практическая работа. Алгоритмическая конструкция «повторение».

 18-22.02

44

Цикл с заданным условием окончания работы.

 18-22.02

45

Программирование циклов с заданным условием окончания работы.

 25.02-01.03

§4. 5

46

Цикл с заданным числом повторений. Программирование циклов с заданным числом повторений.

  25.02-01.03

§4.6

47

Различные варианты программирования циклического алгоритма

 04-08.03

§4.6

48

Математическая модель конструкции «цикл в цикле». Вложенные циклы.

 04-08.03

§4.6

49

Применение конструкции «цикл» для решения задач с арифметическими и геометрическими прогрессиями.

 11-15.03

§4. 6

50

Цикл ПОКА и цикл ДО для решения одной и той же задачи

 11-15.03

51

Задача: решето Эратосфена

18-22.03

52

Ветвление в цикле, цикл в ветвлении: примеры задач.

18-22.03

53

Табличные величины. Массивы. Вектор и матрица.

 01.04-05.04

54

Одномерные массивы. Структура алгоритма и программы с массивом

 01. 04-05.04

55

Одномерные массивы целых чисел. Описание, заполнение, вывод массива.

 08-12.04

56

Вычисление суммы элементов массива. Последовательный поиск в массиве.                     

 08-12.04

57

Программа с прямоугольным массивом (матрица). Объявление и обработка прямоугольного массива.

 15-19.04

58

Практическая работа. Вычисление суммы элементов прямоугольного массива. Последовательный поиск в прямоугольном массиве.            

 15-19.04

§4.7

59

Работа с двумя массивами

 22-26.04

§4.7

60

Сортировка массива. Способы сортировки массива.

 22-26.04

§4.7

61

Анализ программы: логические и синтаксические ошибки. Отладка и тестирование программы.

 29.04-03.05

62

Вспомогательные алгоритмы. Исполнители Робот, Чертежник, Вычислитель.

  29.04-03.05

63

Программа с процедурой. Конструкция программы.

 06-10.05

64

Практическая работа: процедура в программе

 06-10.05

65

Функции.

 13-17.05

66

Практическая работа: функция в программе

 13-17.05

67 — 68

Резерв. (2 часа)

 20-24.05

Дуванов А. А., Рудь А. В. Азы программирования 5-9 классы. Факультативный курс.

Книга для учителя

Дуванов А. А., Рудь А. В., Семенко В. П. Азы программирования. Факультативный курс. Книга для учителя. — СПб.: БХВ-Петербург, 2005. — 496 c.: ил.
В книге обобщен уникальный многолетний опыт Робогландского сетевого университета по обучению детей программированию. Материал излагается в стиле курса «Азы информатики» и значительно расширяет и углубляет тему программирования, которая в базовом курсе нацелена на общеобразовательные задачи. Повышенное внимание уделяется основам формализации и построения алгоритмов, тестированию и отладке программ. Подробно рассмотрены алгоритмические конструкции: циклы двух видов, ветвление, применение процедур, рекурсия; целый раздел посвящен принципам построения трансляторов.
Изложена методика проведения занятий и турниров по программированию.
Прилагаемый компакт-диск содержит программные среды исполнителей и решения всех заданий учебника и задачника.

Оглавление
Состав комплекта. ……………………………………1
Обращение к читателю………………………………….1
История Кукарачи………………………………………2
История Корректора………………………………..4
Вступление…………………………………7
Программирование к школьном курсе информатики……………………..7
«Азы программирования» и «Азы информатики»………………………….8
Примерный план факультатива…………………………….9
Первый гол обучения…………………………………..9
Второй год обучения…………………………………10
Содержание книги……………………………..11
Авторство задач и решений………………………….12
Авторство иллюстраций……………………..12
Содержание диска………………………………12
Благодарности………………………………14
Исполнители и язык программирования…………………… ……15
Исполнитель Кукарача……………………………………15
Исполнитель Корректор………………………….16
Язык программирования исполнителей……………………………19
ЧАСТЬ I. КУКАРАЧА: МЕТОДИКА ЗАНЯТИЙ И РЕШЕНИЕ ЗАДАЧ……………………….19
Глава 1. Кукарача и его среда обитания…………………………………23
Общие рекомендации и дополнения………………………………..23
Ответы на вопросы и решение задач……………………………..25
1.1. Знакомство с Кукарачей………………………………25
1.3. Задачи……………………………..25
Глава 2. Вася экономит свой груд……………………….29
Общие рекомендации и дополнения…………………………29
Стиль записи программ……………………………….30
Пустоты…………………………………31
Комментарии……………………………………33
Имена процедур…………… ………………………………..33
Когда код нужно оформлять в отдельную процедуру……………………………34
Визуальное отделение процедур……………………………………..35
Ответы на вопросы и решение задач……………………………….36
2.1. Ток — это кот задом наперёд……………………………36
2.2. У компьютера есть память, и это хороню…………………………….37
2.5. Задачи……………………………………………37
Глава 3. Новые команды и их повторение…………………………….42
Общие рекомендации и дополнения……………………………….42
Процедурное программирование…………………………………42
Команда повторения……………………………..42
Интерпретатор программ………………………………43
Классификация ошибок программирования…………………………43
Построение алгоритма……………………………….44
Построение программы. ………………………………..44
Ответы на вопросы и решение задач…………………………………46
3.1. Кукарача говорит «Ах!»………………………………46
3.2. Процедурное программирование…………………………….47
3.3. Команда повторения…………………………..47
3.5. Задачи…………………………………49
Глава 4. Кукарача на распутье…………………………..56
Общие рекомендации и дополнения…………………………..56
Отдельные рекомендации, пояснения и примеры…………………………..58
Переключатели…………………………………….59
Ответы на вопросы и решение задач…………………………………63
4.1. Команда ветвления………………………………….63
4.2. Особые случаи…………………………….65
4.3. Задачи………………………………….67
Глава 5. Другой тип повторения……………………………… …….79
Общие рекомендации и дополнения………………………………….79
Ответы на вопросы и решение задач…………………………………79
5.1. Когда неизвестно число повторений…………………………….79
5.2. Как обмануть интерпретатор……………………………..81
5.3. Задачи……………………………………81
Глава 6. Кукарача хочет укусить себя за хвост…………………………92
Ответы на вопросы и решение задач………………………………92
6.5. Задачи…………………………….92
Глава 7. Решения задач………………………………… 106
Задачи недели 2002/2003 учебного года………………………………….106
Задачи к главе 4………………………………………….106
Задачи к главе 5…………………………………………..118
Задачи к главе 6……………………………………..127
Задачи недели 2003/2004 учебного года. …………………………..134
Задачи к главам 1-3………………………………………….134
Задачи к главам 4-5………………………………….147
Задачи к главе 6……………………………………….175
ЧАСТЬ II. КОРРЕКТОР……………………………………179
Глава 8. Знакомство с исполнителем………………………….181
Корректор и Кукарача………………………………..181

Ввод информации…………………………………….181
Вывод информации……………………………………..181
Память……………………………………………182
Система команд…………………………………………183
Язык программирования…………………………………184
Общие рекомендации………………………………185
Ответы на вопросы и задания…………………………………186
8.1. Корректор и его среда обитания……………….. ………….186
8.2. Попробуем управлять……………………………………….187
8.3. Управление при помощи программы……………………………187
Глава 9. Язык программирования………………………….188
Ответы на вопросы и задания…………………………..188
9.1. Процедурное программирование………………………………….188
9.2. Циклы………………………………..189
9.3. Развилки…………………………..196
9.4. Рекурсия………………………..200
Глава 10. Отладка программ…………………………………205
Ответы на вопросы и задания…………………………………..205
10.2. Синтаксические ошибки………………………………………205
10.3. Ошибки программирования…………………………….207
10.4. Тестирование……………………………………..208
10.5. Задачи……………………………………215
Глава 11. Приёмы программирования Корректора……………………………222
Алгоритмические формулы……………………………………222
Обработка записи известной длины п…………………………….224
Обработка записи неизвестной длины…………………………..225
Поиск объекта, его изменение и возврат в исходное положение…………226
Подсчет двух количеств за один проход…………………………..228
Вставка символа в запись……………………………………..231
Удаление символа из записи……………………………..232
Определение чётности суммы слагаемых……………………………233
Алгоритмические формулы для логических выражений………………………236
Операция И………………………..236
Операция И\ модель с ветвью ИНАЧЕ……………………………….239
Операция ИЛИ…………………………………………241
Ответы на вопросы и задания…….. ……………………………….242
11.1. Как найти конец текста……………………..242
11.2. Как вернуться в исходное место……………………………..247
11.3. Задачи……………………………………251
Глава 12. Арифметика чисел, палочек и символов………………………..265
Структурное программирование и библиотечные процедуры………………..265
Решение задач………………………………267
12.1. Арифметика чисел………………………………….267
12.2. Арифметика палочек…………………………………….271
12.3. Арифметика символов………………………………281
Глава 13. Преобразования, подсчёты, редактирование…………………………293
Решение задач……………………………………………..293
13.1. Длина текста………………………….293
13.2. Корректор оправдывает своё имя………………………..300
Глава 14. Трансляторы. …………………………….312
Ответы на вопросы и решения задач………………………………312
14.1. Проверка объектов……………………………312
14.2. Транслятор для Плюсика………………………………..323
Глава 15. Решения задач………………………………………342
Задачи недели 2002/2003 учебного года……………………………..342
Задачи, рекомендуемые к главам II и 12……………………………..342
Задачи, рекомендуемые к главам 12 и 13……………………………..347
Задачи недели 2003/2004 учебного года……………………………….360
Задачи к главам 8 и 9…………………………………..360
Задачи к главе 10…………………………………………….375
Задачи к главе II……………………………………………392
Задачи к главе 12…………………………………………..403
ЧАСТЬ III. ТРАНСЛЯТОР?.. ЭТО ОЧЕНЬ ПРОСТО!. …………………..425
Глава 16. Язык Бэкуса-Наура………………………………….427
Ответы на вопросы и задания…………………………………..427
Глава 17. Кукарача и лексический анализ выражений……………………..432
Определение 1………………………………………432
Решение задач…………………………………434
17.5. Задачи…………………………………..434
Глава 18. Ах уж эта рекурсия!……………………………448
Удивительная рекурсия……………………………….448
Подводные камни рекурсии…………………………451
Первый камень………………………………451
Второй камень……………………………..452
Третий камешек (в адрес косвенной рекурсии)………………………452
Классификация типов рекурсии……………………………..452
Прямая и косвенная рекурсия……………………………..452
Терминальные и нетерминальные рекурсии. ………………………..455
Решение задач……………………………457
18.2. Задачи…………………………….457
Глава 19. Лексический анализатор в среде Корректора…………………….467
19.2. Задачи…………………………………..467
Глава 20. Построение трансляторов………………………………483
Решение задачи……………………………..483
Задача 2……………………………483

Сроки реализации программы – 3 года, 216 часов.

УЧЕБНО-ТЕМАТИЧЕСКИЙ ПЛАН

I сессия (9 класс)

1. АЛГОРИТМЫ ТЕОРИИ ЧИСЕЛ – 36 ч.

1.1. Алгоритмы над целыми числами

1.2. Арифметика остатков

1.3. Длинная арифметика

1.4. Криптография

II сессия (9 класс)

2. КОМБИНАТОРИКА – 36 ч.

2.1. Базовые идеи комбинаторики

2.2. Рекурсия и рекуррентные соотношения

2.3. Контрольная работа по теме «Комбинаторика»

III сессия (10 класс)

3. КОМБИНАТОРИКА И ТЕОРИЯ ВЕРОЯТНОСТЕЙ. МЕТОД МОНТЕ-КАРЛО – 26 ч.

3.1. Переборные алгоритмы

3.2. Метод Монте-Карло

3.3. Контрольная работа по теме «Комбинаторика и теория вероятностей. Метод Монте-Карло»

4. ТЕОРИЯ ГРАФОВ – 10 ч.

4.1. Классические идеи теории графов

4.2. Алгоритмы на графах

IV сессия (10 класс)

4. ТЕОРИЯ ГРАФОВ – 36 ч.

4.2. Алгоритмы на графах

4.3. Деревья в программировании: построение и использование

4.4. Динамическое программирование

4.5. Контрольная работа по теме «Алгоритмы на графах»

V сессия (10 класс)

5. ВЫЧИСЛИТЕЛЬНАЯ ГЕОМЕТРИЯ – 36 ч.

5.1. Основные геометрические понятия

5.2. Отношения между геометрическими объектами

5.3. Построение выпуклой оболочки

5.4. Задачи с использованием геометрических понятий

5.5. Контрольная работа по теме «Вычислительная геометрия»

VI сессия (11 класс)

6. ЛОГИКА – 18 ч.

6.1. Булева алгебра и построение логических схем

6.2. Алгебра логики

6.3. Контрольная работа по теме «Логика»

7. ЯЗЫКИ И ГРАММАТИКИ – 18 ч.

7.1. Компьютерное представление и обработка формул

7.2. Конечные автоматы

7.3. Машины Тьюринга

7.4. Языковая система Поста

7.5. Контрольная работа по теме «Языки и грамматики»

Требования к получению степени по информатике

Требования к получению степени по информатике

Требования к получению степени в области компьютерных наук




  1. Общее образование и допуск по основным специальностям (55 кредитов)
  2. Основные требования (65 баллов)
  3. Дополнительные требования
  4. Список обязательных курсов C и выше

Примечание. Все курсы рассчитаны на 3 кредита, если не указано иное.
1.Общее образование и допуск к основным требованиям (55 кредитов)

    • Английский язык (9 кредитов)

    ENGL 015S [GWS] Риторика и композиция или ENGL 030S [GWS]
    ENGL 202C [GWS] Эффективное письмо: Техническое письмо
    CAS 100 [GWS] Эффективная речь

    • Математика (10 кредитов)

    MATH 140 * [GQ] Исчисление с аналитической геометрией I (4 кредита)
    MATH 141 * [GQ] Исчисление с аналитической геометрией II (4 кредита)
    MATH 220 [GQ] Матрицы (2 кредита)

    • Компьютерные науки (6 кредитов)

    CMPSC 121 * [GQ] Введение в методы программирования
    CMPSC 122 * Промежуточное программирование

    • Естественные науки

    PHYS 211 [GN] Общая физика: механика (4 кредита)
    Дополнительные 5 кредитов за любые курсы с суффиксом GN (Рекомендуется PHYS 212)

    • Arts
    6 кредитов любых курсов с суффиксом GA

    • Гуманитарные науки
    6 кредитов любых курсов с суффиксом GH

    • Социальные и поведенческие науки
    6 кредитов любых курсов с суффиксом GS

    • Здоровье и физическая активность
    3 кредита любых курсов с суффиксом ГСГ

    * Студенты, изучающие информатику, должны получить по этому курсу оценку C или выше.
    † Студенты могут применять правило 9-6-3.


2. Основные требования (65 баллов)
    • Обязательные курсы информатики (36 кредитов) †
    CMPSC 221 Объектно-ориентированное программирование с использованием веб-приложений
    CMPSC 312 Компьютерная организация и архитектура
    CMPSC 360 * Дискретная математика для компьютерных наук
    CMPSC 430 Дизайн базы данных
    CMPSC 460 Принципы языков программирования
    CMPSC 462 Структуры данных
    CMPSC 463 Разработка и анализ алгоритмов
    CMPSC 469 Формальные языки с приложениями
    CMPSC 470 Конструкция компилятора
    CMPSC 472 Основные понятия операционной системы
    CMPSC 487 Вт Разработка и дизайн программного обеспечения
    CMPSC 488 Проект информатики
    • Обязательные курсы математики (3 кредита)
    Выберите один курс из следующих.
    СТАТ 301 Статистический анализ I
    СТАТУС 318 Элементарная вероятность
    MATH 318 Элементарная вероятность

    * Студенты, изучающие информатику, должны получить по этому курсу оценку C или выше.
    † Студенты должны получить средний балл 2,5 или выше на обязательных курсах информатики.
    • Технические факультативы (15 кредитов)
    Выберите не менее 15 кредитов из следующих. Другие курсы выбираются после консультации с консультантом и утверждение программы. По крайней мере 9 из этих технических факультативных кредитов должны быть получены с курсов с префиксом CMPSC.
    CMPSC 313 Программирование на языке ассемблера
    CMPSC 412 Лаборатория структур данных (1. 5 кредитов)
    CMPSC 413 Лаборатория алгоритмов (1,5 кредита)
    CMPSC 414 Соревнования по программированию (1 кредит)
    CMPSC 421 Сетевые вычисления
    CMPSC 426 Объектно-ориентированный дизайн
    CMPSC 428 Программирование на Аде
    CMPSC 438 Архитектура и программирование компьютерных сетей
    CMPSC 441 Искусственный интеллект
    CMPSC 444 Безопасное программирование
    CMPSC 445 Прикладное машинное обучение в науке о данных
    CMPSC 455 Введение в численный анализ I
    CMPSC 457 Алгоритмы компьютерной графики
    CMPSC 475 Программирование мобильных приложений
    CMPSC 496 Независимые исследования
    CMPSC 497 Специальные темы
    MATH 401 Введение в анализ I
    MATH 411 Обыкновенные дифференциальные уравнения
    MATH 412 Ряды Фурье и уравнения в частных производных
    MATH 425 Введение в исследование операций
    MATH 430 Линейная алгебра и дискретные модели I
    MATH 431 Линейная алгебра и дискретные модели II
    МАТЕМАТИЧЕСКАЯ 435 Базовая абстрактная алгебра
    MATH 449 Прикладные обыкновенные дифференциальные уравнения
    MATH 450 Математическое моделирование
    MATH 455 Введение в численный анализ I
    МАТЕМАТИЧЕСКАЯ 465 Теория чисел
    MATH 468 Математическая теория кодирования
    MATH 485 Теория графов
    MATH 496 Независимые исследования
    MATH 497 Специальные разделы математики

    • Дополнительные факультативы (11 кредитов)
    6 кредитов за курсы уровня 300-400 и 5 кредитов за курсы уровня 100-400 должны быть выбраны после консультации с консультантом и после утверждения программы.


3. Дополнительные требования
  • Первый год семинара, 1 кредит любого курса с S, T, X, или PSU обозначения. Это требование обычно выполняется по ENGL 015S или ENGL 030S.
  • Требования к культуре США и интернациональной культуре: 3 балла любого курс с US обозначение и 3 кредита любой курс с IL обозначение.Их можно удовлетворить одновременно с любое из вышеперечисленных требований или любой курс в соответствии с требованиями степени.
  • CMPSC 487W соответствует требованию Writing Across the Curriculum, что является обязательным курс по программе получения степени COMP.

4. Список обязательных курсов C и выше

Студенты, изучающие информатику, должны получить оценку C или выше по следующим курсам:



Требования к компьютерным наукам — компьютерные науки

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

Учебный план программы бакалавриата состоит из восьми обязательных курсов (25 кредитов) и пяти курсов по выбору (15 кредитов). Это составляет в общей сложности 40 кредитов по информатике. В их числе:

  • Последовательность программирования из трех курсов: CS 0401, CS 0445 и CS 1501 (10 кредитов).
  • Последовательность систем из трех курсов: CS 0447, CS 0449 и CS 1550 (9 кредитов).
  • Последовательность из двух курсов по дискретной математике и теоретической информатике: CS 0441 и CS 1502.

Пять факультативных курсов, необходимых для основной специальности, могут быть любым обычным курсом CS с номером 1000 или выше (стажировки, целевые исследования, CS 1640 и курсы CS Capstone НЕ могут использоваться в качестве основных курсов по выбору).

Студенты должны иметь некоторый опыт программирования (обычно приобретаемый в средней школе), прежде чем брать CS 0401. Подойдет любой курс средней школы, который включает написание нескольких программ на языках Pascal, C ++ или Java. Также можно пройти один из курсов отдела программирования, например CS 0007 или CS 0008, в качестве подготовки к CS 0401.

Пять классов уровня 0400 составляют «основные курсы». Они обеспечивают введение в фундаментальные области и основные концепции информатики. Эти курсы включают изучение современных языков, таких как Java. Также включено тщательное исследование фундаментальных методов решения проблем, используемых для решения важного разнообразия вычислительных задач. В идеале, департамент рекомендует студенту пройти большую часть или все основные курсы перед тем, как начать курсы уровня 1000. Типичная последовательность, которая завершает ядро ​​информатики:

  • 1 st термин: CS 0401, CS 0441
  • 2 nd термин: CS 0445, CS 0447
  • 3 rd термин: CS 0449

Курсы высшего уровня (1000+) предоставляют более подробную информацию о различных областях информатики. Некоторые из рассматриваемых областей включают компьютерные алгоритмы, архитектуру, искусственный интеллект, базы данных, графику, сети, операционные системы, языки программирования, программную инженерию и теорию.

Предварительные и дополнительные требования см. На странице с описанием курсов.

Все курсы информатики должны быть завершены с оценкой C или выше.

Перед выпуском все специальности CS должны соответствовать требованиям Capstone Experience, выполнив один из следующих вариантов:

  • Завершение направленного исследования CS (CS 1950)
  • Завершение стажировки CS (CS 1900)
  • Завершение проекта CS Capstone (CS 1980, CS 1981)
  • Завершение не менее двух кооперативных ротаций (ENGR 1093)

Помимо требований по информатике, необходимы три курса (11–12 кредитов) по математике.Это включает в себя двухсеместровую последовательность расчетов (MATH 0220 и MATH 0230), а также курс вероятностей и статистики (STAT 1000, STAT 1100 или STAT 1151), каждый из которых завершен с оценкой «C» или выше. Эти курсы обеспечивают уровень математической зрелости, необходимый для изучения информатики.

Важные примечания к специальности «Компьютерные науки»

Ограничения

Специальности

(и студенты, завершившие CS 0401) — это , а не , которым разрешено поступать в CS 0004, CS 0007, CS 0008, CS 0009 или CS 0301.Специалисты по информатике могут записаться на сервисные курсы среднего уровня (CS 0090, CS 0155, CS 0134, CS 0334 и CS 0699) и сдать их на буквенную оценку. Однако эти курсы не будут учитываться при учете требований к курсу CS или GPA.

Требования к классам для курсов по специальности

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

Требования к специальности «Компьютерные науки» с отличием

Чтобы получить диплом с отличием, специалист по информатике должен пройти один дополнительный курс высшего уровня и иметь средний балл не ниже 3. 5 на основных курсах и общий средний балл не ниже 3,25. Студент не может использовать независимое обучение или стажировку в качестве дополнительного курса высшего уровня.

Двойной мажор

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

Аспирантура

Студент бакалавриата по информатике может записаться в выпускной класс CS и получить кредит на один из пяти обязательных курсов высшего уровня.Требуется разрешение инструктора.

Связанная территория

Учащийся, специализирующийся на информатике, может завершить смежную область математики, взяв 12 кредитов по математике. Курс алгебры, тригонометрии или предвычисления НЕ может использоваться как часть связанной области. Студенты, специализирующиеся на информатике, также выбирают родственные области из многих других областей. Часто выбираемые области включают экономику и бизнес, химию, физику, психологию и философию.

Опция классификации S / NC

Все курсы CS для основной специализации должны проходить на буквенной основе.Курсы математики, необходимые для основной специальности, могут быть взяты на удовлетворительной основе / без кредитов.

Кредит на экзамене

Кредит для CS. 0401 выдается за результат 4 или 5 баллов по тесту AP по информатике. Кредит за экзамен недоступен для других курсов CS.

Консультации и регистрация

Учащийся, намеревающийся изучать информатику, получает рекомендации Консультационного центра Школы искусств и наук Дитриха до прохождения четырех основных курсов CS (обычно это CS 0401, CS 0441, CS 0445 и CS 0447).Перед завершением четырех курсов студент также может встретиться с директором программ бакалавриата. См. Страницу с образцом плана для образца четырехлетней программы.

W Курсы

Некоторые курсы информатики будут предлагаться за кредит W в течение некоторых сроков.

CS и связанные с ними курсы бакалавриата | Университет Карнеги-Меллона

Исправлено в августе 2016 г.

Перечисленные ниже курсы подходят для специальностей информатики, так как обязательных курсов или ограниченных факультативов .См. Каталог бакалавриата для получения информации о дополнительных курсах SCS, включая доступные факультативы.

КОМПЬЮТЕРНЫЕ НАУКИ

15-050 Обучение за границей
Осень и весна
Студенты, которые заинтересованы в обучении за границей, должны сначала обратиться в Управление международного образования. Более подробная информация об обучении за рубежом доступна на странице «Обучение за рубежом» МЭБ и в офисе бакалавриата CS.

15-075 Co-Op по информатике
Осень и весна
Этот курс предназначен для студентов бакалавриата CS, проходящих дневную стажировку, которая включает в себя летний и непрерывный семестр, весна-лето или лето-осень, которые желают получить этот курс. записаны в их академической справке.Единицы, опубликованные для этого курса, не засчитываются в счет каких-либо требований для получения степени бакалавра CS, включая бесплатные факультативные единицы. Этот курс недоступен для иностранных студентов; проконсультируйтесь с Управлением международного образования для получения дополнительной информации.

15-090 Практикум по информатике
Лето: 3 единицы
Этот курс предназначен для студентов, изучающих информатику, которые хотят пройти стажировку в рамках своей учебной программы. Студенты должны написать сводное заявление на одной странице до регистрации, в котором объясняется, как их стажировка связана с их учебной программой в области CS, в частности, как она использует материал, который они изучили, а также готовит их к будущим курсам.Ближе к концу стажировки студенты должны будут предоставить аналитическую работу, в которой более подробно описывается проделанная ими работа, включая уроки, извлеченные из опыта работы и того, как они использовали свое образование в области информатики для эффективной работы. Иностранным студентам перед регистрацией следует проконсультироваться с Управлением международного образования относительно соответствующих документов и дополнительных требований. Заработанные единицы засчитываются в общее количество единиц, необходимых для получения степени; Студенты должны поговорить с научным руководителем для получения подробной информации.Этот курс можно пройти не более 3 раз, всего не более 9 единиц. Студенты обычно регистрируются на этот курс для использования в течение летнего семестра.

15-112 Основы программирования и информатики
Осень и весна: 12 единиц
Техническое введение в основы программирования с упором на создание четкого, надежного и достаточно эффективного кода с использованием нисходящего проектирования, неформального анализа и эффективного тестирование и отладка. Начиная с первых принципов, мы рассмотрим большое подмножество языка программирования Python, включая его стандартные библиотеки и парадигмы программирования.Мы также будем нацелены на многочисленные сценарии развертывания, включая автономные программы, сценарии оболочки и веб-приложения. Этот курс не предполагает никакого предыдущего опыта программирования. Тем не менее, это стремительная и тщательная подготовка к 15–122 годам. Студентам, которым требуется более мягкое введение в информатику, следует сначала взять 15-110. ПРИМЕЧАНИЕ: учащиеся должны достичь C или выше, чтобы использовать этот курс, чтобы выполнить предварительные условия для любого последующего курса компьютерных наук.

15-122 Принципы императивных вычислений
Осень и весна: 10 единиц
Для студентов с базовым пониманием программирования (переменные, выражения, циклы, массивы, функции).Обучает императивному программированию и методам обеспечения корректности программ. Студенты изучат процесс и концепции, необходимые для перехода от высокоуровневого описания алгоритмов к правильным императивным реализациям, с конкретным приложением к базовым структурам данных и алгоритмам. Большая часть курса будет проводиться на подмножестве C, поддающемся проверке, с переходом к полному C ближе к концу. Этот курс готовит студентов к возрасту 15-213 и 15-210 лет. ПРИМЕЧАНИЕ: учащиеся должны достичь C или выше, чтобы использовать этот курс, чтобы выполнить предварительные условия для любого последующего курса компьютерных наук. Необходимое условие: 15-112. Необходимое условие: 21–127 или 15–151.

15-128 Иммиграционный курс для первокурсников (Питтсбург)
Осень: 1 блок
Иммиграционный курс для первокурсников изучается студентами первого семестра по информатике в кампусе Питтсбурга. Курс предназначен для ознакомления поступающих на специальности с информатикой в ​​CMU. Разговоры варьируются от исторических перспектив в этой области до описаний передовых исследований, проводимых в Школе компьютерных наук. Набор ограничен ТОЛЬКО первокурсниками SCS в Питтсбурге.

15-129 Иммиграционный курс для первокурсников II (Доха, Катар)
Осень: 3 единицы
Этот курс предлагается ТОЛЬКО в Карнеги-Меллон в Катаре. Студенты и преподаватели будут решать разные задачи каждую неделю, ища ответы в Интернете и других местах. Задачи будут представлены другим преподавателем, который оценит качество ответов. Студенты изучат стратегии и методы более эффективного поиска информации в Интернете; узнайте, когда начинать работу с поисковой системой, тематическим каталогом или другими инструментами; изучить и попрактиковаться в использовании расширенного синтаксиса поиска для основных поисковых систем; опыт работы со специализированными поисковыми машинами для изображений, звука, мультимедиа, группами новостей и списками обсуждений, а также с тематическими поисковыми машинами; откройте для себя ценные ресурсы, которые помогут вам быть в курсе последних событий в этой быстро меняющейся среде.

15-131 Великие практические идеи в области компьютерных наук (Питтсбург)
Осень: 2 единицы
ЭТОТ КУРС ОТКРЫТ ДЛЯ CS FRESHMAN ТОЛЬКО В ПИТТСБУРГЕ. На протяжении всего вашего обучения в качестве компьютерного ученого в Карнеги-Меллон вы будете проходить курсы по программированию, теоретическим идеям, логике, системам и т. Д. По мере вашего прогресса вы должны будете овладеть так называемыми «инструментами торговли». Этот курс предназначен для того, чтобы помочь вам узнать то, что вам нужно знать, в дружеской, спокойной и поддерживающей форме.Мы обсудим UNIX, LaTeX, отладку и многие другие важные инструменты. Требуется ноутбук. (Ноутбуки будут доступны для тех, у кого нет собственных ноутбуков.)

15-150 Принципы функционального программирования
Осень и Весна: 10 шт.
Введение в программирование, основанное на «функциональной» модели вычислений. Функциональная модель является естественным обобщением алгебры, в которой программы представляют собой формулы, которые описывают результат вычисления в терминах его входных данных, то есть как функцию.Но вместо того, чтобы ограничиваться действительными или комплексными функциями, функциональная модель расширяет алгебраическое представление до очень богатого класса типов данных, включая не только агрегаты, построенные из других типов, но и сами функции как значения. Этот курс представляет собой введение в программирование, в котором основное внимание уделяется центральным понятиям функции и типа. Одна из основных тем — взаимодействие между индуктивными типами, которые создаются постепенно; рекурсивные функции, которые вычисляют по индуктивным типам путем декомпозиции; и доказательство структурной индукцией, которое используется для доказательства правильности и временной сложности рекурсивной функции.Другой важной темой является роль типов в структурировании больших программ в отдельные модули и интеграция императивного программирования посредством введения типов данных, значения которых могут изменяться во время вычислений. ПРИМЕЧАНИЕ: учащиеся должны достичь C или выше, чтобы использовать этот курс, чтобы выполнить предварительные условия для любого последующего курса компьютерных наук. Предварительные требования: (21-127 или 15-151) и (15-112).

15-151 Математические основы информатики
Осень: 10 единиц
Этот курс предлагается новичкам в области компьютерных наук и фокусируется на фундаментальных концепциях математики, представляющих особый интерес для компьютерных наук, таких как логика, множества, индукция, функции и комбинаторика. Эти темы используются в качестве контекста, в котором студенты учатся формализовать аргументы, используя методы математического доказательства. Этот курс использует эксперименты и сотрудничество как способы лучше понять материал. Открыт только для первокурсников CS (осень 2012 г. и осень 2013 г.). ПРИМЕЧАНИЕ: учащиеся должны достичь C или выше, чтобы использовать этот курс, чтобы выполнить предварительные условия для любого последующего курса компьютерных наук.

15-210 Параллельные и последовательные структуры данных и алгоритмы
Осень и весна: 12 единиц
Обучает студентов тому, как проектировать, анализировать и программировать алгоритмы и структуры данных.Курс подчеркивает параллельные алгоритмы и анализ, а также то, как последовательные алгоритмы можно рассматривать как особый случай. Курс включает в себя более теоретическое содержание анализа алгоритмов, чем 15-122 и 15-150, но при этом включает значительный компонент программирования и охватывает множество практических приложений, таких как проблемы анализа данных, графики, обработки текста и вычислительных наук. ПРИМЕЧАНИЕ: учащиеся должны достичь C или выше, чтобы использовать этот курс, чтобы выполнить предварительные условия для любого последующего курса компьютерных наук. Предварительные требования: 15-122 и 15-150.

15-213 Введение в компьютерные системы
Осень и весна: 12 единиц
Этот курс дает представление программиста о том, как компьютерные системы выполняют программы, хранят информацию и взаимодействуют. Это позволяет студентам стать более эффективными программистами, особенно в решении вопросов производительности, переносимости и надежности. Он также служит основой для курсов по компиляторам, сетям, операционным системам и компьютерной архитектуре, где требуется более глубокое понимание проблем системного уровня.В число рассматриваемых тем входят: машинный код и его генерация путем оптимизации компиляторов, оценка и оптимизация производительности, компьютерная арифметика, организация памяти и управление ею, сетевые технологии и протоколы, а также поддержка параллельных вычислений. ПРИМЕЧАНИЕ: учащиеся должны достичь C или выше, чтобы использовать этот курс, чтобы выполнить предварительные условия для любого последующего курса компьютерных наук. Необходимое условие: 15-122.

15-214 Принципы построения программного обеспечения: объекты, проектирование и параллелизм
Осень и весна: 12 единиц
Сегодня инженеры-программисты с меньшей вероятностью будут разрабатывать структуры данных и алгоритмы с нуля и с большей вероятностью будут строить системы из компонентов библиотеки и фреймворка.В этом курсе студенты знакомятся с концепциями, связанными с построением программных систем в масштабе, основываясь на своем понимании основных строительных блоков структур данных, алгоритмов, программных структур и компьютерных структур. Курс охватывает технические темы в четырех областях: (1) концепции проектирования сложных систем, (2) объектно-ориентированное программирование, (3) статический и динамический анализ программ и (4) параллельное и распределенное программное обеспечение. Задания учащихся предполагают использование сложного программного обеспечения, такого как распределенные многопользовательские игровые системы и фреймворки для графического взаимодействия с пользователем.Требования: (15-121 или 15-122) и (21-127 или 15-151).

15-221 Технические коммуникации для компьютерных ученых (Доха, Катар)
Весна: 9 единиц
Курс разработан для второкурсников в области информатики с целью улучшения их способностей в практическом, профессиональном общении (как письменном, так и устном). Он направлен на то, чтобы помочь студентам составлять четкие, краткие технические работы и устные презентации для многоуровневой аудитории. Задания включают технические определения, описания, инструкции, объяснения процессов, рефераты, заметки и отчеты об исследованиях.Задания могут включать в себя недавние исследования в области компьютерных наук в Карнеги-Меллон, проекты соответствующих технических курсов и профессиональные тематические исследования. Второкурсники, вероятно, сочтут курс более полезным, если они прошли стажировку или исследования под руководством преподавателей, включая проекты SURG, до зачисления. Требование: 76-101.

15-251 Великие теоретические идеи в информатике
Осень и весна: 12 единиц
Этот курс посвящен тому, как использовать теоретические идеи для формулирования и решения задач в информатике.Он объединяет математический материал с общими методами решения проблем и приложениями информатики. Примеры взяты из алгоритмов, теории сложности, теории игр, теории вероятностей, теории графов, теории автоматов, алгебры, криптографии и комбинаторики. Задания включают как математические доказательства, так и программирование. ПРИМЕЧАНИЕ: учащиеся должны достичь C или выше, чтобы использовать этот курс, чтобы выполнить предварительные условия для любого последующего курса компьютерных наук. Предварительные требования: (15-112) и (21-127 или 15-151).

15-300 Исследования и инновации в области компьютерных наук
Осень: 9 единиц
Курс этой осени — первая часть из двух курсов, которые призваны помочь студентам изобрести будущее передовых технологий в этой области. информатики. Темы курса будут включать в себя следующее: обзор важных вещей, которые нужно знать о том, как исследования и инновации работают в области информатики; обзор современных передовых исследований в области компьютерных наук, как здесь, в Карнеги-Меллон, так и в других местах; навыки критического мышления при чтении расходящихся друг с другом научных публикаций; стратегии решения открытых проблем; и технические коммуникативные навыки для компьютерных ученых.Студенты также встретятся с наставником факультета для потенциального проекта технологических инноваций (который будет реализован весной), составят подробный план атаки для этого проекта и начнут набирать скорость (включая фоновое чтение и т. Д.) . Этот курс может быть использован для удовлетворения требований технических коммуникаций для специализации CS. Пререквизиты: 15-210. 15-213. 15-251 и 76-101.

15-312 Основы языков программирования
Spring: 12 модулей
В этом курсе подробно обсуждаются многие концепции, лежащие в основе дизайна, определения, реализации и использования современных языков программирования. Формальные подходы к определению синтаксиса и семантики используются для описания фундаментальных концепций, лежащих в основе языков программирования. Охватываются различные парадигмы программирования, такие как императивное, функциональное, логическое и параллельное программирование. В дополнение к формальным исследованиям, опыт программирования на языках используется, чтобы проиллюстрировать, как разные цели дизайна могут привести к радикально разным языкам и моделям вычислений. Пререквизиты: 15-210 и 15-251.

15-313 Основы программной инженерии
Осень: 12 единиц
Студенты знакомятся с основами современной программной инженерии.Сюда входят как основные технические знания CS, так и средства, с помощью которых эти знания могут быть применены в практической разработке сложного программного обеспечения. Темы, связанные с программными артефактами, включают модели проектирования, шаблоны, кодирование, статический и динамический анализ, тестирование и инспекцию, измерения, а также архитектуру и фреймворки программного обеспечения. Темы, связанные с программным процессом, включают моделирование, разработку требований, модели и оценку процессов, командную разработку и вопросы цепочки поставок, включая аутсорсинг и открытый исходный код.Этот курс имеет сильную техническую направленность и будет включать письменные задания и задания по программированию. Студенты получат опыт работы с современными инструментами программной инженерии. Требование: 15-214.

15-317 Constructive Logic
Осень: 9 единиц
Этот междисциплинарный курс для младших школьников предназначен для всестороннего введения в современную конструктивную логику, ее корни в философии, ее многочисленные приложения в информатике и ее математические свойства. Некоторые из тем, которые будут охвачены, — это интуиционистская логика, индуктивные определения, функциональное программирование, теория типов, реализуемость, связи между классической и конструктивной логикой, разрешимые классы.Требование: 15-150.

15-322 Введение в компьютерную музыку
Осень: 9 шт.
Компьютеры используются для синтеза звука, обработки сигналов и сочинения музыки. Персональные компьютеры заменили студии, заполненные оборудованием для записи и обработки звука, завершив революцию, начавшуюся с записи и электроники. В этом курсе студенты изучат основы цифрового звука, основные алгоритмы синтеза звука и методы для цифровых звуковых эффектов и обработки. Студенты будут применять свои знания в заданиях по программированию, используя язык программирования очень высокого уровня для синтеза и композиции звука.В заключительном проекте учащиеся продемонстрируют свое владение инструментами и техниками посредством музыкальной композиции или применения важной техники обработки звука. Требование: 15-112.

15-323 Компьютерные музыкальные системы и обработка информации
Spring: 9 единиц
В этом курсе представлены концепции и методы представления и обработки дискретной музыкальной информации как в реальном времени, так и в автономном режиме. Будут представлены представления музыки в виде явно заданных по времени последовательностей событий, и студенты узнают, как создавать эффективные системы времени выполнения для планирования событий, управления темпом и интерактивной обработки. Протокол MIDI используется для сбора информации об исполнении в реальном времени и для генерации звука. Курс также будет охватывать обработку музыкальных данных не в режиме реального времени, включая модели Маркова, распознавание стилей, компьютерное сопровождение, пошаговое напевание и алгоритмическую композицию. Этот курс является независимым от курса 15-322, Введение в компьютерную музыку, который фокусируется на синтезе звука и обработке сигналов, и дополняет его. Требование: 15-122.

15-354 Вычислительная дискретная математика
Осень: 12 единиц
Этот курс посвящен вычислительным аспектам некоторых стандартных концепций дискретной математики (отношения, функции, логика, графики, алгебра, автоматы) с упором на эффективные алгоритмы.Начнем с краткого введения в вычислимость и вычислительную сложность. Другие темы включают: итерацию, орбиты и фиксированные точки, отношения порядка и эквивалентности, логику высказываний и проверку выполнимости, конечные поля и последовательности регистров сдвига, конечные автоматы и клеточные автоматы. Вычислительная поддержка некоторых материалов доступна в виде пакета Mathematica. Пререквизиты: 15-251 или 21-228.

15-355 Современная компьютерная алгебра
Весна: 9 единиц
Цель этого курса — исследовать взаимосвязь между алгеброй и вычислениями.Курс предназначен для ознакомления студентов с алгоритмами, используемыми для символьных вычислений, а также с концепциями современной алгебры, которые применяются при разработке этих алгоритмов. Этот курс представляет собой практическое введение во многие из наиболее важных идей, используемых в символьных математических вычислениях, которые включают решение системы полиномиальных уравнений (через базис Грёбнера), аналитическое интегрирование и решение линейных разностных уравнений. На протяжении всего курса для вычислений будет использоваться система компьютерной алгебры Mathematica.Требование: 15-251.

15-359 Вероятность и вычисления
Раз в три семестра: 12 единиц
Теория вероятностей стала незаменимой в информатике. В таких областях, как искусственный интеллект и теория информатики, вероятностные методы и идеи, основанные на рандомизации, занимают центральное место. В других областях, таких как сети и системы, вероятность становится все более полезной основой для обработки неопределенности и моделирования шаблонов данных, которые возникают в сложных системах.Этот курс дает введение в вероятность, поскольку она используется в теории и практике информатики, опираясь на приложения и текущие исследовательские разработки в качестве мотивации и контекста. Темы включают комбинаторную вероятность и случайные графы, распределения с тяжелым хвостом, неравенства концентрации, различные рандомизированные алгоритмы, выборку случайных величин и компьютерное моделирование, а также цепи Маркова и их многочисленные приложения, от поисковых систем до моделей сетевых протоколов. Курс предполагает знакомство с трехмерным исчислением и линейной алгеброй.Пререквизиты: 15-251, 21-241 и 21-259.

15-381 Искусственный интеллект: представление и решение проблем
Осень: 9 единиц
Этот курс посвящен теории и практике искусственного интеллекта. Мы изучим современные методы, с помощью которых компьютеры могут представлять информацию, относящуюся к задаче, и принимать разумные (т.е. удовлетворительные или оптимальные) решения для достижения целей. Методы поиска и решения проблем применимы в широком спектре промышленных, гражданских, медицинских, финансовых, роботизированных и информационных систем.Мы будем исследовать такие вопросы о системах ИИ, как: как представлять знания, как эффективно генерировать соответствующие последовательности действий и как искать среди альтернатив, чтобы найти оптимальные или почти оптимальные решения. Мы также узнаем, как справляться с неопределенностью в мире, как учиться на опыте и как изучать правила принятия решений на основе данных. Мы ожидаем, что к концу курса студенты будут иметь полное представление об алгоритмических основах ИИ, о том, как вероятность и ИИ тесно взаимосвязаны и как обучаются автоматизированные агенты.Мы также ожидаем, что студенты получат четкое представление об общих аспектах разработки полностью автономных интеллектуальных агентов. На других лекциях будут представлены дополнительные аспекты ИИ, включая обработку естественного языка, поисковые системы в Интернете, промышленные приложения, автономную робототехнику и принятие экономических / теоретико-игровых решений. Требование: 15-122.

15-400 Исследовательский практикум в области компьютерных наук
Весна: 12 единиц
Этот весенний курс является второй частью серии из двух курсов, которые призваны помочь студентам изобрести новейшие достижения в области компьютерных технологий. Информатика.Основываясь непосредственно на 15-300 (предварительное условие для этого курса), студенты будут проводить независимый исследовательский проект на протяжении семестра под руководством как сотрудников курса, так и наставника проекта факультета. Курс не подходит для лекций или декламаций. Вместо этого студенты будут проводить свое время, работая над своими исследовательскими проектами, а также будут встречаться с сотрудниками курса каждые две недели, чтобы обсудить свой прогресс. Студенты подготовят письменный отчет и плакатную презентацию в конце семестра, чтобы описать, чего они достигли.Требование: 15-300.

15-410 Разработка и внедрение операционных систем
Осень и весна: 12 штук
Разработка и внедрение операционных систем — это подробное практическое введение в принципы и практику работы с операционными системами. Основной опыт заключается в написании небольшого ядра ОС, вдохновленного Unix, на языке C с некоторым языком ассемблера x86, которое запускается на симуляторе оборудования ПК (и на реальном оборудовании ПК, если хотите). Работа выполняется в группах из двух человек, при этом особое внимание уделяется навыкам «командного программирования» (контроль версий, модульность, документация).Размер и объем заданий по программированию обычно приводят к тому, что учащиеся значительно развивают свои навыки проектирования, реализации и отладки. Основные концепции включают модель процесса, виртуальную память, потоки, синхронизацию и взаимоблокировку; В курсе также рассматриваются темы ОС более высокого уровня, включая файловые системы, межпроцессное взаимодействие, сетевое взаимодействие и безопасность. Студентам, особенно аспирантам, которые не выполнили предварительное условие в Карнеги-Меллон, настоятельно рекомендуется — чтобы войти в класс, вы должны уметь написать распределитель памяти на C, использовать отладчик, понимать арифметику с дополнением до 2 и переводить между C и ассемблер x86.Инструктор может потребовать от вас выполнить упражнение по оценке навыков до первой недели семестра, чтобы оставаться зарегистрированным в классе. Аудит: этот курс обычно полон, и мы обычно получаем гораздо больше запросов на аудит, чем можем принять. Если вы хотите проводить аудит, попросите своего консультанта связаться с нами до начала семестра, чтобы обсудить ваши образовательные цели. Требование: 15-213.

15-411 Дизайн компилятора
Осень: 12 единиц
Этот курс охватывает проектирование и реализацию компилятора и систем времени выполнения для языков высокого уровня, а также исследует взаимодействие между дизайном языка, дизайном компилятора и организацией времени выполнения. Рассматриваемые темы включают синтаксический и лексический анализ, обработку определяемых пользователем типов и проверку типов, анализ контекста, генерацию и оптимизацию кода, а также управление памятью и организацию времени выполнения. Требование: 15-213.

15-414 Выявление ошибок: автоматическая проверка и тестирование программ
Осень: 9 единиц
Многие студенты CS и ECE будут разрабатывать программное и аппаратное обеспечение, которое в какой-то момент своей карьеры должно быть сверхнадежным. Логические ошибки в таких конструкциях могут быть дорогостоящими и даже опасными для жизни.Уже был ряд широко известных ошибок, таких как ошибка с плавающей запятой Intel Pentium и сбой Arian 5. В этом курсе мы изучим инструменты для поиска и предотвращения логических ошибок. Будут изучены три типа инструментов: автоматическое доказательство теорем, методы исследования состояния, такие как проверка модели, и инструменты, основанные на статическом анализе программ. Хотя студенты изучат теоретические основы таких инструментов, акцент будет сделан на их практическом использовании на реальных примерах. Пререквизиты: 15-122 и 15-251.

15-415 Приложения баз данных
Осень: 12 единиц
Этот курс охватывает фундаментальные темы для систем управления базами данных: принципы архитектуры системы баз данных (свойства ACID; абстракция данных; внешние, концептуальные и внутренние схемы; независимость данных; определение данных и манипулирование данными языков), модели данных (сущность-отношения и реляционные модели данных; структуры данных, ограничения целостности и операции для каждой модели данных; языки реляционных запросов: SQL, алгебра, исчисление), теория проектирования баз данных (функциональные зависимости; нормальные формы; зависимость сохранение; потеря информации), оптимизация запросов (эквивалентность выражений, алгебраические манипуляции; оптимизация выборок и объединений), стратегии хранения (индексы, B-деревья, хеширование), обработка запросов (выполнение операторов сортировки, объединения и агрегации) и Обработка транзакций (восстановление и контроль параллелизма). Предпосылка: 15-210 или 15-213.

15-418 Архитектура и программирование параллельных компьютеров
Осень и весна: 12 единиц
Фундаментальные принципы и инженерные компромиссы, связанные с проектированием современных параллельных компьютеров, а также методы программирования для эффективного использования этих машин. Темы включают в себя наименование общих данных, синхронизацию потоков, а также задержку и пропускную способность, связанные с обменом данными. Примеры использования машин с общей памятью, передачи сообщений, параллельных данных и потоков данных будут использованы для иллюстрации этих методов и компромиссов.Задания по программированию будут выполняться на одном или нескольких коммерческих мультипроцессорах, и будет значительный курсовой проект. Требование: 15-213.

15-424 Основы киберфизических систем
Spring: 12 единиц
Киберфизические системы (CPS) сочетают киберэффекты (вычисления и / или коммуникацию) с физическими эффектами (движение или другие физические процессы). Разработка алгоритмов для управления CPS, например, в автомобилях, самолетах и ​​роботах, является сложной задачей из-за их тесной связи с физическим поведением.В то же время жизненно важно, чтобы эти алгоритмы были правильными, поскольку мы полагаемся на CPS для решения критически важных для безопасности задач, таких как предотвращение столкновения самолетов. Студенты этого курса поймут основные принципы, лежащие в основе CPS, разработают модели и элементы управления, определят спецификации безопасности и критические свойства CPS, поймут абстракцию и системные архитектуры, узнают, как проектировать с помощью инвариантов, строго рассуждать о моделях CPS, проверять модели CPS на соответствующие масштабировать, понимать семантику модели CPS и развивать интуицию для оперативных эффектов.Студенты будут писать гибридные программы (HP), которые фиксируют соответствующие динамические аспекты CPS на простом языке программирования с простой семантикой, позволяя программисту обращаться к действительным переменным, представляющим реальные величины, и определять их динамику как часть HP. Предварительные требования: (15-122) и (21-122) и (15-251 или 21-241 или 18-202)

15-440 Распределенные системы
Осень и Весна: 12 единиц
Цели этого курса двоякие: Во-первых, для студентов, чтобы получить понимание принципов и методов, лежащих в основе проектирования распределенных систем, таких как блокировка, параллелизм, планирование, и общение по сети.Во-вторых, студенты могут получить практический опыт проектирования, внедрения и отладки реальных распределенных систем. Основные темы этого курса включают нехватку, планирование, параллелизм и параллельное программирование, именование, абстракцию и модульность, несовершенную коммуникацию и другие типы сбоев, защиту от случайного и злонамеренного вреда, оптимизм и использование инструментовки, а также инструментов мониторинга и отладки. в решении проблем. Поскольку создание программных систем и управление ими является фундаментальной целью любого курса бакалавриата по системам, студенты будут проектировать, реализовывать и отлаживать большие программные проекты. Как следствие, требуется знание языков программирования C и Java. Требование: 15-213.

15-441 Компьютерные сети
Осень: 12 шт.
В этом курсе основное внимание будет уделено основным параметрам производительности и инженерным компромиссам при проектировании и реализации компьютерных сетей. Чтобы сделать проблемы более конкретными, класс включает в себя несколько многонедельных проектов, требующих серьезной разработки и реализации. Цель состоит в том, чтобы учащиеся узнали не только о том, что такое компьютерные сети и как они работают сегодня, но и о том, почему они устроены такими, какие они есть, и как они могут развиваться в будущем.Примеры мы будем черпать в первую очередь из Интернета. Темы, которые будут охвачены, включают: сетевая архитектура, маршрутизация, контроль перегрузки / потока / ошибок, именование и адресация, одноранговая связь и Интернет, межсетевое взаимодействие и сетевая безопасность. Требование: 15-213.

15-451 Разработка и анализ алгоритмов
Осень и весна: 12 единиц
В этом разделе мы изучаем конкретные алгоритмы для различных задач, а также общие методы проектирования и анализа. Конкретные темы включают поиск, сортировку, алгоритмы для задач графов, эффективные структуры данных, нижние границы и NP-полноту.По усмотрению инструктора может быть рассмотрен ряд других тем. К ним относятся параллельные алгоритмы, рандомизированные алгоритмы, геометрические алгоритмы, низкоуровневые методы эффективного программирования, криптография и криптографические протоколы. Предварительные требования: 15-210, 15-251 и 21-241.

15-453 Формальные языки, автоматы и сложность
Spring: 9 единиц
Введение в фундаментальные идеи и модели, лежащие в основе вычислений: конечные автоматы, регулярные множества, выталкивающие автоматы, контекстно-свободные грамматики, машины Тьюринга, неразрешимость и теория сложности.Пререквизиты: 15-251 или 21-228.

15-455 Теория сложности для студентов
Осень: 9 единиц
Теория сложности — это исследование того, сколько ресурсов (таких как время, пространство, параллелизм или случайность) требуется для выполнения некоторых из вычислений, которые нас больше всего интересуют. В стандартном курсе алгоритмов каждый концентрируется на предоставлении ресурсосберегающих методов для решения интересных проблем. В этом курсе мы концентрируемся на методах, которые доказывают или предполагают, что не существует эффективных методов решения многих важных проблем.Мы будем развивать теорию различных классов сложности, таких как P, NP, co-NP, PH, #P, PSPACE, NC, AC, L, NL, UP, RP, BPP, IP и PCP. Мы изучим методы классификации проблем в соответствии с нашей доступной таксономией. Разрабатывая тонкую схему сокращения между классами, мы предложим (пока не доказано!) Картину того, как, используя ограниченное количество различных ресурсов, мы ограничиваем наши вычислительные мощности. Требование: 15-251.

15-456 Computational Geometry
Spring (раз в два года): 9 единиц
Как вы сортируете точки в пространстве? Что это вообще значит? Этот курс берет идеи традиционного курса алгоритмов, сортировки, поиска, выбора, графиков и оптимизации, и расширяет их до задач по геометрическим входам. Мы рассмотрим многие классические геометрические конструкции и новые алгоритмические методы. Некоторые из тем, которые будут охвачены, включают выпуклые оболочки, триангуляции Делоне, рисование графиков, расположение точек, геометрические медианы, многогранники, конфигурационные пространства, линейное программирование и другие. Этот курс является естественным продолжением курса 15-451 для тех, кто хочет узнать об алгоритмических проблемах в более высоких измерениях. Требование: 15-451.

15-462 Компьютерная графика
Осень и Весна: 12 единиц
Этот курс дает всестороннее введение в моделирование, анимацию и рендеринг компьютерной графики.Обсуждаемые темы включают базовую обработку изображений, геометрические преобразования, геометрическое моделирование кривых и поверхностей, анимацию, трехмерный просмотр, алгоритмы видимости, затенение и трассировку лучей. Предварительные требования: (21-259 и 15-213 и 21-240) или (21-259 и 15-213 и 21-241) или (18-202 и 18-213)

15-591 Независимое обучение в области компьютерных наук
Осень и весна: 3-12 единиц
Специально отобранные проекты и чтения по компьютерным наукам под руководством преподавателя SCS. Требуется приложение.Стендовый доклад обычно требуется для представления выполненной работы. Дополнительная информация доступна на странице бакалавриата.

15-599 Исследования бакалавриата
Осень и весна: 36 единиц, всего за 2 семестра (18 + 18)
Формальное исследование, приводящее к оригинальному результату в области информатики под руководством преподавателя SCS. Требуется письменная диссертация и заключительная презентация на симпозиуме кампуса «Встреча умов». Проспект диссертации является обязательным и должен быть утвержден до того, как студент сможет начать исследование.Дополнительная информация доступна на странице бакалавриата.

ВЫЧИСЛИТЕЛЬНАЯ БИОЛОГИЯ

02-510 Computational Genomics
Spring: 12 единиц
Драматические достижения в экспериментальной технологии и вычислительном анализе коренным образом меняют основную суть и цель биологических исследований. Появление новых рубежей в биологии, таких как эволюционная геномика и системная биология, требует новых методологий, которые могут противостоять количественным задачам, требующим значительной вычислительной и математической сложности. В этом курсе мы обсудим классические подходы и последние методологические достижения в контексте следующих биологических проблем: 1) Вычислительная геномика с упором на поиск генов, обнаружение мотивов и эволюцию последовательностей. 2) Анализ высокопроизводительных биологических данных, таких как экспрессия генов. data, уделяя особое внимание различным вопросам, от сбора данных до распознавания образов и классификации. 3) Молекулярная и регуляторная эволюция, с упором на филогенетический вывод и эволюцию регуляторной сети, и 4) Системная биология, касающаяся того, как комбинировать последовательность, экспрессию и другие источники биологических данных, чтобы сделать вывод о структуре и функциях различных систем в клетке.С вычислительной стороны этот курс фокусируется на современных методологиях машинного обучения для вычислительных задач в молекулярной биологии и генетике, включая вероятностное моделирование, алгоритмы вывода и обучения, распознавание образов, интеграцию данных, анализ временных рядов, активное обучение и т. Д.

ВЗАИМОДЕЙСТВИЕ С ЧЕЛОВЕКОМ И КОМПЬЮТЕРОМ

05-391 Разработка программного обеспечения, ориентированного на человека
Spring: 12 единиц
Почему в наши дни так сложно пользоваться? Почему эта вещь, которую я только что купил, не работает? Почему этим веб-сайтом так сложно пользоваться? Это разочарования, с которыми мы все сталкивались из-за систем, разработанных не для людей.Вопрос, на котором будет сосредоточен этот курс: как мы можем создавать ориентированные на человека системы, которые люди считают полезными и удобными? Этот курс представляет собой введение в проектирование, создание прототипов и оценку пользовательских интерфейсов. Если вы изучаете только один курс взаимодействия человека с компьютером, этот курс для вас. Этот класс открыт для всех студентов старших курсов и аспирантов с техническим или нетехническим образованием. Мы рассмотрим теорию, а также практическое применение идей взаимодействия человека с компьютером.Курсовая работа включает лекции, обсуждения в классе, домашние задания, презентации в классе и групповой проект.

МАШИННОЕ ОБУЧЕНИЕ

10-401 Введение в машинное обучение
Осень и весна: 12 единиц
Машинное обучение — это подраздел информатики, целью которого является изучение, изучение и разработка обучающих систем, методов и алгоритмов, которые могут улучшить свою производительность за счет обучения на основе данных. Этот курс предназначен для ознакомления студентов бакалавриата с основными принципами, алгоритмами и приложениями машинного обучения на протяжении одного семестра.Темы. Темы этого курса будут частично параллельны тем, которые рассматриваются в курсах машинного обучения для выпускников (10-715, 10-701, 10-601), но с большим упором на приложения и тематические исследования в области машинного обучения. После завершения курса студенты смогут: * выбирать и применять соответствующий контролируемый алгоритм обучения для задач классификации (например, наивный байесовский алгоритм, персептрон, опорная векторная машина, логистическая регрессия). * выбрать и применить подходящий алгоритм обучения с учителем для задач регрессии (например,g. , линейная регрессия, гребенчатая регрессия). * распознавать различные типы проблем обучения без учителя, а также выбирать и применять соответствующие алгоритмы (например, кластеризацию, линейное и нелинейное уменьшение размерности). * работать с вероятностями (правило Байеса, обусловливание, ожидания, независимость), линейной алгеброй (векторные и матричные операции, собственные векторы, SVD) и исчислением (градиенты, якобианы) для получения методов машинного обучения, таких как линейная регрессия, наивный байесовский метод и принцип анализ компонентов.* понимать принципы машинного обучения, такие как выбор модели, переобучение и недообучение, а также такие методы, как перекрестная проверка и регуляризация. * реализовать алгоритмы машинного обучения, такие как логистическая регрессия с помощью стохастического градиентного спуска, линейная регрессия (с использованием набора инструментов линейной алгебры), персептрон или кластеризация k-средних. * запускать соответствующие контролируемые и неконтролируемые алгоритмы обучения на реальных и синтетических наборах данных и интерпретировать результаты. Требования: 15-122 и (15-151 или 21-127).Требование: 15-359 или 36-217, 36-225 или 21-325.

ЯЗЫКОВЫЕ ТЕХНОЛОГИИ

11-411 Обработка естественного языка
Осень и весна: 12 единиц
Этот курс познакомит студентов с междисциплинарной областью искусственного интеллекта, известной также как обработка естественного языка (НЛП) и компьютерная лингвистика. Курс направлен на изучение методов, используемых сегодня в программном обеспечении, которое делает полезные вещи с текстом на человеческих языках, таких как английский и китайский.Приложения НЛП включают автоматический перевод между языками, извлечение и обобщение информации в документах, системы ответов на вопросы и диалоговые системы, а также диалоговые агенты. Этот курс будет сосредоточен на основных представлениях и алгоритмах, с некоторым временем, потраченным на реальные приложения. Поскольку современное НЛП в значительной степени зависит от машинного обучения, мы рассмотрим основы дискретной классификации и вероятностного моделирования по мере продвижения. Хорошие компьютерные лингвисты также знают о лингвистике, поэтому темы лингвистики (фонология, морфология и синтаксис) будут рассмотрены при подборе.С точки зрения разработки программного обеспечения упор будет сделан на быстрое прототипирование, полезный навык во многих других областях компьютерных наук. В частности, мы представим некоторые языки высокого уровня (например, регулярные выражения и Dyna) и некоторые языки сценариев (например, Python и Perl), которые могут значительно упростить реализацию прототипа. Требование: 15-122.

РОБОТОТЕХНИКА

16-384 Кинематика и динамика роботов
Осень: 12 шт.
Основы и принципы кинематики роботов.Темы включают преобразования, прямую кинематику, обратную кинематику, дифференциальную кинематику (якобианы), управляемость и основные уравнения движения. Курс также включает программирование на роботизированном манипуляторе. Пререквизиты: 15-122 или 16-311, или 18-202, или 21-241, или 24-311.

16-385 Компьютерное зрение
Spring: 9 единиц
Основные концепции машинного зрения, включая зондирование и восприятие, анализ двухмерных изображений, классификацию образов, зрение на основе физики, стерео и движение, а также распознавание объектов. Предварительные требования: (15-122 и 21-241 и 21-259) или (15-122 и 18-202).

МАТЕМАТИКА

21-120 Дифференциальное и интегральное исчисление
Падение и весна: 10 единиц
Функции, пределы, производные, логарифмические, экспоненциальные и тригонометрические функции, обратные функции; Правило Л’Оспиталя, построение кривых, теорема о среднем значении, связанные скорости, линейные и квадратичные приближения, задачи максимума-минимума, обратные функции, определенные и неопределенные интегралы и гиперболические функции; приложения интеграции, интеграции путем замены и по частям.

21-122 Интеграция и приближение
Осень и Весна: 10 единиц
Интеграция путем тригонометрической замены и частичных дробей; длина дуги; несобственные интегралы; Правила Симпсона и трапеции для численного интегрирования; разделимые дифференциальные уравнения, метод Ньютона, метод Эйлера, теорема Тейлора, включая обсуждение остатка, последовательностей, рядов, степенных рядов. Параметрические кривые, полярные координаты, векторы, скалярное произведение. Требование: 21-120.

21-127 Концепции математики
Осень и Весна: 10 единиц
Этот курс знакомит с основными концепциями, идеями и инструментами, используемыми при выполнении математических задач.Таким образом, его основное внимание уделяется неформальной логике и методам математического доказательства. Эти предметы тесно связаны с применением математики во многих областях, особенно в информатике. Обсуждаемые темы включают базовое введение в элементарную теорию чисел, индукцию, алгебру множеств, отношений, отношений эквивалентности, конгруэнций, разбиений и функций, включая инъекции, сюръекции и биекции.

21-241 Матрицы и линейные преобразования
Осень и весна: 10 единиц
Первый курс линейной алгебры, предназначенный для ученых, инженеров, математиков и компьютерных специалистов.Студенты должны будут написать несколько простых доказательств. Темы, которые будут охвачены: комплексные числа, действительные и комплексные векторы и матрицы, пространство строк и пространство столбцов матрицы, ранг и нулевое значение, решение линейных систем путем сокращения строк матрицы, обратные матрицы и определители, изменение базиса, линейные преобразования, внутренний продукт векторов, ортонормированные базисы и процесс Грама-Шмидта, собственные векторы и собственные значения, диагонализация матрицы, симметричные и ортогональные матрицы. 21-127 настоятельно рекомендуется.

21-242 Матричная теория
Осень и Весна: 10 единиц
Отличная версия 21-241 (Матричная алгебра и линейные преобразования) для студентов с большими способностями и мотивацией. Больше внимания будет уделено написанию доказательств. Темы, которые будут охвачены: комплексные числа, действительные и комплексные векторы и матрицы, пространство строк и пространство столбцов матрицы, ранг и нулевое значение, решение линейных систем путем сокращения строк матрицы, обратные матрицы и определители, изменение базиса, линейные преобразования, внутреннее произведение векторов, ортонормированные базисы и процесс Грама-Шмидта, собственные векторы и собственные значения, диагонализация матрицы, симметричные и ортогональные матрицы, эрмитовые и унитарные матрицы, квадратичные формы.

21-341 Линейная алгебра
Осень и весна: 9 единиц
Математически строгое рассмотрение линейной алгебры над произвольным полем. Изучаемые темы будут включать абстрактные векторные пространства, линейные преобразования, детерминанты, собственные значения, собственные векторы, скалярные произведения, инвариантные подпространства, канонические формы, спектральную теорему и разложение по сингулярным значениям. 21-373 рекомендуется. Предпосылка: 21-241 или 21-242.

21-259 Трехмерное исчисление
Осень и Весна: 9 единиц
Векторы, линии, плоскости, квадратичные поверхности, полярные, цилиндрические и сферические координаты, частные производные, производные по направлениям, градиент, дивергенция, завиток, цепная линейка, максимум-минимум задачи, кратные интегралы, параметрические поверхности и кривые, линейные интегралы, поверхностные интегралы, теоремы Грина-Гаусса.Пререквизит: 21-122.

21-300 Базовая логика
Осень: 9 единиц
Логика высказываний и предикатов: синтаксис, теория доказательств и семантика до теоремы о полноте, теоремы Ловенгейма Сколема и приложения теоремы компактности. Пререквизиты: 15-251, 21-228 или 21-373.

21-301 Комбинаторика
Осень и Весна: 9 единиц
Основная часть курса сосредоточена на алгебраических методах, которые важны при изучении кодов исправления ошибок и других областях.Темы, рассматриваемые подробно, включают перестановки и комбинации, производящие функции, рекуррентные отношения, принцип включения и исключения, а также последовательность Фибоначчи и гармонический ряд. Дополнительные темы могут включать доказательства существования, разбиения, конечное исчисление, генерацию комбинаторных объектов, теорию Пойа, коды, вероятностные методы. Требования: 21-122 и (15-251 или 21-228).

21-325 Вероятность
Падение: 9 единиц
Этот курс фокусируется на понимании основных концепций теории вероятностей и показывает, как эти концепции могут быть применены для разработки и анализа различных моделей, возникающих в вычислительной биологии, финансах, инженерии и информатике. .Прочное знание основ нацелено на то, чтобы предоставить студентам гибкость для построения и анализа моделей из различных приложений, а также подготовить заинтересованных студентов к продвинутой работе в этих областях. Курс будет охватывать основные концепции, такие как вероятностные пространства, случайные величины, случайные векторы, многомерные плотности, распределения, ожидания, выборка и моделирование; независимость, обусловленность, условные распределения и ожидания; предельные теоремы, такие как усиленный закон больших чисел и центральная предельная теорема; а также дополнительные темы, такие как большие отклонения, случайные блуждания и цепи Маркова, если позволяет время. Требования: 21-259, 21-268 или 21-269.

21-484 Теория графов
Spring: 9 единиц
Теория графов использует базовые концепции для решения разнообразных проблем и нетривиальных приложений в исследовании операций, информатике и других дисциплинах. Это одна из немногих областей математики, где всегда рядом с интересными нерешенными проблемами. Темы включают в себя графы и подграфы, деревья, связность, туры Эйлера и циклы Гамильтона, сопоставления, раскраски графов, планарные графы и формулу Эйлера, ориентированные графы, сетевые потоки, подсчет аргументов и алгоритмы графов.Предварительные требования: (15-251 или 21-228) и (21-241 или 21-242).

СТАТИСТИКА

36-217 Теория вероятностей и случайные процессы
Осень и весна: 9 единиц
Этот курс представляет собой введение в теорию вероятностей. Он предназначен для студентов, изучающих электротехнику и информатику. Темы включают элементарную теорию вероятностей, условную вероятность и независимость, случайные величины, функции распределения, совместные и условные распределения, предельные теоремы и введение в случайные процессы. Будут даны некоторые элементарные идеи спектрального анализа и теории информации. Для использования этого курса в качестве предварительного условия для курсов 36-226 и 36-410 требуется оценка C или выше. Не доступен для студентов, получивших зачетные баллы 36–225 или 36–625. Пререквизиты: 21-112 или 21-122, 21-123, 21-256 или 21-259.

36-225 Введение в теорию вероятностей
Осень: 9 единиц
Этот курс рассчитан на первую половину года и представляет собой введение в вероятность и математическую статистику для студентов, изучающих экономику, математику и статистику.Использование теории вероятностей проиллюстрировано примерами из инженерии, науки и менеджмента. Темы включают элементарную теорию вероятностей, условную вероятность и независимость, случайные величины, функции распределения, совместные и условные распределения, закон больших чисел и центральную предельную теорему. Для перехода на 36-226 и 36-410 требуется оценка C или выше. Не открывается для студентов, получивших зачетные баллы 36-217 или 36-625.

ФИЛОСОФИЯ

80-310 Формальная логика
Осень: 9 единиц
Одним из наиболее значительных достижений современной логики является формальный анализ понятий доказуемости и логического следствия для логики отношений и количественной оценки, известный как логика первого порядка.Эти понятия связаны теоремами о правильности и полноте: логическая формула доказуема тогда и только тогда, когда она истинна при любой интерпретации. Этот курс предоставляет формальную спецификацию синтаксиса и семантики логики первого порядка, а затем доказывает теоремы о правильности и полноте. Другие темы могут включать: базовую теорию моделей, интуиционистскую, модальную логику и логику более высокого порядка. Предпосылка: 15-251, или 80-210, или 80-211, или 80-212.

80-311 Неразрешимость и неполнота
Весна: 9 единиц
Этот курс фокусируется на двух центральных проблемах математической логики: неразрешимости логики предикатов (установленной Чёрчем и Тьюрингом) и неполноте формальных теорий (обнаруженной Гёделем для теорий, содержащих немного теории множеств или чисел). Математические решения этих проблем включают строгую концепцию вычислимости или вычислимости, которая оказалась фундаментальной не только для информатики, но и для когнитивной науки. Сначала мы обсудим логику предикатов и систематические способы построения доказательств; за этим следует формальное развитие элементарной теории множеств. Представлена ​​концепция вычисления машины Тьюринга и показано, что она эквивалентна концепции рекурсивной функции. Это дает математические, методологически адекватные инструменты для установления вышеупомянутых результатов.Математические и вычислительные понятия и результаты являются одними из наиболее значительных вкладов логики не только в решение внутренних логических вопросов и в основы информатики, но и в (начало) более глубокого понимания человеческого разума и умственных способностей. процессы. Помимо математических разработок, мы обсудим исторические и философские аспекты предмета. Предпосылка: 15-251 или 21-300, или 80-210, или 80-211, или 80-310.

TCH036: Компьютерные науки I (факультатив)

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

Чтобы получить полный список материалов, которые будут использоваться в этом курсе вашим зачисленным студентом, посетите MyInfo . Все списки могут быть изменены в любое время.

Scope & Sequence: Scope & Sequence документы описывают , что охватывает курс (объем), а также порядок , в котором рассматриваются темы (последовательность).В этих документах перечислены учебные цели и навыки, которые необходимо освоить. K12 Документы о содержании и последовательности для каждого курса включают:

Обзор курса

Этот курс знакомит студентов с такими концепциями информатики, как компьютерная архитектура, сети и Интернет. Студенты используют объектно-ориентированное программирование, процессы, управляемые событиями, модульное компьютерное программирование и алгоритмы обработки данных для создания готовых программ.Они используют процесс проектирования для создания множества программ, определяя спецификации, проектируя программное обеспечение, а также тестируя и улучшая продукт, пока он не будет соответствовать спецификациям. К концу этого курса у студентов будет прочный фундамент для дальнейшего изучения информатики.

вернуться наверх

Продолжительность курса

Один семестр

вернуться наверх

Предварительные требования

Нет

вернуться наверх

Краткое содержание курса

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

  • Начать курс
  • Настройте компьютер
  • Настройка браузера и установка программного обеспечения
  • Найдите и выполните курсовую работу

Раздел 1: Начиная с Python

Студенты изучают основы Python и практикуются в рисовании линий и фигур.

  • Провести линию
  • Нарисуйте фигуры
  • Написать программу

Раздел 2: Графическое изображение Hello World

Студенты сравнивают код, написанный на разных языках программирования; узнать о координатах и ​​комментариях; написать код для рисования пробелов; и организовать функции.

  • Нарисуйте H
  • Комментарии и пробелы
  • Определить функцию
  • Определение буквенных функций

Раздел 3: Переменные

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

  • Значения и переменные
  • Изменение значений переменных
  • Функции и переменные
  • Завершить добавление переменных

Раздел 4: Петли

Студенты узнают о переменных цикла и итератора; исследовать объект, класс и экземпляр; создать функцию HELLO (); и отработайте приемы отладки.

  • Петля For
  • Продолжить зацикливание
  • Петли и ошибки

Раздел 5: Программа для рисования

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

  • Подготовка к работе
  • Щелкни черепахой
  • Завершить программу onclick

Раздел 6: Разработка программного обеспечения

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

  • Простая модель разработки программного обеспечения
  • Изучение разработки программного обеспечения
  • Разработка решений
  • Планирование
  • Письмо и тестирование

Раздел 7. Строки и списки

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

  • Побег персонажей
  • Манипулирование строками с помощью методов
  • Нарезка и шагание
  • Использование объединения и сравнения строк
  • Использование списков
  • Управление текстовым файлом
наверх

Расписание уроков

вернуться наверх

Департамент компьютерных наук Требования к бакалавриату

46 кредитов — Оценка C (2. 0) или выше требуется для каждого класса, указанного в списке обязательных курсов, начиная с каталога 2000.

CS 150 — Решение проблем и программирование I
CS 170 — Основы компьютерной организации
CS 250 — Решение проблем и программирование II
CS 252 — Введение в Unix для программистов
CS 270 — Введение в компьютерную архитектуру
CS 300T — Компьютеры в обществе
CS 330 — Объектно-ориентированное программирование
CS 350 — Введение в разработку программного обеспечения
CS 355 — Принципы языков программирования
CS 361 — Расширенные данные Структуры и алгоритмы
CS 381 — Введение в дискретные структуры
CS 390 — Введение в теоретическую информатику
CS 410 — Профессиональное развитие персонала I — Курс Capstone
CS 411W — Развитие профессионального персонала II Курс Capstone
CS 417 — Вычислительные методы и программное обеспечение
CS 471 — Операционные системы

Основные категории этих курсов:
Программирование: CS 150, 250, 361, 350, 330, 355
Компьютерная архитектура: CS 170, 270, 471
Прикладные технологии: CS 300T, 410, 411W
Вычислительная математика: CS 381, 390, 417

9 кредитов — Факультативы уровня CS 300/400, кроме CS 334 и 382

База данных

CS 450 — Основные понятия базы данных

Сеть

CS 455 — Введение в сети и коммуникации

CS 472 — Сеть и безопасность

CS 486 — Введение в параллельные вычисления

CS 487 — Прикладные параллельные вычисления

Системы

CS 476 — Системное программирование

Веб-программирование

CS 312 — Интернет-концепции

CS 418 — Веб-программирование

CS 431 — Дизайн веб-сервера

CS 432 — Web Sciences

CS 441 — Разработка приложений для смарт-устройств

Разработка игр

CS 460 — Компьютерная графика

CS 480 — Введение в искусственный интеллект

Кибербезопасность

CS 462 — Основы кибербезопасности

CS 463 — Криптография для кибербезопасности

CS 464 — Безопасность сетевых систем

CS 465 — Обеспечение информации

Разное

CS 478 — Вычислительная геометрия, методы и приложения

CS 488 — Принципы построения компилятора


CS 367/8 Стажировка по информатике

Заинтересованным студентам следует связаться с Саммером Стилманом, заместителем директора / Колледж наук по связям, по телефону 757-683-3282 или ssteelma @ odu. edu. Она поможет вам подготовиться к одному из этих занятий. Эти курсы организованы Службой развития карьеры (CDS).

Следующие лица несут ответственность за оценку вашего отчета о работе:

  1. Саммер Стилман: помощник директора / координатор Колледжа наук в Службе развития карьеры
  2. Джанет Брюнель: главный советник отдела / профессор, отвечающий за ваш стажер / совместный класс

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

Для получения степени бакалавра компьютерных наук необходимо пройти четыре (4) научных курса; год Естествознание и два Технических факультативов . Традиционно инженерные программы требовали полного года изучения физики, основанной на исчислении, и одного года химии. Студенты, изучающие информатику, могут выбрать подготовку к будущему научного мышления с пониманием любых основополагающих научных курсов, поддерживаемых ODU.

«Природа науки» является составной частью общих образовательных требований низшего уровня для получения степени бакалавра наук. Специалисты по информатике могут выбрать курс первого года обучения по дисциплинам, предлагаемым в Колледже наук ODU: биология, химия, физика, океанография и геология.Доступные варианты ограничены курсами, выбранными для этих специальностей, и должны включать два последовательных семестра обучения, которые проводятся в лаборатории.

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

Ноты:

  • Degree Works перечисляет доступные варианты и исключения.
  • Технические факультативы по химии 121N, химии 123N не требуют дополнительных лабораторных компонентов.
  • Biology 121N и Biology 123N можно сдавать без вспомогательного лабораторного компонента со специальными приспособлениями, предоставленными CDA.
  • Военные кредиты (MP), основанные на решении проблем, могут применяться в качестве технических факультативов с одобрения CDA.
  • Перенесенные курсы (TP), взятые до зачисления в программу BSCS, могут применяться CDA в качестве замены технических факультативов.
  • Технические факультативы не принимаются для студентов, ищущих второе высшее образование, и тех, кто заканчивает двойные специальности.

Требования для общего образования зависят от года каталога. Категории требований обычно перечислены ниже:

  • Письменное сообщение I
  • Письменное сообщение II
  • Устное общение
  • Математика (по специальности)
  • Язык и культура
  • Информационная грамотность и исследования
  • Поведение человека
  • Творчество человека
  • Интерпретация прошлого
  • Литература
  • Природа науки
  • Философия и этика
  • Влияние технологий (в основном выполнено с CS 300T)

Бакалавр CS | Программы обучения | Компьютерные науки

Требования программы

и другую соответствующую информацию можно найти по ссылкам ниже:

Факультативы по информатике

Студенты CS должны пройти два курса (6 кредитов) факультативов по информатике.

  • Эти курсы должны быть не ниже 300 уровня.
  • Это могут быть любые необязательные курсы, предлагаемые Департаментом CS, которые не используются для заполнения других мест (курсы не могут быть «дважды засчитаны»).
  • Два из этих курсов должны быть частью последовательности проекта.

Требования к общеобразовательному образованию

Студенты CS должны пройти шесть курсов (18 кредитов), удовлетворяющих общеобразовательным требованиям университета.

  • Три курса (9 кредитов) должны быть утверждены Курсы гуманитарных и гуманитарных наук
  • Три курса (9 кредитов) должны быть утверждены Курсы социальных наук (SS)
  • ENGL.2200 Требуется устное и письменное общение для компьютерных наук и считается одним из трех обязательных AH GenEds
  • Один из этих курсов (AH или SS) должен удовлетворять этическим требованиям CS
  • Один (опять же AH или SS) должен удовлетворять требованиям университетского разнообразия

Технические факультативы

Студенты CS должны набрать 6 кредитов по техническим факультативам. Это курсы, предлагаемые Колледжем наук (нашим колледжем) или Инженерным колледжем.

  • Курсы, отвечающие этому требованию, должны классифицироваться как обязательные или факультативные для специальностей этих факультетов.
  • Чтобы использовать курс CS в качестве технического факультатива, он должен быть на уровне 3000, 4000 или 5000.

Факультативы по естественным наукам

Студенты CS должны получить 12 кредитов по курсам естественных наук. Это курсы, предлагаемые одним из четырех отделений естествознания в Колледже наук: биологических наук, химии, наук об окружающей среде / Земле / атмосфере и физики / прикладной физики.

  • Курсы, отвечающие этому требованию, должны быть классифицированы как обязательные или факультативные для специальностей на этих факультетах (за некоторыми исключениями).
  • Два из трех курсов естествознания должны проходить в соответствующих лабораториях.
  • Оставшиеся 4 кредита могут быть удовлетворены либо путем прохождения третьего курса естествознания с 3 кредитами в лаборатории с 1 зачетом, либо путем прохождения двух курсов естествознания с 3 кредитами без соответствующих лабораторий.
  • Общее количество кредитов, примененных к этому требованию, плюс количество кредитов, полученных по математике (MATH.xxxx) количество курсов должно быть не менее 30.

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

Общие (бесплатные) факультативы

Студенты CS должны получить 12 кредитов практически по любому курсу, предлагаемому университетом. По крайней мере, один общий факультатив должен относиться к нетехнической области (не информатике, естественным наукам, математике, инженерии и аналогичным дисциплинам), например, гуманитарным или социальным наукам, не имеющим вычислительной или иной технической направленности.Для всех общих факультативов студенты CS должны избегать:

  • Курсы в областях, требуемых учебной программой CS (например, математика), если они не находятся на уровне выше, чем требуемый курсами CS.
  • Курсы, не относящиеся к CS, со значительным вычислительным компонентом или существенным пересечением содержания с курсами, требуемыми учебной программой CS, такими как курсы MIS или IT.
  • Курсы математики ниже уровня последовательности естественных и инженерных расчетов.
  • Сертификационные курсы, предлагаемые в рамках непрерывного образования.
  • Курсы CS для неосновных.

Определение приемлемости любого предложенного общего элективного курса будет приниматься координатором бакалавриата кафедры CS.

Вы можете посещать курсы, которые не считаются общими факультативами. Такие курсы будут указаны в вашей транскрипте и будут частью вашего общего среднего балла, но они не будут засчитываться в вашу степень бакалавра компьютерных наук. Студентам, которые прошли курсы вышеуказанных категорий до того, как они пришли в UMass Lowell, обычно разрешается использовать их в качестве общих факультативов.

Требования этики и разнообразия

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

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

  • ENGL.2490: Литература по технологиям и человеческим ценностям (ранее 42.249)
  • FAHS.2200: Конструирование будущего мира (ранее 57.220)
  • PHIL.2030: Введение в этику (ранее 45.203)
  • PHIL.3340: Инженерия и этика (ранее 45.334)
  • PHIL.3350: Этические проблемы в технологии (ранее 45.335)

Конечно, вы не ограничены курсами из этого списка, чтобы выполнить требование.

О компьютерных науках

О компьютерных науках

Группа программирования ACM Доктор. Бесмер, выдающийся младший профессор Винтропа 2019 года
с классом безопасности

Карьера

Спрос в США на выпускников колледжей с компьютерными степенями очень высок и ожидается увеличение. Уровень трудоустройства выпускников этой программы очень хороший, и наши выпускники получают отличные зарплаты.Почти 100% наших выпускников компьютерных наук приняли дневное отделение должности в течение одного месяца после выпуска. Стартовая зарплата выпускников колеблется от От 50 000 до 75 000 долларов; на основе оценок, опыта стажировки и деятельности вне класса.

Выпускники этой программы одинаково хорошо подходят как для аспирантуры, так и для должности начального уровня в отрасли. Большинство выпускников соглашаются на должности программистов в бизнесе, правительстве или производстве. У нас много выпускников, работающих на большие финансовые учреждения, расположенные в нескольких милях от нашего кампуса в Шарлотте, Северная Каролина. Выпускников обычно принимают должности в многочисленных небольших компаниях по разработке программного обеспечения, расположенных в нашем регионе.

Учебная программа

Курсовая работа для Степень бакалавра компьютерных наук (BS in CS) подчеркивает понимание широкого спектра компьютерных тем.Курсы включают навыки программирования, теорию вычислений, анализ алгоритмов, понимание принципов аппаратного обеспечения и программной инженерии. Факультативные задания включают дизайн базы данных, безопасность, компьютерная графика, параллельное программирование, веб-разработка, создание сетей, программное обеспечение управление проектами, среди прочего. Старшие студенты бакалавриата в области CS должны пройти 9-месячный реальный групповой проект по развитию.

Из 120 кредитов, необходимых для получения диплома, 46 кредитов относятся к компьютерным наукам (CSCI). курсы, 30 кредитов по математике и естествознанию, а также общее образование университета требования включают около 30 кредитов. Математические требования включают исчисление 1 и 2 и Статистика. Студенты бакалавриата в области CS должны закончить несовершеннолетний по своему выбору. Популярные несовершеннолетние включают бизнес и математику, в то время как некоторые студенты выбирают несовершеннолетние, такие как Музыка или театр.

Первокурсники со степенью бакалавра в области CS обычно заканчивают два курса программирования, начинают выполнение курсов по математике и прохождение общеобразовательных курсов. В год второкурсника, студенты проходят курс анализа алгоритмов и курс компьютерного оборудования. К студенты младших курсов обычно заканчивают курсы математики и естествознания и начинают выбор элективных курсов CSCI исходя из своих карьерных планов.Многие студенты завершают стажировка между младшим и старшим годами. Начальные курсы в Senior год являются завершающим проектом и курсом теории информатики.

Создание резюме

Мы хотим, чтобы вы получили THE работу, о которой вы мечтаете, а не просто работу. Главное — иметь правильное резюме. Наша работа — предоставить вам возможность составить свое резюме помимо курсовой. Внеклассные деятельность — отличный способ составить свое резюме, увеличить количество предлагаемых вакансий вам, и увеличить вашу стартовую зарплату.

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

Аккредитация

Степень бакалавра в области CS в Winthrop аккредитована Комиссией по аккредитации вычислительной техники. ABET.С веб-сайта ABET (www.abet.org):

«Аккредитация программ колледжей и университетов по дисциплинам прикладной и естественной наука, вычислительная техника, инженерия и инженерные технологии в младшем, бакалаврском и степень магистра.