Homework policy

proposal

#1

There have been a few questions in the past few days which are most likely homework. As the language grows, more and more courses will adopt it, so it may be a good idea to formulate some kind of policy that aligns expectations of students looking for help here (and other forums), community members who are willing to help out, and those who just consider this noise.

To get the discussion started:

  1. I think that asking for help on problem sets is OK, if it is clearly indicated. A homework tag would be useful. Admins should be able to add this if the question is most likely homework.

  2. Helping with the language per se should be fine, if it is part of a larger problem. Eg if the assignment is to use a finite element method to solve a functional equation, then the subproblem of building a sparse matrix of a particular pattern should be fine. The preferred form of help is links to the documentation or examples.

  3. OTOH, if the exercise is about learning the language, the student should make the effort, but links to the documentation should be fine.

  4. Help should be proportional to effort. Showing a working prototype, some code, MWE, should get a enough (but just enough) help to continue if the student is stuck.

  5. Questions about installation/setup of a working environment should get all the help possible.

For comparison,

  1. Matlabcentral says

Don’t ask to solve your homework. Certainly don’t just copy and paste your homework with not additional information about what you tried or what you are having trouble with.

  1. R-help’s posting guide:

Basic statistics and classroom homework: R-help is not intended for these.

I think we could experiment with being more inclusive than these two.


Should there be a "homework" category?
#2

I like it. Though I get the impression that discourse is more intended as a discussion forum, whereas many help questions could go on StackOverflow? In practical terms, though, such questions will be coming and your suggestions sound as a good way to deal with it.
I think the guidelines should also state that asking for help with homework implicitly states that this is in accordance with the guidelines of the course - it is not very nice for teachers to have answers to all their prepared homework lying around on discourse available with a quick search, if they are meant to be solved independently.


#3

i think whether it is a homework question or not should not matter. we don’t have enough information to judge. what is important is the value of the question in itself, regardless of its source.


#4

Having an official policy on homework questions is a good idea. @Tamas_Papp, do you want to take a crack at writing a first draft of it? Since this is a discourse policy, I suppose it should live on discourse. Should we have a #policies category? Or just some pinned posts in #community?


#5

Stack Overflow has a decent set of guidelines on homework: http://meta.stackoverflow.com/a/334823/176071. I particularly like the encouragement to admit that it’s homework. They also removed the ‘homework’ tag and just recommend politely asking if it is homework.

Of course, posting here for homework help has the additional caveat that it’s a smaller community, so your professor/lecturer/TA may be watching…


#6

Sure, I will post a draft here within a few days.


#7

I very much like that Julia is homework, I think it should be a first language (not just for math related…).

Please do not scare students away. Ok to ask them to tag with “homework”.


#8

I think we could experiment with being more inclusive than [R and Matlab’s forums].

That seems like a good place to start :heart: While we don’t want to undermine anyone’s teaching efforts, students are ultimately responsible for their own learning – and Julia is responsible for being as friendly as it can be to newcomers. The forum should be protected from spam for sure. Above that low threshold, people will be free to answer questions, or ignore them. As long as the guidelines are friendly to learners, I’m for it :+1:


#9

But if it’s clearly homework, I think we should see the syllabus to see whether the professor is okay with having the answer online…

I think the main thing is, whoever is asking the question should abstract it to a usage/understanding question. At that point, it doesn’t matter if it’s a homework project, a research project, or written by a highly intelligent AI to fool us. The problem is when it’s like “Exercise 1: calculate … Can you do this for me? I need to see what an answer is like! kthxbye”. The fact that we got multiples of those in the last few weeks (also on SO) indicates there should be a policy explicitly against that (unless the professor says it’s okay).


#10

My view on this is that enforcing any kind of policy is the job of the faculty teaching a class, and not the problem of this community here. I think anything like asking for a syllabus to “check” whether a question is allowed would be totally inappropriate. I would much prefer that students that make it to this forum get a vibe of “hey, cool that you are interested in julia”, rather than “we will now first check whether you are allowed to ask a question here”.

I think having a policy written up somewhere that says that folks can’t really expect that people will do their homework here would be good. Of course, that won’t stop anyone from posting their question (who has ever read a policy before posting on a forum?). I think the best way to handle obvious homework questions would be to a) either just ignore them, or b) if someone is in a generous mood, point folks in a friendly way to the policy, and maybe say something like “instead of just posting the question verbatim here, why don’t you try to work things out, and if you get stuck with a generic julia problem, please come back and ask for help with that”, or something along those lines, i.e. some sort of positive guidance about the kind of question we actually want to help with.


