CSGrader changelog

Landing Page Redesign

changelog cover

We are excited to announce a comprehensive revamp of our website and application interface! This major update introduces a sleek, user-friendly landing page, enhanced functionality, and new features designed to improve user experience and engagement.
Over the last few months we have completed:

  • New Design: Introducing a modern, clean design that improves navigation and user interaction.

  • Improved Navigation: Streamlined menus and quick links to all major sections, including tutorials, resources, and account management.

  • Responsive Layout: Optimized for all devices, ensuring a seamless experience on desktops, tablets, and smartphones.

Now that we have this foundation created, we have a much better base to grow off and continue to provide an amazing experience to our educators and students alike.


Python Assignment Support

changelog cover

We're excited to announce that csgrader now supports Python assignments! This enhancement is designed to streamline the grading process and improve feedback quality for both educators and students. Here's what you can expect with this new feature:

  • Build & Run: Seamless execution of Python assignmens, ensuring your code runs as intended.

  • Running Unit Testing: Comprehensive unit testing capabilities to validate code against specified requirements.

  • Results Parsing: Detailed feedback from unit tests, making it easier to identify areas for improvement.

  • Student Tests Integration: Original student tests can be utilized to replace or supplement default tests, offering a more personalized assessment.

  • Code Coverage Analysis: Insights into how much of your code is being executed by tests, helping identify untested parts.

  • Complexity Parsing: Evaluation of code complexity to encourage efficient coding practices.

  • Template Documentation: Support for documenting code templates, aiding in understanding assignment requirements.

Looking ahead, we're working on extending our support to include Jupyter assignments, aiming to broaden our service capabilities.

Stay tuned for more updates, and happy coding!


Change Detection with Commit Locking

We are thrilled to introduce a transformative new feature to csgrader: Change Detection with Commit Locking. This enhancement is specifically designed to streamline assignment management for educators, allowing for seamless transitions between academic years and improved integrity in assignment submissions. Here's what this feature offers:

  • Assignment Commit Locking: Educators now have the ability to "lock" assignments to a specific commit. This means that any subsequent changes made to the assignment for future iterations will not impact the current version, ensuring that the integrity of the assignment remains intact throughout the academic term.

  • Timeline of Student Commits: This feature provides educators with a detailed timeline view of student commits, enabling a clear understanding of submission timelines. It's an invaluable tool for monitoring late submissions and understanding students' work habits.

  • Enhanced Assignment Management: With Change Detection, educators can confidently make necessary updates or improvements to assignments for the next academic year without worrying about affecting the ongoing assignments. This facilitates continuous improvement in course content while maintaining a stable learning environment for current students.

This update represents a significant leap forward in assignment management and submission integrity within csgrader, offering educators greater control and visibility over their course content and student submissions.

We are committed to continuously enhancing csgrader to meet the evolving needs of the educational community, and we eagerly anticipate your feedback on this new feature. Stay tuned for more updates as we further refine and expand our platform's capabilities.


F# Assignment Support with .NET Core

changelog cover

We're thrilled to announce that csgrader now extends its support to include F# assignments using .NET Core, broadening our platform's capabilities for functional programming enthusiasts. This update is designed to enhance the learning and teaching experience for courses incorporating F# and .NET Core technologies. Here's what's new:

  • Build & Run: Robust support for compiling and executing F# projects within the .NET Core framework, ensuring a smooth and consistent development experience.

  • Unit Testing: Integrated unit testing for F# assignments, allowing educators and students to verify code correctness and functionality against specified requirements.

  • Results Parsing: Detailed parsing of unit test outputs, providing insightful feedback to help students identify and address areas for improvement in their code.

  • Teacher Tests: Capability for instructors to include custom unit tests in their assignments, enabling a more tailored assessment approach that aligns with course objectives.

  • Student Test Flexibility: Students have the option to use their original tests within assignments, fostering a deeper understanding of test-driven development and personal accountability in code quality.

  • Complexity Analysis: Evaluation of code complexity to promote the writing of clear and maintainable functional code, critical in F# programming.

  • Template Documentation: Enhanced support for including detailed instructions and documentation within assignment templates, guiding students through their coding tasks.

  • Anomaly Analysis: Advanced anomaly detection to uncover unusual coding patterns or common errors across submissions, offering valuable feedback for educators.

