ZAAWANSOWANE PROGRAMOWANIE - BIOINFORMATYKA Karta ECTS (2021)
Test:
xx.xx.2023 godzina: xx:xx - xx:xx sala: e-kursy
Wyniki:
Archiwum, nowe wersje na platformie e-kursy
# Tydzień zajęć
Wykład
Odnośniki
VI tydzień
-
Dzień wolny od zajęć dydaktycznych.
XIV tydzień
-
Dzień wolny.
XVI tydzień
-
SPECYFIKACJA INTERFEJSU DLA PROGRAMU ZALICZENIOWEGO
Ostatnia zmiana: 20-03-2020
[20-03-2020] Aktualizacja
[20-03-2020] Aktualizacja
Wymagania dotyczące interfejsu dla projektu w ramach przedmiotu Zaawansowanie Programowanie:
- Programu powinien być wielookienkowy lub opcjonalnie jego główne okno musi być rozdzielone na zakładaki, minimum dwa: opcje generatora instancji oraz samej metaheurystyki. Zalecane są jednak trzy zakładki, poza wcześniej wymienionymi także osobna zakłada z wynikami. Ta ostatnia ma sens oczywiście wtedy, gdy reprezentacja wyniki jest wystarczająco ciekawa - dla jednej czy dwóch liczb będących wynikiem osobnej zakładki robić nie warto.
- Dane instancji programu muszą się wyświetlać w sposób umożliwiający ich wygodną zmianę czy w ogóle wprowadzanie ręczne. Im wygodniejszy będzie to sposób tym oczywiście lepiej - TextBox wielolinijkowy to absolutne minimum, z wygodą mające jednak niewiele wspólnego (DataGridView o ile ma sens należy traktować jako standard).
- Program musi mieć możliwość zapisywania do pliku instancji wybranego problemu kombinatorycznego oraz odczytywania jej z pliku - format zapisu dowolny, choć dobrze byłoby gdyby był tekstowy (także XML, chodzi o to, aby plik nadawał się do obejrzenia choćby w notatniku, czyli zapis nie w formacie ''maszynowym''.
- Parametry startowe metaheurystyki powinny być modyfikowalne poprzez interface programy, czyli wskazane jest używanie komponentów typu CheckBox, RadioButton, ComboBox. TextBox w przypadku wprowadzania danych, które trudno zawrzeć w poprzednich, np. konkretny czas pracy.
- Bardzo wysoko będzie oceniana wielowątkowość programu, tj. główny algorytm pracuje jako osobny wątek co umożliwia ciągłe odświeżanie (i możliwość używania) elementów interface'u. Wątek ten można a) pauzować b) zakończyć przed czasem - program wyświetla wtedy to, co obliczył do danej chwili. Należy dopracować interface pod kątem bezpieczeństwa programu - na przykład w momencie pauzy możemy zmienić czas, który ma metaheurystyka na obliczenia, ale być może już nie pewne inne parametry, których zmiana w trakcie pracy byłaby bezsensowna (o ile znajdą się takie).
- Program poza wynikiem końcowym (wartość funkcji celu + całe rozwiązanie) powinien informować o zaawansowaniu obliczeń. ProgressBar to znów absolutne minimum, jakiś minilog z obliczeń byłby wskazany (w przypadku logu roboczego akurat TexBox wielolinijkowy jest jak znalazł). Preferowane jest używanie wykresu - obiekty typu Chart, o których jest mowa na laboratoriach. Rozwiązanie jest zapisywane do pliku oraz wyświetlane na ekranie w dowolnej, byle jednak czytelnej formie.
LABORATORIA
[LABORATORIUM I: 9.10.2023]
Wstęp i wprowadzenie do Visual Studio 2022 w kontekście projektu zaliczeniowego (na wykładzie).
Wstęp i wprowadzenie do Visual Studio 2022 w kontekście projektu zaliczeniowego (na wykładzie).
[LABORATORIUM II: 6.11.2023]
LINK: Laboratorium II: komunikacja za pomocą delegatów
LINK: DelegatesCommunication - Przykładowy projekt
LINK: Laboratorium II: komunikacja za pomocą delegatów
LINK: DelegatesCommunication - Przykładowy projekt
[LABORATORIUM III: 13.11.2023]
LINK: Laboratorium III: Wielowątkość, przykład dla obiektów BackgroundWorker
LINK: Wielowątkowość - Przykładowy projekt
LINK: Kolejna strona z przykładem i teorią
LINK: Laboratorium III: Wielowątkość, przykład dla obiektów BackgroundWorker
LINK: Wielowątkowość - Przykładowy projekt
Inne przydatne linki i materiały:
LINK: Tutorial z innymi przykładami na wielowątkośćLINK: Kolejna strona z przykładem i teorią
[LABORATORIUM IV: 20.11.2023]
LINK: Laboratorium IV: DataGridView - Opis
LINK: DataGridView - Przykładowy projekt
LINK: Laboratorium IV: DataGridView - Opis
LINK: DataGridView - Przykładowy projekt
[LABORATORIUM VI: 11.12.2023]
LINK: Laboratorium VI: Kolekcje i okna dialogowe
LINK: Kolekcje i okna dialogowe - Przykładowy projekt
LINK: Plik do wczytywania
LINK: OpenFileDialog
LINK: SaveFileDialog
LINK: Przyklad odczytu pliku
LINK: Laboratorium VI: Kolekcje i okna dialogowe
LINK: Kolekcje i okna dialogowe - Przykładowy projekt
LINK: Plik do wczytywania
Inne warte przeczytania źródła:
LINK: MessageBoxesLINK: OpenFileDialog
LINK: SaveFileDialog
LINK: Przyklad odczytu pliku
Inne - archiwum
LINK: Wyrażenie regularne