Data Dictionary
Object Name |
Components |
Description |
AddServer | ServerAddress and AnonSelect | Adding a server to open a tutorial consists only of the Address and the decision of whether to be anonymous or not. |
AddServerProfessor | ServerAddress and ProfID and Password | Adding a server to publish to consists of the Address as well as login credentials for the user. |
AnonSelect | boolean | |
AnswerText | string | |
BasicPage |
Inherits from: Page
Text |
A basic page is comprised of nothing but text |
Blue | color | |
Branch | PassPercent and FailDialogue and CorrespondingSection and PageLink | A branch contains a percentage that is considered passing, a dialogue for the user if they fail the quiz, a section that corresponds with the branch, and a page reference link to if the branch is necessary. |
BranchesList | Branch* | |
ClassPath | string | |
ClassResult | SectionResults | A class result is made up of section results. |
ClassResults | ClassResult* | |
Code | string | A Code is a String, but it will be freely editable through user interaction. |
Color | Red or Orange or Yellow or Green or Blue or Purple | color |
ColorPalette | ColorSelected | The color selection canvas |
ColorSelected | Color | the color currently selected in the ColorPalette |
Confirmation | string | General comfirmation msg that tells of an operations succuss or failure |
CorrectQuestion | boolean | |
CorrectQuestions | CorrectQuestion* | |
CorrespondingSection | string | |
Course | CourseTitle and Professor* | Courses contain Professors and are identified by a Title. Professors contain Tutorials. |
CourseTitle | string | |
Disk | File* | This is a model of the harddrive of a computer |
DrawingTool | FileName and FileType and Image and ToolPalette and ColorPalette | The drawing tool provides a simple interface for editing and saving diagrams which can be included in lesson and quiz pages. |
EraseBrush | eraser tool | |
FailDialogue | string | |
File | string* and Tutorial* and Page* | Model of the a directory in a file system |
FileName | string | |
FileSystem | Server* | The FileSystem at its base is a collection of Servers. A server contains a collection of courses. Courses contain Professors. Professors contain Tutorials. |
FileType | string | |
FillBrush | tool that fills selection with current ColorSelected | |
Fname | string | |
Green | color | |
Image | Image being drawn on/created | |
IndivResult | QuizResults and TutorialCompletions | An individual result is made up of quiz results. |
IndivResults | IndivResult* | |
Interactive | Output and KeyWords and Tut | An interactive question contains the text of the correct ouput, necessary key words, a shell, and all the attributes of a question. |
IsCorrect | boolean | |
KeyWords | string | |
Language (in Module Tut) | string | String that contains the name of the programming Language the current shell is configured to execute. |
Language (in Module Tut_interactive) | string | String that contains the name of the programming Language the current shell is configured to execute. |
Lesson |
Inherits from: Page
Text and Shell |
A Lesson is an informational tutorial page and can contain Text, Diagrams, and an Interactive Shell. |
LockQuiz | boolean | |
Loose | boolean | |
ManageFileSystem | FileSystem | Managing a file system contains a FileSystem variable and the operations necessary to modify it. |
MissedQuestion | boolean | |
MissedQuestions | MissedQuestion* | |
Mode | Show and Loose | describes the mode of the shell; whether it is in show mode and whether or not it is loosely typed. |
MultipleChoice | PossibleAnswers | A multiple choice question contains multiple possible answers and all the attributes of a question. |
NumQuestionsDisplayed | integer | |
OpenTutorialFromServer | FileSystem | The Open Tutorial From Server consists of the same basic format as the ManageFileSystem object. |
Options | RandomizeQuestions and RandomizeAnswers and LockQuiz and ShowAnsersOnFailure and QuizName and TimeAllotted and NumQuestionsDisplayed | Options are a collection of several booleans that make up display choices for quizes. It also contains the quiz name, the time alloted during the quiz, and the number of questions displayed on this quiz. |
Orange | color | |
OutPutCode (in Module TutView) | string | An OutPutCode is a String that is returned by Runcode. This is the results from running Code and is not editable. |
OutPutCode (in Module Tut_interactive) | string | |
Output | string | |
OverallPercentage | integer | |
Page | Title | A Page is the generic definition for the types of pages available in a tutorial. A Page can be either a lesson or a quiz different types, and links to connecting pages. |
PageCompletion | boolean | |
PageLink | Tut | |
PageList | Page* | |
PaintBrush | a paintbrush tool used to draw on pictures with ColorSelected | |
PassPercent | integer | |
Password | string | |
PermissionNum | integer | |
Point | X and Y | a Euclidian point with an X and a Y coordinate |
PossibleAnswer | AnswerText and IsCorrect | An answer contains a string of text representing that possible answer and a boolean indicating whether it is the correct answer. |
PossibleAnswers | PossibleAnswer* | |
ProfID | string | |
Professor | ProfID and Password and PermissionNum and Tutorial* and ClassResult and SectionResult* | Professors contain a list of tutorials that they have authored. Additionally, they are identified by an ID as well as a Password. Results for the course that this professor is a part of are tied to the professor. Each Professor has a unique permission number associated with them for authentication purposes |
PublishTutorial | FileSystem and Tutorial | The Publish Tutorial form consists of the basic file system as well as the tutorial that is being published. |
Purple | color | |
Question | QuestionType and QuestionText and CorrespondingSection and Weight | A question can either be a multiple choice or interactive question. Either way, it will contain the questions text, a section that the question corresponds with, and a weight to be evaluated when grading. |
QuestionText | string | |
QuestionType | MultipleChoice or Interactive | |
QuestionsList | Question* | |
Quiz |
Inherits from: Page
QuestionsList and BranchesList and Options |
A quiz is comprised of questions, branches, options. |
QuizName | string | |
QuizResult | OverallPercentage and MissedQuestions and CorrectQuestions and QuizType | A quiz result contains a percentage and the amount of missed and correct questions. |
QuizResults | QuizResult* | |
QuizType | string | |
RandomizeAnswers | boolean | |
RandomizeQuestions | boolean | |
Red | color | |
RequestPostingPrivileges | ServerAddress and CourseTitle and ProfID and Password and Password | Requesting permission to publish to a server consists of the server's address, the title of the course that the professor will be listed under, the id that the professor will use, as well as the password that they will use. |
Result | IndivResults and SectionResults and ClassResults | Results are comprised of everyones results/ |
SectionResult | IndivResults | A section result is made up of individual results. |
SectionResults | SectionResult* | |
SelectBrush | tool that selects any Points drawn on a Image | |
Server | ServerAddress and ServerName and Course* and UserList | A server contains a collection of courses as well as a name and address. Additionally, the server contains a list of approved posting users as a list of ID Password Results tuples. Courses contain Professors. Professors contain Tutorials. |
ServerAddress | string | |
ServerName | string | |
Shell (in Module Tut) | Language and Code | The Shell can be embedded in lesson or quiz pages and allows users to edit, test and run code samples in an interactive window. |
Shell (in Module Tut_interactive) | Language and Code and Mode and ClassPath | The Shell can be embedded in lesson or quiz pages and allows users to edit, test and run code samples in an interactive window. |
Show | boolean | |
ShowAnsersOnFailure | boolean | |
SprayBrush | spray paint tool | |
Text (in Module Create_Tutorial) | string | |
Text (in Module TutView) | string | |
TimeAllotted | integer | |
Title | string | |
Tool | PaintBrush or FillBrush or SelectBrush or SprayBrush or EraseBrush | Tool |
ToolPalette | ToolSelected | The tool selection canvas |
ToolSelected | Tool | the color currently selected in the ToolPalette |
Tutorial | Title and PageList | A tutorial is composed of zero or more tutorial pages. |
TutorialCompletion | PageCompletion* | |
TutorialCompletions | TutorialCompletion* | |
UserList | userTuple* | |
ValidItem | Page | A selected Item must a Page |
Weight | integer | |
X | integer | |
Y | integer | |
Yellow | color | |
userTuple | ProfID and Password and Result | User pair consists of an ID and Password and Results. |
Operation Dictionary
Operation Name |
Inputs |
Outputs |
Description |
AddBranch | Branch, BranchesList | BranchesList | Add the given Branch to the given BranchesList. The corresponding section component is required. The corresponding section must be unique to this branch. The page to branch to component is required. The pass percent is required. The pass percent must be less than or equal to 100 and greater than 0. |
AddPageDisk | File, Fname, Tutorial | Page, Tutorial | gets a page from the disk and adds it to the current tutorial |
AddPageServer | File, Fname, Tutorial | Page | gets a pages that is saved on a server. since a server is a filesystem on another computer, this model is simplified |
AddQuestion | Question, QuestionsList | QuestionsList | Add the given Question to the given QuestionsList. The question text component is required and unique. The weight component is required. The corresponding section is required. There must be at least 1 possible answer for multiple choice questions. There must be output for interactive questions. |
CaptureStdErr | Shell | Shell, string | CaptureStdErr takes a Shell with code runs the code and captures the StdErr and puts it into a string. If there is no code in the Shell then the resulting string is empty |
CaptureStdOut | Shell | Shell, string | CaptureStdOut takes a Shell with code runs the code and captures the stdout and puts it into a string. If there is no code in the Shell then the resulting string is empty |
ChangeColor | Color, ColorSelected | ColorSelected | changes the currently selected color aka ColorSelected to be the inputted Color c |
ChangeTool | Tool, ToolSelected | ToolSelected | changes the currently selected tool aka ToolSelected to be the inputted Tool t |
ConnectToServer | ServerAddress, userTuple | Server | Connect to Server takes in a ServerAddress as well as a UserTuple, returning a Server if connected and null if not. |
CreateTutorial | PageList, Title | Tutorial | creates a new Tutorial object |
DeleteBranch | Branch, BranchesList | BranchesList | Delete the given branch from the given branches list. |
DeleteQuestion | Question, QuestionsList | QuestionsList | Delete the given question from the given questions list. |
DrawCircle | Image, Point, Point | Image | draws a circle with center at pn and circumference point at ps on i with ColorSelected. |
DrawLine | Image, Point, Point | Image | draws a line with ends at pn and ps on i with ColorSelected |
DrawRectangle | Image, Point, Point | Image | draws a rectactangle with corner points pn and ps on i with ColorSelected |
EditBranch | Branch, Branch, BranchesList | BranchesList | Add the given new Branch to the given BranchesList, and remove the given old branch. The old branch must already be in the branch list. The old and new branch are not the same. The corresponding section component is required. The corresponding section must be unique to this branch. The page to branch to component is required. The pass percent is required. The pass percent must be less than or equal to 100 and greater than 0. |
EditCode | string | Code | modifies the Code whatever string the user enters. |
EditQuestion | Question, Question, QuestionsList | QuestionsList | Add the given new question to the given QuestionsList, and remove the old question from the question list. The old question must already be in the question list. The old and new questions are not the same. The question text component is required and unique. The weight component is required. The corresponding section is required. There must be at least 1 possible answer for multiple choice questions. There must be output for interactive questions. |
FindBranch | BranchesList, CorrespondingSection | Branch | Find a branch by CorrespondingSection. |
FindQuestion | QuestionText, QuestionsList | Question | Find a question by the question text. |
IsSaved | Saves the current page for the userto immediately view on relaunching of CSTutor program. | ||
MoreDetailed | Admin, Admin, Admin | Admin, Admin, Admin | This operation takes an individual result and gives back more details from an individual result. |
MoveTOC | Tutorial, ValidItem | Tutorial | Take the selected item from the tutorials pagelist and move its position |
NextPage | Page, PageList | Page | NextPage brings up the next Page according to the current's links inside the Tutorial. |
PreviousPage | Page, PageList | Page | PreviousPage brings up the previous Page according to the current's links inside the Tutorial. |
PublishQuiz | Quiz, Tutorial | Tutorial | PublishQuiz takes teh given quiz and puts it in the given tutorial. There must be at least 1 question in the quiz. The quiz name is required. The number of questions displayed is required must be at least 1 and less than or equal to the number of questions. |
PublishTutorialServer | PermissionNum, Professor, Tutorial | Professor | The publish tutorial operation accesses the professor folder on the server and adds the new tutorial to the sublist of tutorials. |
ResetCode | Code, Page | Code | Returns the Code to initial condition. |
RunCode (in Module TutView) | Code | OutPutCode | Updates the GUI based on the Interactive's Code. |
RunCode (in Module Tut_interactive) | Code | OutPutCode | Runs an external language interpreter, the specification of which is outside the scope of this project. |
SaveTut | File, Fname, Tutorial | Confirmation, File | Saves a current Tutorial to the current directory on the disk |
ShowMode | Shell | Shell | ShowModeurn takes a shell and toggles on/off "show" mode which prints the result of every evaluation that is not of void type. |
compileClass | Admin, Admin, Admin, Admin, ClassResult, SectionResult | SectionResult, SectionResults | This operation takes section results and returns the results for the class. Pre-condition, the sections must be from the same class. |
compileSection | Admin, IndivResult, IndivResult, SectionResult | IndivResult, SectionResult | This operation takes individual results and returns the section results. Pre-condition, the individuals must be from the same section. |
createServer | FileSystem, Server | FileSystem | createServer adds the given Server to the given FileSystem, assuming that the server does not have the same name as an existing server. |
deleteCourse | Course, Server | Server | deleteCourse removes the given Course from the given Server from the given FileSystem, assuming that it is actually contained in the given data. |
deleteProfessor | Course, Professor | Course | deleteProfessor removes the given Professor from the given Course, assuming that it is actually contained in the given data. |
deleteServer | FileSystem, Server | FileSystem | deleteServer removes the given Server from the given FileSystem, assuming that the Server actually exists on the FileSystem. |
deleteTutorial | Professor, Tutorial | Professor | deleteTutorial removes the given Tutorial from the given Professor from the given Course from the given Server from the given FileSystem, assuming that it is actually contained in the given data. |
findClass | ClassResult, SectionResult, SectionResults | ClassResult, SectionResults | This operation finds a class result in a list of class results. |
findIndividual | IndivResult, QuizResults | IndivResult, QuizResults | This operation finds an individual result in a list of indivdual results. |
findSection | IndivResult, IndivResults, SectionResult | IndivResults, SectionResult | This operation finds a section result in a list of section results. |
gradeQuiz | Admin, Quiz, Quiz, Quiz, Quiz, Quiz | Admin, IndivResult, IndivResult | This operation takes a quiz and returns the results from that quiz. |
openTut | Professor, Tutorial, Tutorial | Tutorial | The openTut operation opens a selected tutorial and replaces the current tutorial with the desired one. |
setClassPath | Shell, string | Shell | sets classpath of the shell |
sortByClass | ClassResult, ClassResult, ClassResult, SectionResult, SectionResult, SectionResult, SectionResult | ClassResult | This operation takes in a list of class results and sorts them in decending order. |
sortByIndividual | IndivResult, IndivResult, IndivResult, QuizResult, QuizResult | IndivResult | This operation takes in a list of individual results and sorts them in decending order. |
sortBySection | IndivResult, IndivResult, IndivResult, IndivResult, SectionResult, SectionResult | SectionResult | This operation takes in a list of Section results and sorts them in decending order. |
toggleLooseTyping | Shell | Shell | Makes shell's interpreter a loose or strict interpreter. Toggles Loose field with Mode of Shell. Loose mode allows for loose types and undeclared variables. |