Week 10

During my last week, I essentially spent all my time wrapping up all the autograders I worked on this summer. I was able to finish the autograder for the temperature visualization assignment that I started last week, which included taking some more time to learn more about different pytest functionalities as I worked to mock a lot of functions (open csv file, input, student functions, etc). In addition using faculty feedback, I improved upon four more autograders from earlier in the summer, being able to finalize all of them and push them to main. I also wrapped up working on the first few sections of my research manuscript (introduction, motivation, related work, and methods). Because the Coursera course will not be launched for a while, we were unable to actually collect data and work to answer the research questions we came up with, but the manuscript I wrote will be used in the future to help decide what data to collect from the course and what questions should be included in any surveys sent out to students as part of the course. Overall, my experience this summer was full of learning about the field of computer science education, the research process, autograders, open-ended assignments, and more!

Read More

Week 9

I spent most of this week working on my final autograder for an assignment that mimickes the process of making a temperature blanket using a variety of functions. The autograder work for this assignment was a lot more complex and time-consuming because of the multi-file student submissions, the plentiful number of student functions, and the need to mock multiple different built in functions using pyest. While working on this autograder, I also continued to improve upon my previous autograders from earlier in the summer, being able to push two more of them into the main branch by the end of the week. In addition, I was able to get feedback on the methods section I formulated for my research question and then started working on actually writing out the first few sections of my manuscript as a final product for my summer program.

Read More

Week 8

As I am nearing the end of my research program, a lot more of my work has been focused on refining and improving previous autograders I have written, as well as helping my fellow undergrad researchers do the same. I made changes to multiple autograders based on feedback I received from my mentors and peers, and I also completed a few code reviews for my peers. In regards to my research manuscript, I used the feedback I got from my mentors to make updates to my outline and continued working on my methodology section. This included looking into different types of validated instruments I could use for survey data as well as skimming research papers to see how the authors approached collecting data for MOOCs. At the end of the week, I picked up another autograder for a more cumulative assignment (covering topics such as csv files, lists, test functions, and more) that will likely be my final one as I only have two more weeks before I conclude my program.

Read More

Week 7

My week was spent working the course 2 autograder that I started last week that had multiple student solution files. My mentors decided it would be best to split the assignment into three mini autograders, which made my work a lot more straightforward. I was able to write all three autograders and submit them for peer review. In addition, I spent a decent amount of time working on updating my old autograders based on code review feedback from my mentors. Finally, I also worked on starting an outline for the motivation, introduction, research question, related work, and methods section of the manuscript I will be writing for this research project.

Read More

Week 6

Most of my week was focused on completing my first course 2 autograder as I had to spend a significant amount of time debugging my test cases. Through this process, I was able to learn a lot more about different pytest functionalities and the sensitivity of pytest syntax. By the end of the week, I was able to debug and complete my auotgrader, submitting it for the next step in our building process, peer review. I have picked up another course 2 autograder for a lab assignment on debugging functions. This autograder will pose its own set of challenges because it includes many student submission files, something we have not yet had to take into account. In terms of the research questions I worked on last week, this week I was able to sit down with my mentors and refine my potential questions. In addition, we also identified what data would need to be collected for each question, how feasible it is to collect this data, and how the data collection could be implemented. For some inspiration regarding my research questions, I also read a research paper on data analysis done for an introductory CS Massive Open Online Course (more details on the paper are highlighted below).

Read More

Week 5

During the week, my autograder work shifted focus as I moved onto autograders for lab assignments in Course 2 of the Coursera course, in which students start learning about functions. With this shift, I spent time learning more about pytest and unit test functionality, including parameterization and mocking. The autograder I started working on is for a function based quiz generator assignment, and I was able to write the sample student solutions, the starter learner file, and many of the assignments’ tests. In terms of the literature review aspect of my work, we started transitioning into the next step of the process, which is formulating research questions we can ask related to the autograders and open-ended assignments. This includes thinking about what kinds of data we would collect for each question. And with this, the end of this week marked the halfway point in my research project.

Read More

Week 4

This week was focused on creating autograders and wrapping up the UR2PhD research course I have been taking for the past 4 weeks. In terms of autograders, we finished up our group autograder for a debugging lab and then I was also able to build an autograder for a lab based on the accumulator pattern. While working on my solo autograder, I took some time to learn about regular expressions and how to implement them in python so that I could improve efficieny in many of my autograder test cases. For the research class, we finished writing our research proposal for our summer project, conducted a peer review with other research groups in the course, created and recorded a final presentation, and completed a few reflection activities during this week.

Read More

Week 3

Week 3 followed a similar progression to Week 2; it was made up of creating autograders, providing peer code reviews, and reading research papers on autograders and open-ended assignments. This week I was able to finish up my first solo autorgrader, using peer and mentor feedback to improve upon my test cases and example student solutions. The autograder I wrote was for a lab that had students create art work using while loops, user input, and indexing. During this work, I took some time to learn more about git, github, and how to commit changes to different branches. I also provided more peer code review on the autograders created by both of my undergraduate peers working on this project with me. In addition, I read two more research papers, highlighted below, that helped give me a better sense of why it is important to provide students with meaningful feedback in our test cases and how that can impact student motivation. This week, the research class focused on data visualization, giving good presentations, and support systems, and as a part of class, we continued to work on our research proposals for our summer projects. Finally, I ended the week by teaming up with my peers to work on a new autograder together for a lab about debugging.

Read More

Week 2

During this week of my program, I worked alongside my peers to finish up our first autograder and began to go through the peer and mentor code review process. In this, I was able to get a better understanding of some key programming design principles and also work to improve the way that I write code. In addition, I started working on my first solo autograder for a lab about while loops and indexing. I was able to write all the student solutions and even all the pytest test cases to grade the different student solutions. And through this, I have learned many new debugging techniques to help identify errors in my code. Side by side with this work, I also read two research papers about open-ended assignments (highlighted below) and continued to work through my research class. This week of the class focused on learning how to search for literature and working on our research proposal drafts.

Read More

Week 1

The first week was all about getting acclimated to the project details, including the process of building the autograders, learning how to read research papers, and starting the online research course. I first spent some time learning about pytest, the python testing library, as that is the foundation from which all the autograders are built. I also read through the documentation that already exists for writing autograders in this project and learned how the Coursera environment works as a development tool. From there, I was able to start working with my peers on our first open-ended autograder for an assignment about user input and randomness, and I began by writing out a significant number of incorrect student solutions that could be used to test the validity of the autograder itself. I ended the week working on writing the different test cases for each buggy solution. Side by side with this autograder work, I read some papers on how to actually read a research paper and then read a couple of research papers about autograders and open-ended assignments for introductory CS classes to be able to get a better understanding of the context behind this research (the papers are highlighted below). The research course I am taking also began with introductory lessons about research culture and working collaboratively in a research team.

Read More