14

Programming on paper (any benefits?)

For the programming exams we have at our university we have to write code on paper (like full code, not pseudo).

I feel that writing code on paper really limits my ability to express my programming knowledge, in comparison to writing code on the computer.

However, I cannot think of a real benefit of doing so. I mean most programmers (if I may generalize) have bad handwriting. Which is a loss-loss situation for both the examinees and professors (who have to read the exams).

Are there any benefits for writing code on paper?

Comments
  • 3
    Nope. You have valid points!

    I myself have terrible handwriting so i would much rather write on a computer than on paper.

    This is a a really good question and
    you get ++ for that!
  • 1
    I write complex logics in paper before I code. It helps me to figure out what I am doing. ✋ so I guess writing does helps
  • 0
    I would love to see more high quality posts like this from you. (Not saying that your other posts aren't)

    I think you have a lot of ++ potential in this community!
  • 1
    @HampusMa Thanks! I really appreciate your reaction. I really had to ask this question, it bothers me for a while already (3 years approx.).

    I score well on exams (so that is not the problem), but I am highly convinced that with this approach I cannot show my full potential. Especially, because exams have a time limit.
  • 0
    @xerex09 Do you write it in pseudo?
  • 1
    @kamuffel brought up writing full codes in paper. So its a habit for me now. I do only complex logics in paper, if helps me focus a lot.
  • 1
    At my university its the same, but the main reason is, that they can‘t make sure nobody is cheating. Also the „rules for exams“ don‘t allow it.

    But therefore the exercises are much more easy 😉
  • 0
    @kamuffel
    TL;DR Yes, there is a benefit.

    When I was in university, I took programming exams on both paper and computer.

    Now remember what the professor is trying to determine here; that you actually know how to program. This includes logic, and some language specific stuff.

    In a computer you can stumble your way through, and test your code. But on paper, you actually have to know what your doing. Like a math test.

    Also, you can't add an extra function that you might need. This encourages planning. "Think twice, code once" anyone?

    When it doesn't make sense, is when it is about remembering a particular method or library. Not the paper test specifically, but the test itself.
  • 0
    @ODXT Makes sense, especially the part "Think twice, code once" part. However, what about demonstrating programming/design skills in for example notepad (no autocompletion) and paint for class/object/use case -diagrams? Wouldn't that have the same effect, but be much more efficient?
  • 1
    For me, "Coding on paper" in the real world always translates to mapping / planning / architecture (and documentation) pseudocode sessions.

    Good code should be brainstormed out on paper / whiteboards or where you keep your notes. Even Einstein wrote down what equations he was thinking about. It's just a good thing to do.

    It Sucks during school, but it's so key in business... because good devs will tell you this is how you find, identify and drop the banhammer on stupid ideas (your own, a fellow devs on the team, Karen from marketing who thinks she knows what responsive means...) that could of snuck into your project costing you time, money and most importantly your sanity.

    Planning to have this time during your PM sprint meetings is critical and I fight hard to stuff it under the "prototyping and discovery" category of any project.

    As mentioned before this is the best comparison of a developers version of "measure twice, cut once".

    Sometimes with small enough tasks you can just get down and dirty with some code and hit the ground running; but in places that don't do any "whiteboarding" are places I quickly find large projects go to shit.
  • 0
    @kamuffel
    Yes, more efficient to read, organize, and to grade. But the setup?

    Think of all the things you have to do to make one computer cheat proof. Internet connection, USBs, and lock it to only use notepad. Now do that for each computer. Now undo that after the test. And we don't know where to put that text file yet.

    Vs. Code this piece of paper.

    Not that it cannot be done, it can. But you could say the same for any class. We still take those on paper. So why is it weird to do the same for CS.

    Professor: "We want to make sure that YOU know computer science. That YOU know how to solve a problem using code."

    Again, paper test shouldn't be used for every test. Especially for large/complex projects. But it's good for algorithms, pseudo code, learning the basics.
  • 0
    @Condor
    When I was a tutor, the only way to get the logic into the student's brains was to use a notebook or a white board. Ironically, using a computer was a slow process. They either wrote gibarish, or expected me to do it for them.

    Paper programming tests are good for testing basic knowledge. Again, remember what they're trying to measure here. What better way to see if you can solve some basic problem with code, than by actually doing it. No auto-complete, no compiling, just logic.
  • 0
    @Condor
    I see what you are trying to say, and I agree on most points. Interested individuals are a delight to teach. But I have had to teach people out of obligation, even when they were... Not the best to put it lightly.

    However, I feel like you are mixing two points. Firstly, you are correct that no one writes code on paper, only notes. But thats for work, I'm talking about the validity of writing code on paper for a university test.

    Second, just like you take paper test for math, you can do the same for CS. It's not the best solution for large projects, but it has it's place. Specifically for beginners, where what you want to test is simple (conditions and loops). Simple enough for a student to brute force they're way through the test.

    That's it for what I'm trying to say about CS tests.
  • 0
    @Condor
    I have read your stuff before and have great respect for you. I have not taken offense by what you are trying to say. So I hope you do not find my words to be... Toxic?

    However, I have to say that you have to meet your students where they are. For many I have to use diagrams and objects for them to see. On some days I even act out what a variable would do, especially for robots.

    Most of the people I have thought in the past were still new. They would not write code on the IDE, but easily wrote on their notebooks. Then would relay it to me and together would make the function on the white board.

    Taking a problem, finding a solution, and then implementing it. That abstraction was usually the reason students came to see me.

    All of the above was for people that actually wanted to learn. There were also those who just wanted me to do their shit. I'll probably make a rant about that later.
  • 1
    In the small personal bubble of my teacher it's the best thing ever and every program should be written on paper first.

    Outside of that everyone i know thinks it's bullshit and very hard to do.

    (I have to write one of my final exams on paper too. Oh boy this is going to be fun-.-)
  • 1
    I was raised in an environment where I had to write actual code, and I hated it. I believe the logic is all that matters, me being able to memorize syntax only takes up memory space, I mean , isn't that what stack overflow is for? All I need is a clear picture of the goal, not the full source code of that goal.
  • 1
    @mwangii i guess you are using SO for a really wrong reason
  • 0
    @Condor
    I love to see the person's reaction when they take their notes and turn it in to a program. Like "I just built this, from nothing". Basically the "You're a wizard Harry" moment.

    Completely agree with what you have mentioned. That they should become self dependent. Also they should decide their specialization, like some Jedi path. Web development, Arduino's, apps. Never felt comfortable pushing them in one direction or another.

    I've only tutored, but I would not be against the idea of becoming a professor in the field.

    One last thing. After you understand the basics, paper test become less and less useful. Until it's basically a joke. I've only ever had one professor which used paper test correctly.
  • 0
    The practice of programming on paper for exams could be an interesting topic to explore in an original paper for a college course on computer science or programming. Researching the pros and cons of this method could offer insight into the effectiveness of different forms of assessment and how they impact student learning. It's important to consider multiple choices and get help from https://studyclerk.com/buy-college-... as such sources of information could assist with writing an original paper on a complex topic.
Add Comment