Help Articles

Programming assignments, learner help center dec 5, 2022 • knowledge, article details.

Programming assignments require you to write and run a computer program to solve a problem.

Some programming assignments count toward your final course grade, while others are just for practice.

Sections of a programming assignment

Programming assignments include both assignment instructions and assignment parts.

Assignment instructions:

  • Explain the assignment.
  • May include a link to a downloadable starter package that includes starter code, detailed guidelines, and other resources.

Assignment parts:

  • Are similar to individual questions within a quiz.
  • Are each a single coding task.
  • Are each worth a certain number of points toward the overall assignment score.
  • Can be completed and submitted all at once, or one at a time.

Programming assignment grades

Programming assignments are graded automatically.

Some are graded using a built-in grading algorithm that compares your program's output to a value specified by your instructor. Others are graded using a custom grading algorithm created by your instructor.

If a programming assignment uses built-in grading:

  • Your code will run locally on your computer, and the output will be sent to Coursera's servers.
  • Your grade will be based on comparison against numeric or regular expression grading logic.
  • You'll get your grade a few seconds after submitting.

If a programming assignment uses custom grading:

  • Your code will be run on Coursera's servers.
  • Your grade will be based on custom logic provided by your instructor.
  • You'll get your grade within an hour of submitting.
  • You'll need to refresh the page to see your grade.

Submit a programming assignment

To submit a programming assignment:

  • Open the assignment page for the assignment you want to submit.
  • Read the assignment instructions and download any starter files.
  • Finish the coding tasks in your local coding environment. Check the starter files and instructions when you need to.
  • If the assignment uses script submission , submit your assignment by running the submission script in your local coding environment and entering the submission token.
  • If the assignment uses web submission , upload your files using the instructions on your screen.

Test a programming assignment

Some programming assignments let you test them before you submit them to get feedback on whether they run. You won't get grades or feedback from the instructor until you submit the assignment.

Edit or resubmit a programming assignment

You can resubmit a programming assignment if you don't pass on the first attempt or want to improve your score. You might have to wait a certain amount of time between attempts.

To resubmit a programming assignment, follow the same steps for submitting one. If your assignment uses script submission, you'll need to select the Generate new token option on the assignment page and use the new submission token.

Related Articles

  • Number of Views 47.46K
  • Number of Views 68.19K
  • Number of Views 80.35K
  • Number of Views 34.38K
  • Number of Views 41.41K

automatically graded programming assignments

© 2021 Coursera Inc. All rights reserved.

automatically graded programming assignments

Suggestions or feedback?

MIT News | Massachusetts Institute of Technology

  • Machine learning
  • Social justice
  • Black holes
  • Classes and programs

Departments

  • Aeronautics and Astronautics
  • Brain and Cognitive Sciences
  • Architecture
  • Political Science
  • Mechanical Engineering

Centers, Labs, & Programs

  • Abdul Latif Jameel Poverty Action Lab (J-PAL)
  • Picower Institute for Learning and Memory
  • Lincoln Laboratory
  • School of Architecture + Planning
  • School of Engineering
  • School of Humanities, Arts, and Social Sciences
  • Sloan School of Management
  • School of Science
  • MIT Schwarzman College of Computing

Automatically grading programming homework

automatically graded programming assignments

Previous image Next image

Share this news article on:

Related links.

  • Paper (PDF): “Automated Feedback Generation for Introductory Programming Assignments”
  • Computer-Aided Programming Group
  • ARCHIVE: “An oracle for object-oriented programmers”

Related Topics

  • Massive open online courses (MOOCs)
  • Program synthesis
  • Online learning

More MIT News

Stylized illustration uses a vintage lithograph print of steel workers collaged with an isometric illustration of an automated car factory assembly line.

Does technology help or hurt employment?

Read full story →

Stylized collage shows a vintage photo of an airplane collaged with isometric illustrations of office and healthcare workers.

Most work is new work, long-term study of U.S. census data shows

6x6 grid of purple squares containing yellow shapes representing phonon stability boundaries. A diagonal row of squares from top left to bottom right shows graphical maps of the boundaries.

A first-ever complete map for elastic strain engineering

Oil field rigs overlayed with analytics data

Shining a light on oil fields to make them more sustainable

Rafael Jaramillo sits in his office and looks to the side. A large wrench sits on the window sill. The desk is covered in white paper with many drawings and notes on it.

“Life is short, so aim high”

Three close up photos of speakers at a conference: Julie Shah, Ben Armstrong, and Kate Kellogg

MIT launches Working Group on Generative AI and the Work of the Future

  • More news on MIT News homepage →

Massachusetts Institute of Technology 77 Massachusetts Avenue, Cambridge, MA, USA

  • Map (opens in new window)
  • Events (opens in new window)
  • People (opens in new window)
  • Careers (opens in new window)
  • Accessibility
  • Social Media Hub
  • MIT on Facebook
  • MIT on YouTube
  • MIT on Instagram
  • Automatically Grading with Web-CAT

Automatically Grading Programming Assignments with Web-CAT

automatically graded programming assignments

Web-CAT is the most widely used automated grading platform in the world, and is best known for allowing instructors to grade students based on how well they test their own code.

About This Tutorial

This tutorial introduces participants to using Web-CAT, an open-source automated grading system. Web-CAT is customizable and extensible, allowing it to support a wide variety of programming languages and assessment strategies. Web-CAT is most well-known as the system that “grades students on how well they test their own code,” with experimental evidence that it offers greater learning benefits than more traditional output-comparison grading. Participants will learn how to set up and configure assignments, manage multiple sections, and allow graders to manually grade for design.

Presentation: Automatically Grading Programming Assignments with Web-CAT (PDF, 6 pp.)

Download a single zip file containing all of the following examples, or view examples individually in your web browser.

The examples shown in the tutorial:

Example 1: DvrRecording :

  • DvrRecording.java
  • DvrRecordingTest.java

Example 2: Calculator

  • Calculator.java
  • CalculatorReferenceTest.java

Example 3: HelloWorld : Testing main programs, stdi/o, etc.

  • HelloWorld1.java
  • HelloWorld1Test.java
  • HelloWorld2.java
  • HelloWorld2Test.java
  • HelloWorld3.java
  • HelloWorld3Test.java
  • RandomNumbers.java
  • RandomNumbersTest.java

Example 4: PushCounter : Testing Swing GUI applications using LIFT.

  • PushCounter.java
  • PushCounterTest.java
  • PushCounterPanel.java
  • PushCounterPanelTest.java

For More Information

roster.csv : The simple course roster used as an example.

checkstyle-None.xml and pmd-None.xml : The configuration files used to disable (turn off) Checkstyle and/or PMD static analysis checks.

loose-checkstyle.xml : An alternative Checkstyle rule configuration that is more forgiving than the default.

webcat-eclipse-submitter-1.4.3.zip : The Web-CAT submission plug-in for Eclipse.

student.jar : JUnit support library used by Web-CAT and many universities, including student.TestCase , student.GUITestCase , LIFT, and more.

Source code for student.jar and LIFT is open-source, available from the Web-CAT project on SourceForge .

JUnit.org has more information on how to use JUnit.

Documentation for the asserts in JUnit: http://www.junit.org/apidocs/org/junit/Assert.html

Testing GUI Programs is a Prezi presentation that gives a good introduction to LIFT and how it is used.

The LIFT website provides more details on LIFT, including links to two sigcse papers, downloads, examples, and discussion forums.

Automatic Grading of Programming Assignments: An Approach Based on Formal Semantics

Ieee account.

  • Change Username/Password
  • Update Address

Purchase Details

  • Payment Options
  • Order History
  • View Purchased Documents

Profile Information

  • Communications Preferences
  • Profession and Education
  • Technical Interests
  • US & Canada: +1 800 678 4333
  • Worldwide: +1 732 981 0060
  • Contact & Support
  • About IEEE Xplore
  • Accessibility
  • Terms of Use
  • Nondiscrimination Policy
  • Privacy & Opting Out of Cookies

A not-for-profit organization, IEEE is the world's largest technical professional organization dedicated to advancing technology for the benefit of humanity. © Copyright 2024 IEEE - All rights reserved. Use of this web site signifies your agreement to the terms and conditions.

Book cover

International Conference on Artificial Intelligence in Education

AIED 2022: Artificial Intelligence in Education. Posters and Late Breaking Results, Workshops and Tutorials, Industry and Innovation Tracks, Practitioners’ and Doctoral Consortium pp 35–40 Cite as

Grading Programming Assignments with an Automated Grading and Feedback Assistant

  • Marcus Messer   ORCID: orcid.org/0000-0001-5915-9153 11  
  • Conference paper
  • First Online: 26 July 2022

3515 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 13356))

Over the last few years, Computer Science class sizes have increased, resulting in a higher grading workload. Universities often use multiple graders to quickly deliver the grades and associated feedback to manage this workload. While using multiple graders enables the required turnaround times to be achieved, it can come at the cost of consistency and feedback quality. Partially automating the process of grading and feedback could help solve these issues. This project will look into methods to assist in grading and feedback partially subjective elements of programming assignments, such as readability, maintainability, and documentation, to increase the marker’s amount of time to write meaningful feedback. We will investigate machine learning and natural language processing methods to improve grade uniformity and feedback quality in these areas. Furthermore, we will investigate how using these tools may allow instructors to include open-ended requirements that challenge students to use their ideas for possible features in their assignments.

  • Automated grading
  • Computer science education

This is a preview of subscription content, log in via an institution .

Buying options

  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
  • Available as EPUB and PDF
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

checkstyle. http://checkstyle.sourceforge.io/ . Accessed 14 May 2022

Bernius, J.P., Krusche, S., Bruegge, B.: A machine learning approach for suggesting feedback in textual exercises in large courses. In: Proceedings of the Eighth ACM Conference on Learning @ Scale (2021). https://doi.org/10.1145/3430895

Brown, N.C.C., Klling, M., Mccall, D., Utting, I.: Blackbox: a large scale repository of novice programmers’ activity. In: Proceedings of the 45th ACM Technical Symposium on Computer Science Education (2014). https://doi.org/10.1145/2538862

Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 476–493 (1994). https://doi.org/10.1109/32.295895

Ferguson, P.: Assessment and evaluation in higher education student perceptions of quality feedback in teacher education. Assess. Eval. High. Educ. (2009). https://doi.org/10.1080/02602930903197883

Insa, D., Silva, J.: Semi-automatic assessment of unrestrained java code * a library, a DSL, and a workbench to assess exams and exercises. In: Proceedings of the 2015 ACM Conference on Innovation and Technology in Computer Science Education (2015). https://doi.org/10.1145/2729094

Kane, D., Williams, J., Cappuccini-Ansfield, G.: Student satisfaction surveys: the value in taking an historical perspective, 135–155 (2008). https://doi.org/10.1080/13538320802278347

Kincaid, J.P., Fishburn Jr., R.P., Rogers, R.L., Chissom, B.S.: Derivation of new readability formulas for navy enlisted personnel, February 1975. https://apps.dtic.mil/sti/citations/ADA006655

Krusche, S., Reimer, L.M., Bruegge, B., von Frankenberg, N.: An interactive learning method to engage students in modeling. In: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering Education and Training (2020). https://doi.org/10.1145/3377814

Mccabe, T.J.: A complexity measure. IEEE Trans. Softw. Eng. 308–320 (1976). https://doi.org/10.1109/TSE.1976.233837

Nguyen, H., Lim, M., Moore, S., Nyberg, E., Sakr, M., Stamper, J.: Exploring metrics for the analysis of code submissions in an introductory data science course. In: ACM International Conference Proceeding Series, pp. 632–638, April 2021. https://doi.org/10.1145/3448139.3448209

