Skip to main content

The CS251 (Software Design) Toolkit

Project description

Welcome to the CS251 toolkit, designed to help TAs and graders for St. Olaf’s Software Design course.

Prerequisites:

  • Python 3.4+

  • git

To run:

  • pip install --user cs251tk

  • mkdir cs251/ && cd cs251

  • git clone https://github.com/StoDevX/cs251-specs data

  • put a newline-separated list of your students in students.txt

  • cs251tk --help

The script reads from a students.txt file, by default. You can pass the --students argument if you only want to look at some students. It usually takes a space-separated list of students, but if given a -, it will also read from stdin until it hits an EOF.

The script also takes a --record parameter. Record does several things:

  • given a folder name, it cd’s into that folder for each student

  • it cats the contents of each cpp file within the folder

  • it tries to compile each .cpp file, and records any warnings and errors

  • it runs each file, and records the output. It can also pass input to stdin during the execution

  • These are controlled by the homework specs in the specs folder

--record’s logs are spit out in the logs folder in the current directory.

update.py --help:

usage: update.py [-h] [--students USERNAME [USERNAME ...]]
                 [--section SECTION [SECTION ...]] [--all] [--quiet]
                 [--no-progress] [--workers N] [--sort {name,count}] [--clean]
                 [--no-update] [--day {sun,mon,tues,wed,thurs,fri,sat}]
                 [--date YYYY-MM-DD] [--no-check] [--record HW [HW ...]]

The core of the CS251 toolkit

optional arguments:
  -h, --help            show this help message and exit

student-selection arguments:
  --students USERNAME [USERNAME ...]
                        Only iterate over these students.
  --section SECTION [SECTION ...]
                        Only check these sections: my, all, a, b, etc
  --all                 Shorthand for '--section all'

optional arguments:
  --quiet, -q           Don't show the table
  --no-progress         Hide the progress bar
  --workers N, -w N     The number of operations to perform in parallel
  --sort {name,count}   Sort the students table

student-folder arguments:
  --clean               Remove student folders and re-clone them
  --no-update, -n       Do not update the student folders when checking

time-based arguments:
  --day {sun,mon,tues,wed,thurs,fri,sat}
                        Check out submissions as of 5pm on WEEKDAY
  --date YYYY-MM-DD     Check out submissions as of 5pm on DATE

grading arguments:
  --no-check, -c        Do not check for unmerged branches
  --record HW [HW ...]  Record information on student submissions. Requires a
                        spec file

Contributing

  • git clone <this_repo>

  • cd cs251-toolkit

  • pyvenv ./venv

  • source ./venv/bin/activate

  • python3 setup.py develop

  • go to your cs251 folder that contains the data/ and students/ folders

  • run cs251tk; it’ll be the development version.

  • run deactivate to leave the venv.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cs251tk-2.0.0.tar.gz (15.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cs251tk-2.0.0-py3.5.egg (47.1 kB view details)

Uploaded Egg

File details

Details for the file cs251tk-2.0.0.tar.gz.

File metadata

  • Download URL: cs251tk-2.0.0.tar.gz
  • Upload date:
  • Size: 15.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for cs251tk-2.0.0.tar.gz
Algorithm Hash digest
SHA256 491478b7034159bd0c3d1c7813b2a7bc09bf0527add27c83aafacf8b3ac4d477
MD5 9e2be37ceebf99702cf6d21f6ddcde99
BLAKE2b-256 d99a99c3e7dd1d835c31725943f36b016ce92cd857520779ebe3157086bdfd6a

See more details on using hashes here.

File details

Details for the file cs251tk-2.0.0-py3.5.egg.

File metadata

  • Download URL: cs251tk-2.0.0-py3.5.egg
  • Upload date:
  • Size: 47.1 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for cs251tk-2.0.0-py3.5.egg
Algorithm Hash digest
SHA256 bce3e84467edf76a47276e38b67e567c25b88438e7fd7967ebb7844a04d1bc75
MD5 167410240c5bbe6fb5dd9a0c415101cf
BLAKE2b-256 5206d9d86512aaa1efea64dd226806c14c0cdbb4aa634d6a25f5251b6ecb3080

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page