This update reinforces our commitment to supporting a diverse range of programming languages and paradigms, catering to the evolving needs of the educational community in computer science and software engineering.

Stay tuned for future enhancements as we continue to develop and improve csgrader, ensuring it remains at the forefront of educational coding platforms.

Note: We do not plan to support Dotnet Framework as it can not be supported by students with Mac or Linux computers.


C# Assignment Support with .NET Core

changelog cover

We're excited to announce a significant expansion of csgrader's capabilities with the addition of support for C# assignments using .NET Core. This update opens up new possibilities for educators and students working with C# and .NET Core projects. Here's what's included in this update:

  • Build & Run: Full support for building and running C# projects using .NET Core, ensuring that assignments are executed in a consistent and reliable environment.

  • Unit Testing: Comprehensive unit testing capabilities for C# projects, allowing for detailed assessment of student submissions against predefined criteria.

  • Results Parsing: Advanced parsing of unit test results, providing clear and actionable feedback to students on their performance and areas for improvement.

  • Student Test Integration: Flexibility for students to include their original tests, enabling a more personalized assessment experience and fostering test-driven development skills.

  • Code Coverage Analysis: Insights into the extent to which student tests cover the codebase, encouraging thorough testing practices.

  • Complexity Parsing: Evaluation of code complexity, helping students understand the importance of writing clean, maintainable code.

  • Template Documentation: Support for including detailed documentation within assignment templates, guiding students through their tasks.

  • Anomaly Analysis: Enhanced analysis to identify unusual patterns or issues in code submissions, providing valuable insights for educators in their teaching strategies.

This update marks a significant milestone in our commitment to supporting a wide range of programming languages and frameworks, empowering educators to deliver a diverse and comprehensive computer science education.

Stay tuned for more updates as we continue to enhance csgrader's features and capabilities.

Note: We do not plan to support Dotnet Framework as it can not be supported by students with Mac or Linux computers.


Method-Level Cyclomatic and Cognitive Complexity Analysis

changelog cover

We're pleased to announce an important update to csgrader, further enhancing our code analysis capabilities. Building on our commitment to provide detailed insights into code quality and maintainability, we now offer Cyclomatic and Cognitive Complexity parsing at the method level for student assignments for all current and future languages. This update aligns with the standards set by SonarQube, a leader in code quality and security. Here's what this enhancement includes:

  • Method-Level Cyclomatic Complexity: This feature evaluates the number of linearly independent paths through a method, offering a precise measure of its structural complexity. It's crucial for identifying complex methods that might benefit from refactoring to enhance code maintainability and reduce the risk of errors.

  • Method-Level Cognitive Complexity: Adhering to SonarQube's standards for Cognitive Complexity (https://www.sonarsource.com/resources/cognitive-complexity/), this analysis provides insights into the effort required to understand the logic within a method. It aims to identify methods that are overly complex from a human perspective, suggesting opportunities for simplification to improve code clarity and learner comprehension.

  • Integration into Anomaly Analysis: Incorporating method-level complexity metrics into our anomaly analysis enables the identification of outlier methods that may indicate misunderstanding or inefficiencies in student code. This targeted analysis helps educators provide more specific feedback and support to students.

  • Detailed Educator Reports: With the inclusion of these advanced complexity metrics, educator reports are now more comprehensive, highlighting not only individual student challenges but also offering insights into collective class performance. This facilitates more informed teaching strategies and interventions.

This update reflects our ongoing effort to harness advanced code analysis techniques to support the educational community, providing tools that enrich learning outcomes and coding proficiency.

Stay tuned for further updates as we continue to expand and refine csgrader's features based on your valuable feedback.


Unit Test Parsing For Anomaly Analysis

changelog cover

