Języki i metodyka programowania

Podobne dokumenty
Programowanie komputerów

Technologie informacyjne - wykład 12 -

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Algorytm. a programowanie -

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Podstawy programowania

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Podstawy programowania wykład

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

Podstawy programowania. Wykład 1 Wstęp. Krzysztof Banaś Podstawy programowania 1

Metodyki i techniki programowania

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

ALGORYTMY I PROGRAMY

Metodyki i techniki programowania

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

1 Wprowadzenie do algorytmiki

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Podstawy i języki programowania

Wstęp do programowania

Metody Kompilacji Wykład 1 Wstęp

Wstęp do Informatyki. Program, proces tworzenia programu Środowisko programistyczne Języki programowania

Programowanie w języku C++ Grażyna Koba

Język programowania PASCAL

Informatyczna Wieża Babel, czyli o różnych językach programowania. Informatyczna Wieża Babel, czyli o różnych językach programowania

Definicje. Algorytm to:

Podstawy Informatyki. Algorytmy i ich poprawność

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Algorytm. Krótka historia algorytmów

KONSTRUKCJA KOMPILATORÓW

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

Programowanie I. Wprowadzenie. Proces programowania

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Algorytmy od problemu do wyniku

Podstawy Programowania. Wykład 1

Paradygmaty programowania

Algorytmy i struktury danych

Programowanie w języku Python. Grażyna Koba

Podstawy Informatyki Języki programowania

Algorytmy, reprezentacja algorytmów.

Java EE produkcja oprogramowania

Algorytmy i struktury danych. wykład 2

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 7 Algorytmy

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Informatyka. Michał Rad

Podstawy Informatyki Języki programowania c.d.

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

Język ludzki kod maszynowy

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

ECDL Podstawy programowania Sylabus - wersja 1.0

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Podstawy Programowania Algorytmy i programowanie

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie.

2.8. Algorytmy, schematy, programy

Translacja wprowadzenie

Programowanie obiektowe - 1.

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

PRZEWODNIK PO PRZEDMIOCIE

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Wprowadzenie do programowania

Języki i paradygmaty programowania. I. Wprowadzenie

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Mikroprocesor Operacje wejścia / wyjścia

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Maciej Oleksy Zenon Matuszyk

Historia modeli programowania

PODSTAWY ALGORYTMIKI

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

Programowanie Niskopoziomowe

Cel stosowania metod i środków informatyki

Zapisywanie algorytmów w języku programowania

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF).

1. WSTĘP. Dr inż. Robert Wójcik, p. 313, C-3, tel

Algorytmika i pseudoprogramowanie

Podstawy Informatyki Systemy sterowane przepływem argumentów

Metody Programowania

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

TRANSLACJA I TRANSLATORY

Programowanie w C. dr inż. Stanisław Wszelak

Języki programowania zasady ich tworzenia

Poprawność algorytmów

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Wprowadzenie do inżynierii przetwarzania informacji

METODY OPISU ALGORYTMÓW KOMPUTEROWYCH

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Modelowanie procesów współbieżnych

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Podstawy programowania skrót z wykładów:

Metodyka i Technika Programowania 1

Wykład 4. Algorytmy i programy. Algorytmy + struktury danych = programy. Niklaus Wirth. Algorytm = logika + sterowanie.

Informatyka. dr inż. Paweł A. Mazurek

Transkrypt:

Języki i metodyka programowania www.ee.pw.edu.pl/~slawinsm Dr inż. Maciej Sławiński M.Slawinski@ee.pw.edu.pl GE518l Konsultacje: śr. 13 00-13 45 SK201/GE518l pt. 10 15-11 00 GE518l/SK201

Algorytmika Literatura T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein Introduction to Algorithms, Second Edition, The MIT Press, 2001 http://mitpress.mit.edu/algorithm

Algorytmy Myślenie komputerowe. Rozumienie kodu. Rozumienie możliwości i ograniczeń. Transformacja problemów na obliczenia.

Algorytmy Wiedza a myślenie komputerowe: Deklaratywna zawartość pamięci, która może być wyrażona słowami fakty, wspomnienia. y=f(x) Imperatywna/proceduralna wiedza przedstawiana jako ciąg poleceń realizujących daną operację. a=1, b=0 dopóki a<x b=b+a a=a+1 y=b

