Automated Marking System (AMS) Joseph Heron, Jonathan Gillett, Khalil Fazal, Daniel Smullen.

Slides:



Advertisements
Similar presentations
Jump to Contents Instructor Tutorial essignments.com Paperless assignment submission system.
Advertisements

Other Web Application Development Technologies. PHP.
ContentQuizzesDropbox DiscussionsePortfolio Design Click on a tool name to explore new features: Welcome to 10.3 & ePortfolio 4.3 SLATE: New Features.
A Toolbox for Blackboard Tim Roberts
What’s New in Blackboard 9.1 SP 11.  Blackboard 9.1 SP11 takes Blackboard closer to the cloud and introduces a modernized user interface more in line.
User Training. Step 1 Press Ctrl-I or choose File > Login, this will open the Login window. Figure 1-1 shows the Login window. Figure 1-1 Login Window.
BlackBoard Online Submission Annual Assessment Updates
Server-Side vs. Client-Side Scripting Languages
Reference and Instruction Automated Statistics Gathering and Reporting System Members: Patrick Chen (pyc7) Soo-Yung Cho (sc444) Gregg Herlacher (gah24)
Web based testing: Chucklist and Selenium
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
Presented by Mina Haratiannezhadi 1.  publishing, editing and modifying content  maintenance  central interface  manage workflows 2.
INTRO TO MAKING A WEBSITE Mark Zhang.  HTML  CSS  Javascript  PHP  MySQL  …That’s a lot of stuff!
Other Features Index and table of contents Macros and VBA.
OMap By: Haitham Khateeb Yamama Dagash Under Suppervision of: Benny Daon.
Project Rickshaw SEARCH - FIND - GO. Project Rickshaw TEAM MEMBERS KEVIN AUGUSTINO – MATT FOX – DAVID MOORE SPONSORS KARASU TECHNOLOGIES - ERIK PAUL -
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
Blackboard Pilot Tasks and Walkthroughs. Bb Test Case Training Pilot with AnswersDarek Sady - 5/4/2004 Goals:  Identify problematic areas our clients.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
Working Out with KURL! Shayne Koestler Kinetic Data.
Tutorial 10 Adding Spry Elements and Database Functionality Dreamweaver CS3 Tutorial 101.
Social Network for Behavior Change Team #11: Gavin Monroe Nicholas Schramm Davendra Jayasingam Client: Yolanda Coil Advisor: Simanta Mitra.
Home Media Network Hard Drive Training for Update to 2.0 By Erik Collett Revised for Firmware Update.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
CSCI 6962: Server-side Design and Programming Introduction to Java Server Faces.
EQUELLA Product Strategy and Development
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
Lecture 19 Web Application Frameworks Boriana Koleva Room: C54
Installing and Using Active Directory Written by Marc Zacharko.
DIT314 ~ Client Operating System & Administration CHAPTER 5 MANAGING USER ACCOUNTS AND GROUPS Prepared By : Suraya Alias.
1 ITI 1120 Lab # 1 An Introduction to the Lab Environment Contributors: G. Arbez, M. Eid, D. Inkpen, A. Williams, D. Amyot.
Session Objectives • Login to PeopleSoft Test Framework(PTF)
Key Applications Module Lesson 21 — Access Essentials
Oracle Data Integrator Procedures, Advanced Workflows.
IFORM ACCOUNT MAINTENANCE ICT4D SESSION 4. IFORMBUILDER WEBSITE REQUIREMENTS To access the iFormBuilder website, you need the following items: -Reliable.
IPortal Bringing your company and your business partners together through customized WEB-based portal software. SanSueB Software Presents iPortal.
Where does PHP code get executed?. Where does JavaScript get executed?
GOAL User Interactive Web Interface Update Pages by Club Officers Two Level of Authentication.
Rails & Ajax Module 5. Introduction to Rails Overview of Rails Rails is Ruby based “A development framework for Web-based applications” Rails uses the.
 Registry itself is easy and straightforward in implementation  The objects of registry are actually complicated to store and manage  Objects of Registry.
South Dakota Library Network MetaLib Management Basics Categories Administration South Dakota Library Network 1200 University, Unit 9672 Spearfish, SD.
Moodle for Your Noodle. What in the world is Moodle? An open source Content Management System (or Course Management System) built around a sound educational.
 Shopping Basket  Stages to maintain shopping basket in framework  Viewing Shopping Basket.