We're excited to announce a significant enhancement to csgrader's Unit Test Parsing capabilities, with a focus on providing deeper insights and improving the feedback loop for educators. This update brings a new dimension to assessing student submissions by integrating unit test outputs into our anomaly analysis and reporting systems. Here's what's new:

  • Enhanced Results Parsing: Csgrader now offers parsing of unit test outputs automaticly, providing detailed feedback on student submissions. This allows for a more granular understanding of each submission's performance against the defined tests.

  • Integrated Anomaly Analysis: The parsed results from unit tests are now factored into our anomaly analysis, enabling the detection of unusual patterns, potential misunderstandings, or common errors among student submissions.

  • Comprehensive Reports for Teachers: With the integration of test results and anomaly analysis, educators receive in-depth reports. These reports highlight not only individual student performance but also offer insights into broader trends and learning gaps within the class.

This update is designed to empower educators with actionable data, helping to tailor teaching strategies and interventions to student needs more effectively.

Stay tuned for more enhancements, as we continue to refine csgrader to support the evolving needs of the educational community.


Built-in Code Viewer in Grading Page

changelog cover

We are thrilled to announce a significant enhancement to the CSGrader platform: the integration of a Built-in Code Viewer directly within the Grading Page. This new feature is designed to streamline the grading process, making it more efficient and user-friendly for teachers and graders.

Details:

- Built-in Code Viewer: Educators and reviewers can now view and assess student submissions without the need to go directly to the assignment repository in Github. The Code Viewer supports various programming languages, offering syntax highlighting and line numbering for better readability.

- Seamless Integration: The Code Viewer is fully integrated into the Grading Page, allowing for an uninterrupted grading workflow. This means less time spent navigating between tools and more time for meaningful feedback.

- User-Centric Design: Developed with input from our community, the Code Viewer features a clean, intuitive interface that caters to both experienced and novice graders.

Impact:

This update is part of our ongoing commitment to enhance the CSGrader experience, making it more efficient and enjoyable for educators to nurture the next generation of programmers. We believe this addition will significantly aid in the accurate and fair evaluation of code, further supporting our mission to provide high-quality education tools.

Getting Started:

To access the new Code Viewer, simply navigate to the Grading Page and select the students you want to look at for any assignment. In the tabs, section there will be a code tab that will allow you to use this feature immediately and requires no additional setup.


Teacher Tests Integration

changelog cover

We're thrilled to enhance the functionality of csgrader with a significant update focused on empowering educators. Teachers can now provide a custom set of unit tests within the test/teacher directory of their assignments. Here’s what this update entails:

  • Custom Teacher Tests: Educators can include their own unit tests in the test/teacher folder, allowing for a tailored assessment that aligns with specific learning objectives.

  • Integrity of Evaluation: This feature ensures that student submissions are evaluated for correctness based on the educator's criteria, preventing students from merely altering tests to pass.

  • Framework Specificity: To maintain consistency and reliability, teacher-provided tests currently require adherence to a specific testing framework designated for each language.

This update aims to provide educators with greater control and flexibility in the assessment process, ensuring that student submissions meet the intended educational outcomes.

We are committed to continuously improving csgrader to meet the needs of our educational community. Stay tuned for future updates!


Method Level Abnormalities (Anomalies)

changelog cover

We're excited to announce a groundbreaking enhancement to CSGrader's code analysis capabilities. Our latest update introduces an unparalleled feature: Method-Level Anomaly Detection in student code submissions. This advancement sets a new standard in code analysis, going beyond the conventional file-level scrutiny to offer precise, in-depth insights.

Key Features:

- Granular Analysis: By extending our focus to the method level, instructors and students can now gain a deeper understanding of code behavior, pinpointing specific areas of concern with unmatched accuracy.

- Custom Language Parsers: To ensure comprehensive support across various programming languages, we've developed custom parsers tailored to each language's nuances. This ensures that our analysis is both accurate and relevant, no matter the language in use.

- Integration of ChatGPT: Leveraging the advanced capabilities of ChatGPT, we provide contextual insights and suggestions, making the feedback more intuitive and actionable for students.

- AI-Assisted Data Analysis: Our system employs cutting-edge AI techniques to sift through code, identifying anomalies that could indicate errors, inefficiencies, or opportunities for optimization.

What Sets It Apart:

The method-level anomaly detection in CSGrader is a first-of-its-kind feature among code analyzers, which traditionally only operate at the file level. This granular approach not only enhances the educational experience by providing detailed feedback but also equips learners with the insights needed to refine their coding practices significantly.