Algorytmy Maszyna Turinga to abstrakcyjny model komputera służący do wykonywania algorytmów, stworzony przez Alana Turinga w 1936r. Składa się z nieskończonej taśmy zawierające komórki z wartościami, głowicy poruszającej się po tej taśmie i wykonującej operacje na wartościach oraz układu sterującego pracą głowicy. X X X X X X X X X X X X X X X X q

Algorytmy Algorytm w matematyce oraz informatyce skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego rodzaju zadań. Algorytm to jednoznaczny przepis przetworzenia w skończonym czasie pewnych danych wejściowych do pewnych danych wynikowych. Algorytm to skończony ciąg działań elementarnych, który określa sposób otrzymania rozwiązania zadania z danych wejściowych. Algorytmika to dziedzina zajmująca się badaniem algorytmów

Algorytmy Opis algorytmu: Słowny Schemat blokowy Sformalizowany kod

Algorytmy Słowny opis algorytmu: Idź prosto 300m, skręć w lewo, idź prosto 100m. Jeżeli brama niebieska jest otwarta, wejdź do niej. Jeśli nie to idź w prawo 5m. Zatrzymaj się i czekaj.

Algorytmy Schemat blokowy: Start Stop Pytanie Decyzja Wejście Wyjście Instrukcja Działanie Łącznik

Algorytmy Schemat blokowy: Start Odczytaj wartość X Oblicz pierwiastek z X TAK X>=0 NIE Wynik Błąd Stop

Algorytmy Sformalizowany kod: Idź Prosto 300m; Skręć w Lewo; Idź Prosto 100m; if brama niebieska jest otwarta then Wejdź do niej else Idź w prawo 5m end if; Zatrzymaj się.

Program komputerowy Program komputerowy sekwencja ciąg symboli opisująca obliczenia, zgodnie z pewnymi regułami zwanymi językiem programowania. Program jest zazwyczaj wykonywany przez komputer (np. wyświetlenie strony internetowej), czasami bezpośrednio jeśli wyrażony jest w języku zrozumiałym dla danej maszyny lub pośrednio gdy jest interpretowany przez inny program (interpreter). Program może być ciągiem instrukcji opisujących modyfikacje stanu maszyny ale może również opisywać obliczenia w inny sposób.

Program komputerowy Programowanie to proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów. Programowanie (implementacja) jest jednym z etapów powstawania oprogramowania. Kod źródłowy tekst w postaci sformalizowanych reguł napisany w określonym języku programowania.

Programowanie Język programowania zbiór zasad określających kiedy ciąg symboli tworzy program (czyli ciąg symboli opisujący obliczenia) oraz jakie obliczenia opisuje. Podobnie jak języki naturalne, język programowania składa się ze zbiorów reguł syntaktycznych oraz semantycznych, które opisują, jak należy budować poprawne wyrażenia oraz jak komputer ma je rozumieć. języki niskiego i wysokiego poziomu programowanie ogólne, docelowe interpretery i kompilatory

Programowanie w kodzie maszynowym Programowanie w kodzie maszynowym jest to proces składania rozkazów, instrukcji dla danego procesora oraz adresów ich argumentów. Programista musi posiadać kompletną wiedzę o architekturze danego procesora. Każdy procesor ma określoną listę instrukcji. Lista instrukcji oraz kody przypisane tym instrukcją definiowane są przez producenta danego procesora.

Programowanie w kodzie maszynowym Język programowania niskopoziomowego Asembler jest to kompilator, który tłumaczy program zapisany w języku symbolicznym na kod maszynowy. Wszystkie instrukcje maszynowe wykonywalne przez dany procesor mają zdefiniowane mnemoniki. Program korzysta z dyrektyw pozwalających np. na automatyzowanie procesu przydzielania pamięci. mov r1,r2 add r1,r3 12 2C 13 0C 18 44 19 12

