Opis systemu oceny zadań domowych Nauka programowania wymaga praktykowania ponad czas przeznaczony na zajęcia. Często wymusza się naukę poza uczelnią przez zadawanie projektów, jednak na początku nauki studenci mają zbyt małą widzę, aby móc stworzyć choć trochę bardziej złożone programy. Rozwiązaniem są zadania domowe, jednak aby dobrze je sprawdzić trzeba poświęcić znaczną część zajęć. W tym celu opracowany został elektroniczny system oceny zadań domowych. Studenci rozwiązują zadania programistyczne w domu i wysyłają je korzystając z platformy internetowej. System ocenia poprawność zadań, a prowadzący na zajęciach sprawdza już tylko oryginalność rozwiązania (brak plagiatu) i wiedzę studenta na temat wykorzystanych funkcji i technik programistycznych. Na pierwszych zajęciach student proszony jest o rejestrację w systemie, podając nr swojego albumu, hasło, adres email oraz swoją grupę laboratoryjną. Grupy zostały wprowadzone wcześniej przez prowadzącego. Widok formularza rejestracyjnego. Widok panelu logowania Po zalogowaniu się, student widzi pierwsze dostępne zadanie do wykonania, a poniżej punkty, które uzyskał za wykonane zadania w poprzednich tygodniach. Student może podglądnąć status wszystkich swoich zadań, klikając na odpowiedni link. Może również zmienić swoje hasło oraz wylogować się.
Widok strony głównej studenta Student może również zmienić zadanie na inne aktualnie dostępne.
Zmiana aktualnie wykonywanego zadania Po kliknięciu na dany tydzień student może podglądnąć status zadań z danego tygodnia. Zadania mogą mieć następujące statusy: - dostępne: student może rozwiązać dane zadania i wysłać do oceny - wysłane: zadanie zostało wysłane do oceny, ale nie zostało jeszcze ocenione - ocenione: zadanie zostało ocenione przez system - zablokowane: student nie wysłał zadania w wyznaczonym czasie i nie może już poddać go ocenie Podgląd zadań studenta z danego tygodnia Po zablokowaniu zadań, student może podglądnąć rozwiązanie które wysłał klikając na nazwę odpowiedniego zadania. Umożliwia to samodzielną analizę popełnionych błędów.
Podgląd zadania po wysłaniu przez studenta Panel Administracyjny Prowadzący zajęcia mają dostęp do panelu administracyjnego. Umożliwia on dodawanie nowych zadań do systemu, modyfikowanie ich, oraz ocenę wybranego zadnia u wszystkich studentów. Można też zablokować możliwość wysyłania rozwiązań z danego tygodnia oraz ocenić wszystkie nadesłane zadania. Podgląd panelu administracyjnego Po kliknięciu na daną komórkę z tabeli prowadzący ma podgląd zadań z danego tygodnia podobny do podglądu studenta. Prowadzący ma możliwość dodatkowo podglądnąć nadesłane zadania niezależnie od jego statusu, odblokować dane zadanie (przycisk resetuj) co umożliwi danemu studentowi ponowne nadesłanie rozwiązania do danego zadania oraz ocenić wyłącznie dane zadanie. Ten panel
używany jest podczas sprawdzania wiedzy studenta z danego zagadnienia i potwierdzania autorstwa nadesłanych zadań. Dodawanie zadań: Panel oceny zadań administratora Zadania są podzielone na 2 kategorie: zadanie typu funkcja oraz zadanie ogólne. Zadanie typu funkcja to zadanie w którym student musi napisać implementację funkcji c++ mając podaną deklarację tej funkcji. Zadanie ogólne umożliwia stworzenie praktycznie dowolnego zadania, wymagającego od studenta zarówno zdefiniowania funkcji lub klas jak i napisania kodu do wykonania. Niezależnie od typu zadania wymagane jest podanie jego nazwy oraz opisu. Oba typy zadań wymagają również podania prawidłowego rozwiązania. System nie pozwoli dodać zadania, które nie jest prawidłowo rozwiązane przez prowadzącego wyklucza to omyłkowe dodanie zadania, które nie ma rozwiązania lub zawiera błąd. Przy dodawaniu zadań wymagane jest również podanie tygodnia w jakim dostępne będzie zadanie. Zadanie typu funkcja wymaga podania deklaracji funkcji jest ona podawana jawnie studentom. Poza deklaracją wymagane jest też podanie kodu testującego poprawność napisanej funkcji. Zadanie ogólne umożliwia podania definicji pomocniczych funkcji lub klas, definicji wzorcowych (jeśli są potrzebne), zaznaczenia czy student musi lub może napisać definicje funkcji lub klas. Jeśli zadanie tego wymaga należy napisać kod wzorcowy i zaznaczyć czy student musi napisać kod wykonywany w funkcji main. W tym typie zadań również należy dodać kod sprawdzający zadanie, możliwe są też dwa sposoby oceny zadania: kod wynikowy (standardowa metoda wykorzystująca kod sprawdzający wpisany przez prowadzącego) oraz wyjście programu. W przypadku wybrania wyjścia programu, wyjście z uruchomionego programu studenta jest porównywane z wyjściem programu z wykorzystaniem implementacji wzorcowej podanej przez prowadzącego.
Panel do dodawania zadań widok na zadanie typu funkcja
Panel do dodawania zadań widok na zadania ogólne
Podsumowanie Nauka programowania wymaga regularnego trenowania nowo poznanych konstrukcji. Zadania domowe najlepiej wymuszają systematyczną pracę, jednocześnie ocenianie co tydzień zadań zrobionych przez studentów jest bardzo czasochłonne. System automatycznej oceny zadań odciąża prowadzącego z części pracy. W ubiegłym semestrze studenci wykonali na platformie w sumie ponad 2200 zadań, z których byli losowo przepytywani. Zdecydowana większość bardzo dobrze znała swoje zadania, użyte w nich funkcje i konstrukcje, co sugeruje samodzielnie wykonaną pracę. Ponadto studenci często nie wysyłali rozwiązań do zadań których nie potrafili samodzielnie rozwiązać. Nasz zespół zauważył również, że studenci korzystający z systemu (w porównaniu do ubiegłego roku) szybciej nabyli zdolność pisania kodu poprawnie syntaktycznego.