# \[ANN\] ProblemSet.jl: create assignments for a class

**URL:** <https://discourse.julialang.org/t/ann-problemset-jl-create-assignments-for-a-class/115358>\
**Category:** Package Announcements\
**Tags:** education\
**Created:** [June 8, 2024, 9:51am UTC](https://discourse.julialang.org/t/ann-problemset-jl-create-assignments-for-a-class/115358 "2024-06-08T09:51:29Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mikhail\_Kagalenko](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mikhail_kagalenko/32/13257_2.png) [@Mikhail\_Kagalenko](https://discourse.julialang.org/u/Mikhail_Kagalenko)\
**Post date:** [June 8, 2024, 9:51am UTC](https://discourse.julialang.org/t/ann-problemset-jl-create-assignments-for-a-class/115358/1 "2024-06-08T09:51:29Z")

</div>

An instructor frequently has to create sets of word problems for exams or home assignments. This entails two tasks: vary problems’ parts to make an assignment unique; and select a few problems from a larger set for assignment to an individual student. This [package](https://github.com/kagalenko-m-b/ProblemSet.jl.git) automates both tasks. I wrote it following the [discussion](https://discourse.julialang.org/t/do-i-need-a-macro-to-compile-a-list-of-functions/112540) of possible approaches; in the end, I decided to go with macro-based approach. The design of `@model` macro from the `DynamicPPL` package served as a base.

This relatively small package has already saved me quite a bit of repetitive work, so I am releasing it in the hope it will be useful to others. Criticisms and suggestions regarding the implementation and docs are welcome.
