AnswerBun.com

Feedback request: an assignment on programming a research paper

Computer Science Educators Asked on May 21, 2021

I am teaching an elective course on algorithms for 3rd year undergraduates. There are 12 weekly assignments, each of which is worth 1% of the grade, and a final exam which is worth 88%. I would like to encourage the higher-level students to get into research, and to this end I would like to first encourage them to read research papers. So I plan to add a bonus assignment on research papers related to the course topic. My current plan is to offer them a list of papers and have each student pick a different one. The assignment will have 4 parts, each of which is worth 6% bonus points:

Parts 1+2: understanding the paper

  1. Summarize the paper in your own words: what problem is the paper trying to solve? What are the existing solutions? What is the new algorithm? What problems are left for future work?
  2. Construct at least 3 substantially different examples for the algorithm presented in the paper (besides the examples given in the paper, if any): run the algorithm by hand on each example, and show that the outcome indeed satisfies the output guaratees of the algorithm.

Parts 3+4: programming the algorithm

  1. Write in Python (or another programming language) a skeleton of an implementation of the main algorithm in the paper. A "skeleton" is the heading of a function, without the function implementation. Write unit-tests based on your examples from part 2.
  2. Program the algorithm and test it.

The idea of the programming part is that programming an algorithm requires a very detailed understanding of the algorithm. Additionally, my students are very good at programming, but not as good at reading research papers, so this part of the exercise is like a bridge between what they are good at and the new skill I would like them to learn.

I will be happy for feedback and further suggestions regarding this plan, both in general (e.g. is this indeed a good way to encourage good students to get into the world of research?) and in the details (e.g. is the partition to 4 parts reasonable?).

One Answer

With regards to your setup, one concern that I have is that the steps might not make a lot of sense, at least as written. It would be very useful if you provided one exemplar of what you mean for a summary to look like, and what you would like an algorithm "run by hand" to look like. For the first part, a summary could mean two sentences, or it could mean a few pages with diagrams that break down the activity. As for the second, I am not sure what is meant by "run by hand", and it would not surprise me in the least if others also find it confusing.

Now, there is the question you didn't ask. Structurally, a course with 88% of the grade as a final exam is, for all functional purposes, a course with 100% of the grade as a final exam. Why devalue all of the work, and permit a single bad day to destroy a student's entire semester (and possibly put their entire academic career at risk?)

I once had a student come into an exam several hours after her mother and brother died in a catastrophic car accident. She didn't say anything, sat for the exam, worked on only two of the problems, turned it in and walked out of the room. This was not for a super-high-stakes final, just for a regular quiz!

I only found out several days later what had happened. I quietly threw out the quiz, and gave her a new one after she returned and had had some time to pull her academic life back in order.

I have had students come in after catastrophes, I've had them come in sick, I've had them come in after relationship breakups... none of these were students that came in at my request. They just showed up. These experiences have made me very wary of single-entry, "do or die" exams.

Why not three exams at 22%, 22%, and 44%? This softens the "bad day" problem, and also gives students at least some feedback along the way to help them right the ship if they think that they're in better shape than they really are.

Remember that we don't teach topics, we teach people. They are our charges, and we are ultimately there to help them.

Answered by Ben I. on May 21, 2021

Add your own answers!

Related Questions

Is there a word for mathematics/physics/data-analytics/….?

3  Asked on August 21, 2021 by loizos-vasileiou

 

Any good beginner tutorials for learning LLVM

2  Asked on August 21, 2021 by joshua-segal

   

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir