Slashdot Mirror


Ask Slashdot: Should Coding Exams Be Given on Paper?

Slashdot reader Qbertino is pursuing a comp sci degree -- and got a surprise during the last exam: being asked to write code on paper. Not that I'd expect an IDE -- it's an exam after all -- but being able to use a screen and a keyboard with a very simple editor should be standard at universities these days... I find this patently absurd in 2018...

What do you think and what are your recent experiences with exams at universities? Is this still standard? What's the point besides annoying students? Did I miss something?

A similar question was asked on Slashdot 16 years ago -- but apparently nothing has changed since 2002.

Leave your best answers in the comments. Should coding exams be given on paper?

40 of 274 comments (clear)

  1. Comp Sci by Anonymous Coward · · Score: 5, Insightful

    You are going for a computer science degree. You must be able to express your ideas on paper, a white board, napkin, back of your hand, ....anywhere.

    The poster apparently needs to transfer to a code monkey program.

    I hear DeGree Mill will take anyone with the $$$$ or student loans.

    1. Re:Comp Sci by ceoyoyo · · Score: 5, Interesting

      The ultimate CS test:

      The student gets a paper notebook and a pencil, and is paired with a partner who knows nothing about programming. The student has to explain an algorithm to the partner. At the end of the exam the partner has to independently write down their understanding of the algorithm, with diagrams.

      The best test of whether you understand something is how well you can teach someone else. And unless you're a code monkey, this is probably what you're going to spend half your life doing anyway, whether it's explaining to PHBs or grant review committees. My sister makes custom leather book coverings. She's going to make me one for the cheap notebook I keep in my bag at all times for this exact task.

    2. Re:Comp Sci by tomhath · · Score: 3, Insightful

      Two of my favorite interview questions back in the day. These are showing my age, I don't know if sorting algorithms are even taught anymore, and most IDE junkies don't know SQL at all:

      1) Explain quicksort

      2) What is a LEFT JOIN?

    3. Re: Comp Sci by epyT-R · · Score: 3, Insightful

      Lets take it from the top. TFS was asking about writing CODE on PAPER. Supposedly, the point of the exercise is to abstract the logic from the method. Code-on-paper is also a method, just like the same code typed in notepad.exe or expressed in flowcharts on a whiteboard. Hell, flowcharts are better suited for paper than code. Code-on-paper is fucking stupid.

    4. Re:Comp Sci by ceoyoyo · · Score: 2

      It's kind of like effective theories in physics. What is magnetism? Magnetism is the force acting perpendicular to the direction of motion of a charged particle.

    5. Re:Comp Sci by SQLGuru · · Score: 2

      As long as the professor isn't grading on syntax (i.e. use pseudo-code), I'm all for coding on paper. I do it all the time, even today. As a senior-level developer, I spend way more time "coding in Word" than I'd like.....writing specs to give to junior developers, drawing pictures in Visio, etc. As long as you understand what it's doing, it doesn't matter what the syntax is --- syntax can be checked easily in any good IDE or with a quick search.

    6. Re:Comp Sci by sa666_666 · · Score: 2

      Autocompletion I can do without (or with, it doesn't really matter to me). But I must have syntax colouring; it makes it so much easier to scan code looking for a certain pattern, that it's now painful if I look at code without it.

      I actually have a specific interest in this topic, since I'm an instructor in Computer Science, and we are currently comtemplating just such a move. Similar to you, I'm always amazed at the number of students that are completely lost without the IDE. They want to load up this huge, multi-gigabyte monstrosity of a program (Eclipse, etc) to write a 50 line Java program. Just boggles the mind.

    7. Re:Comp Sci by angel'o'sphere · · Score: 2

      Your points about optimizations are ALL wrong.
      And that is why learning the theory matters.

      e.g.: optimizing bubble sort ... har har har ... for small data sets bubble sort is the fastest!. Merge sort is only quick when the data is already partial sorted ... and quicksort has the exact same time consumption regardless if the data is already sorted or not ...

      Btw: mergesort was invented to sort data that comes from a disk ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    8. Re:Comp Sci by ceoyoyo · · Score: 2

      Communication skills are pretty important for real computer science. Poor communication could certainly screw you up here, but so could a poor understanding of whatever algorithm you're supposed to describe. I've taught quite a few students, and many can rattle off an implementation of an algorithm without any problem but actually have no idea how it works.

      To be clear, I said in my original post "if you're not a code monkey." If you're supposed to be learning to implement fairly straightforward requirements with known algorithms then this test is not so relevant to you, but you should also be in a software engineering or vocational coding program. If you're in computer science you need to demonstrate a deeper understanding than just being able to implement and use standard algorithms.

    9. Re:Comp Sci by Hognoxious · · Score: 2

      If you aren't capable of abstract reasoning you probably shouldn't be on a CS course in the first place.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    10. Re: Comp Sci by kenh · · Score: 2

      How does English department administer exams, on word processors or paper and pen/cil?

      Does English department expect students to properly punctuate their twisting, or are they allowed to answer questions in pseudo-English?

      Making the test-taking process 'easier' isn't the issue, measuring a student's grasp of the material is.

      When I took programming classes in high school, our exams were on paper and pencil, but were open book - my instructor felt that since you would have access to manuals if working as a programmer, it was non-sensical to not allow access during the exam.

      --
      Ken
    11. Re:Comp Sci by SvnLyrBrto · · Score: 3, Insightful

      Because one day, your fancy-pants IDE will be unavailable. You'll be trying to do or fix something with nothing more than an ssh link and vi. And if you're completely reliant on your IDE and it's crutches to write your code, and you don't know vi anyway; you're screwed.

      --
      Imagine all the people...
    12. Re: Comp Sci by SQLGuru · · Score: 2

      What is the exam actually testing? Your knowledge of a CS concept or your knowledge of the syntax of a specific language? If my course is "Data Structures", then I need to understand Arrays, Lists, Dictionaries, Heaps, B-Trees, etc. If my course is "Introduction to C++", then obviously, I need to know how to use a for loop and how to declare a class.

      The English department is obviously testing your knowledge of the English language, therefore pseudo-English is not appropriate.

  2. Student knows best by Anonymous Coward · · Score: 2, Insightful

    Not that I'd expect an IDE -- it's an exam after all -- but being able to use a screen and a keyboard with a very simple editor should be standard at universities these days... I find this patently absurd in 2018...

    Yes you know better than the university when it comes to evaluating your skills. And I find you patently annoying.

    1. Re: Student knows best by kenh · · Score: 2

      Learned orofessional coding technique using coding forms handed to keypunch operators and getting three compiles a day - morning, afternoon and overnight.

      --
      Ken
  3. That was torture by Shados · · Score: 3, Insightful

    I graduated in early 2000s myself. The finals were all on paper. I had a lot of programming related classes. 3-4 of those 2+ hour tests back to back.

    Writing small apps, quick sorts, manipulating data structures, you name it. As much as hundreds or even thousands of lines of code handwritten over the course of a few days, every year. My finger had a mark from the pen. And if you made a mistake, not all professors were ok with just drawing arrows to "insert" code, so there was a lot of starting over too.

    The challenge in those exams was not figuring out the solution. It was writing it down. I still have nightmares from it to this day.

    1. Re:That was torture by Bite+The+Pillow · · Score: 2, Interesting

      A well designed test should check if you understand syntax and punctuation rules. It should not use rare properties or methods that auto complete would help with.

      I'm okay with some courses doing a written test, some using a minimal text editor like notepad, and advanced tests in an IDE. As long as the advantage can be explained.

      I do understand writing a simple app on paper. It means you have to design before writing so methods are small and start out refactored. Of course the prof should be teaching it that way to test that way.

    2. Re:That was torture by Anonymous Coward · · Score: 4, Insightful

      Language syntax is not really computer science, its trivia.

    3. Re:That was torture by Megol · · Score: 2

      So you had incompetent professors.

      Nobody sane expects that handwritten code is 100% syntactically correct and not containing fixes. Missing semicolons aren't relevant in general for instance as the compiler will catch most such errors.

  4. There's a point to it by Anonymous Coward · · Score: 5, Insightful

    I don't know about the author's instructor or course, but there's generally a point to this.

    * Can the student write a correct algorithm, bug-free without the crutch of running the code. Running code often leads to writing code by trial-and-error without much thinking.
    * Does the student know the language well enough to write code without the suggestions of an IDE?
    * Avoid all technology problems. My computer crashed. My battery's dead. I accidentally deleted the file. I have the wrong version installed.

    1. Re:There's a point to it by mark-t · · Score: 2, Insightful
      Also, implicitly, can the student write legibly and within the allotted time given for the test?

      Which is unfortunate, IMO, because this could disqualify people who might have a legitimate physical disability that may prevent them from doing so (essential tremors comes to mind as one most obvious example) but still otherwise have an excellent grasp of any necessary concepts and can generate solutions quickly.

    2. Re:There's a point to it by thegarbz · · Score: 2

      I would argue that knowing a language should not be a part of a university degree. Knowing what sits behind the language is important, the concepts. Language change too often to make them a useful part of a course, and in that regard an exam on coding should be done with an IDE.

      I remember getting an exam paper back with one question graded: "4.5/5 not a single number on this paper is right". But the process followed was hence the good mark for something utterly wrong.

    3. Re:There's a point to it by JeffTL · · Score: 2

      I have dysgraphia. When I took college C++ back in...I think it was the spring of 2004, I typed up my exams in Microsoft Word, or maybe it was WordPad, at the university testing center, as I did with all of my other exams. This was by arrangement with the disability services office pursuant to directions from my physician.

  5. As someone who has set exams... by Anonymous Coward · · Score: 4, Insightful

    There are a lot of rules to make sure that exams are fair, auditable and so that it requires at least a modicum of effort to cheat. The University is likely set up so that all exams are paper so setting new rules for one or two classes is going to be an uphill fight at the best of times. Specific issues you will need to resolve:

    1. How do you prevent people cheating (USB sticks, Bluetooth, getting access to the Internet, etc.)? Who's time is going to be used to set this up and enforce it?

    2. What if someone's computer crashes? What happens if they accidentally knock the reset switch (I have seen this happen in a "practical exam" of this sort)? What if they "accidentally" knock the reset switch?

    3. How do you support students who use assisstive technology on computers (screen readers, specific high-visibility colour desktop designs, desktops in other languages, etc.)? How do you deal with students who sent skieing in the holiday before the exams and broke both arms (again, I have seen this -- and we sorted it out)?

    4. Where do you draw the line on "reasonable" support? Text editor? IDE? IDE with documentation? IDE with documentation including code samples?

    Critically : it depends on what you are trying to assess. I've had interviews where they want code written on the whiteboard -- how is this different?
     

  6. No by rsilvergun · · Score: 3, Insightful

    but it's sort of a moot point since a real computer science curriculum is mostly about math and math can be done on paper just fine.

    I suppose if we still had programming vocational schools, but between the H1-Bs and the offshoring they're really just scams at this point. You can count the number of jobs available for that kind of code monkey on one hand of a retired shop teacher.

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
  7. As a high school programming teacher, I donâ( by FFCecil · · Score: 5, Interesting

    Hereâ(TM)s how Iâ(TM)ve adjuated my teaching practice for a world with smartphones: 1) All my tests are open book/note. In a world where you can lookup anything anytime, knowledge is no longer a valued commodity. However, using knowledge to solve problems is. So all my questions involve higher level thinking, with students able to use their notes. 2) My tests and exams are all done on computer through Google Classroom (when in a lab setting). So thereâ(TM)s always a keyboard and screen. 3) I have my students write code in their assignments with an IDE, not on tests. Writing code without and IDE has always pissed me off. So, my tests/exams involve things like analyzing code, eg: hereâ(TM)s some code, tell me what it does. Or, hereâ(TM)s some code with problems, what are they and/or how can they be fixed. Or, when would you use a while loop vs a do loop? Or a local variable vs a class variable? I must note that this form of teaching is entirely my own, after spending much time reflecting on how I think teaching and schooling must adjust for a world with instantaneous access to endless information. This is not endorsed by my government (Ontario, Canada) or school board, and even many of my colleagues disagree. However, something has to change in education which still uses methods developped over a century ago for chalk and slate! I do espouse these methods when possible, and continually strive to evolve my teaching for an ever evolving world, but I certainly donâ(TM)t think this is the final answer in education methodology. Any further ideas you have would be welcome! At some point I would like to evolve my tests/exams to be âoeopen Googleâ, but frankly have no idea how that would work. But thatâ(TM)s my thoughts on next steps from where I'm at currently.

  8. Two issues: cheating and difficulty by bradley13 · · Score: 4, Insightful

    I've tried this all ways: on paper, computers allowed for help (use your IDE, why not, but answers on paper), and I have some quizzes that are purely on the computer. There are two issues to consider here:

    - First, and most obviously: cheating. As soon as you allow student-owned electronics, you open the door to connectivity. If not WLAN, than via mobile phones or ad hoc networks or even bluetooth. This is very difficult to control, and is the primary reason that my school still officially prohibits electronics during exams.

    - Second, if you're going to allow a computer, you had just as well allow an IDE and make it more "real world". The thing is, this makes exams more difficult for all but the best students. People who are not (yet) very good a programming might be able to show a believable (but uncompilable) concept on paper, and get reasonable partial credit. As soon as they have a computer, it is natural to expect a program to run. The poorer students will lose lots of time trying to get their program to actually work, and are therefore more likely to fail such an exam.

    For the last point: I'm not sure this is bad. Personally, I think the world needs a lot fewer mediocre and lousy programmers. However, while that would improve overall software quality, it would mean less code written overall and make software even more expensive than it is.

    --
    Enjoy life! This is not a dress rehearsal.
  9. Re:Student knows best - Maybe by Anonymous Coward · · Score: 2, Insightful

    Years ago, at Georgia State U a couple of us going for MS degrees had to take the C++ programming course.

    My classmate had an MS EE and had over decade of C++ programming experience. I had a similar amount.

    Both of us tried to get out of having to take it and showed our resumes with our years of experience.

    Nope. We HAD to have a class in it from an accredited school.

    I sat back, did my assignments and only participated when called upon. My classmate had a tendency to point out the instructors (Ph.D. CS) where he was wrong.

    Easiest 'A' I have ever got - but pissed at the money I had to spend for the complete waste of time.

    So, yes, sometimes we DO know better.

    Good times.

  10. As a high school programming teacher, I don't... by FFCecil · · Score: 2

    (NOTE: I don't know why an f-ing iPhone can't submit text properly, but here's my response properly formatted.)

    Here's how I've adjusted my teaching practice for a world with smartphones:
    1) All my tests are open book/note. In a world where you can lookup anything anytime, knowledge is no longer a valued commodity. However, using knowledge to solve problems is. So all my questions involve higher level thinking, with students able to use their notes.
    2) My tests and exams are all done on computer through Google Classroom (when in a lab setting). So there's always a keyboard and screen.
    3) I have my students write code in their assignments with an IDE, not on tests. Writing code without and IDE has always pissed me off. So, my tests/exams involve things like analyzing code, eg: here's some code, tell me what it does. Or, here's some code with problems, what are they and/or how can they be fixed? Or, when would you use a while loop vs a do loop? Or a local variable vs a class variable?

    I must note that this form of teaching is entirely my own, after spending much time reflecting on how I think teaching and schooling must adjust for a world with instantaneous access to endless information.

    This is not endorsed by my government (Ontario, Canada) or school board, and even many of my colleagues disagree. However, something has to change in education which still uses methods developed over a century ago for chalk and slate!

    I do espouse these methods when possible, and continually strive to evolve my teaching for an ever evolving world, as I certainly don't think this is the final answer in education methodology. Any further ideas you have would be welcome!

    At some point I would like to evolve my tests/exams to be "open Google", but frankly have no idea how that would work. However, that's my thoughts on next steps from where I'm at currently.

  11. It all depends what you are testing. by Proudrooster · · Score: 2

    It all depends, are you testing thinking and code fluency or are you testing for IDE automaticity?

    I would suspect that through the programming course, the students have already written several programs using the IDE and turned those on to demonstrate their skills.

    The paper exam shows their thinking, familiarity, code fluency, and code grammar and syntax proficiency.

    As one who writes code, I still think about it on paper before I type it into the computer, especially when writing algorithms.
    Planing on paper really reduces bugs and logic problems because it doesn't require technology. If you just sit down and start coding, it is easy to go down rabbit holes of "why doesn't this work" vs. thinking about the problem.

    To me it is similar to writing an outline before writing a paper. You know where you are going and how you plan to get there, Sometimes if I am really pressed for time I will just write comments for the code blocks and use that as my plan, then go and fill in the code blocks.

    Alternately, should English exams be given on paper or should students use an IDE like Microsoft Word?

  12. Utter Arse! by Carrot007 · · Score: 2

    Fine if they want it on paper.

    But expect bad pseudocode. Any other expectation is not relevant to the medium!

    --
    +----------------- | What is the question!
  13. Re:Yes/No by Spazmania · · Score: 4, Insightful

    '97 CS grad. All the exams were on paper. I don't recall being asked to write syntactically correct programs on paper. That's what the programming projects were for. The point of the paper exams was to check if I understood the *concepts*.

    --
    Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
  14. Paper ... by angel'o'sphere · · Score: 2

    Except for my martial arts exams and my driving license all exams were on paper.
    And actually when I was young I wrote many programs on paper first ... because we only had 3 or 4 computers in school, and waiting till one was available seemed unplausible ...
    if you can not explain something on paper (I'm not talking full UML 2.x) you likely have not grasped it enough.

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  15. Computer Science != Programming by zerofoo · · Score: 5, Informative

    I have a computer science degree - obtained circa 2001.

    None of my exams during the pursuit of my degree used a computer - all exams were done on paper. Demonstrating understanding of data structures, algorithms, complexity analysis and other CS topics is not coding.

    Coding is the implementation work of computer science, much like construction is the implementation work of Civil Engineering.

    Would you test a Civil Engineering student by asking him/her to build you a bridge?

  16. Professor's Choice by SeattleLawGuy · · Score: 2

    You are going for a computer science degree. You must be able to express your ideas on paper, a white board, napkin, back of your hand, ....anywhere.

    Not only that, but it's a college course run by a professor. The exam format should be the professor's choice, with a very few exceptions mandated by the university. (For example, blind grading most obviously.)

    However, the professor should be up-front about the requirement at the beginning of the class, before the student is locked into taking it.

    --
    Real lawyers write in C++
  17. vim is what I use. If you know the language by raymorris · · Score: 2

    If you know the language, a solid text editor is the best way to go. For professional programmers, if you take the time to really learn a great editor the code can flow effortlessly, almost as if your brain is wired directly to the output. Think "delete this block" and your fingers automatically do the keystroke to delete a block.

    If you DON'T know the language, having autocomplete make suggestions can help as you guess your way through it.

    I do turn on syntax highlighting mostly because it provides an obvious cue if I miss a quote or something - half the screen turns red, which looks obviously very different than how it should look after each statement is written. I don't pay any attention to the details of the syntax colors - there is just a difference in what the screen as a whole looks like when there is a syntax error.

  18. Real programmers by jd · · Score: 3, Insightful

    Are taught to write their code away from a computer. It leads to better code. If you can't code away from the machine, you can't code on the machine.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  19. Re:On line would be better by Megol · · Score: 2

    Computer science isn't the same as being a code monkey. A good CS student doesn't actually have to be a good programmer. A good programmer needn't know the basics in CS (but it would be useful). Many skilled programmers doesn't even know the specifics of common algorithms and datatypes but know when and how to use them - and that's fine.

  20. Re:That would be an interesting study. Slow autoco by ceoyoyo · · Score: 2

    That would be interesting. Mr. Miyagi would suggest that you'd learn better by being forced to go look it up repeatedly. There is some research that suggests you do learn best when things are difficult, but not impossibly difficult.

    I was just discussing with the always insightful Angel'o'sphere the possibility that the proliferation of IDEs with autocompletion is at least partially responsible for some of the poor interfaces in libraries and languages. Java apparently has at least three Date classes, all in different places!

  21. Re:As a high school programming teacher, I don't.. by twistedcubic · · Score: 2

    I teach at a community college, and all of my exams in programming class have been on paper, except one. Before this exam, I showed students on the overhead that I could see their desktops on my computer. I required them all to leave the IDE maximized (I use the VPL plugin in Moodle). One student did extensive browsing and copying from the net anyway, and I witnessed it. He dropped shortly thereafter, and I returned to paper-only exams forever.

    The trick is to condition your students to writing on paper. If you don't, most will fail because going from hours of staring at a computer screen to writing on paper is very unsettling. So I give students a 5-10 minute written quiz every class meeting (twice weekly). It seems to work, and although almost every student fails some quizzes, the exam grades are pretty good, on average, compared to semesters when I didn't give daily quizzes. (Quizzes are weighted 10%, exams 50% (2 during term, 1 final), projects 40%.) Of course, this quadrupled the grading I normally do (50 students), but I think it is very rewarding for myself and the students.