Deklaratív nyelvek oktatásának támogatása számítógéppel

Hanák Dávid


Feladatkiírás


Ismerkedjen meg az ITS (Intelligent Tutoring System) és más, oktatást támogató rendszerek definícióival és tervezési módszereivel, különös tekintettel az Internet- és Web-alapú rendszerekre. Vizsgáljon meg létező Web-alapú rendszereket.

Mérje fel, hogy a deklaratív nyelvek oktatása során milyen számítógépes támogatásra lehet szükség - vizsgálódásainak alapjául a BME VIK Deklaratív programozás című tárgya szolgáljon. Az igények ismeretében tervezzen oktatást támogató rendszert és készítsen részletes specifikációt. Demonstrációképpen valósítsa meg a rendszer bizonyos elemeit a gyakorlatban.


Kivonat


A felsőoktatás szerepe az utóbbi években megváltozóban van: elitképzés helyett egyre inkább tömegek oktatását szolgálja. A hallgatói létszámok meredeken emelkednek a népszerűbb karokon, szakokon, miközben az előadók létszáma inkább csökkenő tendenciát mutat. Ezért fontosabb ma, mint eddig bármikor, hogy az oktatók munkáját olcsó, de hatékony számítógépes megoldásokkal támogassuk. A feladat egy olyan átfogó rendszer tervezése, amely a legegyszerűbb adminisztratív feladatoktól kezdve a házi feladatok önálló értékeléséig bezárólag minden automatizálható feladatot megold, miközben ellátja (de nem elárasztja) a hallgatókat és az oktatókat az összes szükséges információval.

A terv elkészítése előtt alaposan áttanulmányoztam az oktatást támogató rendszerek terjedelmes irodalmának néhány dokumentumát, hogy megismerkedjem a szokásos fogalmakkal, megközelítésekkel, kiforrott módszerekkel. Ennek során rá kellett jönnöm, hogy olyan rendszer, amely a kívánalmaknak megfelelő feladatokat látna el, vagy nem létezik, vagy lehet róla tudni. Ebből adódóan csak kisebb ötleteket vehettem át, módszereket, megoldásokat nem.

A tervezést kimerítő esettanulmány is megelőzte, amelynek tárgya a BME egy deklaratív programozási nyelveket oktató kurzusa volt - ennek háttérmunkáiban több év óta segédkezem. A vizsgálat során felmértem a tárggyal kapcsolatos tennivalókat, feladatokat, az oktatók és a hallgatók igényeit. A tárgy oktatói már évek óta alkalmaznak különálló programokat bizonyos jól definiált feladatokra - ezek analízisére is sort kerítettem.

Az előkészületeket követően lépésről lépésre, az apróbb részletekre is figyelmet fordítva megalkottam az egységes rendszer tervét. Négy fő komponenst sikerült azonosítanom, amelyek egy-egy feladatkört látnak el. Az egyik a házi feladatként beadott hallgatói programok értékelését, egy másik egy interaktív gyakoroltató rendszer üzemeltetését végzi. Ezek a komponensek lazán kapcsolódnak egymáshoz a rendszer magját alkotó központi adatbázison keresztül, amelyben minden fontosabb adat tárolódik. A laza kapcsolat biztosítja, hogy a komponensek egységes rendszerré álljanak össze, ugyanakkor lehetővé teszi a különálló fejlesztésüket és cseréjüket.

A házi feladatokat értékelő komponens számos részletét meg is valósítottam. Az elkészült programok próbái sikeresnek, értékelésük kielégítőnek mondható. Az eredmények alapján valószínűsíthető, hogy az elkészült tervek szerint kivitelezendő rendszer alkalmas lesz feladatának ellátására.


Kivonat


The role of tertiary education has been gradually changing in the recent years: instead of building an èlite it serves more and more the teaching of the masses. The number of students is radically increasing at the more popular faculties while the number of lecturers is rather declining. Therefore it is more important now than ever to support the work of the lecturers with cheap though still efficient computerized solutions. The task to accomplish is to design a comprehensive framework which handles every job that can be automated, from the simplest administrative tasks to the unattended evaluation of homework, and at the same time supplies (but not overwhelms) the students and the lecturers with all the necessary information.

Before starting to draw up the plans of this framework I've thoroughly studied several documents about teaching support systems to get to know the usual concepts, approaches and well established methods. After having read many pages I had to realize that there is no system that would properly handle the required tasks, or if there is one it is not known. Therefore I could adopt no method or solution, except minor ideas.

An exhaustive study of a course on declarative programming at the BUTE --I've been participating in the background works of this course for some years-- also took place. In this study I examined the tasks and duties about the course and also the demands of the students and the lecturers. Some sole programs have also been utilized to do several well defined jobs recently - I've analyzed these as well.

Following the preparations, I designed the whole system step by step, minding even the smaller details. I identified four major components, each of which is responsible for a specific scope of duties. One of these evaluates students' programs handed in as homework, another one manages an interactive exercising module. The components are loosely bound via a central database which stores all important data. The loose link ensures that the components constitute a uniform system while it is still possible to develop or replace them separately.

I also implemented most parts of the homework evaluating component. The test runs of these programs have been successful, the evaluation can be said to be satisfactory. The results suggest that a framework to be developed in accordance with these plans will meet the expectations.


Nyilatkozat


Alulírott, Hanák Dávid, a Budapesti Műszaki Egyetem hallgatója kijelentem, hogy ezt a diplomatervet meg nem engedett segítség nélkül, saját magam készítettem, és a diplomatervben csak a megadott forrásokat használtam fel. Minden olyan részt, melyet szó szerint, vagy azonos értelemben de átfogalmazva más forrásból átvettem, egyértelműen, a forrás megadásával megjelöltem.









$\textstyle \parbox{7cm}{\dotfill\\ \centering{Hanák Dávid}}$



Hanák Dávid <dhanak@inf.bme.hu>