Parihar, S., Das, R., Dadachanji, Z., Karkare, A., Singh, P.K., Bhattacharya, A.: Automatic grading and feedback using program repair for introductory programming courses. In: Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE, pp. 92–97, June 2017. https://doi.org/10.1145/3059009.3059026

Rahman, M.M., Watanobe, Y., Nakamura, K.: Source code assessment and classification based on estimated error probability using attentive LSTM language model and its application in programming education. Appl. Sci. 10 , 2973 (2020). https://doi.org/10.3390/APP10082973

Article   Google Scholar  

Shah, M.: Exploring the use of parsons problems for learning a new programming language (2020). www2.eecs.berkeley.edu/Pubs/TechRpts/2020/EECS-2020-88.html

Wisniewski, B., Zierer, K., Hattie, J.: The power of feedback revisited: a meta-analysis of educational feedback research. Front. Psychol. 3087 (2020). https://doi.org/10.3389/FPSYG.2019.03087

Download references

Author information

Authors and affiliations.

King’s College London, London, UK

Marcus Messer

You can also search for this author in PubMed   Google Scholar

Corresponding author

Correspondence to Marcus Messer .

Editor information

Editors and affiliations.

Ateneo De Manila University, Quezon, Philippines

Maria Mercedes Rodrigo

Department of Computer Science, North Carolina State University, Raleigh, NC, USA

Noburu Matsuda

Durham University, Durham, UK

Alexandra I. Cristea

University of Leeds, Leeds, UK

Vania Dimitrova

Rights and permissions

Reprints and permissions

Copyright information

© 2022 Springer Nature Switzerland AG

About this paper

Cite this paper.

Messer, M. (2022). Grading Programming Assignments with an Automated Grading and Feedback Assistant. In: Rodrigo, M.M., Matsuda, N., Cristea, A.I., Dimitrova, V. (eds) Artificial Intelligence in Education. Posters and Late Breaking Results, Workshops and Tutorials, Industry and Innovation Tracks, Practitioners’ and Doctoral Consortium. AIED 2022. Lecture Notes in Computer Science, vol 13356. Springer, Cham. https://doi.org/10.1007/978-3-031-11647-6_6

Download citation

DOI : https://doi.org/10.1007/978-3-031-11647-6_6

Published : 26 July 2022

Publisher Name : Springer, Cham

Print ISBN : 978-3-031-11646-9

Online ISBN : 978-3-031-11647-6

eBook Packages : Computer Science Computer Science (R0)

Share this paper

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

  • Publish with us

Policies and ethics

  • Find a journal
  • Track your research

Welcome to CodeGrade!

Deliver engaging feedback on code., autograder for programming assignments., works with any programming language, built for education.

“CodeGrade is easy to use, the support is amazing and the product is really good."

Help your students learn with code autograding

Students write code in their favorite ide, hand in to codegrade through your lms or via github or gitlab, get instant feedback.

"CodeGrade is saving me money and time, while the students get faster feedback. It’s a win-win situation!"

The power of continuous automatic feedback

Higher quality code.

Students have the ability to iteratively improve their code before the due date.

No more broken code

After handing in, students will immediately see if their solution works, making sure you will never have to fix their compiler errors again.

More time to focus

Don’t worry about functionality testing or finding that compiler error. Actually focus on the interesting and important facets of grading.

Sign up to our newsletter

Schedule a demo., play around and get a feel., ready, set, go., schedule a personalized tour of codegrade today..

Streamline code learning and grading

  • Higher Education
  • Coding Bootcamps
  • K-12 Schools
  • Automatic grading
  • Code submissions
  • Inline comments
  • Peer feedback
  • Plagiarism detection
  • LMS integration
  • Community library
  • Case studies
  • Privacy policy
  • Accessibility
  • Terms and conditions

