33
Факултет организационих наука Доц. др Саша Д. Лазаревић, дипл. инж. инф. [email protected] ПРОГРАМИРАЊЕ I УУБ ФОН Ξ ЛабСИ πα Катедра за софтверско инжењерство Лабораторија за софтверско инжењерство ПРОГРАМИРАЊЕ I Универзитет у Београду

P1_Predavanje_01

Embed Size (px)

DESCRIPTION

Uvod iz programiranja u programskom jeziku c.

Citation preview

Page 1: P1_Predavanje_01

Факултет организационих наука

Доц. др Саша Д. Лазаревић, дипл. инж. инф.

[email protected]

ПРОГРАМИРАЊЕ I

УУБ

ФОН

Ξ

ЛабСИ

πα

Катедра за софтверско инжењерство

Лабораторија за софтверско инжењерство

ПРОГРАМИРАЊЕ I

Универзитет у Београду

Page 2: P1_Predavanje_01

Наставници и сарадници

Наставници:

• Доц. др Саша Д. Лазаревић

• Проф. др Синиша Влајић

Сарадници:

• Мр Илија Антовић

• Мс Милош Милић

• Мр Душан Савић

• Мр Војислав Станојевић

2 | φον | Ξ | πα | 3.3.2015.

Page 3: P1_Predavanje_01

Катедра за софтверско инжењерство

3.3.2015. | φον | Ξ | πα | 3

Катедрa за софтверско инжењерство

састоји се из две лабораторије:

• Лабораторија за софтверско инжењерство

silab.fon.bg.ac.rs

• Лабораторија за вештачку интелигенцију

ai.fon.bg.ac.rs

Page 4: P1_Predavanje_01

Контакт

3.3.2015. | φον | Ξ | πα | 4

Е-пошта:

[email protected]

[email protected]

[email protected]

Сајт:

sdl.fon.bg.ac.rs

Kонсултације:

среда, 17:00 – 19:00, кабинет Б005

Page 5: P1_Predavanje_01

Циљ предмета

3.3.2015. | φον | Ξ | πα | 5

Упознавање са кључним концептима програмирања, развоја софтвера и софтверског инжењерства.

Разумевање принципа, правила и метода програмирања и развоја софтвера, као и основних алгоритамских структура и структура података.

Кодирање и тестирање (= имплементација): практично коришћење једног императивног програмског језика.

Употреба софтверских алата и примена основних софтверских метрика.

Page 6: P1_Predavanje_01

Исход предмета

3.3.2015. | φον | Ξ | πα | 6

Оспособљеност студентата да развијају софтвер

применом методе функционалне декомпозиције и

структурног програмирања у необјектном

императивном програмском језику.

Употреба пограмског језика Ц (programming

language C)

Page 7: P1_Predavanje_01

Садржај предмета

3.3.2015. | φον | Ξ | πα | 7

Syllabus

(наставни план; кратак садржај)

Curriculum

(наставни програм; ток; подробан садржај)

Page 8: P1_Predavanje_01

Садржај предмета

3.3.2015. | φον | Ξ | πα | 8

Програмирање I (πα)

I Увод

II Средствa

α. Рачунар

β. Језик

III Технике

IV Алати

V Принципи

α. Програмско-језички узори и идиоми

β. Методе

VI Инжењерство

Page 9: P1_Predavanje_01

Зашто програмски језик Ц?

3.3.2015. | φον | Ξ | πα | 9

Виши програмски језик

Родоначелник фамилује: С++, Java, C#

Ефикасан

Распострањен

...

Page 10: P1_Predavanje_01

Начин извођења наставе

3.3.2015. | φον | Ξ | πα | 10

Програмирање

I

Предавања

Вежбе

Самосталан рад (књига + рачунар)

Предавања и вежбе су два посебна, али повезана тока.

Page 11: P1_Predavanje_01

Начин оцењивања

3.3.2015. | φον | Ξ | πα | 11

Постоје два начина оцењивања:

Модел Б (болоњски)

К1: 30% од оцене

К2: 30% од оцене

Практични (писани) део испита: 20% од оцене

Усмени: 20% од оцене

Модел К (класични)

Практични (писани) део испита: 80% од оцене

Усмени: 20% од оцене

Page 12: P1_Predavanje_01

