Podstawy Programowania 01 Teoria

background image

1

Podstawy

Programowania

Michał Bujacz

bujaczm@p.lodz.pl

B9 „Lodex” 207

godziny przyjęć: środy i

czwartki 10:00-11:00

http://www.eletel.p.lodz.pl/bujacz/

background image

2

Podział zajęć

karta ECTS:

http://www.programy.p.lodz.pl/


40 godzin laboratoriów (13 x 3h)
20 godzin wykładów (10 x 2h)

Zaliczenie wykładu:
-

odpytywanie na laboratoriach (pytania na koniec wykładu)

-

prezentacje w parach


Podniesie oceny:

-

obecności

-

egzamin ustny

background image

3

Ankieta wstępna:
systemy operacyjne

Używam i/lub znam się:

Chcę się nauczyć:

20

2

1

0

5

10

15

20

Windows

Mac

Linux

6

5

6

4

0

5

10

15

20

Windows

Mac

Linux

Nic

background image

4

Ankieta wstępna:
języki programowania

o

19/20 uważa że zna się na Pythonie

o

Języki które chcielibyście opanować:

2

13

12

3

1

1

1

0

5

10

15

20

Python

Java

C++

C

Ruby

Java script

Żadnego

background image

5

Ankieta wstępna:
języki programowania

o

Języki które uważacie że powinien znać
programista:

1

18

14

4

2

0

5

10

15

20

Python

Java

C++

C

Ruby

background image

6

Ankieta wstępna:
plany kariery / zainteresowania

o


o

Materiały biomed. Implanty. Sztuczne tkanki.

0

1

2

3

4

5

Projektowanie elektr.med.(elektronik)

Serwisowanie elektr. med.(elektronik)

Projektowanie elektr. med.(programista)

Serwisowanie elektr.med.(programista)

Analiza sygnałów biomed.(programista)

Analiza obrazów biomed.(programista)

Bioidentyfikacja (programista)

Sprzedaż/marketing sprzętów biomed.

Praca naukowa

background image

7

Poszukiwani programiści
(ogłoszenia z indeed.com)

background image

8

Poszukiwani programiści
(ogłoszenia z praca.pl)

0

100

200

300

400

500

600

700

800

Matlab

Delphi

QT

bash

Java Script

ruby

Python

C

php

C++

.net

C#

JAVA

SQL

background image

9

Myśleć jak programista

o

Wiedza deklaratywna

pierwiastek z x to liczba która spełnia

równanie y * y = x

o

Wiedza imperatywna
(proceduralna/praktyczna)

zgadujemy jakieś g < x

sprawdzamy czy g * g

– x < limit

jeżeli nie to nowe g = ( g + x/g ) / 2

zgadujemy aż uzyskamy zadowalające g

background image

10

6 kroków pracy programisty

1.

Specyfikacja / definicja problemu

2.

Projekt programu (design)

3.

Programowanie (coding)

4.

Testowanie (debugging)

5.

Dokumentacja (documentation)

6.

Pielęgnacja (maintenance)

background image

11

Sposoby projektowania
programów

o

Pseudokod

o

Schemat blokowy (Flowchart)

o

Schemat modularny (Top-down)

o

Programowanie organiczne (Bottom-up)

background image

12

Zadanie z algorytmów 1

Napisz prosty algorytm w pseudokodzie lub
schemacie blokowym

wyliczający jak wydać

resztę za pomocą najmniejszej liczby monet.

Do dyspozycji mamy monety:

1,2,5,10,20,50 gr
1,2,5 zł

background image

13

Zadanie z algorytmów 2

Zaproponuj jak ułożyć 4 liczby a,b,c,d w
rosnącej kolejności:

-

sprawdzić wszystkie możliwe kombinacje

(„a ≥ b ≥ c ≥ d” ? „a ≥ c ≥ b ≥ d” … etc.)

-

znaleźć najmniejszą/największą, przerzucić na

początek/koniec

-

porównywać po dwie sąsiadujące i zamieniać

jeżeli są w złej kolejności

background image

14

Klasyfikacje języków
programowania:

o

poziom/generacja

(bliskość do

maszyny/człowieka)

o

kompilator/interpreter

(sposób

wykonywania programów)

o

