A00 Setup Releasing to Students Students will receive a PDF describing the assignment and what is to be submitted. Students will also receive any starter files to...
Academic Integrity Verification Path You could find the acadinteg.py, acadinteg.sh and whitelist and acadinteg.sh here: ~/marking/provided library/final/ How to...
Accessing Course Account from Macs This page describes some ways to connect to the course account from Macs. Fill this out to make these instructions use your WatIAM...
Accessing Course`s Connect Email Account Basic Info Most courses have a Connect email account. The Connect accounts are set up as `Shared Mailboxes.` This means...
Accessing Course`s Microsoft 365 (M365) Email Account Basic Info In April and May 2022, course email accounts were moved from Connect to Microsoft 365....
Administrative Student Guidance It`s not clear this is the best title for this page... This page discusses course policies that shape student progress in the course...
All About .htaccess files These files are used to give directives to the Apache web server, controlling various aspects of your webpages. Requiring UW userids...
Handmarking Annotations How to set up annotations: 1. Log into MarkUs in the admin account (the account that you log in with your email) 2. Click on Assignments and...
Usage Text following the formatting below would be placed into a plain text file, and then passed as an argument to the announce program. Code This is the Subject...
Apache Subversion (SVN) Purpose Apache Subversion (SVN) is used in the course account to share files between course staff. It maintains a record of past revisions...
Append Example First, remove all of the write functions from filter code.ss. Then create the module append capture.ss: #lang scheme (provide append hello counter...
Name archive classlist Creates a copy of the current classlist in a predetermined location Synopsis archive classlist Description This command creates a copy...
Assigning Submissions to Graders Student submissions need to be assigned to all of the graders that are assigned to the course. Submissions need to be assigned randomly...
Assignment Info The following is a list of pages on TWiki that relate to dealing with student assignments. AssignmentZero AssignmentManagement AssignmentRemarkPolicies...
Assignment Management The tutors should have only a maximum of two previous marked assignment in the possessions, where there is extra, the oldest assignment should...
Assignment Remark Policies The remarking policies for courses tend to vary depending on the course. Often, courses will accept remarks for up to two weeks after the...
Assignment Solutions Request via PHP There are actually several PHP files that work in conjunction with WaterMarkScript. They should be together in the same subdirectory...
Assignment Solutions Request using PHP`s GD Library Background Information Several CS courses post solutions online with the student`s Quest ID as a watermark. This...
Assignment Zero Many courses, particularly 1A targeted courses, have an assignment 0, the goal of which is to familiarize students with assignment submission procedures...
Walkthrough For Everything to do with Assignments (with lots of reference to BitterSuiteWalkthrough ) For This Walkthrough, we will assume that all work is being...
Automatically Assigning Correctness Marks in MarkUs This page is about a program that can automatically assign correctness marks on MarkUs. It assumes that your...
Automated Testing Suite Creation and Execution A script was created in Summer 2010 to assist tutors in the creation of autotesting folders for the assignments. An...
Conditions for passing/failing correctness tests and check test cases Terminology Clarifications: Syntax Error: Failing check test case is not a syntax error...
Scripts Available for Banning Functions There are four different scripts available for banning functions on assignments. Two are whitelist scripts, and two are blacklist...
Basic Course Account Setup Initial Account Creation Initial access and testing accounts The person requesting creation of the course should be in the .rhosts of...
Basic Tests The basic tests are designed to help students detect any simple issues with their code. If the solution`s output is in the wrong format, the name of the...
See also : bittersuite3 man page: ISGScriptsManPages#Bittersuite BitterSuiteImprovePit BitterSuite BitterSuite is a collection of code currently designed...
BitterSuite3 Proposal NOTE : Several suggested features have not been implemented. Please see the official documentation for the actual features of this testing...
Acknowledgement of the Academic Integrity Statement The following test can be placed in a subfolder of in that has (language external) applied to it. #!/usr/bin...
BitterSuite C Language Documentation The C tests work in two stages. Any required files are compiled to object files and then linked together to form an executable...
BitterSuite C Testing This page will give helpful hints for how to do C testing. Verifying C code compiles without generating warnings Testing Hierarchy Solutions...
Configuring BitterSuite To configure BitterSuite, add a file config.ss to the suite directory. This ability was added to remove the need for obscure command line...
BitterSuite: Counting Function Calls The attached is a scheme file which can be used as a filter when rst is run. For instructions on how to implement the filtering...
Creating custom languages WARNING: Creating a customized language involves paying close attention to a large number of details and handling correctly a large number...
BitterSuite Development This page gives a brief description of the history of the development of BitterSuite. The code for the latest versions of all previous versions...
BitterSuite External Language Documentation The External language is designed to be relatively simple, gaining most of its flexibility by supplying a myriad of environment...
Flexible Python Automated Testing with RST The problem with test.py The test.py method of Python automated testing described at BitterSuitePythonTesting is sufficient...
BitterSuite Script Testing This page will give helpful hints for testing in the `external` language, which is used when the builtin facilities do not suffice to test...
BitterSuite Filter Language Documentation This language is intended to be used as the first test run for a given testing suite where applicable. It provides a submission...
BitterSuite Filter language: Reject files until A0 is submitted The text below should be placed in a file on the course account; for example, in the test suite`s...
BitterSuite: Filtering student code prior to execution Warning: This has not yet been tested in BitterSuite 3. This needs to be tested, modified as needed, and verified...
BitterSuite General Use This page contains information about the use of BitterSuite that does not fit well into the other categories. Walkthrough BitterSuiteInitialSetup...
Note: Read BitterSuiteWalkthrough before reading this document. BitterSuite I/0 Walkthrough Tutors of courses like CS 115 and CS 135 likely do not need to worry about...
BitterSuite Suggested Improvements Creation of testing conventions All of the language modules in particular should have a rigorous series of tests written for them...
BitterSuite Initial Setup The following options should be in the file /u/csXXX/.rstrc : default runTests /u/isg/bittersuite3/runTests default computeMarks /u/isg...
Marking Scheme Walkthrough Introduction One simple and easily overlooked element is a marking scheme. This will be a plain text file which will be dumped verbatim...
Plotting Scripts Created by KyleSpaans for the Winter 2009 offering of CS136. There are scripts that can generate an EPS imagine suitable for inclusion into OUTPUT...
BitterSuite Python Modules This is a list of what you can do with Python modules. Note that any restrictions or changes made by these modules can be overridden by...
BitterSuite Python Testing Getting Started: test.pt and test.1 folder layout Python testing using RST/Bittersuite is similar to Racket testing. You have to create...
BitterSuite Scheme Language Documentation Scheme in BitterSuite has a relatively complex back end, as it attempts to support a number of languages (the languages and...
BitterSuite Scheme Testing This page describes hints for testing in Scheme. Also see BitterSuiteScheme for a formal description of the language options. Related Pages...
BitterSuite Script Hooks This describes some interesting and useful uses of the script hooks provided in runTests and computeMarks. Verifying C code compiles...
RST/BitterSuite Testing Using Arbitrary Scripts RST/BitterSuite is a software testing framework which can use scripts that you write for testing. This allows for a...
Surveying Students A simple survey can be completed in BitterSuite. For example, the file provided to students may begin with: ;; Most of the editing you need to...
Testing Scheme with Mutation Whenever an evaluator is created, its state is mutated and passed along with the evaluator. So, if you have an evaluator created at the...
Validating Files Submitted by Students Note: Performing filtering in this fashion is no longer recommended. The BitterSuiteFilter language should be used instead...
Verifying C Code compiles without warnings This page discusses how to design tests with appropriate feedback which will verify that code submitted by students will...
Verifying Students have Posted to the Newsgroup A utility that will download posts from a newsgroup, newsarchiver.py , is attached to this document (the Wiki insists...
Verifying Submission Method This can be done with some support from the submit command. As there is no other convenient builtin method, it is possible to misuse submit...
Verifying that students have used the public tests This utilizes the algorithm described in AssignmentZero to force students to run public tests more than once: first...
Walkthrough for BitterSuite This walkthrough will go through the creation of a simple marking suite to illustrate the creation of a Scheme suite using BitterSuite...
Name bittersuite3 A framework for running tests via RST Description BitterSuite3 is a testing framework that works on top of rst . Instead of providing full...
Name bittersuite A framework for running tests via RST Synopsis rst Description BitterSuite is a testing framework that works on top of rst . Instead of providing...
ScottFortune 18 Apr 2012 CS100 Home Assignments This Page is on the creation and maintaining of assignments for CS100. It assumes that assignments are being created...
ScottFortune 18 Apr 2012 CS100 Home Marking Assignments This page assumes the use of Desire to Learn and is current as of April 2012. After a while, you will probably...
Walkthrough For Everything to do with Assignments (with lots of reference to BitterSuiteWalkthrough ) For This Walkthrough, we will assume that all work is being...
CS135 Marking Schemes For every assignment you will have to create/modify three files. These three files should completed before the marking meeting and . Many versions...
Using Markus and Handmarking in CS 241 CS 241 uses Markus for handmarking of a few assignments. Markus requires a good deal of setup to get working properly: this...
CS246 Assignment 5 (Group Project) Walkthrough In recent terms, CS246 has had a partner final project. This means some extra handling for this final project. The following...
Due to a bug in the include guard test and unnecessity of having a text file for all of the files student submitted, most of the features of compilehandin.bash has...
Name ca pub test service Attempts to pass public test work to course accounts Synopsis ca pub test service {course} {userid} {assignment} {procID} Usage This...
ceconv ceconv is a script to convert Racket check expects into test subdirectories. It requires some special formatting and it`s main disadvantage is that a test can...
Changing File Permissions Oftentimes, when attempting to post a document to the course website, you`ll find that the public doesn`t have permission to view the document...
Name checkquota Checks if the diskquota of an account is above 89% Synopsis exec ~isg/bin/login {userid} Description A common issue for course accounts is accidentally...
nop CheckTestcases In Fall 2012, CS 135 tried using a script to check the students` check expects. The script checks if the student has thoroughly tested their code...
Checking Helper Functions and Recursion This page assumes knowledge of how to do rst test setups for cs135 (TestingGuide), how options.rkt files work (OptionsRkt)...
Classlist Perl Module This is a perl module designed to simplify access to and manipulation of the classlists on the course account. These classlist files will all...
Name Classlist A perl module used to extract information from the course`s classlists Description Classlist files are arbitrarily formatted colon delimited files...
Name Classlist A perl module used to extract information from the course`s classlists Description Classlist files are arbitrarily formatted colon delimited files...
Clicker Debugging Tips This page contains some general steps for debugging students` iClicker problems. Usually, the problem will be students saying they`re not getting...
Clicker Registration Script We use a CGI script to register students` clickers. This script was written by Kates, who works in the for Teaching Excellence, and has...
Assignment Collection The main goal for assignment collection is to: Isolate the assignments that students submit before the due date from the ones that are submitted...
Common Issues This section has been moved to SpecialCases. Outdated Many of these sections will be labeled with an error that is displayed after running rst. Not...
Communicating With Markers There are several ways that tutors can communicate with the grad TA, the ones that are going to do the hand marking part for each assignment...
CS 100 TWiki CS 100 ISA Guide Link to the guide: https://student.cs.uwaterloo.ca/~cs100/ISAManual/FileMaker.html The guide covers topics such as: Thunderbird...
CS 105 CS 105 is a computer science course designed for global business and digital arts (GBDA) students, with CS 106 as the following course. These students are not...
CS 106 Previously known as CS 116x, CS 106 is a computer science course designed for global business and digital arts (GBDA) students, with CS 105 as a prerequisite...
Resources and Information for CS 115 Tutors This twiki is for technical details only. Any other duty information can be found in Waterloo LEARN (D2L): CS Instructional...
Resources and Information for CS 116 ISAs This twiki is for technical details only. Any other duty information can be found in Waterloo LEARN (D2L): CS Instructional...
Resources and Information for CS 135 Tutors NOTE: THIS PAGE IS OUTDATED AND MAY HAVE MISLEADING INFO. PLEASE SEE THIS INSTEAD: CompSci135TutorDuties This twiki...
CS135 Main Page The responsibilities of a CS135 Tutor may vary over academic terms depending on the number of students and instructor preferences. The general weekly...
This page contains mostly obsolete information related to older iterations of the course. For more current information, see CompSci135TutorDuties, and the MarkUs page...
Resources and Information for CS 136 ISAs This twiki is for technical details only. Any other duty information can be found in Waterloo LEARN (D2L): CS Instructional...
Communication If there is more than one tutor, communication can become important. Especially if one tutor is in the consulting centre, and the other are in the office...
Resources and Information for CS137 Tutors This twiki is for technical details only. Any other duty information can be found in Waterloo LEARN (D2L): CS Instructional...
Resources and Information for CS 138 ISAs This TWiki is for technical details only. Any other duty information can be found in Waterloo LEARN (D2L): CS Instructional...
Resources and Information for CS 145 ISAs This twiki is for technical details only. Any other duty information can be found in Waterloo LEARN (D2L): CS Instructional...
Resources and Information for CS 146 ISAs This twiki is for technical details only. Any other duty information can be found in Waterloo LEARN (D2L): CS Instructional...
CS 200 CS 200 is a computer science course designed for non CS students. CS 100 is a course students can take for more context, but it is not required. This Twiki...
Resources and Information for CS 230 IAs This twiki is for technical details only. Any other duty information can be found in Waterloo LEARN (D2L): CS Instructional...
Resources and Information for CS 231 IAs This twiki is for technical details only. WIP: The `Key Links` and `Course Webpage and Piazza` sections are currently just...
Resources and Information for CS 234 IAs This twiki is for technical details only. Any other duty information can be found in Waterloo LEARN (D2L): CS Instructional...
Resources and Information for CS 240 ISAs This twiki is for technical details only. Any other duty information can be found in Waterloo LEARN (D2L): CS Instructional...
Resources and Information for CS 241 ISAs This twiki is for technical details only. Any other duty information can be found in Waterloo LEARN (D2L): CS Instructional...
CS 241 ISA Duties This page describes important tasks CS 241 ISAs must do throughout the term. The focus of this page is mostly on tasks that require technical knowledge...
Resources and Information for CS 241e ISAs This TWiki is for technical details only. Any other duty information can be found in Waterloo LEARN (D2L): CS Instructional...
Resources and Information for CS 245 IAs This twiki is for technical details only. Any other duty information can be found in Waterloo LEARN (D2L): CS Instructional...
Resources and Information for CS 246 ISA Please refer to the handbook for up to date information regarding CS 246. Please ask your ISC if you can`t access that page...
Resources and Information for CS 246 ISA Key Links CS246. Almost everything on the back end of this course is identical to CS246. TODO Currently there...
Resources and Information for CS 247 ISAs This twiki is for technical details only. Any other duty information can be found in Waterloo LEARN (D2L): CS Instructional...
CS 247 ISA Duties This page describes important tasks CS 247 ISAs must do throughout the term. The focus of this page is mostly on tasks that require technical knowledge...
Name computeMarks Produce an output file for a given rst suite Synopsis computeMarks Description computeMarks is a program that must be written for each rst...
#!/usr/bin/env bash # Used to put together the marking scheme, student submission and its auto marked grade. # Remember to update the total at the end. # # Assumes...
Connecting to Course Accounts The course account is where many files for the term are stored, and you likely will be making use of it on a regular basis. Often, it...
Providing Libraries and Helper Files This section should be your go to reference if there are any issues with providing a library or creating helper functions for...
Correctness Tests Correctness tests are used to completely test every students code. The mark they get on an assignment are heavily dependent on the results of the...
Course Account Structure It is strongly recommended that you get familiar with the course account structure early in the term before things get hectic. Here are some...
Course Account Training Materials, Fall 2010 Summary of Changes The old slides had a tendency to focus on particular testing/submission technologies. With a rapid...
Managing Course Accounts The course accounts have a number of uses; as a central point of contact for e mail from students, as a host for the course website, and as...
Maintaining the Course Webpage General Tips Pick the best way to present information. Just because previous ISAs used a particular form of presentation doesn...
Course Website The following are pages on TWiki related to managing the course website. WebSiteTips WebTemplate OnlineMarkUpload PHPOnCourseWebsites...
Name createUniqueDirectory Creates a uniquely named directory. Synopsis createUniqueDirectory basename Description This command creates a new, uniquely named...
Name createUniqueFile Creates a uniquely named file. Synopsis createUniqueFile basename Description This command creates a new, uniquely named file. The parameter...
Creating Marks Spreadsheet (CS 116) Near the beginning of the term, you will need to add the new students to the marks spreadsheet located in the marks folder. The...
CS135 Trace Path You could find the cs135 trace.rkt here: ~/web/content/assign/dr racket/cs135 trace.rkt How to use it We use it for debugging (this is helpful...
CS135 Sample Solutions Preparing Sample Solutions We typically release sample solutions for each assignment after the deadline (typically the following day). These...
CsBoxes Perl Module This is a very small perl module. It defines the mapping between the first two characters of a userid and a box number in the range 10..99. This...
Name deProcessFile Undo a request for inclusion from printFile or keepFile . Synopsis deProcessFile {file key} Description Called from within a computeMarks...
Name deadline Disable/enable submissions for a particular assignment Synopsis /u/isg/bin/deadline assignment mode Usage Intended to be run from a course...
Discussion Sections ISAs are asked to assist with course Discussion Sections to introduce and/or recap important concepts with students. The planning and coverage...
Self Check Stats (displaySCheck.py) This script has two purposes. One is to present students with their results on self check questions throughout the term. This can...
Name distrst Automatically distribute an rst run across course specfied servers. Synopsis Version 1: distrst {assignment} p f t c {suite} {`studentglob...
Distributed RST See also : distrst man page: DistRST RST This command allows multiple RST runs to be performed in parallel with automatic load distribution...
Email Management Instructions for accessing the course email are here: AccessingCourseConnectEmail All course related emails should be sent from the CS 135 Course...
KarenAnderson 13 Nov 2009 (Made more general) KarenAnderson 18 Aug 2009 Here are a list of end of term tutor tasks (Feel free to add as appropriate) Anyone:...
Evaluating Graduate TAs We need to evaluate TAs on their performance at the end of each term. Instead of waiting until the end of term to fill in the forms, it`s helpful...
Examination Duties This is a list of duties that should be performed for midterms and final examinations in ISG courses General Duties related to the writing of the...
Notes on upgrading scripts for new student.cs.uwaterloo.ca web server To test your website, go to: https://wwwtest.student.cs.uwaterloo.ca/~cs135/ (replace with your...
Windows Instructions for Fall 2024 ISAs Normally, all ISAs get Mac laptops. But in Fall 2024, there was a shortage of Mac laptops available, so a few ISAs got ThinkPads...
Name file filter Perform filtering on files students submit Synopsis file filter Usage Inside of the course`s /u/csXXX/.submitrc there should be the following...
Requiring Assignment 0 Submissions The file filter program can enforce that a given assignment (likely 0) be completely submitted and have all components passing...
Checking Submission Method with file filter Particularly in introductory courses, it may be helpful to have an initial assignment that records whether a submission...
File Layout This diagram presents an overview of the file structure in the course account. Most of what you need is under the marking directory in the course account...
Name filelock Return the date in a format that conforms to RFC 822. Synopsis filelock {filename} Description This is a wrapper for the MFCF flock, which actually...
All About Submit`s Final Script Feature Available centralized final scripts SubmitSubversionHook Maintain a subversion repository of student submissions....
Name format userid Converts a userid into a `safe` format Synopsis format userid {userid} Description This converts a given userid into a `safe` standardized...
Name full host list Resolve the full host names of all servers to which the given server refers. Synopsis full host list host Description This command looks...
Name genBoxLabels Create exam box labels for all courses that will be having exams soon Synopsis genBoxLabels {infile} {outfile} Description genBoxLabels is...
gentotir. NOTE: This script is not updated for compatibility with courses using Markus or Marmoset This script is designed to assist the TA evaluation for assignment...
Name get classlist info retrieve information about individuals in the course Synopsis get classlist info r {src field name} {src field value} {outfield......
Name getpermissions Return the permissions of a file in an octal representation. Synopsis getpermissions filename Description Given the path to a file, prints...
~/markus/bin/getstats.py Running getstats.py on an assignment will return a summary of the correctness results, test by test. Examples from Fall 2020, a10: Using...
Getting Started Do any tasks that you`ve been assigned during the ISA orientation (goals setting, setting up WorkDay, WHIMIS training, etc.). Read over A...
Setup your cron job as follows: #group submissions run ever 4 hours during last 2 weeks of classes (must run on student.cs) 00 0,4,8,12,16,20 21 30 11 ssh x student...
Name group mgr submit file filter Supplement a file filter by verifying that group.txt files meet expectations Synopsis From within the course specific file...
ISG Wiki HowTo Wiki Training Session Early in the term, there should be a training session about how to use the Wiki. Please give any suggestions in a discussion...
Setting your .htaccess file to allow PHP The process for creating PHP pages is documented at http://www.cs.uwaterloo.ca/cscf/student/www#www/scripts php.faq and it...
CS135 Web Site Repo Never, ever edit the web site directly. The CS135 web site is now generated by a static site generator Hugo. When it is regenerated, whatever...
ISG Account Script Conventions See also: ISGScriptSetup A discussion about the setup program upon which all ISG utilities have a strong dependency. ISGTechnicalDirection...
ISG Account Updating Protocol Because the account is maintained in a subversion repository, the main checkout should not be altered during the term. This requirement...
ISG Account Website Conventions CS Framework This website is based off of the style used for many official CS pages. This mandates that the webpages be in validating...
Suggested improvements to the ISG scripting framework Standard Template that Preserves the Environment This is needed both for the login script and the web interface...
ISG Info Below is a list of pages on the TWiki pertaining to ISG related stuff. General ISGTechnicalDirection ISGWebUsageStatistics ISGFrameworkImprovePit...
ISG Login Script Setting this up is relatively straightforward: The course should use a csh variant ( /bin/csh , /xhbin/tcsh , etc.) as the default shell....
Binary Fork Template Some programs that need to be run are compiled binaries. Unfortunately, this is not straightforward, because we need to use a shared file system...
NB : The following information is known to be accurate as of revision 851. requirepackage This is one of the key functions in the ISGScriptSetup. It allows any utility...
NB : The following information is known to be accurate as of revision 851. Setup All scripts in the ISG account should be dependent on the central setup program...
NB : The following information is known to be accurate as of revision 851. Start Template All programs in ~isg/bin should really be symlinks to ~isg/bin/symlink...
ISG Scripts This should be the place to look for information about the various scripts supported by ISG, particularly for situations that aren`t covered by the information...
ISG Scripts Man Pages This page contains man pages for some of ISG`s scripts. These man pages used to be at https://www.student.cs.uwaterloo.ca/~isg/, but that website...
This document is an archive of a proposal that was developed early in Winter 2010. Implemented portions of it are reflected in ISGAccountScriptConventions. See also...
Usage statistics for the ISG Web Statistics about views and edits are maintained automatically by the Wiki software at WebStatistics. As suggested on that page, archives...
Possible Improvements This is a general catalogue of suggestions for how this software may be improved in the future. Some pieces of software are given their own pages...
Improvements that need to be implemented for the future terms According to the grad TAs, we need to have marking scheme notes for all assignments, especially in assignment...
Layout and Format This page will go over the basics of the layout of the marking directory. This includes the file tree, descriptions of file layouts and how to add...
lintR lintR is a `lint` program to give advice on Racket programs. It consumes one or more student programs, parses them into an Abstract Syntax Tree (AST), and runs...
Local Marmoset Submission Mirror The goal of the scripts here is to be able to create a local cache of Marmoset submissions on the course account (typically in the...
Name login provide convenient default login setup on the shared course accounts Synopsis exec ~isg/bin/login Description The last line of the file /u/csXXX...
Name mailOut Send students e mail with the results of an rst run. Synopsis mailOut {assignment} {suite} {run id} Usage The first parameter specifies which...
Name makelateclone Cut off submission of an assignment and create a late version of it Synopsis /u/isg/bin/makelateclone {assignment} latename Usage As with...
The script maketests was designed by Sean Harrap in the fall term of 2015. Minor edits were made by Ten Bradley in winter 2016. The goal of the script is to make developing...
Mark Schemes for RST public tests While a formal `marking scheme` is normally not needed for public tests as no handmarking of these tests will be done, there can...
MarkUs MarkUs is an open source software that lets students submit assignments online. Graders can mark the assignments online, and students can view their marked...
MarkUs Bugs and Issues The page describes bugs and issues in MarkUs. Some of these bugs are not caused by MarkUs per se, but are rather caused by the way MarkUs is...
MarkUs`s Grading Interface When you login to MarkUs with Grader Role, you will see something like this: Figure 1: The Grader Role homepage. Click on...
MarkUs: SVN Repositories, Groups, and Auto testing MarkUs manages the student`s submissions with Subversion (SVN) repositories. If you`re using MarkUs, someone...
MarkUs Installation Issues See also: MarkUs Modified Files The following files have been modified in our local installation: markus/app/views/main/login.html...
MarkUs Issues The page describes issues you might encounter when using MarkUs. Some of these issues are not caused by MarkUs per se, but are rather caused by the way...
How to Prepare an Assignment for Marking in MarkUs Courses where students submit to MarkUs (including through Open edX) Some courses need to upload files to MarkUs...
MarkUs Scripts Please list scripts that have been developed for working with MarkUs, including where to find them and how to use them. If you cannot find the script...
Markers Mimicking Marmoset A system to have markers provide initial online handmarking feedback while assignments were being submitted so they would be able to re...
Marking Meetings All information about prepping for, holding, and concluding marking meetings will be found on this page. Pre meeting Tasks Prior to the meeting,...
Marking Scheme The marking scheme should be in very simple language and concise. It will be read by TA`s for marking and students for feedback. Any detailed or verbose...
Marking Scheme Steps to prepare a marking scheme for a marking meeting. 1. Choose the criteria to include Not all the criteria should be included in a marking scheme...
Name markus testcommit Commit the results of an rst run to MarkUs`s repository. Synopsis markus testcommit {assignment} {suite} {run id} Usage The first...
Documentation for the marm sql Script The marm sql script allows common Marmoset tasks to be performed from the command line. Users can download all the best on...
Name marmocreate Create a zip file for Marmoset that wraps an RST assignment Synopsis marmocreate o zip outfile {assignment} Description marmocreate...
Marmocreate Improve Pit Marmocreate is a program that wraps a collection of RST test suites in a fashion that can be understood by Marmoset . It has only been used...
Marmoset Marmoset is a website that lets students submit their code and assignment online. When students submit, Marmoset will test the student`s submissions and tell...
Basics of Running Moss This page shows the basic steps for running Moss. Your course may have scripts that combine these steps. Step 1: Put files somewhere in the...
Name moss makereadable Format the raw output of moss into something more readable, and also perform optional filtering Synopsis moss makereadable { file...
Using Moss to Detect Cheating on Assignments Running the Script To run Moss on the assignment, navigate to /u/csXXX/mossoutput and run either Moss directory or...
To run Moss on assignments, you needto run ~cs246/moss/Scripts/moss246.sh . You need to change some variables, comment/uncomment lines each time depending on the...
Mounting Course Accounts From home Mounting filesystems via sshfs SSHFS is a powerful tool that allows you to mount remote drives so they appear to be a part of your...
CS136 Newsgroup Management The idea is simple: maintain a FAQ pertaining to each assignment every week based on questions posed on the newsgroup. If it is well advertised...
Name numprocessors Retrieve the number of processors on the current server. Synopsis numprocessors Description Prints the number of `processors` on the current...
Common Odyssey Submission Problems The following are solutions to some issues that repeatedly troubled students over the course of the past term. Students may manage...
Office Hours The following page will provide Office Hours tips specific to CS135 Office Hours. For more information on general Office Hours tips, please consult the...
Office Tips Related Pages TAUnix ProcmailSetup Helping Students Students should not be in the DC tutor offices. These offices contain sensitive materials...
Test Constants and Helper Functions (old) When a student has to define a structure in their submitted file it is hard to write test constants and helper functions...
Old MarkUs Material MarkUs has evolved quite rapidly. The material below accumulated during that evolutionary phase. There may be information that is still useful...
Old Public Marks Upload Method The following method for uploading marks to the course webpage in CS241 was used prior to Fall 2011. 1 Create a directory under...
OnlineExams When creating a set up for an exam, there are a few things that need to be done differently than a regular assignment. This page will give the most important...
Uploading Marks to the course Webpage. Current script version: 1.3.4 The displayMarks.cgi file should be used to display current marks to students. It has been...
Opening remark requests This page will explain how to open the remark requests form on the website for a new assignment. 1 Navigate to ~/web/content/assess/remark...
options.rkt There are two different kinds of options.rkt files. The one directly under the in directory contains the global options for the entire assignment. It will...
Pasting markup on the Wiki Anything that looks like HTML will be interpreted as such by the Wiki software. As such, if you wish to paste code (for example between...
Perl Libraries ISG provides a number of perl libraries which are also used to assist the operation of supported scripts. The ISG setup program automatically adds...
Perl Module Improve Pit TermCodePerlModule This module currently only supports conversion from {month, year} into a number of other formats. This representation...
Piazza Management General Piazza Info See PiazzaTips for more information on setting up Piazza. Information for CS135 ISAs MAKE A SCHEDULE. This is particularly...
Piazza Tips Class Settings Make sure that Instructor Self signup and Posting Anonymously are disabled the former disables students from becoming professors, and...
Post mortem The post mortem is released after an assignment has been graded and provides the students with a summary of common errors. The common errors are supplied...
Posting Marks Online Background This script applies for all courses using marmoset which post their marks online using the displaymarks.cgi/py script. As of winter...
Posting Solutions Post Mortems Preparing Solutions We typically release partial solutions for each assignment after the deadline (usually the following weekday...
Preparing Public Tests See also: PreparingSubmitAtStartOfTerm PreparingPublicTestsForEachAssignment Listing allowable servers (required) The undergraduate...
Preparing Public Tests for Each Assignment See also PreparingPublicTestsAtStartOfTerm. This testing suite can be constructed and tested the same as any other RST testing...
Preparing RST at the start of term If you are using DistributedRST or RSTPublicTests, you will need to make sure you have set up RSTTestServers. If you are using RSTPublicTests...
Preparing submit/RST based assignments There are several steps required to set up an assignment in order to have logs kept properly and to allow students to receive...
Preparing Submit at the Start of Term See also PreparingSubmitForEachAssignment. Configuration of .submitrc The first step is to allow the submit command to accept...
Preparing Submit for Each Assignment See also PreparingSubmitAtStartOfTerm. Creating a submission log subdirectory Before each individual assignment is opened for...
Name printFile Request printing of a file submitted by the student. Synopsis printFile {file} {maxlines} option... Description Called from within a computeMarks...
Name printOut Print postscripts with the results of an rst run. Synopsis printOut {assignment} {suite} {run id} {piles} {where} Usage The first parameter specifies...
Printing Marmoset Assignments There are three steps to printing out assignments 1. Download the students code and grades csv files from marmoset; 1. Unpack...
Processing Clicker Marks We use a Python script that combines the raw answer data from the i clicker software and the clicker registration data from the ClickerRegistrationScript...
.procmailrc Documentation Procmail is a mail filtering program intended for use with Unix mail systems. The use of it was first suggested in the the inaugural offering...
Proofreading Assignments At least one week prior to the release of an assignment to students, instructors will release a draft to ISAs for feedback. Ideally, each...
ProofreadingTestSetups This is a checklist to go through after finishing test setups and before running tests on every student`s submission. Check Autotesting Setups...
ProtectPDF protectPDF allows students to download solutions to assignments, midterms, and other privileged information by watermarking it. If protectPDF is used, ensure...
Providing Libraries and Helper Files This section has been moved to the top of the ConstantsAndHelpers page. Outdated You should be aware of how the various language...
Name pub test kill Attempts to kill pub test runner processes on every server. Synopsis pub test kill Description NOTE: This command is only intended to...
Name pub test launch Attempts to launch pub test runner processes on every server. Synopsis pub test launch Description NOTE: This command is only intended...
Name pub test logger Logs requests for public tests on the ISG account Synopsis pub test logger {csXXX} {assignment} userid Usage This should be called indirectly...
Explanation The following is a good example of a marking scheme for the RSTPublicTests because of the extra information it automatically pushes to students. It also...
Name pub test runner Attempts to pass public test work to course accounts Synopsis pub test runner {procID} Usage This command is typically launched from...
Name pub test web A web interface for pub test logger Synopsis /u/isg/bin/pub test web Usage This is a front end for public test requests that is explicitly...
Public Marks Uploader (Deprecated) The following system for automatically uploading marks to the course website was deprecated in Spring 2018. Currently mark uploading...
RST .stepheader { background color: #DCDCDC; font weight: bold; font size: larger; padding right: 15px; } How to Run RST rst is a command that you need...
Info about RSTA. RSTA is a wrapper for RST. It will run the solution and save its output so RST can compare these solution generated output files against student...
Setup see PreparingRSTAtStartOfTerm summary in home made a .rstrc file Public Test see RSTPublicTests summary To make public test run upon submission in ~/.submitrc...
RST Suggested Improvements See also: RSTVersionTwo MarmocreateImprovePit All RST related programs (rst, rsta, distrst, testcompRST, pub test runner, pub...
Including PDFs in RST output Linux edition Examination will need to be given of the code below to determine what portions and tweaks are appropriate for the Linux...
Assignment Printing Student code is printed using the printOut command with the g flag. This will send a print request to the high speed printers at the DC Graphics...
RSTPublicTests NOTE: In August 2014, the name `public test` was changed to `basic test`, which is more meaningful for students. The public tests is a facility that...
RSTPublicTests Suggested Improvements There seems to be an implicit nice applied when public tests are launched, probably due to nohup; however, this nice should...
RST Test Servers Initially, RSTPublicTests and DistributedRST unconditionally targetted only the Solaris 8 CPU servers. However, with an explosion of server families...
RST Version Two See also : RSTImprovePit rstrc man page Rationale The design of RST required the data of a test suite to be linked directly to the type...
Releasing Grades Once marking is complete and solutions and postmortem are posted, we are ready to release student marks. Here are instructions to release marks on...
Remark Requests Script (remarkR.sh) A script that collects the remark requests for an assignment and generates the corresponding CSV file including all the information...
Remark Requests Opening remark requests This page will explain how to open the remark requests form on the website for a new assignment. 1 Navigate to ~/web/content...
Requiring Userids for Secure Web Access This is documented in full at http://www.cs.uwaterloo.ca/cscf/student/www#www/features access imap.faq. In short, in order...
Restricting Web Access to Current Students and Staff The following code makes use of ClassListPerlModule to facilitate access restrictions. To determine the userid...
Name rfc822date Return the date in a format that conforms to RFC 822. Synopsis rfc822date Description This command simply returns the current date in RFC...
rmtotir this is to remove any of dummy students generated using gentotir. Motivation Possible reasons to use this scripts include: ran gentotir before the deadline...
Name RST Options Specify configuration for rst Description There are several options available from the command line to the RST family of commands. $ t...
Name rstrc Specify configuration parameters for rst Synopsis rstrc Description Configuration for rst may be provided in the files /u/csXXX/.rstrc , /u...
Markus Rubric How To Set Up the Rubric on Markus Log into Markus in the admin account (the account that you log in with your email). Go to the current assignment...
Name runTests Run a series of tests for a given rst suite Synopsis runTests Description runTests is a program that may be written for each rst suite. If...
#!/usr/bin/env bash # Assumes $testdir has a directory `in` containing a sub directory # for each test case. Each subdirectory has files: # .desc description...
Checking For Plagiarism With moss241 This page describes how to use the moss241 script written by Rob Schluntz to check assignment submissions for plagiarism. This...
Connecting to course account using Samba on Windows Step 1 only needed if off campus If you`re not on UW campus, you have to first connect to the campus network...
Sample .submitrc The following are contents of a sample .submitrc file: submit version 2 # Account information homeac `cs125` testac `cs125t` # Directories and...
Providing code to capture and report exceptions The following module provides a single function whose purpose is to capture and report exceptions. This should be...
Comparing Inexact Values Before discussing this, the first rule is: avoid dealing with inexact values if at all possible. Scheme has the ability to deal with rationals...
Comparing Unknown Structs Sometimes students are asked to write their own structure definitions instead of importing them from a module/teachpack. This can cause...
Creating Test Data from Input Files There are cases in which you wish to test a large or complex data structure, and it is difficult or just irritating to supply it...
Creating Instances of Student Defined Structures If you are going to require students to use a particular structure (for example, to represent nodes of a tree), the...
Disallowing Specific Functions It would be handy to be able to set! a function such as reverse to an expression which raises an error in a module. PLT Scheme does...
Comparing lists, ignoring internal ordering The case frequently arises where you want to compare two lists, but don`t care about internal ordering within the lists...
Limiting CPU Time BitterSuite already has a mechanism for limiting the amount of real time a test takes. However, sometimes a finer grain of control is desired on...
Rational Numbers in Scheme It is very important to be careful about specifying non integer numbers in Scheme. In the teaching language, most people get used to...
ISG Script and student.cs Environment Information for the Fall 2010 Term This page is meant to give brief information to ISCs and instructors about programs and/or...
Setting up submit command for assignment submission Students can use the submit command to submit their homework. The students` submissions will be copied to the...
Explanation The following mark scheme is meant to be interpreted via bash, as is done optionally in BitterSuite. It also contains directives that are intended to be...
Resources and Information for SE 212 ISAs This twiki is for technical details only. Any other duty information can be found in Waterloo LEARN (D2L): CS Instructional...
Solution Request Preparing Sample Solutions We typically release sample solutions for each assignment after the deadline (typically the following day). These will...
How to post a solution Make a PDF of the file you want to post Create a folder in /u/cs135/protectPDF with the same name as the pdf (minus .pdf) Put...
Special Cases and Common Issues This covers miscellaneous helpful topics and general tips that can be used while setting up public/private tests. CommonIssues Many...
KarenAnderson 22 Jul 2010 General end of term tasks for Spring 2010 (feel free to add) IOI setup help Fri. Aug. 13 (contact: Barbara (bmzister)) IOI pack...
Connecting to course account using SSHFS on Windows Step 1 Install Cygwin Download and install the latest version of Cygwin from here: https://cygwin.com/install...
Start of Term Tasks This collection of tasks is written with CS 116 in mind, although it should be able to be expanded to accomodate multiple courses. Some of these...
Stepper Questions This page contains information about how to set up stepper questions from edX or the course website for autotesting purpose. Steppers Through edX...
Student Interaction The following are pages on TWiki related to interacting with students. NewsGroupManagement Presentation ProcmailSetup VisualizationTool...
Name studentnum2userid convert a student id number to a userid Synopsis studentnum2userid {student id number} Description This command is a special application...
Student Online Voting Around exam time, it`s pretty common to want to take a poll to see what possible review session times work for students. Here`s a script that...
This page is accessible from linux.student.cs.uwaterloo.ca with `man subfiles`. Name .subfiles assignment configuration file for submit Synopsis /u/csNNN/handin...
Submit course information This page gives administrative details about courses that make use of Submit/Odyssey for submission, and some combination of RST, BitterSuite...
Submit File Filter One of the ISG scripts is a default file filter that performs many common filtering tasks. However, it allows you to specify your own course or...
This page is accessible from linux.student.cs.uwaterloo.ca with `man submit` Name submit on line course assignment submission mechanism Synopsis submit course...
Submit Permissions Hook This is available via the final script option in .submitrc , and is located at /u/isg/bin/submit/submit permissions hook . It simply changes...
Name submit pub test hook Automatically request public tests for each submission Synopsis submit pub test hook Usage Inside of the course`s /u/csXXX/.submitrc...
Submit Public Test Hook. This is available via the final script option in .submitrc , and is located at /u/isg/bin/submit/submit pub test hook . This will automatically...
Submit Scripts The CSCF submit program allows its behaviour to be modified in several predefined ways by external programs specified in .submitrc : A per file...
Submit Subversion Hook. This is available via the final script option in .submitrc , and is located at /u/isg/bin/submit/submit subversion hook . It maintains...
Name submitters List all students who submitted a given assignment on time. Synopsis submitters o meet type {assignment} Usage The required argument is the...
TA Coordination Guidelines Related Pages EvaluatingTAs CommunicatingWithMarkers Checking for marking consistency. We used to test the marking consistency...
Tracking TA Performance It is important to track the performance of TAs throughout the semester. A good idea is to have a spreadsheet tracking this information for...
TA Spotcheck TAs are supposed to have completed marking at least 5 submissions by a set date a few days before the marking deadline so ISAs can give them feedback...
Avoiding certain hosts for any sort of work Do not use student.cs for any sort of development or testing. Invoke hostselect listup undergrad to get a list of...
Name TermCode A perl module used to provide codes for the current term in various formats Description There are several different ways to refer to a given term. This...
Name termcode Return the code for a term in a particular format Synopsis termcode t m r s l month year Description This returns a code for the term for...
TermCode Perl Module Creates representations for the term a given month and year belongs to. To see representations for the current term, run the termcode program...
test.rkt The format of these files are very simple, the contents have the following form. (result (student function our test input)) (expected expected output)...
TestTests This script was written in Fall 2012 and first used extensively in Winter 2013. It automates the evaluation of student test cases so that grad TAs do not...
Testing Guide If this is your first time reading through the testing guide, please read the full summary below. Quick Links CorrectnessTests information on creating...
Miscellaneous notes This section has been moved to General FAQ under Common Issues HERE. Outdated Why is there a message `Evaluator creation error: FAILED Error...
Name timestamp Print a timestamp based on the current time. Synopsis timestamp Description This provides a simple timestamp based on the current time. It consists...
Troubleshooting PHP and SSI Forbidden Access If you keep getting forbidden access errors, ensure that you have chmod a x file.php . It is also important to note...
Tutorials Initial Preparations To prepare tutorials, it is a good idea to use tutorials from previous terms as a starting point. Often these will contain questions...
Name unlate Remove any indication a given submission was submitted late Synopsis unlate {assignment} {student} Usage Intended to be run from a course account...
Updating the Course Website At the beginning of the term (or at the very end in preparation of the next term) it`s important to clean up the course website. Things...
Uploading Clicker Marks Clicker data should be placed in the directory / clickers// . For example, /u/cs135/w10 clickers/lec001/ . The directory structure for the...
Uploading Student Files to Markus through Terminal Sometimes it will be necessary to edit student submissions or accept student submissions by email. There are detailed...
The purpose of this page is to eventually be an assorted list of terminal commands that have been found to be useful so that future terminal illiterate ISAs will have...
Name userid2studentnum convert a userid to a student ID number Synopsis userid2studentnum {userid} Description This command is a special application of the Classlist...
Utilizing submit / public test logs NOTE : Some of the information in this article will not be accurate prior to the Fall 2009 term. Assuming the course account is...
Name validateSite Validate`s a course website`s HTML and CSS files Synopsis validateSite {userid} Description This program will crawl through a website on the...
Visualization Tool for CS 115 This tool was developed for use in the lab sections of CS 115. Its aim is to separate analysis from coding in students` problem solving...
Watermark Script This is designed to be used in conjunction with an AssignmentSolutionPHPScript. It is meant to take a source PDF document and modify it to include...
Instructional Support Group Wiki Welcome to the home of TWiki.ISG . This is a web based collaboration area primarily targeted for ISA use, which will allow better...
This is a subscription service to be automatically notified by e mail when topics change in this ISG web. This is a convenient service, so you do not have to come...
ISG Web Preferences The following settings are web preferences of the ISG web. These preferences overwrite the site level preferences in ., and can be...
Providing a public test web frontend To provide a frontend for RSTPublicTests that automatically updates public test availability in a form for you, you could use...
CS 115 Web Site Tips The following information was gathered from the experience of YiLee as a CS 115 tutor in Fall 2009. Most of it has been moved to CourseWebpage...
Providing Restricted Web Access to Assignment/Exam Solutions Access restriction in the AssignmentSolutionPHPScript is provided via the PHP code in RestrictingWebAccessToCourse...
Web Submission Feedback This consists of several PHP files, working in conjunction with LocalMarmosetSubmissionMirror, which help implement the goals of MarkersMimickingMarmoset...
Template for CS 115, 116, 136 Webpages In the interest of consistency through some of the introductory CS courses, a template has been created that should be, where...
Please give any feedback about Wiki training on this page, in a discussion format with your signatures following your comments. BusraHacioglu 17 Feb 2010 I`ll...
This page is meant for feedback about ISG`s scripts at the end of Winter 2010 to help ensure that the modified versions are ready to go in Spring 2010. The goal is...
Name writeToMarkList Write to the common file specified by marklist for this particular assignment, suite and run id run of rst . Synopsis writeToMarkList mark...
Name writeToTestResults Write the result of a single test to a standardized file for this student on this particular assignment, suite and run id run of rst . Synopsis...
Wxme Converter The DrRacket editor lets you put non plain text elements in your code. Look at this funny program. It contains fractions, comment boxes, and a...
Gracket to plaintext conversion script (wxme converter.rkt) This script allows you to convert a file in GRacket format to plaintext Racket. Steps: 1 ssh userid...
Overview Marmoset is a testing suite operated through a web interface (for both ISG and students); it provides an easy way to create programming problems and assign...