Wiedza wykładowa

Transkrypt

Wiedza wykładowa
Ramowy program fakultatywnych wykładów z Algorytmów i Programowania Obliczeń Inżynierskich
Środy, 14:15-16:00, sala 501 - pierwszych siedem tygodni semestru
1
23.02
2
02.03
3
09.03
Algorytmika
1. Wstęp do algorytmiki
Informatyka i abstrakcja
Algorytmika – prekursorzy
Algorytmika – XX wiek
Teoria informacji
2. Języki programowania
Etapy tworzenia programów
Tłumaczenie programów
Przegląd języków
3. Typy danych
Podstawowe rodzaje danych
Zmienne proste
Struktury statyczne
Struktury dynamiczne
4. Struktury algorytmizacji
Podstawowe struktury sterujące
Typy iteracji
Praca programu
5. Przykłady problemów algorytmicznych
Historia raz jeszcze…
Po co jest algorytmika?
Algorytmy i komputery
Problem komiwojażera
6. Metody opisu algorytmów
Specyfikacja zadania
Słowny opis algorytmu
Lista kroków
Schemat blokowy
Drzewo algorytmu
7. Algorytmy liniowe
Definicja
Wielomiany i schemat Hornera
Tablicowanie funkcji
Odkrywajmy – jak liczyć NWD
8. Algorytmy z rozgałęzieniami
Konieczność warunków
Równanie kwadratowe
Lista kroków
Schemat blokowy
9. Algorytmy niestabilne
Równanie kwadratowe
Siła arytmetyki
Stabilizacja algorytmu
Błędy reprezentacji
10. Równanie(a) liniowe
Równanie prostej
Analiza przypadków
Układ dwóch równań
Źródła utraty dokładności
11. Porządkowania… Sortowania…
Definicja problemu
Porządkowanie dwóch liczb
Porządkowanie trzech liczb
Złożoność obliczeniowa
12. Algorytmy iteracyjne
VBA
1. Wprowadzenie do VBA
Pakiety biurowe i ich uniwersalność
BASIC i jego historia
Visual Basic for Applications
Rejestrowanie makropoleceń
2. Podstawy pracy z VBA
Edytor VBA
Menu edytora VBA
Technika pracy z edytorem
3. Podstawy kodowania w VBA
Budowa programu
Procedury i moduły
Tworzenie podprogramu
4. Procedury: podprogramy i funkcje
Tworzenie funkcji
Parametryzacja
MsgBox
InputBox
5. Instrukcje VBA
Typy instrukcji
Zasady tworzenia nazw
Bloki komentarza
Elementy instrukcji
Słowa kluczowe
6. Typy danych
Typ logiczny
Typy całkowitoliczbowe
Typy zmiennoprzecinkowe
Własny typ – rekord
Inne typy danych
7. Deklaracje stałych i zmiennych
Typy instrukcji
Zasady tworzenia nazw
Bloki komentarza
Elementy instrukcji
Słowa kluczowe
8. Operatory i wyrażenia
Kolejność działań
Operatory arytmetyczne
Operatory porównania
Operatory logiczne
9. Tablice
Wymiary i elementy tablicy
Deklarowanie tablicy
Dostęp do elementów
10. Instrukcje sterujące
Kontrola przepływu programu
Pętle
Instrukcja zliczająca
11. Instrukcje warunkowe
If…Then…EndIf
Jednowierszowa instrukcja If
If…Then…Else…EndIf
SelectCase
12. Pętle warunkowe
Pętle Do…Loop
While i Until
4
16.03
5
23.03
Definicja iteracji
Miary zbiorów
Przechowywanie danych
Idea wartownika
13. Wartownik: przeszukiwanie liniowe
Poszukiwania w zbiorze
Przeszukiwanie z wartownikiem
Średnia
Minimum i maksimum
14. Metody tworzenia algorytmów
„Dziel i zwyciężaj”
Programowanie dynamiczne
Metoda zachłanna
15. Lider zbioru
Modalna i mediana
Pewne twierdzenie…
Algorytm znajdywania lidera
16. Algorytmy sortowania
Korzyści z porządkowania
Modyfikacje problemu
Kilka rad praktycznych
17. Sortowanie bąbelkowe
Idea algorytmu
Ważne spostrzeżenia
Ilustracja algorytmu
Kroki algorytmu
18. Sortowanie przez wybór
Pomysł na algorytm in situ
Jak to działa?
Algorytm sortowania przez wybór
Złożoność obliczeniowa
19. Inne algorytmy sortowania
20. Porównanie algorytmów sortowania
6
30.03
21. System dziesiętny - konwersje
Zasada systemu dziesiętnego
„Ręczna” zamiana 10 na 2
Algorytm komputerowy
Realizacja algorytmu
22. Schemat Hornera
Obliczanie wartości wielomianu
Schemat Hornera
Optymalność i realizacja w VBA
Binarny na dziesiętny
23. Algorytmy potęgowania
Przykład oszczędności
Algorytm „od lewej”
Realizacja w VBA
Algorytm „od prawej”
Exit…Do
GoTo
13. Wbudowane funkcje matematyczne
Funkcje trygonometryczne
Eksponent i logarytm
Liczby losowe
Zaokrąglenia i obcięcia
14. Wbudowane funkcje czasu
Typ danych Date
Hour, Minure, Second
Day, Month, Year
WeekDay
15. Operacje plikowe (1)
Name
ChDir
ChDrive
MkDir
RmDir
16. Operacje plikowe (2)
RmDir
Kill
CurDir
Dir
17. Sekwencyjne pliki danych
Wprowadzenie
Otwieranie pliku sekwencyjnego
Zapisywanie w pliku sekwencyjnym
Zamykanie pliku
Odczytywanie zawartości
18. Pliki o dostępie swobodnym
Wprowadzenie
Definiowanie typu zmiennej
Zapisywanie rekordów w pliku
Odczytywanie rekordu
19. Operacje na łańcuchach
Porównania i konwersje
Operacje ze spacjami
Formatowania i zamiany
Wycinanie i obcinanie
20. Funkcje informacyjne
Czy dana zmienna jest…
Jaki to typ?
Błędy
OnError
21. Błędy w programach
Źródła błędów
Rodzaje błędów
Błędy składniowe
Błędy wykonania
22. Wykrywanie błędów: tryb przerwania
Błędy wykonania
Tryb przerwania
Praca w trybie przerwania
Punkty przerwania
23. Wyszukiwanie błędów: narzędzia analityczne
Okno Immediate
Okno Locals
Okno Watch
Zarządzanie oknami
7
06.04
24. Algorytm Euklidesa
Problem znajdywania NWD
Algorytm Euklidesa
Wersja z dzieleniem
Wersja z odejmowaniem
25. Zastosowania algorytmu Euklidesa
Problem przelewania wody
Rozszerzony Euklides
Algorytm i jego realizacja
Kod w VBA
26. Operacje na ułamkach zwykłych
Podstawowe definicje
Najmniejsza Wspólna Wielokrotność
Algorytm obliczania NWW
Kod VBA dla NWW
27. Liczby pierwsze i liczby złożone
Podstawowe definicje
Poszukiwanie liczb pierwszych
Fermat, Mersenne, Euklides
Rozkład na czynniki pierwsze
26. Sito Eratostenesa i faktoryzacja
Faktoryzacja
Sito - pomysł na liczby pierwsze
Redukcja działań
Algorytm sita Eratostenesa
29. Obliczanie pierwiastka kwadratowego
30. Bisekcja
31. Rekurencja: liczby Fibonacciego
32. Rekurencja: wieże Hanoi
24. Obsługa błędów
Okno Immediate
Okno Locals
Okno Watch
Zarządzanie oknami
25. Programowanie modułowe
Prosty przykład
Szkielet strukturalny
Słownictwo…
Po co to wszystko?
26. Kodowanie (proceduralne)
Przekazywanie danych
Lokalne kontra globalne
ByVal kontra ByRef
Kodowanie Sub i Function
27. Dyskusja
Program a-strukturalny
Zmienne globalne
Procedury z argumentami
Podsumowanie
28. Podsumowanie zagadnienia
Kiedy Sub, kiedy Function?
Argumenty i parametry
Szybkie testowanie funkcji
Parametry Optional
29. Podejście obiektowe
30. Podejście obiektowe
31. Podejście obiektowe
32. Podejście obiektowe
Wykłady maja charakter fakultatywny (pozostawiony do wyboru, nie obowiązujący; możliwy, dowolny» - zajęcia
fakultatywne), ale wiedza przekazywana na nich jest niezbędna na zajęciach laboratoryjnych. W sieci zostaną
udostępnione pliki PDF z tzw. „handouts” zawierającymi prezentowane podczas wykładu slajdy.
Warszawa, 22 lutego - 7 kwietnia 2005
R. Robert Gajewski