Author: HBF
Date: 2022-05-12
RINLab PCS WLU
Abstract: The CATool is a software tool for creating, developing, delivering, and presenting, and executing course teaching in online environment. It helps to generate course presentation contents in HTML from raw teaching materials in formats of txt, json, and markdown. It allows course instructors or developers to focus on creating the raw materials without warring about the format of presentations.
Acknowledgment:The CATool project was inspired by online course development projects supported by Faculty of Science and Center of Teaching and Learning at WLU. The CATool was developed at RINlab@WLU.
CATool (or simply CAT) is a tool to create course design templates and builder programs for HTML based content presentations. It creates file system and content presentation documents of a course system of the following levels.
The objectives of the CATool project:
CATool uses the following formats
CATool uses the following third part software tools.
The CATool system has the following directories
Course file system is specified to work with CATool.
Course root directory (course_root), the directory contains all course specifications and materials of a course
Course information specifications
Course teaching contents
Course work specification. Course work consists of jobs. Three types of jobs are covered by CATool: assignment, lab, and project.
Course work evaluation (marking and grading of course work submissions). course_root/work/submissions directory contains job submission directories of each jobs. Each job directory contains
CATool package file, catool.zip, contains all necessary software systems to run the CATool programs, containing directories: cat, pandoc, and php. Follow the following installation steps to install and configure CATool.
Open a command line console, type the following commands to test the installation. The output of the commands should display the proper information of the programs.
CATool operations include configuration template generations, course file system generations, syllabus generations, lesson generations, course work (assignment, labs, projects) generations, and marking generations.
Course design starts from configuring the course system json files. The basic json files include cat.json for CATool tool configuration, course_info.json and lesson_toc.json for lesson information, etc. The command generate_templates is to generate the templates of the basic JSON files. First create a course root folder. Open a command line console and cd to the root folder. Issue the command generate_templates help
to get the command help as follows.
Run command generate_templates all 2
to generate cat.json, the syllabus folder and course_info.json, lesson_toc.json, instructor_info.json, examples.json, references.json.
Set course specific values in this JSON files.
Help information about command generate_templates This command is to generate course specification json templates Syntax: generate_templates [operation_type] [output_type] Allowed operation_type values: help or help is to display help information of this command 0 or cat is to generate course specific cat.json template for CAT 1 or course_info is to generate course_info.json template 2 or lesson_toc is to generate lesson_toc.json template 3 or instructor_info is to generate instructor_info.json template 4 or examples is to generate examples.json template 5 or references is to generate references.json template 6 or regulations is to generate regulations.json template 7 or all is to generate all basic json templates Allowed output_type values: 0 or debug is to display debug messages 1 or stdout is to display the contents on screen 2 or file is to save to files 3 or both is to display and save to files
After the setting of course specific values in the JSON files, we can create the source file system by command generate_cfs. The generate_cfs help provides the help information of the command as follows. generate_cfs all 2 generates all the directories and copies necessary files to target directories.
Help information about command generate_cfs This command is to generate course file system. It is required the course_info.json. Syntax: generate_fs [operation_type] [output_type] Allowed operation_type values: help or help is to display help information of this command 0 or lesson is to generate lesson directories 1 or work is to generate work directories 2 or release is to generate release directories 3 or file is to copy template files to the release folders 4 or all is do all above Allowed output_type values: 0 or debug is to display debug messages 1 or stdout is to display the contents on screen 2 or file is to save to files 3 or both is to display and save to files
Command generate_syllabus generates all front end web HTML pages of a regular course.
Help information about command generate_syllabus This command is to to generate syllabus page html documents Syntax: generate_syllabus [operation_type] [output_type] Allowed operation_type values: help or help is to display help information of this command 0 or index is to generate index_static.html 1 or syllabus is to generate syllabus_static.html 2 or schedule is to generate schedule_static.html 3 or lesson is to generate lesson_static.html 4 or assignment is to generate assignment_static.html 5 or lab is to generate lab_static.html 6 or example is to generate example_static.html 7 or reference is to generate reference_static.html 8 or all is to generate all the above html documents Allowed output_type values: 0 or debug is to display debug messages 1 or stdout is to display the contents on screen 2 or file is to save to files 3 or both is to display and save to files
Command generate_tocs generates all front end web HTML pages of an online course.
Help information about command generate_tocs This command is to to generate documents of table of contents (online-course). Syntax: generate_tocs [operation_type] [output_type] Allowed operation_type values: help or help is to display help information of this command 0 or index is to generate index.md and index_build.bat 1 or welcome is to generate welcome.md and welcome_build.bat 2 or roadmap is to generate roadmap.md and roadmap_build.bat 3 or syllabus is to generate syllabus.md and syllabus_build.bat 4 or schedule is to generate schedule.md and schedule_build.bat 5 or example is to generate example.md and example_build.bat 6 or reference is to generate reference.md and reference_build.bat 7 or release is toc_build.bat, toc_release.bat, release_all.bat, clean_release_all.bat 8 or all is to generate all toc files Allowed output_type values: help or help is to display help information of this command 0 or debug is to display debug messages 1 or stdout is to display the contents on screen 2 or file is to save to files 3 or both is to display and save to files 4 or release is to save file to batch file and call to run
Generate HTML documents of weekly lessons for online courses or regular course when provided.
Help information about command generate_lessons This command is to to generate html documents for lesson start to lesson end Syntax: generate_lessons [operation_type] [output_type] [start] [end] Allowed operation_type values: help or help is to display help information of this command 0 or lesson is to generate L..intro.md, ..head.md, ..body.md, tail.md, L..build.bat for each lesson from start to end 1 or lessons is to generate build_lessons.bat to all L..build.bat from the start to end 2 or release is to generate release_lessons.bat for releasing all lesson html documents to lesson release directory of start to end 3 or all is to generate all above files Allowed output_type values: 0 or debug is to display debug messages 1 or stdout is to display the contents on screen 2 or file is to save to files 3 or both is to display and save to files Allowed start values: 1 or specific lesson id is to set the starting lesson index Allowed end values: 1 or specific lesson id is to set the ending lesson index
Generate assignments, labs and projects
Help information about command generate_jobs This command is to to generate documents of jobs. Syntax: generate_jobs [job_type] [operation_type] [output_type] [start_id] [end_id] Allowed job_type values: help or help is to display help information of this command 0 or assignment is to work on assignment 1 or lab is to work on lab 2 or project is to work on project Allowed operation_type values: 0 or readme is to generate readme.txt 1 or report is to generate jobname_report.md 2 or head is to generate jobname_head.md 3 or body is to generate jobname_body_template.md 4 or tail is to generate jobname_tail.md 5 or build is to generate jobname_build.bat 6 or job is to generate all files of of the job 7 or jobs is to generate [type]_build.bat for all jobs of the type from start to end 8 or work is to generate work_build.bat for all types of jobs from starts to ends specified in cat.json Allowed output_type values: 0 or debug is to display debug messages 1 or stdout is to display the contents on screen 2 or file is to save to files 3 or both is to display and save to files Allowed start_id values: 1 or specific job id is to set the starting job index Allowed end_id values: 1 or specific job id is to set the ending job index
Generate files for marking course work submissions.
Help information about command generate_marks This command is to to generate marking files. Syntax: generate_marks [job_type] [job_id] [operation_type] [output_type] Allowed job_type values: help or help is to display help information of this command 0 or assignment is to set the job type to mark 1 or lab is to work on lab 2 or project is to work on project Allowed job_id values: 1 or specific job id is to set the job id to mark Allowed operation_type values: 0 or marklist is to generate template/marklist.txt 1 or gradegrid is to generate template/gradegrid.txt 2 or solutiontest is to generate testing results of solutions. template/a?.md 3 or solutiongrid is to generate a?ans.mk from a?.md 4 or testmap is to generate testmap.mk 5 or single is to mark single submission in the marking folder, generate report in report folder 6 or group is to mark all submissions in the download folder, generate report in report folder 7 or combine is to combine individual reports to MyLS loadfile.txt, which can be submitted to given job folder through https://bohr.wlu.ca/ezmarker/ 8 or all is to generate gradegrid, solutiontest, solutiongrid, testmap Allowed output_type values: 0 or debug is to display debug messages 1 or stdout is to display the contents on screen 2 or file is to save to files 3 or both is to display and save to files