Начин оцењивања – Модел Б

3.3.2015. | φον | Ξ | πα | 12

Програмирање

I

Колоквијуми 5, 6

Писани део испита 7, 8

Усмени део испита 9, 10

Освојени бодови важе до почетка летњег семестра следеће шк. год.

К1 (30 п.):

Вектор

Стринг

Матрица

К2 (30 п.):

Листа

Датотека

(Структура)

Писани део (20 п.):

Један задатак (четири типа

задатака)

Усмени део (20 п.):

I део: пројекат

II део: теорија

Page 13: P1_Predavanje_01

Начин оцењивања – Модел Б

3.3.2015. | φον | Ξ | πα | 13

Први колоквијум (К1): 30 поена Вектор: 10 поена

Стринг (ниска): 10 поена

Матрица: 10 поена

Други колоквијум (К2): 30 поена Листа: 15 поена

Датотека: 15 поена

Имплицитно: Структура

Напомена: На колоквијумима не може да се „падне“ или „прође“.

На колоквијумима се прикупљају поени.

Page 14: P1_Predavanje_01

Начин оцењивања – Модел Б

3.3.2015. | φον | Ξ | πα | 14

Писани (писмени) део испита: 20 поена

Ради се на рачунару

Програм мора да буде извршив, да би се оцењивао

Конзолни кориснички интерфејс

Четири типа задатака:

1) Несорт.бин.дат. -> низ/мат. -> листа -> текст.дат.

2) Несорт.бин.дат. -> листа -> низ/мат. -> текст.дат.

3) Две сорт.бин.дат. -> нова сорт.бин.дат. -> листа/низ/мат. -> текст.дат.

4) Једна несорт.бин.дат. -> сорт.бин.дат. -> листа/низ/мат. -> текст.дат.

Page 15: P1_Predavanje_01

Начин оцењивања – Модел Б

3.3.2015. | φον | Ξ | πα | 15

Усмени део испита: 20 поена

I део - пројекат (пројектни рад): 10 поена

Услов: освојено [71-80] поена на претходном делу испита

Поставка пројектног задатка се узима од предметног

наставника

Пројекат се брани код предметног асистента

II део - усмени: 10 поена

Услов: одбрањен пројекат

Одговара се код предметног наставника

Нема испитних питања

Page 16: P1_Predavanje_01

Начин оцењивања – Модел К

3.3.2015. | φον | Ξ | πα | 16

Програмирање

I Писани део испита 5, 6, 7, 8

Усмени део испита 9, 10

Теже за полагање.

За студенте који су пали оба колоквијума или који нису могли/желели

да присуствују настави.

Писани део (80 п.):

I део (60 п.): Вектор, Стринг,

Матрица, Листа, Датотека и

(Структура)

II део (20 п.): Један задатак

(четири типа задатака)

Усмени део (20 п.):

I део: пројекат

II део: теорија

Page 17: P1_Predavanje_01

Начин оцењивања - Модел К

3.3.2015. | φον | Ξ | πα | 17

ПИСАНИ ДЕО ИСПИТА

I део (0-60 поена): Исти типови задатака као на колоквијумима

Ради се на рачунару

Програми морају да буду извршиви, да би се оцењивали

Конзолни кориснички интерфејс

II део (0-20 поена): Један задатак

Ради се на рачунару

Програм мора да буде извршив, да би се оцењивао

Конзолни кориснички интерфејс

Четири типа задатака: 1) Несорт.бин.дат. -> низ/мат. -> листа -> текст.дат.

2) Несорт.бин.дат. -> листа -> низ/мат. -> текст.дат.

3) Две сорт.бин.дат. -> нова сорт.бин.дат. -> листа/низ/мат. -> текст.дат.

4) Једна несорт.бин.дат. -> сорт.бин.дат. -> листа/низ/мат. -> текст.дат.

Page 18: P1_Predavanje_01

Литература

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.

Page 19: P1_Predavanje_01

Интернет

3.3.2015. | φον | Ξ | πα | 19

Сајтови

www.programming.org

www.plc.in

...

Вебинари

Sss...

Ddd...

Page 20: P1_Predavanje_01

Програмирање - питања

3.3.2015. | φον | Ξ | πα | 20

Page 21: P1_Predavanje_01

