Homework Policies
This page includes some information on the homework assignments for BEE 4750/5750, including policies and logistics. The goal is to help you get as many points on your homework as possible and to return them as soon as possible.
This document is long, but please do read the whole thing (particularly What Homework Is For and the Logistics). Hopefully most of this is obvious, but some of it may not be.
What Homework Is For
This class involves two components which are somewhat in tension pedagogically:
- Conceptual what are systems, how do they behave, what are methods for their analysis and why do we use them;
- Computational how to implement systems analysis methods.
Out of these, we are more interested in the conceptual: the computational methods are a means to an end. What matters more is the act of translating an environmental system into an appropriate mathematical model and interpreting the results of that model to provide insights into the design and management of the system. Getting better at that act requires practice: this is what homework is for! It’s easy to nod and follow along in lecture, or read a derivation, but that’s a trap. You can only learn by doing, and often, failing.
Homework is the opportunity to practice doing. The practice is more important than the solution, which is why the solution is the least “rewarded” part of the homework rubrics. You can only learn by trying to solve the problem, and, often, getting stuck, because these are new skills that you are developing. And that’s ok — we encourage you to collaborate so you can share ideas and suggestions and give feedback, not to get solutions (and that’s also true for office hours, TA sessions, etc).
You also may not even be able to tell what parts of your homework solution are correct. And that’s also ok! We grade your homework and give you homework solutions so you can identify what, if anything, went wrong, and how to do better next time. We always aim for improvement, not perfection, and every homework problem is an opportunity to practice doing that type of problem.
But this emphasis on homework as practice also means that you should start the homework early. If you start early, and get stuck, you have the opportunity to get yourself unstuck, either by banging your head against the problem or by talking to others, and that’s how you learn. If you start late and get stuck, you either have to not finish (not great) or cheat (unacceptable under any circumstances).
Homework Logistics
Accepting Assignments
Homework assignments will be distributed through GitHub Classroom. When an assignment is released, a link to accept the assignment will be posted on Ed Discussion. You must click this link or subsequent steps will not work properly. Clicking this link will create your own repository with the files for the assignment. The first time you do this, you will be prompted to connect your GitHub username with your entry in the class roster.
Clone your repository to your computer.
It is important that you clone the repository created in the previous step, not the “original” repository. Make sure that the URL looks like
https://www.github.com/BEE4750-FA24/<username>-hwxx.git
, nothttps://www.github.com/BEE4750/hwxx.git
.
Working On Assignments
Open the local repository folder you created when you cloned the remote repository.
Use
File -> Open Folder
rather thanFile -> Open
to open the folder; this will make sure that all paths point to the right location and you can use the “Explorer” to see the different files.After the notebook loads, if prompted to, select the
julia-1.10
kernel.Make sure that you run the initial notebook cell (starting with
Pkg.activate()
) to load the Julia environment and install any needed packages.You don’t need to work in the notebook, per se, but if you choose to write your own code files, make sure to add them to the repository with
git add
. Make sure that you copy the initial notebook cell into your new script(s) to use the appropriate environment.As you work on assignments, make sure to save and frequently push and commit back to GitHub.
You can toggle line numbers in a notebook cell with the
L
key.
Asking for Assistance
- If you need to share code to ask for help or to provide help, provide a link to the relevant file in your GitHub repository, along with an idea of the relevant cell and line number(s).
- Minimal code snippets can also be copied and pasted into Ed, but these should be self-contained, not chunks copied from your homework. These snippets should illustrate what you think the correct concept and/or syntax should be with a self-contained example; it’s unlikely you will receive useful help if the snippet can’t be evaluated.
- Make sure you document what you’ve tried (including any searches) so we can focus on new solutions, not repeating things that haven’t already worked. If you haven’t looked for help (e.g. searching for an error message), start there.
Submitting Assignments
- Your final submission must be in a PDF. You can generate this in several ways:
If you have set up LaTeX on your system, you can convert a notebook directly to PDF in VS Code or Jupyter Lab (this will automatically work on BioHPC without any additional setup);
If you are submitting a PDF from a notebook, make sure that you evaluate all cells in order with
Run Cells
before converting.If you have not set up LaTeX, you can export a notebook to HTML and save it from your browser as a PDF;
If you have written a report outside of a notebook (e.g. in Word), save this to a PDF.
- You do not need to include code in a written submission, but make sure your final notebook and/or scripts are on your GitHub repository in case there’s an issue.
- PDFs must be submitted by the due date and time to Gradescope with pages tagged. Failure to tag pages will receive a 10% deduction.
- If you did not receive credit for your group’s submission, please have someone in your group use a regrade request to bring this to our attention, and we will use the list of names at the top of the page to confirm that you contributed to the assignment.
- Late submissions are accepted within 24 hours with a 50% penalty unless an extension was arranged ahead of the original deadline.
How To Write Assignments
Here are some tips for how to make the grader (the TA or Prof. Srikrishnan) understand what you mean in the time they’re looking at your problem: as noted in the rubrics, if your solution isn’t clear enough for us to follow, you will not receive the points even if your answer is technically correct, because part of demonstrating understanding is the ability to organize and communicate.
Be Honest
- Write everything in your own words. It’s perfectly ok to work with others; in fact, we encourage it! But you should write up and implement everything yourself; it’s very easy to convince yourself that you understand something when you’re mimicking someone else’s solution, and often we realize we don’t actually understand something when we try to write it ourselves.
- Cite every outside source you use. You are allowed, in fact encouraged, to use any outside source1 Getting an idea from an outside source is not a problem, and will not lower your grade; if you’re critically evaluating the idea and implementing and writing your solution yourself (see above), then you’re demonstrating understanding even if the idea originated with someone else. But you must give appropriate credit to that source. Taking credit for someone else’s ideas and failing to properly cite an outside source, including your classmates, is plagiarism, and will be treated accordingly.
- The only sources you do not have to cite are official class materials. If you use the lectures, lecture notes, website materials, homework solutions, etc, you do not have to cite these.
- List everyone that you worked with. Give your classmates proper credit for their assistance. If you get an idea from Ed Discussion, credit the poster. If you’re not sure if you should list someone as a collaborator, err on the side of including them. For discussions in class or in office hours, you don’t have to list everyone who participated in the discussion (though you should if you worked one on one with them), but mention that the class discussion or the office hour was useful.
1 Yes, including ChatGPT, though you should ask and describe how you used it.
Be Clear
- Write legibly. This doesn’t refer to handwriting (since you’ll be submitting PDFs of Jupyter notebooks), but the text itself should be clearly written and well organized, so that it’s easy for the grader to follow your reasoning or explanation. Structuring your solution, and not writing in a stream of consciousness, helps you think more clearly. To reiterate: You will be given no points if the grader cannot easily follow your answer, and the graders have complete discretion to determine this.
- Write clearly. Use proper spelling, grammar, logic, etc. We will try not to penalize people for not having complete mastery of English, but again, we need to be able to follow your reasoning.
- Write carefully and completely. We can only grade what you write; nobody can read your mind, and we will not try. The solution that you submit must stand on its own. If your answer is ambiguous, the TA has been instructed to interpret it the wrong way. Regrade requests also cannot be used to add more information to a solution.
- Don’t submit your first draft. For most people, first drafts are terrible. They are often poorly organized, unclear, and contain gaps or jumps in reasoning. You will likely need to revise, possibly several times, for your answer to be clear, careful, and complete. This is another reason to start the assignment early — if you start late, you may be stuck with your first draft, and your grade is likely to suffer for it.
- State your assumptions. If you think a problem statement is ambiguous and your solution depends on a particular interpretation, or you need to make some assumptions to solve the problem, make it explicit (though do also ask for clarification in class or on Ed Discussion).
- Don’t rely on your code. The TA will not try to scrutinize your code, which is a waste of time (again, the code is a means to an end — it works or it doesn’t). If you make it clear what your code is supposed to do with a description, then the TA can tell if this logic is correct and any mistake must be something minor in the code. If you just provide code (even if commented), the TA can’t do this without running your code and debugging, which is not a valuable use of time. We want to focus on your ideas.
Be Concise
- Keep solutions short. Organized answers should not be long. There’s a fine balance between conciseness and completeness: find it!
- Don’t regurgitate. You can reference concepts, models, etc from class without repeating them. Just make it clear what you’re modifying and how you’re using those concepts for that particular problem.
- Don’t bullshit. You will get no points for word salad, even if you accidentally hit on the right answer.