Back-to-school programming course preparation guide: design assessments, integrate autograding, and enhance student engagement.
Articles
July 26, 2024

Get your programming assignments ready for the upcoming academic year!

In 30 seconds...

Get ready for the new academic year by refining your programming course assessments. Discover how to effectively design assignments, projects, and exams, and learn to integrate autograding and coding quizzes with CodeGrade.

Organizing a typical programming course

With the new academic year approaching, it’s time for educators to create and refine their programming courses. We’ve outlined how to organize your course and give your students the best possible learning experience, by utilizing different assessment types and automatic grading.

First, decide the type of assessments you want to create. CodeGrade is flexible and allows you to create a range of different types of assessments. Formative assessments provide ongoing feedback to help students improve during the learning process, while summative assessments evaluate their overall learning at the end of an instructional unit.

This could be:

  • Weekly lab assignments: Hands-on tasks to reinforce concepts from lectures. These should focus on specific subject areas and are closely linked to what the student has just learned.
  • Individual programming projects: Allow students to apply what they've learned in a more comprehensive and self-directed manner. Here, students will combine several concepts together and students will often write complete programs.
  • Group work: You can let students do assignments individually or let them work in a group. When you let students work in a group, you foster collaboration and teamwork, reflecting real-world software development environments. However, if you are teaching introductory courses, it’s often desirable to let students first learn the concepts on their own.
  • Final exams: Assess comprehensive understanding and how well your students retained the course material. With final exams, you have more control over the environment in which your students work, this might be desirable in the context of summative assessment. However, it’s best to not completely rely upon final exams by itself.

It’s important to provide your students with a variety of assessments, as different types can tackle different facets of the subject matter. On top of this, creating additional ungraded practice opportunities can help students build their knowledge and confidence. After all, programming is best learned by doing.

Read about Edward's experience teaching Python to non-CS here!

Next, determine how often you'll assign each type of assessment. A mix of frequent, small, low-stakes assignments combined with a few larger summative assignments is often effective.

If there are previous iterations of your course, you can update past assignments to include more relevant information. It’s always easier to alter old assignments than create them from scratch!

Here is an example of a typical programming course structure we typically see:

  • Weekly graded lab session that includes a mixture of coding questions and multiple-choice questions. All the lab sessions might contribute to a small percentage of the final grade.
  • (Optional) An additional formative coding quiz that provides students with more practice.
  • A bi-weekly programming project that combines all the concepts of the previous two weeks. These constitute an additional part of the grade.
  • A mid-term and final exam to be able to summatively assess students in a controlled environment.

As you can see, this leads to quite a lot of assessments for a typical course and manually grading all of these is a daunting task.

To help your students get the most out of your programming course, try to set up as much auto-grading for your assessments as possible. This will give your students instant grades and feedback and will ease your grading workload.

Create your next programming course effectively and efficiently today!

Implement your assignments with automatic grading

How do you want to use CodeGrade?

CodeGrade transforms your Learning Management System into an interactive code-learning platform. There are several ways students can submit their assignments.

Before implementing all the auto-grading, it’s good to decide how you want students to interact with CodeGrade. Have them code in their own IDE and upload their files or have them connect their Git repositories - every push will be a submission in CodeGrade.

Students can also code using our built-in editor. They can run their code, get hints and feedback, and resubmit. This is especially useful in introductory programming courses, as students don’t need to set up their own environment (an already daunting task at the beginning!) and they can start coding straight away.

The online IDE lets students code directly in the LMS and supports any programming language.

Setting up automatic grading

Once you have decided how students will use CodeGrade, you can go ahead and create your assignments and set up the auto-grading. Automatic grading combats a common issue facing coding instructors: students need a lot of practice, and grading takes a lot of time. With instructors swamped with grading and students waiting for feedback, the learning process is hindered.

With CodeGrade, students can submit their work, get instant feedback from the test cases you have created, and use this to make iterative improvements. Instead of using precious time to fix small mistakes, educators can use their time to tackle more fundamental gaps in student learning.

CodeGrade’s AutoTest comes with an easy-to-use drag-and-drop interface for input/output tests, code structure tests, unit tests, code quality tests, and more.

Create effective assignments easily using automatic grading.