We believe this update will revolutionize the way coding assignments are assessed and understood, offering a richer, more detailed perspective on student code. Stay tuned for further enhancements, as we continue to innovate at the forefront of educational technology.


Launching Our Discord Community

changelog cover

We are thrilled to announce the launch of our brand new Discord community! This vibrant online space is designed to bring our users together, fostering a dynamic environment for collaboration, support, and sharing of ideas. Here's what you can look forward to:

- Connect & Collaborate: Join discussions, share insights, and connect with peers and experts in our field. Our Discord community is the perfect place to find collaborators, discuss projects, or get feedback on your work.

- Exclusive Content & Resources: Gain access to a wealth of resources, including tutorials, tips, and exclusive content curated just for our community members. Whether you're looking to learn something new or refine your skills, our Discord server has something for everyone.

- Real-Time Support: Have a question or facing a challenge? Our community and team of experts are here to help. Get real-time support and advice, and overcome obstacles faster with the collective knowledge of our community.

We believe this Discord community will be a valuable resource for all our users, providing a space to learn, share, and grow together. Join us today and be part of shaping this exciting new community!


Semester & Course Templates

changelog cover

Templating for Programming Courses & Semesters

We are excited to announce a significant enhancement to our platform with the introduction of templating for programming courses and semesters. This new feature allows educators to create a master template for a course, which can then be easily distributed and adapted by multiple teachers. This ensures consistency across the board, aligning all courses with your institution's standards and requirements.

Flexible Course Customization: Understanding the need for individuality and adaptation in teaching, we've also made it possible to customize courses after they've been created from the template. Teachers now have the flexibility to make changes to their courses, allowing for adjustments and modifications to better suit their teaching style and meet the unique needs of their students.

This update is designed to streamline the course creation process, promote standardization where needed, and still allow for the personal touch that makes each course unique. We hope you find these new features helpful in enhancing your teaching and learning experience.


Github Integration

changelog cover

We are excited to announce a major update to csgrader.org: integration with GitHub.
This integration will allow teachers to store template repositories and give student assignments through github. This allso allows csgrader to do continuous assignment template analysis, commit monitoring, and grade directly from github. This integration streamlines the process of managing and grading coding assignments by leveraging GitHub's robust version control and collaboration features.

Key Features:

  • Template Analysis on Changes: Automatically analyze and track changes to assignment templates stored in GitHub repositories. This ensures that any modifications to the template are identified, allowing educators to adjust grading rubrics or test cases accordingly.

  • Replicating Student Assignments: Seamlessly replicate and distribute assignments to students by creating individual GitHub repositories for each student. This process is automated, saving educators time and ensuring each student has a personalized repository to work in.

  • Pulling Assignments for Grading: Simplify the grading process by pulling the latest commits from student repositories directly into csgrader. This allows for real-time grading and feedback, ensuring that students receive timely and relevant insights into their progress.

This GitHub integration is designed to make the management of coding assignments more efficient, transparent, and scalable. We encourage educators to leverage these new capabilities to enhance their teaching workflow and provide an even more engaging learning experience for their students.


C++ (CPP) & Java Assignments

changelog cover

C++ Assignments Support

We are thrilled to announce that csgrader.org now supports grading for C++ assignments. This new feature allows teachers to create, test, and grade C++ projects directly on our platform. CSGrader leverages Cmake and a standard ubuntu runtime environment to ensure accurate and efficient evaluation of code. Key highlights include:

  • Automated Code Testing: Run a series of predefined tests against student submissions to automatically evaluate and grade assignments.

  • Comprehensive Language Features: Full support for the latest C++ standards, including C++11, C++14, C++17, C++20, C++23.

  • Example Assignment: You can find the examples repsitories for CPP assignments for Print String and Linked List.

Java Assignments Support

Expanding our language offerings, csgrader.org now also supports Java assignments. With this update, our platform caters to one of the most popular programming languages in education, enabling the submission, testing, and grading of Java-based projects. Features include:

  • JUnit Testing: Leverage JUnit tests to automatically evaluate the correctness of student submissions.

  • Example Assignment: You can find the examples repsitories for CPP assignments for Print String and Compound Intrest.