Однос између програмера, корисника, PC1 и PC2

3.3.2015. | φον | Ξ | πα | 21

Page 22: P1_Predavanje_01

Шта је програмирање?

3.3.2015. | φον | Ξ | πα | 22

Програмирање је вештина у којој....

... програмер у програмском језику прави (ствара,

пише, креира, твори) програм извршив на

рачунару, за задовољење потреба корисника.

Page 23: P1_Predavanje_01

Шта је пекарство?

3.3.2015. | φον | Ξ | πα | 23

Пекарство је вештина у којој ......

... пекар употребом брашна, квасца, воде, соли

и других додатака (јаја, мармеладе, крема, сира

итд.) прави хлеб и пецива, за задовољење

потреба корисника.

Page 24: P1_Predavanje_01

Суштинска сличност између

пекарства и програмирања

3.3.2015. | φον | Ξ | πα | 24

Пекарство Програме

рство

Куварство

1.

Постоје

састојци

Брашно, квасац,

вода, јаја,...

Подаци

Намирнице

2.

Постоји

поступак

Рецептура

Алгоритам

Рецептура

3.

Постоји

производ

Хлеб

Програм

Јело

Page 25: P1_Predavanje_01

Суштинска разлика између

пекарства и програмирања

3.3.2015. | φον | Ξ | πα | 25

У првом случају производ је конкретан, опипљив,

реално доступан

У другом случају произод је виртуалан,

софистициран, лоциран у сајбер простору

Дакле:

програмирање је (претежно) концептуална вештина,

а пекарство је (претежно) чињенична вештина.

Page 26: P1_Predavanje_01

Заводљивост програмирања

3.3.2015. | φον | Ξ | πα | 26

Лакоћа стварања новог:

- кратак период од идеје до њене реализације

- упоредити: грађевинарство и програмирање (мост и

програм)

Последица:

самоуки програмери (и програмерчићи), хакери,

‘генијални’ софтвераши

Начин заштите професије:

струковне организације

стандардизовано знање

сертификација

Page 27: P1_Predavanje_01

Суштински елементи сваке вештине

3.3.2015. | φον | Ξ | πα | 27

Суштински елементи сваке вештине су знање

и умеће.

ВЕШТИНА = ЗНАЊЕ + УМЕЋЕ

Знање = теоријски део вештине

Умеће = практичан део вештине

Page 28: P1_Predavanje_01

Знање и умеће

3.3.2015. | φον | Ξ | πα | 28

Учите за живот, а не за школу.

Најнижи степен Највиши степен

Несвесно незнање

Свесно незнање

Свесно знање

Несвесно знање Знање

Неумеће Почетничко

умеће Умеће

Мајсторско умеће (мајсторство)

Умеће

Page 29: P1_Predavanje_01

Програмирање и животни избор(и)

3.3.2015. | φον | Ξ | πα | 29

Програмирање није лака вештина => програмер као рудар

Релативно кратак радни век => програмер као балерина

Претходно има и своје добре стране! => софтверска криза; тражени, цењени, добро плаћени

Немојте да правите изборе са којима не можете да живите.

Програмер као: хакер

уметник

и н ж е њ е р

Page 30: P1_Predavanje_01

Први програм у ПЈЦ

3.3.2015. | φον | Ξ | πα | 30

1. #include <stdio.h>

2. int main(void)

3. {

4. printf(“ Programiranje I \n");

5.

6. return 0;

7. }

Page 31: P1_Predavanje_01

Следеће предавање

3.3.2015. | φον | Ξ | πα | 31

1) Организација и архитектура рачунара

2) Стварни и виртуелни рачунар (машина)

3) Слојевита структура савремених рачунара и

новои апстракције

4) L3S = Low-Level Language Simulator

Page 32: P1_Predavanje_01

Факултет организационих наука

Доц. др Саша Д. Лазаревић, дипл. инж. инф.

[email protected]

ПРОГРАМИРАЊЕ I

УУБ

ФОН

Ξ

ЛабСИ

πα

Катедра за софтверско инжењерство

Лабораторија за софтверско инжењерство

ПРОГРАМИРАЊЕ I

Универзитет у Београду

Page 33: P1_Predavanje_01

3.3.2015. | φον | Ξ | πα | 33

πα