I think we could experiment with being more inclusive than [R and Matlab’s forums].
That seems like a good place to start 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
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).
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.
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.
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.
Generally I agree, but there are questions for which I encourage students to ask online. The reasons for this are twofold:
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!).
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.
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.
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.
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 for students
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.
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.
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.
Your teaching assistant 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.
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 … ```).
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.
Sorry for reviving an old topic, but I think we should revisit the issue: compared to the time this topic was started more than 3 years ago, Julia is used at a lot more universities to teach courses. Suspiciously homework-looking problems show up here on a more or less daily basis, and community members seem unsure how to deal with them.
I wonder if those who are teaching or recently taught courses using Julia see their own homework (or exam) problems showing up here, and would prefer some way of dealing with it. Otherwise, if this is not a problem to anyone in the community, I would leave it to the catch-all academic honesty policies of the relevant universities.
Unfortunately the reply is too old to edit now. If such a policy is formulated by the community, there should be a discussion about the details, then we can fix this.
But the question for now is about whether this is needed. Personally I usually teach graduate courses where this is not an issue, and I don’t grade Julia programming per se and encourage cooperation on problem sets anyway.
But I feel that we should make a community decision here, either ignore the whole thing, or have a mechanism in place for dealing with it (either is fine with me).
I encourage my students to use online resources for programming questions. I think that is part of professional development. I also tell them that they must properly cite their sources. So if @Tamas_Papp helps with sparse matrix data structures, it is not a problem as long as @Tamas_Papp gets credit.
I tell them pretty directly that this does not include getting someone to do your job for you or being a pest. There are also serious plagiarism and academic misconduct issues here, and I remind them that people have lost their jobs and ruined their careers for violating the rules. For example, taking source code from a public repository (like a Julia package) and representing it as one’s own work will get you kicked out of school at my place.
So, I read 'em the rules and tell them to act responsibly. I do not think it is this community’s job to do that. It is mine.
It becomes this community’s problem when hundreds of novices are burying discourse with homework or thesis questions. I think we’ll have to deal with that when and if it happens. I do not see it happening now.
I’ve made your old post a wiki, Tamas, but I agree with @ctkelley — guidance to students is more a question for the course professors/TAs. I don’t know that our guidance to students needs to be any different from Please read: make it easier to help you. The one exception in my mind would be that I’d like to encourage students to be honest up-front that it’s a homework problem.
Curiously I was just about to post something on this, but found other threads in which this was discussed and quit.
I am in the following situation: I am teaching a programming course (in Julia, but not about Julia specifically). I first thought that it would be nice to have a category for home-works here, but even more specifically, it would be nice if we, as users, could create a sub-category with, for instance, the course name, etc. The posts in these sub-categories would not appear for all the users such that one course does not pollute too much the discourse site, but would be available for searches and accessible to students openly.
By being in a home-work category and, even further, associated to a specific course, the demands would be completely transparent in their purpose. The teacher and the students of that course would be able to interact with each other, have their suggestions compared to other questions already done in Discourse, etc, and probably would ending up producing content for newbies (or not, depending on the course) in these threads.
This would require a functionality (the possibility of a user creating a new category, and this category be somewhat hidden from the overall site) which I do not know if exists. But it would turn the Discourse a beautiful platform to support teaching.