#11

I agree; however, we should make this easier. Eg a student asking a question in good faith, in line with course policy (something minor, not asking to solve the whole problem) could easily get a more complete solution by accident, from equally well-intentioned contributors, which could get the student in trouble.

I think that this forum should be a useful complement to courses when learning Julia, and I will draft something with this in mind. Also, I agree that it is not our job to police students, but a policy should make it easier for well-meaning and honest parties to provide and receive help here, even if it is homework-related.


#12

I think your first suggestion was really well thought out.
The thing about homework is: it is designed by the teacher to help the student to learn. If a task is too difficult for the student, it is better for the student to feed this back to his teacher - he can offer tailored guidance to the student, or edit the question for the benefit of other students.

A forum answer can be a useful way to direct a student to good learning resources, but a direct problem solution is counterproductive. It would also create a big load on university teachers (like myself and @Tamas_Papp) to have to rework coursework examples every year because the answers are on discourse.

Of course the forum should be welcoming and friendly - coursework questions could be met by “It appears this question is homework. Please move it to the homework category where it can be answered appropriately. We also have a set of guidelines for homework questions.”

Though students will not read guidelines, most of the people answering the questions will. This is also an obvious chance of communicating good forum behaviour, such as posting an MWE and not repeating what someone else said in a discussion, etc.


#13

Generally I agree, but there are questions for which I encourage students to ask online. The reasons for this are twofold:

  1. I think that it is an important step towards learning their way around open source communities. Read the docs, find examples, ask on gitter/stackoverflow/discourse, and eventually open an issue if necessary (and then think about a PR…). Frequently, students are not aware of these options, and I want them to know about them so that they can continue learning after they complete the course, and hopefully some of them may even contribute (I had a student open a minor issue last month!).
  2. Questions which are tangential to the course material, eg how to make Plots.jl do something.

That said, even though your point is valid (the instructor/TA should be the primary source of help), homework questions will happen anyway, so we should have some guidelines.


#14

or rather, give them hints and directions


#15

but the student choose to post the question to a forum, right? how do you know, without knowing any details, that it was not the right choice? we don’t have any information on the teacher, the school, the student, the situation. why not trust people with their own life and own decisions?

if the question has very little to learn from, and apparently the poster did not put any effort in it, it might be considered noise, and thus an annoyance to the forum. but that might be the case with non-homework questions as well.


#16

Absolutely, both of those cases are valid uses of the forum. In fact, I wouldn’t count 2. as a homework question. IMHO that is just a valid Julia question arising from a student trying to learn the language as part of taking a course.

Fully agree.


#17

First draft of homework policy, please comment. Thanks for the suggestions, I believe that I incorporated all of them. I aimed for brevity at the expense of details, as I imagine very long documents would not be read.

Homework guidelines

  1. Make sure that you are aware of school and course policy for asking and accepting outside help with homework. It is your responsibility to make sure you adhere to these.
  2. It is OK to ask help with homework questions on this forum. *Strictly speaking, you are not required, but encouraged to say that something is a homework question: doing so will help you and respondents. For example, they can avoid solving the full problem for you (which is generally forbidden in most courses and may cause problems for you even if this was not your intention), and guide you to discover the solution yourself.
  3. You should read and reread the Julia Documentation, study the documentation and examples for the package you are trying to use (unit tests are also often informative), search online for an answer (including the search box in this forum) before asking questions. For really short questions, consider using Gitter. If you are trying to translate code from another language, learn how Julia is different.
  4. Your TA and instructor are there to help you. Consider asking them first, especially if the question is specific to a toolkit or library that they want you to use.
  5. Make a minimal working example (MWE). An MWE is a self-contained piece of code that can be run with publicly available libraries, and demonstrates your problem. Sometimes constructing the MWE helps you find your own solution. If the problem uses data (eg for plotting), generate fake or random data in the MWE. Post code quoted with backticks (```julia … ```).
  6. Some courses just use a programming language to teach content specific to a problem domain (eg numerical methods in fluid mechanics). This forum is for helping you with the Julia language. For help with the course material, ask your instructor/TA.

Should there be a "homework" category?
Mean Variance Optimal Portfolio