Form Processing Week Four. Form Processing Concepts The principal tool used to process Web forms stored on UNIX servers is a CGI (Common Gateway Interface)
Date : 3/04/2010 Web Technology Solutions Class: PHP Web Application Frameworks.
Internet Centralized K-12 Homework Assignment Capability May Client : Senior Design Team Ongo-08 Advisors : Dr. Thomas Daniels Dr. Yong Guan Team.
ASSIGNMENT 2 Salim Malakouti. Ticketing Website  User submits tickets  Admins answer tickets or take appropriate actions.
: Information Retrieval อาจารย์ ธีภากรณ์ นฤมาณนลิณี
Session 11: Cookies, Sessions ans Security iNET Academy Open Source Web Development.
1/7/2016www.infocampus.co.in1. 1/7/2016www.infocampus.co.in2 Web Development training gives you and all-round training in both the design and the development.
START Application Spencer Johnson Jonathan Barella Cohner Marker.
Live. learn. work. play Superior Avenue Suite 310 Cleveland Ohio Tel: Fax:
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
Dynamic Website Design for Temple Beth-El of Ithaca, NY CS 501 Project – Final Presentation May 4, 2006 Presented By: Peter Babinski, Christopher Benedict,
1.Switch on the computer and wait for loading. 2.Select the Windows 7 OS at the end of the list. 3.Click on the link ‘Administrator’ 4.Enter the administrator.
BY: SALMAN 1.
Web Technology Solutions
What is Laravel ? By Georgi Genov.
BY: SALMAN.
Node.js Express Web Applications
Introduction and Principles
Software Testing With Testopia
PHP Training at GoLogica in Bangalore
PHP / MySQL Introduction
Mexico 24 Hours Advance Manifest
Administrator’s Manual
Web Application Development Using PHP
Presentation transcript:

Automated Marking System (AMS) Joseph Heron, Jonathan Gillett, Khalil Fazal, Daniel Smullen

Client/Problem Definition Dr. Eyhab Al-Masri Frustrated, looking for an alternative to MarkUs. For UOIT early-year programming courses. Can also be used for more advanced courses, provided the assignment requirements are simple input/output tasks. Need a system that works with C/C++. Extensible to other languages. Large classrooms, many assignments, frequent submissions. Perfect opportunity for software as a service. Dr. Eyhab Al-Masri Frustrated, looking for an alternative to MarkUs. For UOIT early-year programming courses. Can also be used for more advanced courses, provided the assignment requirements are simple input/output tasks. Need a system that works with C/C++. Extensible to other languages. Large classrooms, many assignments, frequent submissions. Perfect opportunity for software as a service.

The Competition (Why MarkUs is Terrible) Slow Basic queries take >1min to execute. Unacceptable! Convoluted Grades output is unsorted, does not include student names, missing important data. Takes hours to manually sort and re-input this data into Blackboard. Wastes professors and TAs time. Slow Basic queries take >1min to execute. Unacceptable! Convoluted Grades output is unsorted, does not include student names, missing important data. Takes hours to manually sort and re-input this data into Blackboard. Wastes professors and TAs time. Bloated Features Subversion storage back-end? Nobody uses this. Forming groups? Nobody uses this. Subversion client commits for upper-year courses, disabling web upload? Insane! Unfixed Bugs Assignment code output as un-escaped text directly in the page? Rookie Mistake! Screwy deadlines and submission dates. Ported (poorly) from TurboGears/Python 30+ contributors, totally fragmented, totally disorganized. But at least its open source…

What is AMS? Direct competitor to MarkUs for UOIT. Built from scratch with Rails. Allows professors to disseminate C++ programming assignments to students. Automatic cheating detection. Validation and code quality analysis. Lets professors set their own parameters for marking, and the system does the rest. Allows students to submit assignments for grading. Built in unit testing framework pre-submission. Instant feedback. Useful feedback. Simple, fast, easy to use. Direct competitor to MarkUs for UOIT. Built from scratch with Rails. Allows professors to disseminate C++ programming assignments to students. Automatic cheating detection. Validation and code quality analysis. Lets professors set their own parameters for marking, and the system does the rest. Allows students to submit assignments for grading. Built in unit testing framework pre-submission. Instant feedback. Useful feedback. Simple, fast, easy to use.

AMS Main System Components

AMS General Workflow

Logging In

Assignment Creation

Assignment Dissemination

Automated Marking

Feedback and Administration

Technical FAQ

How did we get Rails to use each directory? Controllers Folder Contains controller classes. Their methods are called according to config/router.rb Controllers Folder Contains controller classes. Their methods are called according to config/router.rb

How did we get Rails to use each directory? Views Folder Contains HAML files. On page load, they are compiled into HTML files. Views Folder Contains HAML files. On page load, they are compiled into HTML files.

How did we get Rails to use each directory? Models Folder Contains model classes. An interface used to generalize common behaviors of persistent storage. Each model corresponds to a table in the SQLite database. Models Folder Contains model classes. An interface used to generalize common behaviors of persistent storage. Each model corresponds to a table in the SQLite database.