IMAGES

  1. Webinar: Automatically grading Python assignments in CodeGrade

    automatically graded programming assignments

  2. PPT

    automatically graded programming assignments

  3. Programming Assignments

    automatically graded programming assignments

  4. PPT

    automatically graded programming assignments

  5. PPT

    automatically graded programming assignments

  6. How to add automatically graded questions to your digital assignments

    automatically graded programming assignments

VIDEO

  1. Week 2 Maths2 graded assignment #iit #iitmadras #iitmadrasonlinedegree

  2. GrPa 3 Week 2 Python #iitmadrasonlinedegree #iitmadras #programminginpython

  3. Mathematics -1 Graded Assignments Detailed Solutions (Week -8)

  4. Week 3 CT(Computational thinking) graded assignment #iitmadrasonlinedegree #iitmadras #iitm

  5. How to Assign Letter Grades in Excel

  6. Week 4 python graded assignment #iitmadrasonlinedegree #iitmadras #nptel

COMMENTS

  1. How can I automate the grading of programming assignments?

    I then write a per-assignment check-list of items that I want to look at in each submission. This gets refined until I have graded 5 or so, when it sort of stabilizes. Finally, I get to grade the bulk of submissions, writing comments for students as I go, and often copying and pasting comments from previous submissions.

  2. Programming assignments - Coursera Support

    Programming assignment grades. Programming assignments are graded automatically. Some are graded using a built-in grading algorithm that compares your program's output to a value specified by your instructor. Others are graded using a custom grading algorithm created by your instructor. If a programming assignment uses built-in grading:

  3. Automated Grading and Feedback Tools for Programming ...

    8 CONCLUSION. This systematic review categorised state-of-the-art automated grading and feedback tools by the graded programming skills, techniques for awarding a grade or generating feedback, programming paradigms for automatically assessing programming assignments, and how these tools were evalu-ated.

  4. Automatically grading Python code assignments | CodeGrade Blog

    Python is a popular programming language in education, especially for introductory courses and applied scripting or data science courses. With the right tools, it is very easy and beneficial to autograde Python. Learn about Python I/O Testing, PyTest Unit Testing for education, Code Quality Grading with Flake8 and PyLint and Python Code ...

  5. Automated Grading and Feedback Tools for Programming ...

    the time it takes to grade each assignment and can be used to enhance the traditional grading workflow and establish a real-time feedback system. The process of automatically grading source code can be done in various ways, such as unit testing and comparing source code to an instructor’s model solution or other students’ correct submissions.

  6. Automatically grading programming homework | MIT News ...

    June 3, 2013. Researchers at MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL), working with a colleague at Microsoft Research, have developed a new software system that can automatically identify errors in students’ programming assignments and recommend corrections. Teaching assistants at MIT have already begun using ...

  7. Automatically Grading Programming Assignments with Web-CAT

    This tutorial introduces participants to using Web-CAT, an open-source automated grading system. Web-CAT is customizable and extensible, allowing it to support a wide variety of programming languages and assessment strategies. Web-CAT is most well-known as the system that “grades students on how well they test their own code,” with ...

  8. Automatic Grading of Programming Assignments: An Approach ...

    Programming assignment grading can be time-consuming and error-prone if done manually. Existing tools generate feedback with failing test cases. However, this method is inefficient and the results are incomplete. In this paper, we present AutoGrader, a tool that automatically determines the correctness of programming assignments and provides counterexamples given a single reference ...

  9. Grading Programming Assignments with an Automated Grading and ...

    In addition to code analysis, there has been research into how to grade programming assignments automatically. Previous research has focused on automatically determining whether a particular solution meets the given requirements and is error-free [6, 12, 13]. Parihar et al. created an automated grading and feedback tool called GradeIT. Before ...

  10. Autograder for programming assignments. - CodeGrade

    Autograder for programming assignments. Whether you are using Python, JavaScript, Java, C#, SQL, Jupyter or any other programming language, CodeGrade supports it seamlessly. Under the hood we use Ubuntu images, so you can run and install anything you want. Use our built-in test types, such as Input/Output tests, Unit tests or Code Quality tests ...