What is zyLabs?
- Easy authoring. Instructors/TAs create new assignments in just tens of minutes via a web interface -- no installations, scripting, or special expertise. Just create the specification for the student and list test cases. Some instructors create 50 or 100 assignments for a term, small and large.
- Immediate feedback. Students submit and get a score based on the test cases passed. They can re-submit for a better score. Immediate feedback can improve learning and reduce frustration.
- Integrated. zyLabs is a low-cost add-on to any zyBook, integrated into its chapters -- no extra logins, data transfers, etc.
- Built-in coding window. Students can code directly in the zyBook making the first few weeks of class, or even the entire term, super smooth. File uploads are also supported for Java, Python, C, and C++, supporting the use of an external IDE.
- Cost savings. Auto-grading saves instructors and departments time and money.
- Examples. zyBooks provides example labs at no extra cost. NEW (Jan 2019) for C, C++, Java, and Python: zyBooks provides "many small programs" for the first 6-7 chapters, shown useful in CS1 classes. See below.
- Use standalone. zyLabs can also be used standalone for classes using a different book or no book.
- NEW (Jan 2019) for C, C++, Java, and Python: zyBooks-maintained labs. By request, zyBooks now provides many examples in "zyBooks-maintained labs" (ZMLs) form.
We like to call zyLabs "the easiest-to-use program auto-grader on the planet."
Advice for using zyLabs
Our co-founder, Dr. Frank Vahid, shares several tips for making the most of zyLabs.
Porting traditional programming assignments to zyLabs is OK, but our experience has taught us that auto-graded labs might be best used as follows:
- Avoid console I/O. Instead, just create programs that read input data and print output data. Keep formatted output to a minimum. The auto-grading test cases will be more comprehensible to students.
- Start straightforward. Many instructors get excited by auto-grading options and go a little overboard (if we may say so). We recommend starting with straightforward initial assignments using simple test cases. You may find those give you most of the bang for the buck.
- Use many small programs. Auto-graders enable you to assign more labs, each shorter than traditional weekly labs, so students get more practice on a week's key concepts. Our company's professors create 5-7 labs per week -- 2 easy, 3 medium, and 2 hard, each requiring about 20-25 minutes on average. Students start earlier, gain confidence, and switch among labs if stuck.
- Use zyBooks-maintained labs. If you are teaching CS1 in Java, Python, C, or C++, considering using our ZMLs. They are widely tested, and we'll be continually improving them. Instead of focusing on creating labs, you can focus on helping students learn.
- Use a grade threshold. Immediate score feedback enables you to develop student-friendly grading policies. We make our 7 labs with 10 points each (a few points for each test case) and require only 50 points (of 70 possible) per week for full credit. Some instructors give extra credit for points beyond the threshold.
- Select a subset. If using our examples, instructors may need to choose a subset; the number of provided examples may be more than appropriate for one course. For Java/Python/C/C++, we recommend starting with our MSPs, requiring perhaps 5-7 per week.
- Provide help resources. Learning to program is hard. Students need help at all hours. We recommend you provide as much help as you can, like a forum (Piazza, Slack, GroupMe, etc.) for discussion with students/instructors, email, office hours, scheduled lab times, etc. If you'd like to encourage us to provide teaching assistants, let us know! Contact your account executive or email firstname.lastname@example.org.
Refer to How to create a new zyLab to get started.