Which parts of the Rails framework were modified to fit with AMS? We didnt modify any part of the Rails framework, we just used it as-is. We used Rails to manage our own custom controllers, helpers, models, and views. We didnt modify any part of the Rails framework, we just used it as-is. We used Rails to manage our own custom controllers, helpers, models, and views.

Were any new routes added? Yes, each new method we added corresponds to an entry in the routes file.

What actions (methods) were added to the controllers file? How were CRUD operations used? Default login logic for non-administrative users. Two main routes: Load default login page, captured by login#index Create a new user account, captured by login#new then login#create for the account creation. CRUD: Read, to check credentials. Create, to generate new accounts. Default login logic for non-administrative users. Two main routes: Load default login page, captured by login#index Create a new user account, captured by login#new then login#create for the account creation. CRUD: Read, to check credentials. Create, to generate new accounts. Login

What actions (methods) were added to the controllers file? How were CRUD operations used? Same underlying logic as default login page, but handles administrators instead of ordinary users. Two main routes: Load default login page, captured by admin_login#index Create a new user account, captured by admin_login#new then admin_login#create for the account creation. CRUD: Read, to check credentials. Create, to generate new accounts. Same underlying logic as default login page, but handles administrators instead of ordinary users. Two main routes: Load default login page, captured by admin_login#index Create a new user account, captured by admin_login#new then admin_login#create for the account creation. CRUD: Read, to check credentials. Create, to generate new accounts. Administrative Login

What actions (methods) were added to the controllers file? How were CRUD operations used? Handles regular users login session cookies. Login is captured by sessions#create. Logout is captured by sessions#destroy. Same logic for administrative users. Login is captured by admin_sessions#create. Logout is captured by admin_sessions#destroy. CRUD: Delete, when destroying sessions on logout. Handles regular users login session cookies. Login is captured by sessions#create. Logout is captured by sessions#destroy. Same logic for administrative users. Login is captured by admin_sessions#create. Logout is captured by admin_sessions#destroy. CRUD: Delete, when destroying sessions on logout. Session Handling

What actions (methods) were added to the controllers file? How were CRUD operations used? After login, students can see their main submission dashboard. Display is captured by student#index. CRUD: Read, to read previous assignments data from the database. After login, students can see their main submission dashboard. Display is captured by student#index. CRUD: Read, to read previous assignments data from the database. Main Student Dashboard

What actions (methods) were added to the controllers file? How were CRUD operations used? After a submission has been uploaded, this enables students to review the submission contents. Captured by student#show. CRUD: Read, to read and show the submission data. After a submission has been uploaded, this enables students to review the submission contents. Captured by student#show. CRUD: Read, to read and show the submission data. Showing a Submissions Code File

What actions (methods) were added to the controllers file? How were CRUD operations used? When an assignment is selected from the listed assignments, this shows the information about it. Captured by student#assignment. CRUD: Read, to read assignment data from the database. When an assignment is selected from the listed assignments, this shows the information about it. Captured by student#assignment. CRUD: Read, to read assignment data from the database. Assignment Dashboard

What actions (methods) were added to the controllers file? How were CRUD operations used? When a student clicks the upload button to upload the submission, this uploads the submission contents to the server. Captured by student#submission. CRUD: Create, to upload submission contents to a new row in the database. When a student clicks the upload button to upload the submission, this uploads the submission contents to the server. Captured by student#submission. CRUD: Create, to upload submission contents to a new row in the database. Submission Upload

What actions (methods) were added to the controllers file? How were CRUD operations used? When an assignment is selected, this shows the student's grades. Captured by student#grading. CRUD: Read, to read stored grades from the database. When an assignment is selected, this shows the student's grades. Captured by student#grading. CRUD: Read, to read stored grades from the database. Grading Display

What actions (methods) were added to the controllers file? How were CRUD operations used? When a student submits their assignment for unit testing, this shows the test output. Captured by student#test. CRUD: Create, if the unit tests have never been run on this assignment. We will create a new row and store the results. Update, if the unit tests have been already run. When a student submits their assignment for unit testing, this shows the test output. Captured by student#test. CRUD: Create, if the unit tests have never been run on this assignment. We will create a new row and store the results. Update, if the unit tests have been already run. Unit Testing

What actions (methods) were added to the controllers file? How were CRUD operations used? When a student clicks the submit button after reviewing their submission, this executes the submission process. Captured by student#submit. CRUD: Create, to create a new entry for the assignment on the database. When a student clicks the submit button after reviewing their submission, this executes the submission process. Captured by student#submit. CRUD: Create, to create a new entry for the assignment on the database. Submitting an Assignment

