Рабочая программа по дисциплине “Информатика и программирование




Скачать 135.88 Kb.
НазваниеРабочая программа по дисциплине “Информатика и программирование
Дата публикации07.03.2014
Размер135.88 Kb.
ТипРабочая программа
zadocs.ru > Информатика > Рабочая программа
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
“УТВЕРЖДАЮ”

Декан АВТФ


В.В.Губарев

“___ ”______________20 г.


РАБОЧАЯ ПРОГРАММА



по дисциплине “Информатика и программирование (I часть)”

для слушателей, обучающихся по программе 220400 «Программное обеспечение

вычислительной техники и автоматизированных систем»

по направлению 552800 “Информатика и вычислительная техника”

Факультет автоматики и вычислительной техники
^

Подразделение Учебный центр информационных технологий «Информатика»



Лекции 39 час.

Практические (семинарские)

занятия 30 час.

Лабораторные занятия 15 час.

Самостоятельная работа 92 час.

Контрольная работа 1

Зачёт


Всего часов 176

2005 г.
Рабочая программа составлена на основании Государственного образовательного стандарта высшего профессионального образования по направлению 552800 “Информатика и вычислительная техника” от 13.03.2000

Регистрационный номер 36тех/бак
^

Цикл ОПД.Ф.06



Программу составил

к.т.н. А.Л. Соловьёв

Директор УЦИТ «Информатика»

д .т. н., профессор А.А. Воевода


Ответственный за основную

образовательную программу

Информатика (выдержка из ГОСТа):

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

^ Темы лекционных занятий:

1. Вводная. (3 ч.)

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

История С. Структурное программирование.

2. Алгоритм. (3 ч.)

Предметная область. Набор операций. Формы представления алгоритма. Программа как реализация понятия алгоритма в среде обработки данных. Компоненты языка программирования. Модульная организация программы. Реализация программы на уровне компьютерной архитектуры. Выполнение программы на языке С.

3. Типы данных. Переменная. (3 ч.)

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

4. Операторы. (3 ч.)

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

5. Управляющие структуры. (3 ч.)

Структурное программирование – программирование без GOTO. Последовательная структура. Последовательное выполнение. Передача управления. Структуры выбора. Условие выбора, ложь/истина. Единственный выбор, двойной выбор, множественный выбор. Структуры повторения. Цикл, условие продолжения цикла. Счетный цикл, циклы с пред/пост проверкой условия.

6. Массивы. (3 ч.)

Одномерные массивы. Объявление массивов. Инициализация. Нумерация элементов. Представление в памяти. Операции с массивами. Многомерные массивы. Представление в памяти. Массив как структура хранения данных. Эффективности операций поиска, удаления, вставки в массивах.

7. Символы и строки. (3 ч.)

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

8. Функции. (3 ч.)

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

9. Рекурсивные функции. (3 ч.)

Рекурсия. Рекурсивный алгоритм. Базовая задача, шаг рекурсии (рекурсивный вызов), дно рекурсии. Фактические и формальные параметры. Прямой и косвенный рекурсивный вызов. Сложность и экспоненциальная сложность рекурсивных алгоритмов.

10. Рассмотрение функций стандартной библиотеки.

Библиотеки «stdio» и «conio». Функции работы со стандартными потоками ввода/вывода. Функции работы с консолью. Библиотека «string». Функции работы со строками.

Пример создания и подключения собственной библиотеки функций.

11. Поиски. Сортировки. (3 ч.)

Задача поиска. Область применения. Понятие записи и ключа. Линейный поиск. Бинарный поиск. Наборы и структуры данных. Трудоемкость алгоритмов поиска, лучший и худший случаи. Задача сортировки. Область применения. Алгоритмы простых сортировок. Анализ эффективности, лучшие и худшие случаи.

12. Сортировки. (3 ч.)

Алгоритмы улучшенных сортировок. Анализ трудоемкости, лучшие и худшие случаи.

13. Работа с файлами. (3 ч.)

Текстовые и бинарные файлы. Дескриптор файла. Режимы работы с файлом. Последовательный текстовый файл. Особенности представления текстовых строк в файле. Позиционирование в текстовом файле. Функции ввода-вывода текста.
Темы практических занятий:

1. Знакомство с языком С.

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

3. Тестирование.

4. Функции.

5. Итеративный метод решения задач.

6. Строки.

7. Строки.

8. Тестирование.

9. Решение задач методом перебора.

10. Рекурсивный метод решения задач.

Темы лабораторных занятий:

1. Знакомство со средой программирования. (3 ч.)

