Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

In some colleges students are let to use an IDE and Internet and in mine you have to write down your solution in paper.

As far as I know, it's pretty much impossible to make a correct non-trivial program on the first try. I'd be fine with no using computers if my teachers assessed my approach instead my code -literally-... that's not the case unfortunately.

Which ones are more usual, 'written' or 'coded' exams? And which way is the most adequate?

Edit - question title changed (it used to be Should students have the right to do exams using a computer?)

share|improve this question
    
+1 being a student myself :) –  Joe the Person Jun 21 '11 at 5:04
add comment

9 Answers

up vote 16 down vote accepted

I only ever had "written" exams in university. And the written code didn't have to be perfect. A forgotten semicolon here or there was usually forgiven. Sometimes they didn't even require it to be a specific language, they'd ask for an algorithm to be implemented in pseudocode, because the language didn't really matter. And the programs were usually relatively short. I don't think any were more than 30 lines, and any more than that and you should have that "You're doing it wrong!!" feeling (and the amount of space provided was also sometimes a clue as to how "big" your solution should be).

Also, running computers in an exam is tricky. They have to be 100% garaunteed to work the same or some studen will complain they did poorly because they had the "lemon" machine. No internet connections (or connections to any resource that could help them cheat). And if a computer does crash in the middle of an exam, or suffers some other random problem, how do you handle it? Do they get a re-write later? Extra time (unless that impacts other schedules)? What if some devious student compromises the whole lab of exam computers?

So to answer the question... No. I don't think students should have a "right" to use a computer during an exam because it shouldn't even be necessary. Of course, the instructor should also be willing to forgive some minor syntax errors if the rest of the program is fine.


