Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Are Written Computer Science Exams a Fair Measure?

Cliff posted more than 12 years ago | from the unfair-testing-procedures dept.

Programming 728

me! asks: "I seem to have this inability to write substantial chunks of code (500+) in exam conditions (for uni). I have been writing code for years for open source and commercial applications, so I know a thing or two. There is just something about exams and code that does not work for me. I find that I need to be sitting in front of a computer to get a problem out, to get in the 'vibe', have you will. I have done exams on computers (closed environment) that involve coding, and it work so much better for me. So what I am asking is...how do people tackle exams that involve solving problems on the fly, on paper, in exams?" I have this exact same problem, and I've never thought written tests were a fair way to measure someone's knowledge of coding. It's fine when you are asking questions about design and structure, but when you need to write code it falls way short. How do you feel about it?

cancel ×

728 comments

Sorry! There are no comments related to the filter you selected.

First? (-1)

CmdrTaco (troll) (578383) | more than 12 years ago | (#3704742)

yep.

Re:First? (-1, Flamebait)

Anonymous Coward | more than 12 years ago | (#3704757)

Very weeeeerb!

Wheeebeeeep!

ring-a-ding-ding my dang-a-long-ding-dong (-1)

on by (572414) | more than 12 years ago | (#3704765)

congrats

Re:ring-a-ding-ding my dang-a-long-ding-dong (-1)

MMMMMMMMMMMMMMMMMMMM (537317) | more than 12 years ago | (#3704805)

wtf was that? is it christmas?

Re:ring-a-ding-ding my dang-a-long-ding-dong (0)

Anonymous Coward | more than 12 years ago | (#3704854)

Christmas in some time also? Mr. mmmmmm you know the slashdot name stuff(?) :):) I can be the slasldot person?

Re:First? (-1)

CmdrTaco (troll) (578383) | more than 12 years ago | (#3704838)

-7 forever. Can you loose karma once you have reached the coveted -5 and begin posting at -1? Someone tell me how.

hello! (-1)

on by (572414) | more than 12 years ago | (#3704745)

I'm all out of ideas at the moment, please check back later. Thank you!

Re:hello! (0)

Anonymous Coward | more than 12 years ago | (#3704877)

I have ideas for the slashdot. I can post withthe name also?

simple (0, Funny)

Anonymous Coward | more than 12 years ago | (#3704752)

do what i did.. drop out of college.. become a "go getter" get a good job like me ($300000+ w/ a ton of benefits) and be happy :-)

college is overrated.. you'll realize sooner or later

Re:simple (0)

Anonymous Coward | more than 12 years ago | (#3704761)

i realized it sooner, i dropped out of highschool

Re:simple (0)

Anonymous Coward | more than 12 years ago | (#3704818)

ya, an i droped out of grade skool an i dooin jus grate :)

Re:simple (4, Interesting)

The Kow (184414) | more than 12 years ago | (#3704768)

Yeah, that works really well in the current job market. I dare you to try to find a job right now with what you had on your resume when you first got into the industry.

Re:simple (0)

Anonymous Coward | more than 12 years ago | (#3704787)

apparently you can't read.. i am CURRENTLY employed.. and not to mention.. i won't be losing this job anytime soon..

Re:simple (0)

Anonymous Coward | more than 12 years ago | (#3704890)

Wipe the jizz from your eyes and read, the poster said "find a job right now with what you had on your resume when you first got into the industry."

Damn dolts like you are an extremely annoying waste of space.

Re:simple (0)

Anonymous Coward | more than 12 years ago | (#3704798)

or perhaps school is what makes you happy, so you stay in school. some people feel that there is more to life than "$300000+ w/ a ton of benefits", but I am sure your wife is proud.

Re:simple (0)

Anonymous Coward | more than 12 years ago | (#3704837)

wife?! please.. i'll be frank.. i'm still your typical doof.. who goes home.. sits in his apartment playing Jedi Knight 2.. go figure..

btw, who needs women.. they're too bitchy and crabby :-\

Re:simple (0)

Anonymous Coward | more than 12 years ago | (#3704800)

Sounds like an ATDer. Lucky bastard!

Re:simple (1, Funny)

Anonymous Coward | more than 12 years ago | (#3704830)

Why is CmdrTaco posting anonymously now?!

Re:simple (3, Insightful)

Anonymous Coward | more than 12 years ago | (#3704857)

The greatest thing about college for me was NOT the CS, Engineering, and math courses that eventually got me the job I now enjoy...

It was the total mind-opening academic scene that surrounded me 24/7 for 5 years, the chance to really go out and party my brains out to relieve the stress, the hour long conversations with professors who are true geinuses in every sence of the word.

You might get paid a lot of money, but if you see college as simply a means to that end, I strongly suggest you take a year off and attend full time. Because you certainly do not get the point.

And, through so many experiences, I learned that your final career and salary doesn't define you, your worth, or how much you can get out of life.

but congrats on your job, though. Pretty sweet deal.

Re:simple (1, Interesting)

Anonymous Coward | more than 12 years ago | (#3704891)

i agree with you.. but what really ticked me off about college.. were the core requirements.. i mean.. please.. i hated sociology.. it was a waste of my time and a waste of a seat in that class.. someone else should've taken it.. but i was stuck unfortunately.. that was my last semester.. then i dropped out.. one professor in particular (my intro to cs professor) was a really cool guy actually.. we still keep in touch, sort of.. but in any case.. the environments great.. the core requirements suck..

frist proust (-1, Offtopic)

Anonymous Coward | more than 12 years ago | (#3704754)

frist proust is miNAE

CLIT MODERATION: -1,Late (-1)

on by (572414) | more than 12 years ago | (#3704799)

Thanks for playing though - better luck next time!

Re:CLIT MODERATION: -1,Late (0)

Anonymous Coward | more than 12 years ago | (#3704895)

i never claimed to be "First Post", only "frist proust".

... and that is something you can never take away from me, you goathumper.

Amen (0)

Anonymous Coward | more than 12 years ago | (#3704759)

yes

Agreed (2, Interesting)

the_mystic_on_slack (553010) | more than 12 years ago | (#3704769)

I cannot say that I have this problem so much, though every time I have taken an exam which forced me to write code, we were allowed to cite a previously written function or whatever. In the cases where a completely new solution is needed though, I agree, the paper thing does not work. I feel much more comfortable on a computer than writing frantically. Giving exams on computers provide significant challenges for honesty though too. My two cents worth.

AP Computer Science (2, Interesting)

jeeryg_flashaccess (456261) | more than 12 years ago | (#3704772)

When I took the AP computer science test in high school we had to code on paper! I'm just like you...I get my vibe when I am in front of the computer coding, not with a pencil and paper.

My highschool had 2 computer labs that would work perfect for such tests. I'm glad you brought this up, it always irritated me.

..treat as real code? (2, Informative)

Archon-X (264195) | more than 12 years ago | (#3704776)

..I too used to suffer this - we used have to write chunks of code, and it was frankly painful. I found the best thing to do was use copious amounts of scrap paper, and develop the code like you normally would on a workstation...

ie, get your structure down, then start to flesh it out, a page for each method etc. That way you can 'grow' your code a syou normally would, and don't feel pressured to write it all top-bottom-with-no-mistakes.

Error checking by compiler (2, Insightful)

Anonymous Coward | more than 12 years ago | (#3704777)

Is the reason you don't do well on the tests because your hand gets tired writing so much code or because you don't know if you are doing things right because you can't compile and see where your errors are. For me it is easier to think of my code as communicating with other programmers my ideas. Writing in this style is easier on paper.

Re:Error checking by compiler (1)

ROBOKATZ (211768) | more than 12 years ago | (#3704866)

That's like saying grammar isn't important because you're just communicating with other people.

Re:Error checking by compiler (1)

bpfinn (557273) | more than 12 years ago | (#3704879)

Why my handwritten code sucks:
  • My handwriting is not very good.
  • I type faster than I write.
  • I never bothered to memorize functions when I could look them up with "man" or in a book. (No books during the exam.)
  • I can't insert code very well on paper when I forget a small, but crucual step.
  • The compiler checks for errors much better than I do.

We did these at the Rochester Institute of Technol (2, Informative)

Anonymous Coward | more than 12 years ago | (#3704778)

It really depends on how it's graded. I had some Prof's that would grade based more on the understanding of the problem. They would look at the code as more of a structured psuedo-code, rather than something they thought would compile.

I've also had profs that would take a point off for each syntax error...

Re:We did these at the Rochester Institute of Tech (2, Interesting)

jcoy42 (412359) | more than 12 years ago | (#3704856)

They would look at the code as more of a structured psuedo-code, rather than something they thought would compile.

I had a fortran instructor sort-of like that. But then his code wouldn't compile. The final was a 2 page listing and the question "Tell me what this code does". I told him it would error durring compile at line 30.

He gave me an A for that. It would have been much easier if I could have used a compiler to find the result though..

jesus loves the little children (-1, Troll)

Anonymous Coward | more than 12 years ago | (#3704779)

jesus loves the little children, jesus loves them in the ass

jesus loves the little children, and jesus is gay

I feel the same way (3, Insightful)

scode (22551) | more than 12 years ago | (#3704781)

I have no resect for any exam that involves writing actual code on paper. Asking about fundamental principles is fine; asking for pieces of code or specific API details is IMO rediculous.

Granted, you can never design a perfect test. But you can at least do away with the totally obvious imperfections like asking people to do things in ways they never do and never will do in the future (except on other tests).

The few times I was subjected to these tests, I sure felt primitive erasing entire chunks of code after having realized I needed to insert something in the beginning. And it's a hard thing to avoid; I don't think any reasonably experienced programmer writes code entirely from top to bottom. Just a simple thing as placing braces becomes a hurdle in writing unless you know the length of the code you need to put between them!

Re: code on exams (1)

anonymous_wombat (532191) | more than 12 years ago | (#3704784)

I once had a job interview where they asked me to write a C program on paper. They gave us an hour, and it took me 57 minutes. Writing code makes sense as a homework assignment. I feel that multiple choice questions are best for computer science examinations. There is no point in trying to write a program under that kind of time pressure.

Psuedo-Code (2)

XBL (305578) | more than 12 years ago | (#3704785)

Does doing things in a not-so-rigid manner help? I think so.

Students can focus on the problem, and not writing the syntax, complete with all the () {} etc.

Hate it! (5, Interesting)

Tadrith (557354) | more than 12 years ago | (#3704789)

I personally hate it when they require programmers to write code on an exam. Every programmer knows that part of programming is debugging, and it's very difficult for many people to get chunks of code correct the first time. I can see, perhaps, requiring a small snippet of code, but large chunks are difficult to deal with in writing.

Due to complexity, programs simply cannot be written 100% perfect the first time around. Not only that, programming is very individual and specific to the programmer. Just because one person writes something one way, and the other writes it another way, doesn't mean either of them are wrong or right.

Written exams should be limited to syntax and concepts, to see how well you know the language. If you want to test a programmer's skills as a programmer, you should at least allow them to excercise their debugging skills...

Re:Hate it! (1)

amstrad (60839) | more than 12 years ago | (#3704903)

I personally hate it when people rely on the compiler and shotgun debugging to help them get their module working correctly.

Debugging should be for getting bugs out, not experimenting until you find the right algorithm.

That aside, I agree that it is rediculous to expect 100% syntax free code on a written exam. My professors expected pseudocode on exams, since they are looking for correct semantics, not correct syntax.

I don't mean to sound mean.. (2, Insightful)

Fixer (35500) | more than 12 years ago | (#3704792)

.. but you should know the language you are using well enough to be able to simulate what's going to happen in your head. Yes, it takes a lot longer, and you have to double and triple-check things, but it's a good skill to have.

Written exams are stupid (1)

Jobarr (540127) | more than 12 years ago | (#3704797)

Half the time I forget a semicolon or somrthing, but on the computer...it doesn't matter because it tells you. Every single decent compiler will tell you when you mess up...paper doesn't.

There is no fair way... (1)

march (215947) | more than 12 years ago | (#3704802)

There is no fair way to test someone's knowledge. Some are better at written tests, so are better at "projects", etc.

Written tests do test certain kinds of knowledge while projects test another type of knowledge.

Your professor should be using both to judge your abilities (and hence your grade - which is another false metric, but better than nothing).

And... in life, you *do* have to do thing you don't like / aren't good at, so I'm afraid, you are going to have to get used to it.

That said, don't drop out - the formal education is invaluable. It will be the only time you get to cover a significant part of a subject. The learn-as-you-go model, while getting you a salary sooner, doesn't round you out enough. Don't forget the humanities and economics courses as well (I can't believe I just typed that!) - I did and have paid the price.

I agree (0)

Bob Kronkel (580551) | more than 12 years ago | (#3704803)

Writing code on paper is definitely not the same as using the old keyboard. Its kind of rediculous that they would make you code on paper, actually.

dumb testing (0)

Anonymous Coward | more than 12 years ago | (#3704804)

I try not to worry about it too much personally and just get the basic structure and as much of the syntax as I possibly can right.

It's a stupid way to test if you ask me. I find the same strategy even more annoying in the job interview format. You're asked a bunch of nitpicky technical questions while sitting around a table with a bunch of people staring at you, and no computer in sight. With a system at your fingertips you'd be able to find the answer or solve the problem in minutes, while at the same time demonstrating your methods.

I've noticed this interviewing technique has become more prevalent since the downturn. The idea seems to be to make you feel stupid so they can offer you less money.

Hopefully the prof will cut you some slack (3, Interesting)

CodeMonky (10675) | more than 12 years ago | (#3704807)

Hopefully the instructor will realize that everyone drops a ; occasioanlly (however forgetting ; altogether is something else), or misspells a variable. I think that as far as written tests go they should be more based on making sure you understand how the concept works and not so much on not forgetting a ;. Questions like are better suited for questions like "What is wrong with these 4 lines of code" imo.

Re:Hopefully the prof will cut you some slack (1)

ROBOKATZ (211768) | more than 12 years ago | (#3704904)

But that's not what he's talking about. He is basically saying, "I'm incapable of writing code when I'm not sitting in front of a computer."

stravinsky (2, Interesting)

splorf (569185) | more than 12 years ago | (#3704808)

Stravinsky wrote in his autobiography about his composing habits. As a student, he'd sit in front of his piano picking out melodies, playing them different ways and changing them til he got them the way he wanted, and then he'd write them down. He envied composers like Mozart, who'd compose entirely in their head and then write the composition directly on paper, and he thought maybe he wasn't doing something right. So he asked his composition professor about the problem.

The professor replied basically "there are two kinds of composers: those who use an instrument when composing and those that don't. You're one of the ones that does. Don't worry about it". Stravinsky stopped worrying and did fine.

Sounds like it's the same way with programming.

This is A Big Problem... (3, Insightful)

Mad Browser (11442) | more than 12 years ago | (#3704809)

This was my least favorite thing about CS at school...

I am much better at solving a programming problem in front of a computer.

Also, they are nothing like real world conditions... Do you know any programmers without reference books on their desks? That have the whole Java API memorized?

Written exams are fine... (5, Interesting)

cperciva (102828) | more than 12 years ago | (#3704811)

Written exams are fine for computer science; Coding exams are dumb.

Remember, computer science is about methods and algorithms, not about learning syntax. If you forget a semicolon when you're writing a program, you'll remember about it as soon as you try to compile it; if you code a bubblesort where a quicksort would be more appropriate, you're going to be stuck with a slow program until someone more clued fixes it.

No need for large portions (2, Insightful)

jacobjyu (583486) | more than 12 years ago | (#3704813)

I find that the CS tests that I have encountered don't require me to write a large portion of code, just snippets and tiny routines. Usually, a test problem leads us down a long list of sub-problems that, at the end, proves to the professors that you can indeed reason about programming, even though you haven't written a large portion of code.

Testing the ability to write large chunks of code is not reasonable on a written exam, and then, usually your grade is determined by your handwriting speed and neatness :)

Blah (1)

fizban (58094) | more than 12 years ago | (#3704815)

Get used to it. When you get in the real world, you oftentimes have to take a written test during an interview.

If you can't think on the fly, you'd better start practicing.

Fair as long as it's not too strict... (1)

gripdamage (529664) | more than 12 years ago | (#3704817)

I don't think the instructor should expect perfect syntax: how many programs compile on the first try? Luckily most of my instructors just wanted to see me show that I knew how to solve the problem in the given language, and why not?

If they aren't grading you down for a forgotten semi-colon or something, but instead are looking for general language knowledge and a correct algorithm, I think it's fair.

depends on level of code (2)

Com2Kid (142006) | more than 12 years ago | (#3704822)

If it is just "write a for-next loop to print out your name 10 times" then I see no problem with it, nor do I see an issue with "Make an array of {whatever} size and fill every other position in it starting with the first one with X's and every other position in it starting with the second one with O's".

Now anything more complex then that. . . .

Heh.

Of course depending on your working enviroment things become trickier.

If the class is taught in Visual Studio with MSDN installed. . . . That would have to be disabled on all of the workstations beforehand and the students instructed to use Notepad or such. Likewise for any other sort of IDE.

Writing code (not typing it) is *hard* (5, Insightful)

seanadams.com (463190) | more than 12 years ago | (#3704823)

... because you don't have a compiler to tell you when you make mistakes.

This is why it's an outstanding way to test people's knowledge. Anyone can make a program work given a compiler and sufficient time. If you can do it with just pen and paper, and remember the syntax without having other code in front of you, then you know your shit.

This is why it's a great test for interviews. You'd be amazed how many "senior C developers" we interviewed at my last company who couldn't write push() and pop() for a linked list.

I also (2)

Kallahar (227430) | more than 12 years ago | (#3704824)

I also had a similar problem. When I code, I keep reference materials and the web close at hand. Whenever I have a question about syntax, style, examples, whatever I quickly look it up. In a test environment you're expected to have everything memorized and at your instant recall for obscure things. I always hated that I was being judged outside of my normal working environment when I had to code on paper.

Travis

Re:I also (4, Insightful)

Arandir (19206) | more than 12 years ago | (#3704889)

If the test is asking you to use obsure Motif function calls or NT sockets, then you have a point. But if you're being asked to write a linked list or balance a binary tree, then it is perfectly fair. These are skills you are expected to know as a software engineer.

Just because you have a calculator is no excuse not to learn how to add.

Seems fair to me (2)

ROBOKATZ (211768) | more than 12 years ago | (#3704825)

If you can't think through a solution before committing it to code then you clearly don't know your stuff as well as you should.

Re:Seems fair to me (2)

Mad Browser (11442) | more than 12 years ago | (#3704867)

Don't forget you only have 50 minutes to do the whole exam... Not a lot of time to "think through a solution" and then code it (on paper). You have to RUSH.

I can't solve your problem... (1)

Snarfvs Maximvs (28022) | more than 12 years ago | (#3704826)

...but I agree it's moronic. I took an accounting class many moons ago, and the exams went something like this:

"OK. You have to balance this company's books in the next 3 hours, but you aren't permitted to use any reference material whatsoever. And you're limited to a non-graphing calculator, a pencil, and an eraser. Go!"

For the computer graphics course I took, I got an A in the practicum portion and a C+ in the classroom portion (separate classes with separate grades). So, I demonstrated that I could apply all of the techniques I learned, as well as come up with a few of my own, but since I couldn't remember some formulae I did less than spectacularly on a written exam.

Whatever happened to preparing people for the REAL world???

written exams... (1)

Drakker (89038) | more than 12 years ago | (#3704827)

You know whats worst with written exams? There's no cut n paste, auto indent, backspace, undo button, color changes for variables and stuff. All you have is a loosy pen and an eraser... and I bet anyone that knows how to code actualy types faster on a keyboard than they can write with a pen.

Maybe once electronic paper is out and used in schools, the situation will be a bit better. :}

Exam Coding Sections (1)

Hheero (584573) | more than 12 years ago | (#3704829)

I also disagree with large sections of 'write the code' on exams too. The profs. should incorporate more creative questions that you have to think about and possibly write pseudo-code to solve. After all they always say, "don't worry so much about syntax."
And often when I'm gonna write an app at home, I'll just use the ol' pen and pad to get the concept and write some pseudo-code with a few method headers but don't usually write out much code. But maybe I rely on the compiler too much for syntax?

its retarded (1)

illerd (579494) | more than 12 years ago | (#3704831)

having students write out code on paper is assinine. I used to lose all kinds of points for forgetting semi colons. Granted, its a stupid mistake and its my fault, but one trip through the compiler and all is well. Is that mistake really worth losing 2 points? I still forget semicolons all the time. Why wrack my brain over it when the compiler will babysit me? Its kind of like spell check. Who really cares what the correct spelling of necessity is? Close enough will do.

I think all CS tests involving algorithms should be in pseudo-code. If you want to test a students knowledge of syntax, make them write a program. If you really have to do it on paper, teach them BNF first and then test them on it.

Before you all start calling me a sloppy programmer, remember i'm just talking about semi colons, here.

An anlogy (2)

TrumpetPower! (190615) | more than 12 years ago | (#3704832)

A written, computerless computer exam is like having somebody prove they're a chef by watching what they do in the bathroom. Even if you can meet some definition of success, it don't mean diddly.

b&

My favorite editor ... (1)

amstrad (60839) | more than 12 years ago | (#3704833)

... is my whiteboard. I needed a whiteboard at my exams; bastards wouldn't let me bring it

Learn this skill (5, Insightful)

Arandir (19206) | more than 12 years ago | (#3704834)

This is a skill that you need to learn. When you go out on a job interview, you will most likely be given a marker and white board and told to code something. If you're going to freeze up without a monitor and keyboard in front of you, the employer will be very hesitant.

It seems that you've associated syntax and semantics with the visual cues of a computer. That's not the same part of the brain that answers exams. So you need to retrain yourself. Here are some things you can do to relearn programming:

A) Stop using IDEs. Use the plainest text editor that you can find to write your code. Turn off any syntax highlighting and code completion.

B) Design your code before you write it. Use UML, flowcharts or whatever, but design it first. Then when it comes time to code you will know where you are going.

C) Write code away from a computer. Use a pencil and paper. I didn't have a computer when I was in college (very few people did). So I coded by hand on paper, then went to the lab to type it in.

Re:Learn this skill (1)

nitemayr (309702) | more than 12 years ago | (#3704884)

This sounds about right

I spent a good deal of time in my primary programming (years one - three) courses writing cod eon paper before being allowed to code it on a computer at all. I have to thank my profs for that becuase they forced me to plan out a chunk of code ahead of time before I sat down and had to puzzle it all out later on. This also alloed me to standardize my variables and their uses WAY ahead of time so that I didn't come up with them on the fly.

Re:Learn this skill (1)

Hheero (584573) | more than 12 years ago | (#3704902)

So I coded by hand on paper, then went to the lab to type it in.

Writing code on paper isn't a skill. And as far as your comment of writing it first then typing it in is fine but that has nothing to do with an exam where you don't have the option to use a compiler. Some profs deduct for mismatched parens which is not a logical error but rather a syntax error.
This would be like if an English prof told you to write a term paper and you did extensive research but lost points for bad grammar. It matters, but is it enough to dismiss the research done?

It's not the vibe... (2)

grammar fascist (239789) | more than 12 years ago | (#3704835)

...at least not for me. I can code on paper, but I really don't like to. At least, I can code if what I'm supposed to be coding is short.

The deal is that I just don't code from line one to line 5000 sequentially. I define the overall structure and then fill things in - and that's at every level (class, method, loop, conditional).

When I was making exams for an assembly language class I taught once upon a time, I opted out of having them write much code. (A few lines is fine, I think.) If there was any serious amount of code involved, I was asking them to trace through it and give me the result, or I was giving it to them and asking them to incorporate something short in it, or the other way around. That's a better use for the static medium (paper), IMNSHO.

Exams (3, Interesting)

lrichardson (220639) | more than 12 years ago | (#3704836)

The exam SHOULD be testing your grasp of concepts, not the ability to write large programs on papaer.

That said, I remember one of my worst exams ... Pascal. Got the paper back with a mark around 30% ... which, after talking to the Prof, jumped to a 90 ... since the damn markers didn't actually know what routines were on the system, and my code used them extensively.

Like an english paper, marks should be given primarily for content, with spelling (and grammar) subtracting from that slightly.

The best advice is to do a question in three steps:

1/Shetch out the flow of what you want to do.

2/ Write the code, and

3/ At the end of the exam (assuming you have the time), go back over each answer checking the spelling

masturbation (1)

mangu (126918) | more than 12 years ago | (#3704841)

writing software on paper is like doing sex by hand. What's the point?

Seriously, how is the teacher supposed to evaluate it if it's not run? I think software students shouldn't be tested by traditional exams, but by doing software projects, in the course of a few weeks. That's how they will work in their professional life, anyhow.

it's not that bad (1)

iamkrinkle (585605) | more than 12 years ago | (#3704842)

yeah, it sux to right on paper compared to actual coding, but i think that it is good to be able to work completely one paper becuase that way you don't use the compiler as a crutch...after all, if you get a little sloppy with your code, the complier will show ya the syntax error, but you shouldn't RELY on it... avoid code entropy!

How much to write? (2)

www.sorehands.com (142825) | more than 12 years ago | (#3704843)

Usually in exams, it is
But, there are more than one way to test, sample code can be provided and you correct it or determine the potential problems. Or, give the results after execution.


It is important for the grader to keep in mind that it is on paper and that in the real world you are using a compiler that will warn you about some errors.

Ought to be a fundamental theorem of programming (2)

blair1q (305137) | more than 12 years ago | (#3704844)

It ought to be a fundamental theorem of programming that the program isn't done until it's tested.

This includes all subsets of the program. File, class, function, line, expression, term, token, character, syntax, etc., etc.

Your version of this process, like mine, includes getting the tested code to assist our understanding.

--Blair

Get Real (1)

newt_sd (443682) | more than 12 years ago | (#3704845)

I agree IDEALLY we would assess our abilities in the manner most fitting for each individual but we are currently struggling just to pump out people with degrees regardless of whether they can read write or dance. How many times have you heard on /. you need to have more than just a degree to be a programming god, you don't learn what you need in school just how to learn. Well that is because they don't have the resources to teach you the most effective way. Good luck getting a school to dump resources into tailoring education for you.

I used to hate these (2)

Subcarrier (262294) | more than 12 years ago | (#3704849)

A written test like this requires a more systematic approach than just coding with an editor (which is essentially design by coding). A written test has a purpose in the sense that it measures your ability to systematically plan how to solve a problem, design the code and then write it.

I don't think it is entirely a fair test of innate talent, though. The most gifted programmers I know can keep it all in their heads and keep enhancing the code incrementally as they go along. This results in a *much* faster development time and often the code is as good or better as a solution developed using a stricter process.

As all tests, these are also designed for the average programmer, not the brilliant one.

Of course not (1)

Inthewire (521207) | more than 12 years ago | (#3704850)

Why should some TA be able to decide my value as a student? "We hold these truths to be self evident, that all men are created equal"
Grades divide us.
As a nation, as a planet, as a people, we need to embrace each other. Perhaps even nuzzle each other playfully.

DeVry (2)

stoolpigeon (454276) | more than 12 years ago | (#3704851)

DeVry gets a bad wrap around here so I hesitate to mention this.

But to their credit- the program I was involved in their did not have us coding on paper. We had lap tops that we bought as part of our tuition. They provided us w/the full software for whatever we would be working on- or we would go get it (legally - JBuilder for instance).

Exams consisted of sitting at that laptop and cranking out code. Nothing that huge- you would save it on a floppy and hand it in when you finished.

Could someone cheat? Sure. We weren't allowed to hook up to the network and the teacher was there but that was about all that was 'enforced'.

But on the other hand I don't code w/out books, the internet and colleagues now that I do it professionally.

Anyways- I just thought I'd mention it as it seems that if a school is equipped to properly teach you to code then they are properly equip to test you on computers vice paper.

.

If you can't psuedo code I question your ability (1)

smackdaddy (4761) | more than 12 years ago | (#3704852)

Personally it seems to me that psuedo code on exams is easier than writing code in on a computer. They aren't looking at syntax, they are looking at your logic, and any decent programmer should be able to express the ideas on paper. Now would my exams have compiled probably not, cause I would have missed semicolons or mismatched parens, but that isn't the point of a paper test. They don't want you to waste your time getting it to compile and debugging it, they are concerned with your logic and your high level design abilities. They will find out if you can make your code work on the labs and the homework.

That said, when I interview people I give them a problem. The point is to see how the person reacts under pressure, and to see the thought they put into the design while I am sitting there watching them. Does the code have to compile and work, no I am more concerned with orginization and problem solving. So that is my thought, they are testing something other than what you think. Then again some people just aren't good test taker's either, but that is too bad for them, cause most cs classes I took were weighted towards the exams and not much on the lab/homework.

Tests in general aren't particularly good (2)

Ghoser777 (113623) | more than 12 years ago | (#3704855)

Here's why: name the last time some one came up to you and asked "Tell me the quadratic formula and use it to solve this quadratic equation. You've got 1 minute... GO!" Honestly, this example is absurd, but some tests come down to that. What you can write down in a mad dash is not the same as if you're working on a problem in a "real world" setting.

Tests in general are after regurgitation and quick thinking, not knowledge of a subject. CS tests, on the other hand, seem to always be about analyzing a problem and coming up with a successful algorithm. In my opinion, CS tests are by far the BEST of all tests given. Any computer can store data, but it takes a thoughtful human to come up with an efficient algorithm to use that data.

I honestly like CS tests that emphasize breaking down a problem into small steps and coming up with solutions in english (or portuguese, whatever). Then, another portion of the test would be implementing small portions of that solution algorithm.

Ah well, I'm almost done with school anyway, what do I care.

F-bacher

I prefer oral CS exams ... (0)

Anonymous Coward | more than 12 years ago | (#3704860)

Where I demonstrate system I/O on the professor using his cock and my mouth

programming on pieces of paper? (0)

Anonymous Coward | more than 12 years ago | (#3704861)

This'll *really* be an accurate measurement of your ability. Education. Geesh.

Good programmers use tools, not memorization (5, Insightful)

Jack William Bell (84469) | more than 12 years ago | (#3704862)

I have run into this same problem in job interviews. Usually it comes down to the fact that, on the job, I have resources at my command; books, web sites, code examples, etc. So, rather than memorizing every API (or even every keyword), I become very facile in knowing where to look up what I want very quickly.

But when I am asked questions about the same thing away from a computer and my books I start drawing blanks even about things I know in detail. This is why, IMHO, computer programming exams and even job interviews should be 'Open Book'. Memorizing details doesn't make you a good programmer -- knowing how to use the tools does.

Jack William Bell

Not a particular problem... (1)

wray (59341) | more than 12 years ago | (#3704868)

It seems to me that the real benefit of sitting at a computer is to use the compiler. Otherwise, I use to write all my code by hand before getting on the computer. I probably think better writing by hand than on the computer. To each his own I guess, but I don't find questions wrt coding on exams unfair or difficult. (Except for inserting lines when you make mistakes) :-)

If you can't stand the heat, stay out the kitchen (1)

Pave Low (566880) | more than 12 years ago | (#3704869)

First, most of the programming classes I took doing my CS program did not require huge blocks of code. It was mostly pseudocode for the theory classes, and small toy code in language classes. It couldn't have been more than 100-200 LOC to write in one exam. Asking to write 500+ lines of code in a written exam is kind of dumb.

That said, if the other students have the same conditions as you, you'll have to suck it up and deal with it. That's life.

Own experience... (2)

Pollux (102520) | more than 12 years ago | (#3704871)

For the most part, I agree with you. I've had professors who ask me to write out my code on a page, and the environment just doesn't feel right.

I've had no problems "debugging" code on paper, designing a program on paper, plus your typical bogus multiple choice questions ("What's the difference between 'cout' and 'printf'", etc.). But when it comes to coding, my brain operates differently writing code pencil / paper style. You could probably equate it to baseball hitters who commonly have higher batting averages at their home field than on the road. When a job is done in the same kind of environment for so long, we become accustomed to that environment.

I'd be perfectly happy if the profs let us only use notepad to write out code if they're afraid that a program such as Borland / Visual C++ would give us too much leverage.

Code snippets are the most one should have... (1)

dj_whitebread (171775) | more than 12 years ago | (#3704873)

Having TAed several courses now in Computer Science, (I'm a PhD student) I have truly come to believe that having students write large amounts of code is just a bad idea.

Not only is it a pain to grade, it puts too much stress on the student.

Code snippets are fine. Make the student show that they understand one isolated concept at a time. Also, having students analyze a given piece of code, I feel, is also very useful.

Anyway, just my thoughts...

School model doesnt work for computing (0)

Anonymous Coward | more than 12 years ago | (#3704874)

The idea of not being able to colaborate and share data is outdated today.

In todays world you actually are able to sit down with a reference manual and the internet and work out a program.

I have yet to see ANY computer science program do openbook opennet exams where people can work in groups go on irc and ask questions etc.

Like theres something wrong with asking questions while working. Like they need to know every part of the spec off the top of their head.

Computer science in schools is flawed because schools try their best to discourage sharing of knowledge and ideas.

Teacher -> student. *good* student->student *bad*...

least thats what i got from school till i dropped out and got a ecomm job in nyc making a ton of money learning on my own and asking friends for help when needed.

school is for saps. go get some experience.

What? (0)

Anonymous Coward | more than 12 years ago | (#3704875)

I thought everyone had compile and run function built into their #2 pencils. Oh well. Make sure not to miss any more semicolons on the next test or its curtains for you.

Change your major. (1)

jelwell (2152) | more than 12 years ago | (#3704876)

I hate to say it, but you're not cut out for Computer Science if you require a compiler to tell you what is wrong with your code so you can tinker with it until it works. I never had any problems coding on paper in college.

Here's a list of substantive differences between writing a program on paper versus a computer. If I left out anything, let me know.
1. compiler
- see above comment
2. keyboard
- maybe you simply can't write as fast as you type. Are you running out of time on these tests? If so, start writing your english papers in pen.
3. syntax highlighting?
- I've never bothered with it. If this is your crutch maybe you should write a compiler. That will burn in your mind the syntax of a given language.

Try switching to Cognitive Science.
Joseph Elwell.

Take Notes (1)

EdMcMan (70171) | more than 12 years ago | (#3704878)

I have this problem too. Basically, I write down in steps what sections of the program I'm going to need, functions etc. Then I just make the functions or what not based on my notes. It helps a lot when you don't have to switch from planning to coding mode on and off.

In my college (1)

nemesisj (305482) | more than 12 years ago | (#3704881)

we do the essay/multiple choice part on paper, then we have lab tests that solve this problem. But seriously, there shouldn't be that much difference between writing something on paper and writing it on a computer. You shouldn't be surprised when something doesn't compile, because you should check your syntax. Also, if your algorithm has a major flaw, you should have thought of it or seen it BEFORE you started writing code - that's just good practice.

unfair-testing-procedures dept (0)

Anonymous Coward | more than 12 years ago | (#3704882)

Hi, you are damn right. Asking someone to write, even if it as small as 200 lines of code, is unfair on the part of the professor. Thats no way to test someones coding skills in a comp sci class. Professors should rely on giving projects to test coding skills. It should form a major part of the grade, say 50 to 75 %. The test questions that check the design and structure should be framed by giving out the code and asking to check the correctness, th way it works, is it a good way, is there a better way, point out the mistakes and rewrite to make it work, these kind of questions do a better job.

Here at UMR, the professor did just what I said when I took the course in summer 2001. We simulated a game called Dungeons and Dragons.

Thanks !

Regards,
Ronin

Please consider (1)

lingqi (577227) | more than 12 years ago | (#3704885)

This question has been raised many, many times before, and is still under debate, in almost all areas of education. there is even debates about this applying to silicon chips (device testing -- if the test really reflect the abilities of the device) -- any test engineers reading this should get nostalgic, i reckon. ;)

the short answer is: well, it might not be perfect, but it's the best we've got considering the amount of resources, etc etc...

(pretty much the "this is why we have standarized tests" argument).

On the other hand -- there is a longer answer. Most of my "code tests" really only have to do with puedo-coding / algorithmical stuff. i.e. there is a few points that the instructor / TA checks for: does this guy know how a stack works, did his/her implementation leave serious memory leaks, etc. these, i think, can be figured out on paper if you are careful and draws flowcharts, etc. my teachers generally do not take off chuncks for grammar (unlike english -- which is ironic because compilers are so much less forgiving about grammar errors in code than people are regarding errors in speech). So, i do believe the paper coding testes show certain merits.

At the mean time, there are definitely times when the method fail: in front of a computer you can re-compile / debug until it (mostly) works; paper test you don't have that luxury; my personal feeling is that if you depend on the [compile] button to catch all the errors, then you are not all that great a programmer anyway. but if you have gotten clear enough logic, paper coding should not be a problem (just my opinion, again)

and besides: that's why you have both a final and a project; of course, so you can maybe even grab some extra credit with extra-features on your project.

i would, actually, like to see finals as:
here is a problem, you have 4 hours in a room with whatever you like to bring into it (i.e. coffee, jolt, cheese-nips, etc. except friends), and it better be working at the end; that would really bring out the best from the worst: actually, most programming competitions used to be put this way...

I had the same problem, well, sort of... (1)

typedef (139123) | more than 12 years ago | (#3704888)

When I was in high-school, I had an AP Computer Science teacher who would actually make us go in front of the class and write our code on the blackboard. He would point out every error in gruelling detail, and would constantly belittle us for even the simplest mistake. He was especially hard on me, though. Every time I was called to go in front of the class I was treated to a never ending barrage of insults or patronizing remarks. I felt more like I was in some special education course than an AP class. Eventually it came to a head when I was asked to write a balanced tree class in C++ on the board. I was so nervous I just couldn't think. I stood there for a minute, thinking out the problem, and before I could write anything on the board, I heard him sigh and say "thank you, mister typedef, that will be all." That is when I put the dead hooker in the trunk of his car. I had her laying under my bed wrapped in plastic for about a week, and had been saving her for a special occasion. I jimmied his trunk and dumped the corpse in, and then cut his break-lines so that the slightest bump would cause them to break. That afternoon, as he was leaving school, he crashed into another car at the intersection outside our school, and the dead hooker went flying out his trunk. The last I heard, he was doing 40-life in the local pound-me-in the ass prison. So that, my friend, is how I came over my coding funk. Hope this helps!

CompSci Proffesor != Good Programmer (1)

Omega1045 (584264) | more than 12 years ago | (#3704892)

I had ONE good CompSci Prof in college. He was dismissed because he didn't get his PhD with a certain amount of time. Man, I don't usually brag, but I can code circle around any other CompSci Prof. What I really loved was the fact they always mouthed off about M$, but made us turn in our assignments compiled on Win95 or NT! They were too lazy to figure out how to get Linux duel booting on our lab machines. I think most Comp Sci profs are more about math than programming. I completely agree, writing code on the fly is silly. The best code comes from careful planning and design. Maybe THAT should be tested.

500+ lines of code in a test? (2)

frovingslosh (582462) | more than 12 years ago | (#3704893)

I certainly would have a problem with this much code without sitting in front of a computer and having the basic tools handy. I expect if I found that exams were of this nature I would drop the course, change schools, or just get a job.

Actually, poor and bad tests are my major gripe with the education system. I can't count the times I've looked at poorly worded question and known the subject completely, but because of the way the question was worded it wasn't obvious if the teacher wanted the straightforward answer, or thought they were being clever and asking a "trick question", since the straight forward answer wasn't right the way the question was asked. Not wanting to put up with bullshit like this caused me to pass us the chance to take a lot of free courses several years ago when I ran a computer center for a local university. Am I the only one who has a problem with tests like this?

Just Fetch the Stick (1)

Quirk (36086) | more than 12 years ago | (#3704896)

University is an initiation rite. Learn to supply that which is required of you as inherent in the question and then KISS. Graduate then do whatever you want and/or can. University is Big Business and a Closed Culture as tribal in it's fetishes, Totems and Taboos as any other _great tribe_.

Somewhat torn... (1)

maloi (175772) | more than 12 years ago | (#3704897)

On the one hand, when I was it school, I absolutely hated having to write code on exams.

On the other hand, now that I write code for a living, I find myself sitting in our office's "comfy room" with a pad of paper and pen working things out before actually sitting in front of my computer fairly often.

Then again, the deadline for my projects at work tend to be days or weeks away, as opposed to an hour or so away as in an exam.

Other disciplines, people just live with it (3, Insightful)

sam_handelman (519767) | more than 12 years ago | (#3704899)

There are people who have the same problem, in other fields, when expressing themselves in writing instead of orally. It just causes them to choke up. Those people don't do as well on tests and there isn't really anything you can do about it. If university exams were all given orally (expense aside) another group of people would choke up because they can't talk good.

In the field of computer science, specifically, you can make the claim that only the ability to express yourself in type - personally I can write by hand anything I could type, but that's me - matters professionally, so that's what you should test on. Certainly, those students who "choke up" when presented with a computer terminal shouldn't be in computer science courses, so you don't have the same problem you'd have giving exclusively oral tests in the humanities.

But I don't think it's true that you can totally neglect the ability to scribble code; there are situations where (for social reasons) I've had to do development work by hand-writing on printouts. If you're teaching someone else, it is often easier to scribble on a slip of paper than to talk and gesture at a computer screen.

In CS, it would be reasonable to have all the tests on computers. However, there is a certain justification for making sure people can write code by hand, and it isn't so difficult for most people to learn. I don't see it as a fairness question - the skill of writing code by hand is not terribly important, and your department may place disproportionate emphasis on it. That's unadvisable, but it's perfectly fair; it's the same skill for everyone, but some people can't do it. Too bad for them, but they've not suffered any injustice.

Now, personally, I think it's daft to have students write significant code during exams. If you're teaching programing, have the kids write programs and submit them. A little pseudocode on an exam ought to demonstrate the abstract understanding for which the written exam should be testing.

Pointless Exercise (2)

Llywelyn (531070) | more than 12 years ago | (#3704900)

Just remember: Academics is 20% intelligence and 80% jumping through hoops.

I have never minded questions such as "prove that this block-of-code is Theta( n^3 )," or "provide a proof of correctness for the following...", or a "describe the structure of...", or even the occasional "analyze this code and provide the output," but actually forcing me to *write* the code is another matter entirely--one I'm particularly glad to have left behind in the earlier CS classes.

The worst was when I was asked to write a complete linked list class on a test... ugh, speaking of pain... particularly since I'm a dysgraphic.

Can anyone shed light on *why* professors seem to think that this is a good practice???

Small School's RULE (0)

Anonymous Coward | more than 12 years ago | (#3704905)

My data structures class was so small that I was able to convince the teacher to let me write my answers to the test in my laptop, So I used vim(the ONLY decent unix editor :-P ) and wrote the answers. Then used my wireless networking card to print it out on one of the local Network printers.

I don't think people should be able to use compilers in class though, takes TOO much time. To be a good programmer you need to be able to trace the program either on paper or in your mind to make sure it works!

my $.02
:wq
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>