paradygmat programowania (np.
imperatywne / obiektowe)

background image

15

Generacje języków
programistycznych

I

– poziom maszynowy

0100111

II

– poziom niski (assemblerowy)

MOV A1, A2


III

– języki wysokiego poziomu

for(int i=0;i<n;i++)


IV

– języki zadaniowe (SQL, Excel, LabView)

SELECT id FROM objects WHERE x = TRUE


V

– języki naturalne / graficzne

(czy już istnieją? czy są tylko interfejsami do 3G and 4G?)


„Filter this audio input for me. Remove all frequencies below 100Hz.”

Audio input1

Filter.HP(100)

Speaker1

background image

16

Kompilator vs. interpreter

Interpreter

– tłumaczy jedną instrukcję na język maszynowy, czeka

aż procesor ją wykona, tłumaczy następną (np. BASIC, języki
skryptowe)

- powolne, wymaga interpretera na danym komputerze

+ duża przenośność i wykrywalność błędów


Kompilator

– tłumaczy cały program, zazwyczaj tworząc „plik

wykonywalny” (np. C, C++)

+ szybsze i nie wymagają kompilatora do uruchomienia

-

słaba przenośność, większe ryzyko błędów


Hybryda: JAVA

– posiada zarówno interpreter i kompilator –

wszystkie programy kompiluje się na „wirtualną maszynę JAVA”

która zainstalowana na dowolnym komputerze służy za interpreter

skompilowanego już kodu (efektem jest nieporównywalna

przenośność i względnie dobra szybkość)

background image

17

Paradygmaty
programowania (1)

o

Imperatywne

Skupienie na instrukcjach, oddzielnie definiowane dane

Program wykonuje kolejno komendy manipulujące danymi

o

Obiektowe

Połączenie stanów (danych) i zachowań (instrukcji, procedur,

metod)

Większość instrukcji polega na komunikacji między obiektami

background image

Paradygmaty
programowania (2)

o

Strukturalne

– łączenie instrukcji w hierarchiczne bloki

o

Proceduralne - grupowanie instrukcji w procedury

o

Modularne

–nadrzędność modułów nad blokami i procedurami

o

Funkcyjne - skupienie na funkcjach, nie instrukcjach

o

Uogólnione (generic) – nie wymaga twardego definiowania typów
danych

o

Sterowane zdarzeniami (event based)

– mocno związene z

wieloprocesowością i obiektowymi GUI

o

Deklaratywne (logiczne)

– liczy się wynik końcowy nie instrukcje

potrzebne by go osiągnąć (języki 4G)

o

Agentowe

– wyższy poziom abstrakcji od obiektowego –niezależnie

działające ale współpracujące mini-programy (software agents)

o

Hybrydowe

– większość istniejących języków programistycznych to

połączenia powyższych paradygmatów

18

background image

Pytania weryfikacyjne:

o

Wiedza deklaratywna vs imperatywna

o

6 kroków pracy programisty

o

Sposoby projektowania programów

o

Klasyfikacje języków programowania

o

Poziom/generacja języka programowania

o

Kompilator vs. interpreter

o

Paradygmaty programowania

19


Wyszukiwarka

Podobne podstrony:
[lekcja 2] Podstawy programowania teoria i terminologia Kurs C++ » Poziom 1
JS 02 Podstawowe okienka, Programowanie, instrukcje - teoria
JS 01 Umieszczanie skryptu, Programowanie, instrukcje - teoria
Nowa podstawa programowa WF (1)
1 Podstawy programowania dialogowego
nowa podstawa programowa sp
11-nkb~1, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l2
2-eukl~1, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l2
Zmiany w podstawie programowej w zakresie edukcji matematycznej, Wczesna edukacja, Materiały do prac
1-algo~1, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l2
c-zadania-w3, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, kol
Wychowanie w nowej podstawie programowej katechezy, szkoła, Rady Pedagogiczne, wychowanie, profilakt
PP temat6, Podstawy programowania
PODSTAWA PROGRAMOWA WYCHOWANIA PRZEDSZKOLNEGO
Laboratorium Podstaw Programowania 2
Podstawa programowa dla gimnazjum
Pytania na egzamin nowa podstawa programowa, sem I
Podstawy programowania (wykład III)

więcej podobnych podstron