Machine Problem Policies
The best way for you to understand how a system works is to build systems yourself. MPs in this course are challenging, multi-part progrmaming problems where you will work with system concepts and gain a deeper understand of the systems you use every day (while improving your skill as a programmer!).
Group Work and Collaboration
In Computer Science, most work is done independently as you work on a part of a larger system or product. However, in industry and research, you are often one of several people working on different components of this project and have others to collaborate and talk with about the project. In education, you tackle classical problems that are designed specifically for you to see common problems and patterns that appear often in industry and research.
In CS 240, there are two levels of collaboration:
Your MP Collaborator – This is someone who you can (and should!) talk freely with about your MP and all aspects of it. You can have one collaborator and it must be mutual (you are each other’s collaborators). Feel free to debug each other’s code, share segments of code, draw flowcharts together, and more! There is no restricts on the collaboration with your MP partner. You will need to put their NetID in
The CS 240 Class – These are your classmates and peers working on the same problem. If they are not your collaborator, you can (and should!) help each other out with high-level concepts that do not involve sharing code, flow charts, or lists of logical steps.
I like to think of programming as solving a maze: if you are giving someone a detailed list of “turn right, turn left, turn right” they are no longer solving the maze. However, if you tell them that “you may have need a flashlight, be prepared” then they are still exploring the maze on their own. As it applies to programming, You can tell them
fseekis helpful for the MP but don’t give the class exact place to use it or the exact way to use it.
Office Hours Policy
If you are in CS 240, you know how to program and read technical documentation! These are two of the most important skills in all of Computer Science to learn and you will use them in CS 240.
We will not walk you through your MP in office hours. The only walk-through provided will be part of the TA MP Overview Session.
The best question is one you can generalize and ask on the course CampusWire or Discord. This will not only help you out, but will help all your peers who end up with the same issue as you. If you have a question about what to do, the online forums are the best place to ask these questions.
We WILL NOT help you find your error – we WILL help you solve your known error. Before attending office hours, you need to debug your code to understand what is causing your code to crash or fail. You MUST already have a debugger working to get help with code. Without a debugger, we will NOT help with code. (Seriously, a debugger is a magical tool that is going to spot errors we will never spot.)
Always remember that we are all on the same team and we are all here to help each other out and these policies are to make you a more independent programmer. CS 240 will be the very last lower-level programming class you take. The upper-level classes have almost zero support to help with programming. You need to know independent programming skills to advance to be successful in the upper-level coursework.
In general, we will provide a lot of test cases for you. We attempt to make the test cases robust and a great tool to help you solve the puzzles. We use automated grading to grade most of your MPs and we do not attempt to make these test cases robust against attacks.
We intend for your automated grade to be your recorded grade on the MP. However, there are a few exceptions:
If you accidentally defeat the test cases (ex: an incorrect value happened to pass the test cases, but it was achieved by an attempt to solve the problem), your grade may be adjusted to reflect the true correctness of your code. You should not just rely on the green bar to know your code is working.
If we completely miss testing a key component of the MP (hopefully this never happens), we may provide additional test cases added. We’ll provide them as early as possible if we have to do this.
If your purposefully defeat the test cases (ex: comment everything out, hard-coding specific return values that score 100% on the tests without doing the puzzle), this is just a violation of my trust in you. You will get a zero on the MP, it’s a violation of academic integrity, and all of your MPs will be manually graded for complete correctness to the specification instead of using automated tests (you don’t want this).