What actions (methods) were added to the controllers file? How were CRUD operations used? After logging in, administrators are shown the main AMS dashboard. Captured by admin#index. CRUD: Read, to read the previously posted assignments data from the database. After logging in, administrators are shown the main AMS dashboard. Captured by admin#index. CRUD: Read, to read the previously posted assignments data from the database. Administrator Dashboard

What actions (methods) were added to the controllers file? How were CRUD operations used? When an administrator chooses to create a new assignment, this brings up the creation forms. Captured by admin#new. CRUD: Nothing to speak of. This is just displaying a form. When an administrator chooses to create a new assignment, this brings up the creation forms. Captured by admin#new. CRUD: Nothing to speak of. This is just displaying a form. New Assignment Creation

What actions (methods) were added to the controllers file? How were CRUD operations used? When an administrator chooses to view the grade breakdown for a specific assignment, the corresponding assignment information is displayed. Captured by admin#grading. CRUD: Read, reads the class grades from the database. When an administrator chooses to view the grade breakdown for a specific assignment, the corresponding assignment information is displayed. Captured by admin#grading. CRUD: Read, reads the class grades from the database. Reviewing Class Grades Breakdown

What actions (methods) were added to the controllers file? How were CRUD operations used? When an administrator chooses to display the table of detected cheating statistics, the statistics breakdown is shown. Shows the probability/likelihood of cheating, for each student, for each assignment. Captured by admin#cheat. CRUD: Read, reads computed cheating statistics from the database. When an administrator chooses to display the table of detected cheating statistics, the statistics breakdown is shown. Shows the probability/likelihood of cheating, for each student, for each assignment. Captured by admin#cheat. CRUD: Read, reads computed cheating statistics from the database. Reviewing Detected Cheating Instances

What actions (methods) were added to the controllers file? How were CRUD operations used? When an administrator chooses to review an assignment that has been posted previously, the details are displayed. Captured by admin#show. CRUD: Read, reads previously posted assignment data from the database, based on its ID. When an administrator chooses to review an assignment that has been posted previously, the details are displayed. Captured by admin#show. CRUD: Read, reads previously posted assignment data from the database, based on its ID. Showing Previously Posted Assignments

What actions (methods) were added to the controllers file? How were CRUD operations used? Used for adding a new assignment to the database. Captured by admin#create. CRUD: Create, creates a new assignment entry in the database to store the assignment data. Used for adding a new assignment to the database. Captured by admin#create. CRUD: Create, creates a new assignment entry in the database to store the assignment data. Posting a New Assignment

What actions (methods) were added to the controllers file? How were CRUD operations used? Used for bulk uploading test cases, in YAML, to the database. Captured by admin#upload. CRUD: Create, uploads the YAML file to the database for parsing and retrieval later. Used for bulk uploading test cases, in YAML, to the database. Captured by admin#upload. CRUD: Create, uploads the YAML file to the database for parsing and retrieval later. Uploading Test Cases

What actions (methods) were added to the controllers file? How were CRUD operations used? Used to generate a new assignment and disseminate it to students by uploading it to the database. Captured by admin#submit. CRUD: Create, uploads the submission form contents to the database and stores it. Used to generate a new assignment and disseminate it to students by uploading it to the database. Captured by admin#submit. CRUD: Create, uploads the submission form contents to the database and stores it. Submitting an Assignment for Students to Access

How were Events and Callbacks used in AMS? admin.js Event handlers and callbacks. File uploading operations. Display the YAML help and documentation. student.js Event handlers and callbacks. Provide a confirmation dialog when students are submitting assignments for unit testing. Provide a confirmation dialog when students are submitting assignments for final submission.

How did we use AJAX in AMS? Uses AJAX Used to upload files. Assignment Submissions Test Cases File Upload widget with multiple file selection, drag & drop support and progress bar for jQuery. Supports cross-domain, chunked, and stop/resume file uploads. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads. Uses AJAX Used to upload files. Assignment Submissions Test Cases File Upload widget with multiple file selection, drag & drop support and progress bar for jQuery. Supports cross-domain, chunked, and stop/resume file uploads. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads. jQuery-File-Upload

What additional tools/technologies were used? Twitter Bootstrap Shiny user interface. Apache License v2.0 Font-Awesome Shiny fonts. Designed for Bootstrap. MIT License Glyphicons Monochromatic icons and symbols. CC-BY 3.0 License jQuery-File-Upload MIT License Twitter Bootstrap Shiny user interface. Apache License v2.0 Font-Awesome Shiny fonts. Designed for Bootstrap. MIT License Glyphicons Monochromatic icons and symbols. CC-BY 3.0 License jQuery-File-Upload MIT License

Q&A Period