Programowanie strukturalne Programowanie strukturalne jest to programowanie hierarchiczne, oparte na dzieleniu kodu na bloki, z jednym punktem wejścia i jednym lub wieloma punktami wyjścia. Języki: ALGOL FORTRAN 77 Pascal Modula 2 Ada C

Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) programy definiuje się za pomocą obiektów elementów łączących stan i zachowanie. Obiektowy program komputerowy wyrażony jest jako zbiór obiektów, komunikujących się pomiędzy sobą w celu wykonywania zadań. Języki: C++ Delphi Java C#

Programowanie logiczne Programowanie logiczne (programowanie w logice lub programowanie w języku logiki) metoda programowania, w której program podawany jest jako pewien zestaw zależności, a obliczenia są dowodem pewnego twierdzenia w oparciu o te zależności. Języki: Lisp Prolog

Kompilacja Kompilacja proces polegający na zamianie kodu programu napisanego w jednym języku (źródłowym) na inny język (docelowy) programowania. Kompilator to program komputerowy, który realizuje proces kompilacji. Oryginalny program często jest nazywany kodem źródłowym, a program wyjściowy kodem obiektowym (ang. object code). Zwykle program wyjściowy jest w formie akceptowanej przez inne programy (np. linker), ale może być też w formie czytelnej dla użytkownika. Kompilator często tłumaczy kod źródłowy na kod maszynowy lub na język asembler. Kod źródłowy zapisywany jest w plikach źródłowych.

Kompilacja Pliki źródłowe Kompilator lib obj obj Linker lib dll exe Linker jest programem, który zamienia jeden lub więcej plików obiektowych generowanych przez kompilator na plik/pliki wykonywalny.

Testowanie Błędy oprogramowania Syntaktyczne dotyczą poprawności wyrażeń używanych w danym języku programowania Semantyczne dotyczą poprawności kodu programu statyczne poprawność składni użytych poleceń dynamiczne poprawność realizacji wyniku, celu

Testowanie Błędy oprogramowania Pierwsze błędy programowania wykrywane są przez kompilator i dotyczą poprawności kodu źródłowego. Sprawdzenie skompilowanego programu poprzez testowanie: Eliminacja błędów w systemach komputerowych jest bardzo ważna przy tworzeniu oprogramowania Wyszukiwanie błędów poprzez testowanie Testowanie sprawdza poprawność, kompletność, bezpieczeństwo i jakość

Testowanie Testy strukturalne znane są także jako testy białej lub szklanej skrzynki (ang. white box). Polegają na testowaniu programu poprzez podawanie na wejściu takich danych, aby program przeszedł przez każdą zaimplementowaną ścieżkę. Zasady te są definiowane przez kryteria pokrycia wszystkich pętli oraz wszystkich warunków. Testy białej skrzynki nie są w stanie wykazać braku implementacji funkcji, którą powinien posiadać system docelowy. Sprawdzają jednak dokładnie operacje wykonywane w zaimplementowanych metodach. Testy funkcjonalne znane są także jako testy czarnej skrzynki (ang. blackbox), ponieważ osoba testująca nie ma dostępu do informacji na temat wnętrza programu. Często testy takie są wykonywane przez inne osoby niż programiści tworzący program. Nierzadko są to osoby nie posiadające wiedzy z zakresu programowania. Osoba testująca program nie opiera danych testowych na budowie wewnętrznej programu, lecz na założeniach funkcjonalnych jakie powinien spełniać program zgodnie z dokumentacją. W przypadku braku implementacji funkcji wymaganych przez założenia testy funkcjonalne wykryją błąd. Zakres badanych wartości jest zwykle inny niż w przypadku testów strukturalnych. Testy czarnej skrzynki posiadają większą szansę wykrycia błędnych wykonań, ale jednocześnie nie dostarczają zazwyczaj precyzyjnej informacji na temat przyczyny wystąpienia błędu w programie.

Patch i Service Pack Łata, łatka (ang. patch) jest to poprawka lub uaktualnienie do programu (rzadziej danych), przeznaczona do usunięcia pewnych problemów, błędów, rozszerzenia funkcjonalności programu albo zwiększenia wydajności wcześniejszej wersji programu. Service Pack (w skrócie SP) darmowy, dostarczony przez producenta, pakiet zawierający nowe funkcje i/lub zbiorczą aktualizację bezpieczeństwa dla oprogramowania, udostępniony najczęściej w postaci pojedynczego, łatwego do zainstalowania pliku.