Upload
alexei558
View
34
Download
1
Embed Size (px)
DESCRIPTION
Uvod iz programiranja u programskom jeziku c.
Citation preview
Факултет организационих наука
Доц. др Саша Д. Лазаревић, дипл. инж. инф.
ПРОГРАМИРАЊЕ I
УУБ
ФОН
Ξ
ЛабСИ
πα
Катедра за софтверско инжењерство
Лабораторија за софтверско инжењерство
ПРОГРАМИРАЊЕ I
Универзитет у Београду
Наставници и сарадници
Наставници:
• Доц. др Саша Д. Лазаревић
• Проф. др Синиша Влајић
Сарадници:
• Мр Илија Антовић
• Мс Милош Милић
• Мр Душан Савић
• Мр Војислав Станојевић
2 | φον | Ξ | πα | 3.3.2015.
Катедра за софтверско инжењерство
3.3.2015. | φον | Ξ | πα | 3
Катедрa за софтверско инжењерство
састоји се из две лабораторије:
• Лабораторија за софтверско инжењерство
silab.fon.bg.ac.rs
• Лабораторија за вештачку интелигенцију
ai.fon.bg.ac.rs
Контакт
3.3.2015. | φον | Ξ | πα | 4
Е-пошта:
Сајт:
sdl.fon.bg.ac.rs
Kонсултације:
среда, 17:00 – 19:00, кабинет Б005
Циљ предмета
3.3.2015. | φον | Ξ | πα | 5
Упознавање са кључним концептима програмирања, развоја софтвера и софтверског инжењерства.
Разумевање принципа, правила и метода програмирања и развоја софтвера, као и основних алгоритамских структура и структура података.
Кодирање и тестирање (= имплементација): практично коришћење једног императивног програмског језика.
Употреба софтверских алата и примена основних софтверских метрика.
Исход предмета
3.3.2015. | φον | Ξ | πα | 6
Оспособљеност студентата да развијају софтвер
применом методе функционалне декомпозиције и
структурног програмирања у необјектном
императивном програмском језику.
Употреба пограмског језика Ц (programming
language C)
Садржај предмета
3.3.2015. | φον | Ξ | πα | 7
Syllabus
(наставни план; кратак садржај)
Curriculum
(наставни програм; ток; подробан садржај)
Садржај предмета
3.3.2015. | φον | Ξ | πα | 8
Програмирање I (πα)
I Увод
II Средствa
α. Рачунар
β. Језик
III Технике
IV Алати
V Принципи
α. Програмско-језички узори и идиоми
β. Методе
VI Инжењерство
Зашто програмски језик Ц?
3.3.2015. | φον | Ξ | πα | 9
Виши програмски језик
Родоначелник фамилује: С++, Java, C#
Ефикасан
Распострањен
...
Начин извођења наставе
3.3.2015. | φον | Ξ | πα | 10
Програмирање
I
Предавања
Вежбе
Самосталан рад (књига + рачунар)
Предавања и вежбе су два посебна, али повезана тока.
Начин оцењивања
3.3.2015. | φον | Ξ | πα | 11
Постоје два начина оцењивања:
Модел Б (болоњски)
К1: 30% од оцене
К2: 30% од оцене
Практични (писани) део испита: 20% од оцене
Усмени: 20% од оцене
Модел К (класични)
Практични (писани) део испита: 80% од оцене
Усмени: 20% од оцене
Начин оцењивања – Модел Б
3.3.2015. | φον | Ξ | πα | 12
Програмирање
I
Колоквијуми 5, 6
Писани део испита 7, 8
Усмени део испита 9, 10
Освојени бодови важе до почетка летњег семестра следеће шк. год.
К1 (30 п.):
Вектор
Стринг
Матрица
К2 (30 п.):
Листа
Датотека
(Структура)
Писани део (20 п.):
Један задатак (четири типа
задатака)
Усмени део (20 п.):
I део: пројекат
II део: теорија
Начин оцењивања – Модел Б
3.3.2015. | φον | Ξ | πα | 13
Први колоквијум (К1): 30 поена Вектор: 10 поена
Стринг (ниска): 10 поена
Матрица: 10 поена
Други колоквијум (К2): 30 поена Листа: 15 поена
Датотека: 15 поена
Имплицитно: Структура
Напомена: На колоквијумима не може да се „падне“ или „прође“.
На колоквијумима се прикупљају поени.
Начин оцењивања – Модел Б
3.3.2015. | φον | Ξ | πα | 14
Писани (писмени) део испита: 20 поена
Ради се на рачунару
Програм мора да буде извршив, да би се оцењивао
Конзолни кориснички интерфејс
Четири типа задатака:
1) Несорт.бин.дат. -> низ/мат. -> листа -> текст.дат.
2) Несорт.бин.дат. -> листа -> низ/мат. -> текст.дат.
3) Две сорт.бин.дат. -> нова сорт.бин.дат. -> листа/низ/мат. -> текст.дат.
4) Једна несорт.бин.дат. -> сорт.бин.дат. -> листа/низ/мат. -> текст.дат.
Начин оцењивања – Модел Б
3.3.2015. | φον | Ξ | πα | 15
Усмени део испита: 20 поена
I део - пројекат (пројектни рад): 10 поена
Услов: освојено [71-80] поена на претходном делу испита
Поставка пројектног задатка се узима од предметног
наставника
Пројекат се брани код предметног асистента
II део - усмени: 10 поена
Услов: одбрањен пројекат
Одговара се код предметног наставника
Нема испитних питања
Начин оцењивања – Модел К
3.3.2015. | φον | Ξ | πα | 16
Програмирање
I Писани део испита 5, 6, 7, 8
Усмени део испита 9, 10
Теже за полагање.
За студенте који су пали оба колоквијума или који нису могли/желели
да присуствују настави.
Писани део (80 п.):
I део (60 п.): Вектор, Стринг,
Матрица, Листа, Датотека и
(Структура)
II део (20 п.): Један задатак
(четири типа задатака)
Усмени део (20 п.):
I део: пројекат
II део: теорија
Начин оцењивања - Модел К
3.3.2015. | φον | Ξ | πα | 17
ПИСАНИ ДЕО ИСПИТА
I део (0-60 поена): Исти типови задатака као на колоквијумима
Ради се на рачунару
Програми морају да буду извршиви, да би се оцењивали
Конзолни кориснички интерфејс
II део (0-20 поена): Један задатак
Ради се на рачунару
Програм мора да буде извршив, да би се оцењивао
Конзолни кориснички интерфејс
Четири типа задатака: 1) Несорт.бин.дат. -> низ/мат. -> листа -> текст.дат.
2) Несорт.бин.дат. -> листа -> низ/мат. -> текст.дат.
3) Две сорт.бин.дат. -> нова сорт.бин.дат. -> листа/низ/мат. -> текст.дат.
4) Једна несорт.бин.дат. -> сорт.бин.дат. -> листа/низ/мат. -> текст.дат.
Литература
3.3.2015. | φον | Ξ | πα | 18
1. D.E. Knuth: The Art of Computer Programming, Vol. I, II; Addison-Wesley, 1969-1973.
2. O.J. Dahl, E.W. Dijkstra, C.A.R. Hoare: Structured Programming, Academic Press, 1972.
3. N. Wirth: Algorithms + Data Structures = Programs, Prentice-Hall, Englewood Cliffs, 1976.
4. Д. Иветић: Структурирани приступ програмирању, ФТН Издаваштво, Нови Сад, 2005.
5. B.W. Kernighan, D.M. Ritchie: Programski jezik C, II izdanje, CET, Beograd, 2003.
6. C.L. Tondo, S.E. Gimpel: Programski jezik C – rešenja zadataka, II izdanje, CET, Beograd, 2004.
7. A. Hansen: Programiranje na jeziku C – potpuni vodič, Mikro knjiga, Beograd, 1991.
Интернет
3.3.2015. | φον | Ξ | πα | 19
Сајтови
www.programming.org
www.plc.in
...
Вебинари
Sss...
Ddd...
Програмирање - питања
3.3.2015. | φον | Ξ | πα | 20
Однос између програмера, корисника, PC1 и PC2
3.3.2015. | φον | Ξ | πα | 21
Шта је програмирање?
3.3.2015. | φον | Ξ | πα | 22
Програмирање је вештина у којој....
... програмер у програмском језику прави (ствара,
пише, креира, твори) програм извршив на
рачунару, за задовољење потреба корисника.
Шта је пекарство?
3.3.2015. | φον | Ξ | πα | 23
Пекарство је вештина у којој ......
... пекар употребом брашна, квасца, воде, соли
и других додатака (јаја, мармеладе, крема, сира
итд.) прави хлеб и пецива, за задовољење
потреба корисника.
Суштинска сличност између
пекарства и програмирања
3.3.2015. | φον | Ξ | πα | 24
Пекарство Програме
рство
Куварство
1.
Постоје
састојци
Брашно, квасац,
вода, јаја,...
Подаци
Намирнице
2.
Постоји
поступак
Рецептура
Алгоритам
Рецептура
3.
Постоји
производ
Хлеб
Програм
Јело
Суштинска разлика између
пекарства и програмирања
3.3.2015. | φον | Ξ | πα | 25
У првом случају производ је конкретан, опипљив,
реално доступан
У другом случају произод је виртуалан,
софистициран, лоциран у сајбер простору
Дакле:
програмирање је (претежно) концептуална вештина,
а пекарство је (претежно) чињенична вештина.
Заводљивост програмирања
3.3.2015. | φον | Ξ | πα | 26
Лакоћа стварања новог:
- кратак период од идеје до њене реализације
- упоредити: грађевинарство и програмирање (мост и
програм)
Последица:
самоуки програмери (и програмерчићи), хакери,
‘генијални’ софтвераши
Начин заштите професије:
струковне организације
стандардизовано знање
сертификација
Суштински елементи сваке вештине
3.3.2015. | φον | Ξ | πα | 27
Суштински елементи сваке вештине су знање
и умеће.
ВЕШТИНА = ЗНАЊЕ + УМЕЋЕ
Знање = теоријски део вештине
Умеће = практичан део вештине
Знање и умеће
3.3.2015. | φον | Ξ | πα | 28
Учите за живот, а не за школу.
Најнижи степен Највиши степен
Несвесно незнање
Свесно незнање
Свесно знање
Несвесно знање Знање
Неумеће Почетничко
умеће Умеће
Мајсторско умеће (мајсторство)
Умеће
Програмирање и животни избор(и)
3.3.2015. | φον | Ξ | πα | 29
Програмирање није лака вештина => програмер као рудар
Релативно кратак радни век => програмер као балерина
Претходно има и своје добре стране! => софтверска криза; тражени, цењени, добро плаћени
Немојте да правите изборе са којима не можете да живите.
Програмер као: хакер
уметник
и н ж е њ е р
Први програм у ПЈЦ
3.3.2015. | φον | Ξ | πα | 30
1. #include <stdio.h>
2. int main(void)
3. {
4. printf(“ Programiranje I \n");
5.
6. return 0;
7. }
Следеће предавање
3.3.2015. | φον | Ξ | πα | 31
1) Организација и архитектура рачунара
2) Стварни и виртуелни рачунар (машина)
3) Слојевита структура савремених рачунара и
новои апстракције
4) L3S = Low-Level Language Simulator
Факултет организационих наука
Доц. др Саша Д. Лазаревић, дипл. инж. инф.
ПРОГРАМИРАЊЕ I
УУБ
ФОН
Ξ
ЛабСИ
πα
Катедра за софтверско инжењерство
Лабораторија за софтверско инжењерство
ПРОГРАМИРАЊЕ I
Универзитет у Београду
3.3.2015. | φον | Ξ | πα | 33
πα