The course_materials directory is the only course subdirectory that you need to manage yourself. We have been developing abc-classroom while using nbgrader for autograding Jupyter notebooks, so some of the necessary structure of `course_materials follows from the nbgrader requirements. It is not necessary to use nbgrader with abc-classroom, but it might be helpful to read about how nbgrader structures course files to better understand abc-classroom. We provide instructions below for both cases.
course_materials
abc-classroom
`course_materials
nbgrader
Assuming you have installed nbgrader
cd my-abc-classroom-course nbgrader quickstart my-nbgrader-course : this will create a nbgrader course directory called ``nbgrader``
Make sure the “course_materials” setting in config.yml matches the name of what you used for my-nbgrader-course (see below for config instructions).
Develop your notebooks in the my-nbgrader-course/source directory, then to generate the student versions for an assignment called assignment1:
cd my-abc-classroom-course cd my-nbgrader-course nbgrader generate_assignment assignment1`
This will generate the student versions of the assignment notebooks in my-nbgrader-course/release. You are now ready to create the template repository for GitHub classroom.
Create a directory for course materials inside your abc-classroom course directory:
cd my-abc-classroom-course mkdir course_materials
You can call this directory anything you want. Modify the value of “course_materials” in config.yml (as described below) to match your chosen directory name. Then, create a release directory in your course materials dir (this _must_ be called release):
mkdir course_materials/release
Put the files that you want to distribute to students in the release directory before creating a new template repository.
There are probably some files that you want to add to each assignment repository. Any files that you wish to add to every new template repo can be added to the extra_files directory which is created when you run abc-quickstart to set things up. By default, abc-quickstart will generate an extra_files directory containing:
extra_files
abc-quickstart
a generic README.md file for the repository and
README.md
a .gitignore file.
.gitignore
You can add any additional files that want in each repo to this directory. File that you may want could include things like:
a customized .gitignore file
logos and graphics that you want to display on every student assignment
custom modules needed to complete assignments for the course
Any files in the extra_files directory will be addeded by defaul to each template repository.
In many cases there may be system and tool based files that you do not wish to move. if that is the case, you can populate the files_to_ignore section of your config.yml file with anything that you want to skip.
files_to_ignore
config.yml
# Add any system files that you wish to ignore when copying files to your # template here files_to_ignore: - .DS_Store - .ipynb_checkpoints
Note
Currently abc-classroom does not support moving entire directories over to new template repos. We will consider adding that functionality in the future if it is of community interest AND/OR are open to community PR’s to add that functionality.
To tell abc-classroom where the directory containing your course materials is located, update the config.yml file. Change the course_materials parameter in that file to the location on your computer that contains your assignments (if you used the nbgrader quickstart, above, then use the directory created by nbgrader).
# Path to the course_materials directory. Assumed to be relative to course_dir unless # you enter an absolute path (i.e. starting with '/' on Linux or OS X or with # 'C:' on Windows). course_materials: course_materials