2. Изучение операторов, управляющих структур, работа с целочисленными массивами. (3 ч.)

Варианты заданий:

1. Найти в массиве и вывести значение наиболее часто встречающегося элемента.

2. Найти в массиве элемент, наиболее близкий к среднему арифметическому суммы его элементов.

3. Разделить массив на две части, поместив в первую элементы, большие среднего арифметического их суммы, а во вторую - меньшие (части не сортировать).

4. Сформировать массив простых чисел, не больших заданного.

5. Сформировать массив простых множителей заданного числа.

6. Найти наименьшее общее кратное всех элементов массива (то есть число, которое делится на все элементы).

7. Найти наибольший общий делитель всех элементов массива (на который они все делятся без остатка).

8. Разницу между максимальным и минимальным значениями элементов массива разбить пополам и относительно этого значения разбить массив на две части (части не сортировать).

9. Задан массив, определить значение k, при котором сумма |A(1)+A(2)+…+A(k)-A(k+1)+…+A(N)| минимальна (то есть минимален модуль разности сумм элементов в правой и левой части, на которые массив делится этим k).

10. Заданы два упорядоченных по возрастанию массива. Составить из их значений третий, также упорядоченный по возрастанию (слияние).

11. Известно, что 1 января 1999 г. – пятница. Для любой заданной даты программа должна выводить день недели.

12. Известно, что 1 января 1999 г. – пятница. Программа должна найти все “черные вторники” и “черные пятницы” 1999 года (то есть – 13 числа).

13. Найти в массиве наибольшее число подряд идущих одинаковых элементов (например {1,5,3,6,6,6,6,6,3,4,4,5,5,5} = 5).
3. Изучение итерационных процессов и циклов. (3 ч.)

Варианты заданий:

  1. cos (x)

  2. ln (x)

  3. arcsin (x)

  4. 3X

  5. (1+x)X

  6. ln (x)

  7. sh (x)

  8. ch (x)

  9. arctg (x)

  10. arctg (x)






4. Работа со строками. (3 ч.)

Варианты заданий:

1. Выполнить сортировку символов в строке. Порядок возрастания "весов" символов задать таблицей вида char ORD[] = "АаБбВвГгДдЕе1234567890"; Символы, не попавшие в таблицу, размещаются в конце отсортированной строки.

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

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

4. Переписать в выходную строку слова из входной строки в порядке возрастания их длины.