To answer the changed question: No, in general it is not a good idea for exams to be done on the computer. The exam should test their overall comprehension of the course material, and for most courses (but there are probably a few that I don't know about that are actually much easier tested with a computer), I don't believe a computer is necessary or will add anything that can't be done with paper and pencil.

Actual interaction with and usage of computers is usually tested by projects and assignments over the term, and in some courses the sum of those assignments weighs heavier than the exams.

share|improve this answer
1  
+1 for guaranteeing that all systems are the same. Plus, you could always get into trouble with the "well I would've done better but I use X instead of Y, and you made me use Y so I spent so much time getting used to the environment" (insert your favorite IDE as X and the one you hate the most as Y) –  Jetti Jun 20 '11 at 20:37
1  
@Jetti: The ways that students could complain about the hardware affecting their performance is probably endless... –  FrustratedWithFormsDesigner Jun 20 '11 at 20:38
    
@Frustrated - Agreed, which is a great reason to keep the exams written. –  Jetti Jun 20 '11 at 20:40
1  
@Jetti - At the university I worked at, open computer exams are held in the same computer labs where the students took their 3h lab section each week. If they bothered to show up to lab, they should know the environment. –  Tyanna Jun 20 '11 at 20:41
2  
@Frustrated: I had one student complain to me after the exam for a fourth year (senior) "Unix Network Programming in C" course that I taught: "Why am I expected to remember the truth table for exclusive-OR in a networks exam?". Yes, students will complain about anything. "Give a man a fish, feed him for a day. Teach a man to fish, and he'll ask if fish roe is on the exam." –  Peter K. Jun 20 '11 at 21:39
show 4 more comments

Having been a teaching assistant a first year coding class, I can tell you why I personally like written tests over open computer tests.

The course I was a TA for started off being 100% written exams, but later changed to have the final split up between a written part and a computer part.

So my personal arguments for this written tests over open computer tests (in no particular order):

  1. Written exams are better for testing a students knowledge of a concept. There are certain concepts that we want students to know, not know how to copy and paste. With an open computer test, we really have no way of knowing if they understand what they put in the code. We only know that they can tweak code and make it work (hopefully).
  2. Written exams make students stop and think about the problem we are asking them to solve. Many times the idea to get it compiling and running gets in the way of actually solving the problem we have put forth.
  3. Written exams prove that students know the basics. Do they know how to write a loop, an if-statement, and how to use variables? Do they know how to write a method signature? IDE's have a nasty habit of letting them shoot in the dark with these concepts. Should a someone be able to pass a programming class if they can't write a loop? I don't think so.
  4. It lets us give students part marks. One thing I always taught my students was to write out what they do know. If they know how to do the problem, but can't remember the syntax on how to do it, write pseudo-code. After they have written out the pseudo-code, go back and fill in the actual lines that they do know.

In my experience, the open computer exam couldn't show us the students who really knew the material and those who were coasting. The open computer exam could show us the students who really just didn't get it. Normally students who failed the open computer test were the ones who were paying someone to do their assignments, or were the ones who just grouped with stronger people and had no clue as to what was really going on.

Those are the type of students you can't save, no matter how hard you try, b/c they don't care.

The written exams showed me the students who sort of knew what was going on, but were struggling so I could go to them during lab time and give them some more attention. It gave the students the feed back as to what they did and didn't know.

Computer exams, to me, are a test in hacking a solution with a time limit. Passing assignments let's us know if students can hack a solution together, what I'm interested in is if they actually understand that solution.

share|improve this answer
    
This is all very reasonable. I think the part of the situation the question describes that strikes me as unreasonable is deducting points for syntax errors - I like your comment about giving some credit even for pseudo-code if it demonstrates an understanding of the concept you are really testing for. –  Jeremy Jun 20 '11 at 21:40
    
@Jeremy - On a 10 point coding question, we would normally grade by looking at what's there, do they have all the parts needed (loop, with if-else structure), then we'd look to see if it was logically right, did it solve the problem we asked, then we'd give a mark or two for being syntaxically correct. So on a 10 mark question you could get up to 8 marks if you wrote pseudo-code. Not too shabby. Missing 1 semi-colion wasn't worth losing a mark for. If they forgot all of them, only 1 mark is lost. –  Tyanna Jun 20 '11 at 22:37
1  
What about more complex problems? For example the Java standard API: Should they have to memorize all the classes in java.lang and their methods to complete your test? Even if its just a few classes over the past 2 weeks, I still wouldn't think its right to have to memorize all the methods –  TheLQ Jun 20 '11 at 23:19
1  
@TheLQ - the class I was a TA for was Beginner Programming in Java. The first month and a half was bascially on loops and ifs. We then moved into methods and then classes. Anything that we spent a great deal of time on, we expected them to know. On the written exam there was normally one question that would show if they could read some API and solve a problem using it. We would give them the API as part of the exam. So not all methods, but some things they were expected to memorize. –  Tyanna Jun 20 '11 at 23:29
    
Fair enough then. –  TheLQ Jun 21 '11 at 0:29
add comment

It heavily depends on the subject. Basically, this is how it's done in my college:

If exam is about some abstract concepts, like algorithms and data structures, you do it on paper, usually in some C-like pseudo code. Also, we had (X)HTML and JavaScript on paper, very short snippets, like making a table, or reacting to mouse-over event.

On the other side, if it's more about concrete implementation, we did it on Linux machines without Internet access. We had man pages, and sometimes other specific resources (like "Advanced Programming in the UNIX Environment" in .pdf format on OS course). We do 2 hours of practice in that same environment every week, so there are no excuses to failing due to being unfamiliar with the environment.

share|improve this answer
add comment

I would think programming exams should be done on computers in a room without Internet access.

share|improve this answer
    
The problem is, where are you going to find that? In this day and age, a University that has computers that aren't hooked up to the internet (or network of any kind) are pretty much useless. –  Jetti Jun 20 '11 at 20:51
    
Just setup a testing room, or even just cut off the internet access in the computer lab where the test is conducted. It's not particularly hard not to have Internet access. –  jhocking Jun 20 '11 at 20:54
2  
I mean, my ISP cuts me off without me even having to ask! –  jhocking Jun 20 '11 at 20:55
    
@Jetti: universities are able to commandeer multiple rooms, halls, etc. to conduct the exams. If it's important enough, the university can get networking suspended to a room for an exam, it's what network admins are for. –  Matt Ellen Jun 20 '11 at 20:56
    
I guess that is true...however, what about those who are taking the classes online? I have the option to take my exams at one of the satellite campuses of the University or at a 3rd party proctor location. When it comes down to it, a pencil and paper are the easiest way to ensure that the test is standardized across all students. –  Jetti Jun 20 '11 at 21:00
show 3 more comments

Well "Students" and "Rights" are two words that don't really connect. Students have the right to do what you tell them to, or fail.

That being said, I think if you're grading on syntax, they should be allowed to use a computer, and if you're not, then they shouldn't.

Really though, I think projects are more important. Let them do their code in project form, and test them on theory with the exams.

share|improve this answer
add comment

I see a lot of arguments made against using a computer for exams because it opens the door for cheating and the professor can't actually gauge if the student knows how to Google or write code.

This is garbage. One of the computer science professors at my university keeps an open grade book. I don't know who the grades belong to (unless I can get their assigned number) but I can see the comments and grades. 60-70% of the students either turn in garbage that doesn't compile, has serious defects and/or just flat out doesn't implement the required functionality.

So I'm of the opinion that if they can't write code for an assignment where you can use ANY resource you want including copying and pasting from Google then why would it be any different during an exam.

I just want access to Visual Studio. I would take MSDN too but I could probably get by with just intellisense. But then again I'm one of the students who doesn't have a problem with paper and pencil either, it's just tedious and sometimes you miss little things that intellisense would clear up in about half a second.

share|improve this answer
add comment

Advantages in general of using an IDE:

  • Most students can type faster than they can write. I have an acquaintance for whom it is actually physically painful to hold a pencil, but a mouse and keyboard is fine.
  • Typing is much more likely to be legible; no more trying to figure out if that's a 1, an l or an I.
  • A test allowing an IDE tests students in the environment similar to what they'll really use in the real world; nobody writes down programs longhand.
  • A test on language syntax can be unfairly graded when written longhand. Slightly misformed or ambiguous symbols can be misinterpreted as other symbols, and that can make the whole answer "incorrect" when the student's intended code was perfect.

Disadvantages in general of an IDE:

  • The whole point of an IDE is to make coding easier; in many cases a full-featured IDE will give you the answer. Depending on what's being tested, most of the features of the IDE like highlighting, auto-complete and check-as-you-go may have to be disabled and locked out, or you'll be giving a test on the IDE more than on the language or framework.

  • If you have a computer on a network, you most likely have, or can get, internet access. The Internet is a coder's cheat sheet; Wikipedia has working implementations of many of the basic algorithms and constructs in many languages, ready to go.

  • If the test is on framework features like the parameters of well-used object functions, don't even bother making an IDE available.

  • Computers make the impossible possible, but can also make the possible impossible. A system crash, network failure, and/or user error can hinder or prevent the user's ability to communicate their knowledge of the concepts, when being able to just write the stuff down is not easily FUBARed.

I know that in certain circumstances, the use of a computer is REQUIRED when everyone else may be taking the test on paper. Most of these circumstances have to do with the ADA; if reasonable accomodations for a disability can be made, they must be, and a computer has been considered reasonable for some time. So, if you are physically unable to hold a pencil, it is unfairly disadvantageous for the school to require you to write out an essay longhand, or fill out a scantron with a #2 pencil, so they are not allowed to require this; they must provide some alternate means to take the test, and a computer is the best option all around in most cases.

share|improve this answer
    
At the same time, if you want to make the test more like the real world (which is some of your pros state) then allowing the internet should be fine since, in the real world, you'll be able to google. –  Jetti Jun 20 '11 at 21:22
    
... but that's not a test of your technical knowledge, but of your Google-fu. Very few colleges (knowingly) offer course credit on search engine skills. –  KeithS Jun 20 '11 at 21:28
    
Right...but considering that most IDEs have intellisense, if you have enough time, you don't need to know the language either if you don't have the internet since you could do "trial and error" with the intellisense. –  Jetti Jun 20 '11 at 21:30
3  
Intellisense and auto-complete hardly compensate for a lack of understanding of how to code. That's like thinking that spell check obviates writing ability. –  jhocking Jun 20 '11 at 21:36
1  
oh god certification tests? I assumed we were talking about good tests. –  jhocking Jun 20 '11 at 21:54
show 1 more comment

I think the fear is that somehow the test will leak onto the internet or the students will be able to find the answers on the internet and thus make the test useless. I just got done with a Java class where we had to write our final by hand and let me tell you, it was a pain. There was a lot of erasing and re-writing and freaking out that I'll run out of paper. It wasn't fun. At the same time, it isn't meant to be an enjoyable experience, it is meant to show that you have learned the course material. Once you're done with school, you'll have plenty of time to use an IDE.

share|improve this answer
    
"it is meant to show that you have learned the course material" -- Actually it's meant to prepare you to enter the workplace with certain professional competencies. I don't see how contrived testing conditions do that. –  Dan Ray Jun 20 '11 at 20:30
1  
@Dan Ray - Tests aren't there to prepare you to enter the workplace. Even if the class is (which is a topic for debate), what good is a class that allows you to get by without knowing the material? Some schools require that there be midterms and finals (which were the only written tests I had in my Java class). Do I agree with handwritten tests? No, but I can still understand why they may be used. –  Jetti Jun 20 '11 at 20:34
add comment

As far as I know, it's pretty much impossible to make a correct non-trivial program on the first try.

I have a huge problem with this statement. It is possible to code a non-trivial program correctly on the first try. It just depends how quickly you are writting it. I think this is what is wrong with the younger programmers, they don't take their time to actually learn the language, what do I know I have only been a professional for a year.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.