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.