CodeGrade supports any programming language.  We have created comprehensive resources for a variety of programming languages to set up the auto-grader:


How to use coding quizzes

In the Spring of 2024, we have released a new feature in CodeGrade: Coding Quizzes. With Coding Quizzes, you can give students multiple questions in a single assignment and you can combine short coding questions with multiple-choice-questions and select-all-that-apply questions.

Coding quizzes can be used throughout your assignments - whether it is to add variety to final exams, test learners’ theoretical knowledge, or help solidify specific concepts in weekly lab sessions.

Learners can directly answer multiple-choice and short coding questions in CodeGrade’s editor You can create Coding Quizzes directly in AutoTest and we’ve written a comprehensive guide on how this works. Read about how Quizzes work here.

Use short coding quizzes, MCQs and Select All questions to add variety to your course.

Familiarize students with the CodeGrade workflow

When you implement a tool like CodeGrade in your course, it’s important to give your students good guidelines on how they can interact with the system and get the most out of it.

How to access CodeGrade

To get students up quickly, it’s important to get them familiar with accessing CodeGrade. Luckily, it’s simple! You can use CodeGrade as a standalone web app, or integrate it seamlessly into your Learning Management System.

In the LMS, students go to their assignments as usual and click to open the CodeGrade interface. We created resources you can share directly with your students here.

The feedback loop

Next, explain to your students how to interact with CodeGrade.Coding, especially for beginners, can be intimidating and frustrating due to its steep learning curve. Simple errors, like a misplaced semicolon, can cause code to crash. Waiting a long time for results is inefficient and can cause students to lose momentum and forget their original intentions.

With CodeGrade, students benefit from instant feedback on visible tests set by the teacher before the deadline. They see which tests they passed and which need improvement, along with guidance on how to improve. This enables students to make targeted improvements and ask focused questions to tutors before the final submission. They can continuously refine their code until the deadline, enhancing their learning experience.

The editor

Our lightweight online IDE allows students to code directly in their LMS. They can open the assignment in the LMS, code in the editor, and create a submission.
Students can view the assignment description within the editor, run their code, and see feedback.

As an instructor, you control how much feedback students can see before submitting their assignments. After incorporating the feedback, students can finalize and submit their work. You also determine whether students receive full feedback immediately or after the submission deadline has passed.

Consider adding manual feedback on specific lines of code in a submission. This starts a thread with the student and helps direct their focus to the exact error - a much nicer workflow than students emailing you screenshots of their code!

Leave comments to encourage students and guide their learning!

How CodeGrade’s support can help you

We understand that effectively implementing a comprehensive product like CodeGrade can be daunting. That’s why all licenses include unlimited use of our world-class support.

Our goal is to maximize your use of CodeGradeContact support (support@codegrade.com) to schedule an onboarding session and AutoTest workshop for you and your TAs. We'll introduce you to the platform, answer your questions, and guide you through your first two assignments.

You can also arrange a follow-up call anytime. If you have an assignment idea but need help executing it, just reach out!

In addition to this, our Support team is always available for you during the course. Just reach out and they will help you with any problem you might have.

If you have an assignment idea but need help executing it, just reach out!

More CodeGrade tips

  • Use the Course Copy feature to copy a previous assignments' settings and content. You can tweak the materials to keep your course relevant and up-to-date.
  • For every assignment you can change the course permissions. For example, let TAs set up parts of your assignment, or allow students to hand in after the deadline.
  • We recently released our Student View, so you can see your assignments from the students' perspective - a great way to check your assignments are clear and error-free!

Continue reading

Best Practices for Rubric Design in Coding Assignments

Discover best practices for rubric design in coding education. Learn to align rubrics with learning objectives, use automated tests, and explore ungrading for fairer, growth-focused assessments

Watch now! How to teach Python

Watch our 2024 webinar for updates on the Introductory Python course, including new modules, knowledge checks, and grading automation with CodeGrade.

Follow A New User!

See how CodeGrade streamlines grading and improves assignment design in programming courses.

How to configure an AI Assistant for code

CodeGrade’s AI Assistant offers a flexible way to support coding education through tailored guidance and feedback. This guide explains how to configure and customize the assistant to fit your teaching goals, from helping students debug code to providing conceptual explanations.

Sign up to our newsletter

Transform your Jupyter Notebooks course today!