5. Преобразовать строку, содержащую выражение на Си с операциями (=,==,!=,a+=,a-=), в строку, содержащую эти же операции с синтаксисом языка Паскаль (:=,=,#,a=a+,a=a-).

6. Удалить из строки комментарии вида "/* ... */". Игнорировать вложенные комментарии.

7. Заменить в строке символьные константы вида 'А' на соответствующие шестнадцатеричные (т.е. 'А' на 0x41).

8. Заменить в строке последовательности одинаковых символов (не пробелов) на десятичное число, состоящее из двух десятичных цифр и соответствующее их количеству (т.е. “ abcdaaaaa xyznnnnnnn ” на “abcd5a xyz7n ”).

9. Найти в строке два одинаковых фрагмента (не включающих в себя пробелы) длиной более 5 символов и возвратить индекс начала первого из них (т.е. для “aaaaaabcdefgxxxxxxbcdefgwwwww” вернуть n=6 - индекс начала “bcdefg”).

10. Оставить в строке фрагменты, симметричные центрального символа, длиной более 5 символов (например, “dcbabcd”), остальные символы заменить на пробелы.

11. Найти во входной строке самую внутреннюю пару скобок {...} и переписать в выходную строку содержащиеся между ними символы. Во входной строке фрагмент удаляется.

12. Заменить в строке все целые числа соответствующим повторением следующего за ними символа (например "abc5xacb15y" - " abcxxxxxacbyyyyyyyyyyyyyyy ").

13. "Перевернуть" в строке все слова. (Например: "Жили были дед и баба" - "илиЖ илиб дед и абаб").

14. Функция переписывает строку. Если она находит в строке число, то вместо него она переписывает в выходную строку соответствующее по счету слово из входной строки. (например, "aaa bb1bb cc2cc" - "aaa bbaaabb ccbb1bbcc").
5. Изучение алгоритмов сортировок. (3 ч.)

Варианты заданий:

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

2. Сортировка Шелла. Частичную сортировку с заданным шагом, начиная с заданного элемента оформить в виде функции. Алгоритм частичной сортировки - вставка погружением.

3. Шейкер-сортировка. Процесс движения в прямом и обратном направлении реализовать в виде одного цикла, используя параметр - направление движения (+1/-1) и меняя местами нижнюю и верхнюю границы просмотра.

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

5. Сортировка подсчетом. Выходной массив заполняется значениями “-1”. Затем для каждого элемента определяется его место в выходном массиве путем подсчета количества элементов строго меньших данного. Естественно, что все одинаковые элементы попадают на одну позицию, за которой следует ряд значений “-1”. После чего оставшиеся в выходном массиве позиции со значением “-1” заполняются копией предыдущего значения.

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

7. Сортировка вставками. Берется очередной элемент и извлекается из массива. Затем от начала массива ищется первый элемент, больший данного. Все элементы, от найденного до очередного сдвигаются на один вправо и на освободившееся место помещается очередной элемент. (Поиск места включения от начала упорядоченной части).

8. Сортировка выбором. Выбирается минимальный элемент в массиве, переносится в выходной массив на очередную позицию и заменяется во входном на “очень большое значение” (MAXINT).

9. Сортировка Шелла. Частичную сортировку с заданным шагом, начиная с заданного элемента оформить в виде функции. Алгоритм частичной сортировки - обменная (методом “пузырька”).

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

11. Сортировка “хитрая”. Из массива путем однократного просмотра выбирается последовательность элементов, находящихся в порядке возрастания, переносятся в выходной массив и заменяются во входном на “-1”. Затем оставшиеся элементы включаются в полученную упорядоченную последовательность методом погружения.
^ Варианты для контрольных работ:

Анимация сортировки

C помощью функций управления курсором библиотеки CONIO.H анимировать (изобразить на экране в движении) действия, выполняемые над строкой или массивом. Анимация должна отражать существенные свойства выполняемого процесса (подсветка различными цветами выбранных элементов, упорядоченных частей и т.д.). Для сортировки необходимо предусмотреть заполнение массива случайными значениями и подсчет трудоемкости (количество сравнений, сдвигов).

1. Шейкер-сортировка с подсветкой упорядоченных частей.

2. Циклическое слияние с подсветкой упорядоченных групп.

3. Циклическое слияние с использованием и подсветкой элементов-разделителей групп.

4. Сортировка вставками с подсветкой упорядоченной части.

5. Сортировка погружением с подсветкой упорядоченной части и " ограничивающего" элемента.

6. Сортировка подсчетом.

7. Сортировка выбором с перемещением выбранного элемента в выходной массив и сдвигом " хвоста".

8. Сортировка разделением с использованием в качестве медианы среднего арифметического на текущем интервале и подсветкой разделяемой части. Способ разделения: движение двух индексов от краев к середине и обменом (по необходимости) находящихся под ними элементов.

^ Игровые программы

Использовать функции getch для ввода без "эха", gotoxy для позиционирования курсора, delay - для задержки, kbhit - для проверки наличия нажатой клавиши на клавиатуре.

1. «Арканоид». Экран ограничен П-образной рамкой, внутри рамки размещены призы, которые можно сбивать шариком, движущимся по экрану. Снизу экрана перемещается площадка, управляемая игроком. Шарик при столкновении с площадкой, призами, стенками изменяет направление своего движения. Необходимо не допустить вылет шарика за пределы рамки и сбить все призы

2. «Пакмэн». Персонаж, управляемый игроком бегает по лабиринту и собирает призы, преследуемый оравой монстров.

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

4. "Упрощенный тетрис". Использовать 2-3 варианта фигур, очки не подсчитывать, определять только возможность их дальнейшего укладывания.

5. "Xonix". Экран ограничен рамкой по периметру. По экрану движутся N точек, отражаясь от границ рамки. По границе рамки движется маркер, управляемый стрелками. Если маркер начинается двигаться по полю, то за ним тянется "хвост". Если какая-либо точка попадает на "хвост", то с игрока снимаются очки, и он возвращается на рамку. Если ему удалось добежать до границы рамки, то "хвост" превращается в границу рамки, то есть поле экрана разделяется пополам. При этом, если в отделенной половине нет движущихся точек, то она полностью заливается.

6. "Червяк". По экрану движется червяк, направление движения головы которого можно менять (стрелками). Червяк ест призы и растет. Задача - при движении головы не наткнуться на хвост и границы экрана.

7. По экрану движутся, отражаясь от границ два вида точек, а также маркер, движение которого управляется стрелками. При столкновении маркера с точками первого вида с игрока снимаются очки (жизни), при столкновении с точками второго типа - последние съедаются и очки (жизни) добавляются.

Разное

1. Программа - калькулятор арифметических выражений со скобками и целыми константами.

2. .Записная книжка (как вариант: журнал студентов, пункт проката, склад оборудования). Основная запись должна содержать поля (не менее четырех) различных типов. Реализовать операции вставки, удаления, сортировки, поиска по одному из полей. Для хранения множества записей использовать массив.

3. Примитивный графический редактор. Реализовать выбор цвета, инструменты рисования точек, линий, заливку.
Список литературы:

1. В.В. Подбельский, С.С.Фомин. Программирование на языке Си. М .:ФиС, 1999, 600 с. (рекомендуемый учебник по направлению " Информатика и ВТ" ).

2. Х.М.Дейтел., П.Дж.Дейтел. Как программировать на Си++. М .:ЗАО БИНОМ, 1999, 1000 с. (первые 600 страниц - изложение обычного Си.

3. Климова Л.М.. Основы практического программирования на языке Си. М .: Издательство ПРИОР, 1999, 464 с..

4. Романов E.Л. Информатика. Основы анализа и проектирования программ. Конспект лекций и методические указания к лабораторным работам по дисциплине "Информатика". - Новосибирск, Изд-во НГТУ, 1999, -80 с.

5. Романов E.Л. Язык Си. Типы данных и управление памятью. Конспект лекций. Тестовые вопросы и задания к лабораторным работам. - Новосибирск, Изд-во НГТУ, 2000, -62 с.

6. Романов E.Л. http://ermak.cs.nstu.ru/cprog - электронный учебник по дисциплине " Информатика" .

7. Подбельский В.В. Язык Си++: Учеб.пособие. -М.:Финансы и статистика, 1995. -560 с.:ил. (рекомендуемый учебник по направлению " Информатика и ВТ" ).

Добавить документ в свой блог или на сайт

Похожие:

Рабочая программа по дисциплине “Информатика и программирование iconРабочая учебная программа по дисциплине «Информатика» разработана...
Информатика [Текст]: рабочая учебная программа. Тюмень: гаоу впо то «тгамэуп». 2011. – 28 с

Рабочая программа по дисциплине “Информатика и программирование iconРабочая программа по дисциплине «Правовая информатика»
Рабочая программа составлена доцентом А. В. Бородиной и обсуждена на заседании кафедры уппк факультета Экономики и права

Рабочая программа по дисциплине “Информатика и программирование iconРабочая программа дисциплины Программирование и информатика Лекторы
Канд физ мат наук, доцент Антонюк Валерий Алексеевич, кафедра компьютерных методов физики, e-mail: ru, тел. 916-934-28-03

Рабочая программа по дисциплине “Информатика и программирование iconРабочая программа для специальности 1-36 01 06 «Оборудование и технология...
Рабочая программа составлена на основе типовой программы по дисциплине «Информатика», для групп специальностей 36 01 «Машиностроительное...

Рабочая программа по дисциплине “Информатика и программирование iconМ осковский автомобильно-дорожный институт (государственный технический университет) кафедра
Асу выполнить большую часть заданий по двум дисциплинам «Информатика» и «Программирование на языке высокого уровня» (языки программирования...

Рабочая программа по дисциплине “Информатика и программирование iconМ осковский автомобильно-дорожный институт (государственный технический университет) кафедра
Асу выполнить большую часть заданий по двум дисциплинам «Информатика» и «Программирование на языке высокого уровня» (языки программирования...

Рабочая программа по дисциплине “Информатика и программирование iconРабочая программа учебной дисциплины «Информационные системы и технологии издательского дела»
Рабочая программа предназначена для преподавания учебной дисциплины вариативной части профессионального цикла студентам очной и заочной...

Рабочая программа по дисциплине “Информатика и программирование iconРабочая программа по дисциплине: история образования и педагогической...
Рабочая программа утверждена на заседании кафедры педагогики профессионального образования протокол №1 от «19» 09 2012 г

Рабочая программа по дисциплине “Информатика и программирование iconРабочая программа по дисциплине «Методика преподавания психологии»
Рабочая программа составлена на основании государственного образовательного стандарта высшего профессионального образования по специальности...

Рабочая программа по дисциплине “Информатика и программирование iconРабочая учебная программа по дисциплине б1
Рабочая программа «Теория государства и права» разработана в соответствии с фгос впо по направлению подготовки 030900. 62 Юриспруденция,...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
zadocs.ru
Главная страница

Разработка сайта — Веб студия Адаманов