Podstawy programowania 09-PP-22
Treści kształcenia:
Algorytmika:
1. Wprowadzenie do algorytmiki i struktur danych. Zadania algorytmiczne i niealgorytmiczne. Sposób zapisu algorytmów. Metody reprezentowania informacji. Znajdowanie algorytmu, graniczenia algorytmów.
2. Podstawowe paradygmaty programowania. Języki wyższego i niższego poziomu. Narzędzi programistyczne.
3. Struktury sterujące służące do budowy algorytmu. Iteracja, następstwo. Warunek. Procedury w algorytmach.
4. Struktury danych. Abstrakcyjne typy danych. Tablice, zbiory, listy, stosy, kolejki drzewa.
5. Typ rekordowy, tablice. Podstawowe operacje.
6. Typ wskaźnikowy, przydział pamięci.
7. Lista, stos, kolejka – podstawowe operacje.
8. Drzewa binarne i grafy.
9. Struktury plikowe. Pliki tekstowe, indeksowanie, Szyfrowanie
10. Selekcja i wyszukiwanie – algorytmy słownikowe, hashowanie.
11. Rekurencja, i iteracja zmiana na algorytm iteracyjny.
12. Wyszukiwanie na listach i drzewach.
13. Algorytmy sortowania w tablicach i na listach.
14. Graf zorientowany, drzewo – algorytmy przeszukiwania.
15. Poprawność algorytmu. Błędy przy konstrukcji i zapisie algorytmu. Złożoność obliczeniowa.
16. Maszyny Turinga. Automaty skończone.
Inne realizowane treści:
- wyrażenia regularne
- analiza istniejących programów w celu zilustrowania zagadnień programistycznych
- wykorzystanie zdobytej wiedzy do modyfikacji istniejących programów
- wykorzystanie zdobytej wiedzy do tworzenia własnych programów
- analiza i przetwarzanie korpusów językowych za pomocą programów skryptowych (tokenizacja, lista wyrazowa, normalizacja tekstu, kolokacje i bigramy, konkordans,statystyki, dysambiguacja znaczenia wyrazów, tłumaczenie automatyczne)
- prezentacja i porównanie języków: Basic UNIX shell scripting, Perl, Python, Ruby, Delphi, Praat
Cele kształcenia
Kierunek studiów
Poziom przedmiotu
Rodzaj przedmiotu
Rok studiów (jeśli obowiązuje)
Efekty kształcenia
Po zakończeniu modułu (przedmiotu) i potwierdzeniu osiągnięcia efektów kształcenia student:
- zna podstawowe tematy, pojęcia i zagadnienia dotyczące badań językoznawczych z obszaru informatyki/algorytmiki
- zna treść, formę i funkcję podstawowej terminologii z zakresu językoznawstwa komputerowego i informatyki/algorytmiki
- ma uporządkowaną wiedzę ogólną na temat językoznawstwa komputerowego i informatyki/algorytmiki
- ma co najmniej elementarną wiedzę o powiązaniach nauk filologicznych z informatyką/programowaniem
- zna podstawowe metody badawcze i interpretacyjne mające zastosowanie do języków programowania i technologii mowy
- umie samodzielnie zdobywać wiedzę z wykorzystaniem słowników, leksykonów oraz innych tradycyjnych i multimedialnych źródeł informacji, aby rozwiązać problem programistyczny
- potrafi wyszukiwać, analizować, oceniać i selekcjonować informacje z różnych źródeł
- potrafi właściwie korzystać ze zdobytej wiedzy przedmiotowej w celu formułowania i analizy problemów badawczych oraz w celu uzasadniania swoich wyborów
- potrafi samodzielnie napisać proste programy w języku skryptowym
Kryteria oceniania
Warunkiem zaliczenia przedmiotu jest zaliczenie 2 testów praktycznych przy komputerze (tj. napisanie 3 prostych programów w języku skryptowym) pod koniec semestru oraz zaliczenie pisemnego egzaminu końcowego, możliwe 2 nieusprawiedliwione nieobecności w semestrze; końcowa ocena na podstawie wyniku egzaminu pisemnego (<61% - ndst, 61-70% dst, 71-75% dst+, 76-85% db, 86-90% db+, 91%< bdb)
Literatura
Podstawowa:
Wirth N. 2002. Algorytmy + struktury danych = programy, WNT, Warszawa.
Wróblewski P. 1996. Algorytmy, struktury danych i techniki programowania, Helion, Gliwice.
Harel D. 2000. Rzecz o istocie informatyki, WNT, Warszawa.
Python – Dokumentacja. http://www.python.org/doc/
Church, K.W. UnixTM for Poets.
Bird, S., Klein, E. Loper, E. 2009. Natural Language Processing with Python – Analyzing Text with the Natural Language Toolkit. O'Reilly Media,
Jurafsky, Daniel, and James H. Martin. 2009. Speech and Language Processing: An Introduction to Natural Language Processing, Speech Recognition, and Computational Linguistics. 2nd edition. Prentice-Hall.
Ruslan, M. (Ed.) 2002The Oxford Handbook of Computational Linguistics. Oxford University Press
Dodatkowa:
Boduch, A.. 2002. Delphi 6. Ćwiczenia praktyczne. Helion.
Schwartz, R.L, Olson, E., Christiansen, T. 1997. Learning Perl on Win32 Systems. O'Reilly
Friedl, J. 2001. Wyrażenia regularne. Helion. O'Reilly
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: