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?

274 comments

  1. Yes by Anonymous Coward · · Score: 1

    Intellisense is the death of programming.

    Everything should be done on paper... or VI. Whatever makes life more miserable.

    1. Re: Yes by Anonymous Coward · · Score: 0

      Isn't there an emoji?

    2. Re:Yes by PaulRivers10 · · Score: 1

      Whatever makes life more miserable.

      Yeah that's definitely what I see in most of the responses here. Holy cow, what a bunch of crap. Coding is not "just math". Coding is not "better" if you can code outside of a computer - on the computer is where you're coding. Imagine taking out the life-debt that modern college costs, only to have someone avoid actually teaching you to code and instead they teach you "math" or "how to write answers on paper". Good lord.

  2. All code should be written with cat by Anonymous Coward · · Score: 1

    You modern kids and your erasers have it easy. We had to write our exam code using only 1's and 0's and the 1's we had to make by squishing the 0's.

  3. 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 epyT-R · · Score: 1

      Yeah, but who the hell wants to write out all those brackets, parentheses and other characters by hand? It takes ages compared to typing it out.

      This is no different than those fossils who'd harp about penmanship in the 1990s. if the goal is the separate the logic from the expression method anyway, there's no reason not to give students a text editor to type out their code for exams.

    3. Re:Comp Sci by Anonymous Coward · · Score: 1

      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.

      Let me mention Edsger W. Dijkstra's book on programming, to be found in his papers online at utexas, which once upon a time was not a degree mill. He said of teaching programming that the first course on programming principles needn't, in fact shouldn't, involve actual computers at all.

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

      Given the abundance of jobs "coding" in "languages" like PHP, javascript, java, and so on, it's one way to make your living.

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

      Because student loans are the best loans... for the lender.

    4. Re:Comp Sci by Anonymous Coward · · Score: 0

      Remember the idea of a test is to TEST you. To know if you have the knowledge or not. Not for the grade. It is dead easy to cheat on a computer. I used to do it all the time when I could print things out on computer and get a 10% bump in grade because of it.

    5. Re:Comp Sci by Anonymous Coward · · Score: 0

      It depends, explaining an algorithm/idea/proposal you should clearly be able to do without a computer to function in the job, but in some exams I had to write compilable code on paper, where marks are subtracted for things like syntax errors. I was never asked in a meeting to 'program' a working prototype of the product on a whiteboard.

    6. Re: Comp Sci by Anonymous Coward · · Score: 0

      Ever heard of a whiteboard? Itâ(TM)s what all the real computer SCIENTISTS use to derive their designs. And you canâ(TM)t use your shit-ass JBeans Pro 2000 IDE on a whiteboard, stupid.

    7. Re:Comp Sci by Anonymous Coward · · Score: 0

      The best test of whether you understand something is how well you can teach someone else.

      While that can be an indicator of mastery, it's not an axiom because it assumes the 'student' in this case is capable of abstract reasoning. The vast majority of people aren't, so the typical method ends up being simple analogies. This results in a childlike understanding that causes the person further misunderstanding and error later on.

    8. 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?

    9. 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.

    10. Re:Comp Sci by mysidia · · Score: 1

      Quicksort is what happens to arrange the elements of 'base' when you invoke the qsort function from the Standard C library with the proper size and a comparison function -- in order by the comparison function.

      qsort(void*base, size_t nmemb, size_t size, int (*compar)(const void*,const void*));

      What is left join

      Left join is the arrangement of SQL output you get when you invoke SELECT * from table1 LEFT JOIN table2 ON ( table1.attribute1 = table2.attribute2 ) .

    11. Re:Comp Sci by Anonymous Coward · · Score: 0

      No, you are wrong. Having a computer science degree means that you will work with computers. Without computers the term computer science is meaningless. If you want to ask people to do calculus or talk about algorithms without providing them computers than call it something else, because it's not computer science anymore (still science though).

    12. Re: Comp Sci by mysidia · · Score: 1

      you canâ(TM)t use your shit-ass JBeans Pro 2000 IDE on a whiteboard, stupid.

      The whiteboard is a tool. Not everyone "REAL" CS person uses it. Whiteboarded code has no formal syntax, so it's not like coding --- parentheses are only written if they are pertinent logically If/End If may be omitted or replaced with a shorthand. Brackets/semicolons are almost certainly not present.

      The whiteboarder May not have an IDE available, but
        in exchange will use whatever conventions they are most comfortable with.... for example, they aren't bound to the rules or notations of C or C++ or Python, Etc.

    13. Re: Comp Sci by Anonymous Coward · · Score: 0

      but who the hell wants to write out all those brackets, parentheses and other characters by hand?

      You generally don't use those in pseudocode. Which is what goes on paper during tests.

    14. Re:Comp Sci by ceoyoyo · · Score: 1

      I suggested to someone the other day that the ideal Python IDE was a text editor and a terminal. Choose an editor with syntax colouring if you must. The look I got. But what about the autocompletion??

      I've never actually met an IDE where the autocompletion didn't piss me off.

    15. Re:Comp Sci by Anonymous Coward · · Score: 0

      I only heard the term code-monkey thrown around by people who are lazy and their IQ is too low to form a strong argument. Beside that your logical fallacy is the slippery slope. You assume that if we allow using a code editor than the student won't be able eventually to explain the code. Which you didn't prove. This is also called a false cause in other name.

    16. Re: Comp Sci by TheRaven64 · · Score: 1

      I often write code on a whiteboard, but when I do it's rarely valid code in any given language, it's pseudocode that omits any details that aren't relevant to the particular explanation that I'm giving at the time. That's a useful skill, but it's not usually the one that's tested in exams, where you're penalised for syntactic errors.

      --
      I am TheRaven on Soylent News
    17. 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.

    18. Re:Comp Sci by CrimsonAvenger · · Score: 1

      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.

      Presumably, you should also be tested on your ability to express your ideas using a quill pen and parchment, then?

      The question wasn't about CONTENT of the exam, but about format. And using paper and pen isn't any more useful to testing your knowledge than using a clay tablet and a stylus (which, presumably, would be baked before it's turned in, to prevent changes).

      Face it, most people use keyboards for writing these days, not pens & pencils. So why hasn't University caught up with that notion (yes, not just for CS. Not really a good reason why an anthropology major should use pen & paper either.)?

      --

      "I do not agree with what you say, but I will defend to the death your right to say it"
    19. Re:Comp Sci by UnknownSoldier · · Score: 0

      > Edsger W. Dijkstra ... in fact shouldn't, involve actual computers at all.

      Computer Science is an applied science. .

      Dijkstra was an idiot who thought that only theory should be taught.

      * In theory performance shouldn't matter
      * In practice it does.

      Implementation details do matter regardless of many fucking cluesless profs try to handwave them. For example, how do you sort your data when it fit into available RAM? There is a reason why Map Reduce was invented.

      Focus solely on theory is the wrong approach. There are 3 types of optimizations that a programmer needs to understand.

      1. Micro-optimization: Bit-Twiddling
      I.e.
      https://graphics.stanford.edu/...

      2. Algorithmic
      Spending time to optimize a bubble sort is a complete waste of time when you could use mergesort, quicksort, etc.

      3. Macro-optimization (or cache-orientated) aka (Data-Orientated Design)
      Techniques such as Memoization exist for a reason.

      A good programmer learns HOW to optimize. i.e.

      Code Clinic 2015: How to Write Code the Compiler Can Actually Optimize

      Ignoring optimization doesn't make it go away. That's how we end up with bloated crap where a user is forced to download a 50 MB file for a bloody printer driver.

    20. 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.

    21. Re:Comp Sci by Alypius · · Score: 1

      But is she teaching you to make your own cover? ;)

    22. 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.

    23. Re: Comp Sci by epyT-R · · Score: 1

      I agree that pseudocode is also a better method for paper but TFS didn't say pseudocode. He implied use of languages that are better off typed. This is a common experience in school.

      There's no point in doing this. These are highschool/college students. Let them hand write or type as they prefer. If it's illegible, reject the submission and tell the student to rewrite or type it. By the time tests roll around, the professor already knows which students should probably type their work. Hell, since compsci's all about the algorithm anyway, let them choose the language, too.

    24. Re:Comp Sci by angel'o'sphere · · Score: 1

      Left join is the arrangement of SQL output you get when you invoke SELECT * from table1 LEFT JOIN table2 ON ( table1.attribute1 = table2.attribute2 )
      While it is "true", it explains nothing.
      If you had given an answer like that in my exam, you got zero points ...
      Here is a simple link, perhaps you grasp it: https://www.w3schools.com/sql/...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    25. Re:Comp Sci by angel'o'sphere · · Score: 1

      Just boggles the mind.
      Why?

      In which package actually is the "Date" class?

      Oh, there are several?

      And the IDE makes it _esay_ to pick the correct one ...

      And IDE launches in 3 seconds ... why the funk should I use vi to write a 20 lines Java/Groovy program, when I can use an IDE?

      Can launch it with a right click instead of writing a shell script or a line in bash to set up the classpath and start it?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    26. 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.
    27. Re:Comp Sci by ceoyoyo · · Score: 1

      In which package actually is the "Date" class?

      Oh, there are several?

      Well, there's a good reason. Perhaps the use of IDEs encourages poor library design. WHY are there so many date classes you can't remember where they are?

    28. Re: Comp Sci by Anonymous Coward · · Score: 0

      Exactly this!

      As an older person returning to school, I understood this better than the youngsters I was in class with. Because I could read the requirements of an assignment and construct a task list I could see the whole assignment and the individual steps necessary to complete it long before any typing took place.

      Their approach of sitting down at the keyboard and smashing the keys worked well when the assignment was a simple loop or conditional. But, it failed miserably when objects were involved. Many times someone would reach out for help. It was painfully obvious they just spent hours typing and couldnâ(TM)t couldnâ(TM)t fix the problem.

      If you donâ(TM)t know where you are going youâ(TM)ll never get there.

    29. Re:Comp Sci by KitFox · · Score: 1

      I'd surmise that it's a matter of improved tooling, accessibility, and so on. There are folks who make doughnuts by hand, but head to many stores and there is a system that drops proper batter rings into the oil, moves them along, flips them halfway through, pulls them onto a wire belt to dry, runs them under a sluice of icing, and so on. Even automatic rising assemblies for dough doughnuts. Both can result in exactly the same thing.

      The person making them by hand may understand exactly how the temperature and humidity helps them rise properly. The one using the machine "DDE" (Doughnut Development Environment) will potentially have chaos if the rising chamber heater is not working and they don't know why things are going wrong. The DDE can spit out hundreds of doughnuts in a short time, and perhaps the hand-maker could as well, but with more effort. The person using the DDE would have a very hard time making the most excellent doughnuts, or different kinds of doughnuts, without knowing all the things that come into play with making doughnuts.

      Both hand-made and DDE have a place and strengths and weaknesses. Both have purpose and reason for existing. Both result in tasty things.

      I think I will go get a doughnut now.

      --

      @Whee

    30. Re:Comp Sci by Anonymous Coward · · Score: 0

      You'd be surprised how many people can do but not teach (in addition to those that teach because they can't do). That is not a good test of understanding. It is a good test of being a useful on a mixed team of developers, BAs, testers, business sponsors, etc. however.

    31. Re:Comp Sci by angel'o'sphere · · Score: 1

      Because Java has a "normal" Date class in: java.util.Date.
      The SQL/JDBC/ODBC package has a Date class to treat dates coming from databases or get stored there: java.sql.Date.
      Then as the java.util.Date class has several shortcomings (stupid API for one), most modern developers use the "Joda Date" library, which is now basically incorporated into Java 8 as: java.time.*

      Point is: I do not expect a developer to know exactly the name of a package to type "import java.util.Date;" and make no typo, when the IDE does it automatically and shows that he has several classes to pick from to do the correct import.

      Another point is: modern Java IDEs are so advanced that people who never used them actually have no clue what power they have.

      It is plain stupid to develop in Java (or C#) or other languages on those eco systems without using an IDE.

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

      Never heard of an electronic whteboard?

      Coding on paper is just stupid.

      And yes, you can use your IDE on a whiteboard if you want.

    33. Re: Comp Sci by BRTB · · Score: 1

      Last CS test I took(~6-7 years ago) didn't allow pseudocode, We had to write it in syntactically correct Java. Points off for missing brackets/semicolons/etc that would make the code fail to compile as written.

    34. Re: Comp Sci by Anonymous Coward · · Score: 0

      You fail at analogy. Comp sci is about creating the recipe for the next donut. Programming is making more donuts faster.

    35. Re:Comp Sci by BirdBrained · · Score: 1

      What is a LEFT JOIN?

      <raises hand>

      Is that like same-sex marriage?

    36. Re: Comp Sci by Anonymous Coward · · Score: 1

      It's when a woman who was born Male, and a man who was born female, pay a sperm bank and a surrogate mother to make a kid for them after they realize that nature doesn't respect their gender Identities.

    37. Re:Comp Sci by ceoyoyo · · Score: 1

      I think your examples nicely make the point. I don't know if the commonality of IDEs is responsible for the plethora of Date classes in Java, but I can't imagine it helps.

    38. Re: Comp Sci by Anonymous Coward · · Score: 0

      Yeah, for each child you don't have you get a NULL instead

    39. Re:Comp Sci by Anonymous Coward · · Score: 0

      My sister makes custom leather book coverings

      Is this "custom leather" made from human skin like the necronomicon? Asking for a friend.

    40. Re:Comp Sci by AmiMoJo · · Score: 1

      Seems more like a communication skills test. Certain conditions that affect communication skills but not reasoning or understanding of CS would have a massive effect on this test.

      It is also heavily dependent on the ability of the partner.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    41. Re: Comp Sci by AmiMoJo · · Score: 1

      Writing by hand is also problematic for people with certain issues/disabilities. I have arthritis in my hands, so writing much gets painful and degrades my cognitive abilities.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    42. 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.

    43. 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."
    44. Re:Comp Sci by Anonymous Coward · · Score: 0

      1) Merge sort has the same behavior whether the data is sorted or not.
      2) A common implementation of quick sort will have its worst case on sorted data.

    45. Re: Comp Sci by kenh · · Score: 1

      You have, what we used to call, a disability, one which can be accommodated in any number of ways. The average student does not have a disability, and is able to do their exam work in any number of subjects on paper and pen/cil.

      The comp sci teacher should offer you the same accommodations your Psych 101, English Lit 101, and other teachers offer - nothing more.

      --
      Ken
    46. 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
    47. Re: Comp Sci by kenh · · Score: 1

      Curious about this logic of allowing/using pseudo code in exams - does English department allow 'pseudo-english'? Is punctuation not important in coding anymore? (it was when I coded on mainframes in the 90's.)

      --
      Ken
    48. 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...
    49. 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.

    50. Re: Comp Sci by Anonymous Coward · · Score: 0

      I can tell you that the IDE is not why we have so many Date classes. It's because the original Date class sucked enough to make someone write a better one. Just go use Date from java.util. Then go switch to Jodatime or java.time and tell me the APIs aren't tons better for most common uses. Of course they tried to actually not clash names, so there's LocalTime, Instant etc and not really lots of Date classes.

      But tell me why would I type out import java.until.Date or even longer imports if I do not have to? In the paper exam I wouldn't write it out either. I might! write an abbreviated import if even. The point of an exam is to gauge whether someone can solve a problem in code. All our paper exams that required coding required us to do it in pseudo code only (I graduated in 2006). It would actually take longer to make it all work in an IDE on a computer I suspect as it would need to pass a compiler test then.

      So to answer the ask Slashdot in here as well, yes yes they definitely should be done on paper! Even in 50 years from now!

    51. Re:Comp Sci by UnknownSoldier · · Score: 1

      I never said learning theory didn't matter. Of course theory matters.

      But implementation details ALSO matter.

      Try actual reading instead of an ignorant knee-jerk reaction.

    52. Re:Comp Sci by twistedcubic · · Score: 1

      "Face it, most people use keyboards for writing these days, not pens & pencils. So why hasn't University caught up with that notion..."

      Because exams require devices which are not networked. This requires capable staff and accommodating administrators, which rules out most schools.

    53. Re:Comp Sci by twistedcubic · · Score: 1

      "As long as the professor isn't grading on syntax (i.e. use pseudo-code), I'm all for coding on paper..."

      I somewhat agree with you, but if you had to constantly grade programs for 50 students for 16 weeks, and you don't bother to force them to adhere to a certain style, you might have to take stress leave before the end of the semester. No student takes you seriously until you deduct points---there is no way around this.

    54. Re:Comp Sci by ayesnymous · · Score: 1

      So you're saying the way that exams are done now is a good way to evaluate professors then?

    55. Re: Comp Sci by Cinnamon+Beige · · Score: 1

      You fail at analogy. Comp sci is about creating the recipe for the next donut. Programming is making more donuts faster.

      Programming is the fine art of wrestling a computer in hopes of getting it to perform an acceptable approximation of what you want it to do.

      Comp sci is in part about how to have a reasonably good chance at success at this, and some chance of understanding why it isn't working, even if you (correctly or not) are certain that you wrote the code correctly.

    56. Re:Comp Sci by Cinnamon+Beige · · Score: 1

      Given that communication skills are very important in many real-world situations a person with a CS degree might be in, I'd argue that it's reasonable to require that you learn and develop them--and possibly also cover how to make sure you've got things properly documented in case somebody tries to get out of paying you for contract work by claiming you didn't do what you were hired to do. The better you can show that when you started work you both agreed that you were supposed to be delivering what you did deliver, the easier it is going to be to get the court to agree that they're just trying to stiff you out of your pay.

    57. Re:Comp Sci by Anonymous Coward · · Score: 0

      Computer Science existed long before computers did. Or rather, it was a science back when a "computer" was a human being that completed the steps necessary for an iterative approach to the solution of a complex problem.

      You are flatly ignorant of the facts, here.

    58. Re:Comp Sci by Anonymous Coward · · Score: 0

      I don't understand this attitude.

      Our job as software engineers is to automate work. Why would we not automate software development via IDEs?

    59. Re:Comp Sci by Anonymous Coward · · Score: 0

      I don't know...

      I do OK with my vim plugins. It only offers autocomplete as per the current imported set of class libraries and current working page, but that generally does more then enough for me. If I'm clever enough to import all the needed functions then I have autocomplete for days!

      I do the same for java, but I have never had to write a large java project. I'm not a particular fan of the language myself.

    60. Re: Comp Sci by Anonymous Coward · · Score: 0

      I generally find these are simplistic problems if the professor is penalizing for style over function. ie. you should know the material through and through.

    61. Re: Comp Sci by Anonymous Coward · · Score: 0

      Well thatâ(TM)s a lot of ignorant bullshit.

    62. Re: Comp Sci by Anonymous Coward · · Score: 0

      Which will likely be a locked down, no internet computer, with a blank microsoft word document open.
      The code will still have to be entered without error checking, just like hand writing it.

    63. Re: Comp Sci by Anonymous Coward · · Score: 0

      At my university we wrote in pseudocode. Writing syntactically correct code on paper makes little sense. That said, I think it's fair to have tests written in paper. It's about your knowledge and paper is the easiest way to administer fair tests. Incidentally we also were not allowed to use calculators and problems were designed to not require them.

    64. Re: Comp Sci by AmiMoJo · · Score: 1

      But then you get people complaining that it's not a real disability, that I should just deal with it, that it gives me an unfair advantage etc.

      It's also problematic for job interviews. In many places it's illegal to even ask if the candidate has a disability, and most people with them don't like to reveal that information until after an offer has been put in.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    65. Re:Comp Sci by jtgd · · Score: 1

      You must be able to express your ideas on paper, a white board, napkin, back of your hand, ....anywhere.

      All the compilers I've used require the code to be in a file on the computer. What kind of compiler are you using that accepts paper and cloth as input?

      --
      J
    66. Re:Comp Sci by jtgd · · Score: 1

      In which package actually is the "Date" class?

      GADZOOKS! Is this what passes for CS education these days? Rote memorization of libraries? No more teaching engineers how to solve problems?

      OK, fine, just let the AI bots take over writing our code.

      --
      J
    67. Re:Comp Sci by Anonymous Coward · · Score: 0

      "While it is "true", it explains nothing."

      Woosh!!!!

      I would have expected better from you angel'o'sphere :)

    68. Re: Comp Sci by Anonymous Coward · · Score: 0

      Is this true? If automation was the only task for software development then automation tools may be very useful to accelerate development but can also accelerate ignorance and encourage taking shortcuts that may be considered wasteful. Reminds me of the discussion around banning electronic programmable calculators from mathematics examinations, as rapid solutions to questions may not help you demonstrate in detail the steps of your solution methods. If an IDE can help to break down your coding and commenting style and semantics while scanning for commonly made errors and highlighting fundamental mistakes then I would expect that should make them an essential learning tool for every student on the coding course. If the same common IDE is free to all students to use and widely used in industry then I have no issue with that.

    69. Re: Comp Sci by Anonymous Coward · · Score: 0

      The reality nowadays is that you are often only a handful of simple commands away from restoring the a usable IDE though maybe not a fancy pants one. Recovering a minimal but stable development environment should be one of the first things you learn as a developer surely?

    70. Re: Comp Sci by Anonymous Coward · · Score: 0

      Programming is telling something what to do. Science is understanding how things work.
      Any simpler analogies?

    71. Re: Comp Sci by Anonymous Coward · · Score: 0

      Is it ever technically feasible for the editor to be clever enough to also explain the workings through of assisted solutions or must the creative human side of software development always be required? I like the idea that if you take any machine automation assistance there is still a clear route back to understand any shortcuts by showing detailed step by step breakdown. Like an infinite undo feature but right back to the metal.

    72. Re:Comp Sci by angel'o'sphere · · Score: 1

      First of all I don't rely on an IDE.
      Secondly your claims are nonsense.
      No one is 'fixing' a Java, C++ program installed on a production system with SSH and VI.
      Chances are: there is no compiler on the production system. Definitely there is no build system. Most certainly the test code is not available on the production system.
      And yes, I can use SSH and VI, chances are: if SSH is working, I actually migt have an internet connection. So I still can google. Chances are I have a tablet with me, and can at least google on that to handle problem I might encounter.

      You know, when you have an apendix problem, every old school doctor knows how to make the diagnosis. Without any tool. Nevertheless every modern doctor will cross check his old school diagnosis with an ultrasonic.

      No idea how people can get as old as you and stay so dumb.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    73. Re:Comp Sci by angel'o'sphere · · Score: 1

      There never will be an AI writing code.

      No that did mot pass as CS education, that was an example where an IDE is super usefull, and saves an hour every day by not needding to type stuff, the IDE can do automatically. And nothing magically or AI about it.

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

      The best test of whether you understand something is how well you can teach someone else.

      Damn by that standard a lot of my professors in various course work from CS to philosophy didn't understand their subject, even the ones that were world renowned experts in their field.

      --
      Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
    75. Re: Comp Sci by Anonymous Coward · · Score: 0

      Anecdotal, of course, but the guys writing the least maintainable code at my company are doing it in sublime and vim. I think it's probably that these are the same people who think they're already perfect and don't need to learn new tools and don't need help.

    76. Re:Comp Sci by UnknownSoldier · · Score: 1

      You are completely missing the point.

      A smart programmer would NOT waste their time optimizing with bit-twiddling when a smarter algorithm would do the job.

      However, using a better algorithm is INSUFFICIENT when you are trying to optimizing for speed. You MUST use Data-Orientated Design if you want maximum performance. Simply knowing which algorithm is better will NOT do it. Why?

      Because HOW you access the cache lines matter.

      Two algorithms could have the exact O() performance --in theory, but in practice have DRASTICALLY different real-world performance.

      Sum of LEN numbers, stride: 0

                      for( size_t i = 0; i < LEN; i++ )
                              nSum += pData[ i ];

      Sum LEN numbers; stride: constant

                      for( size_t col = 0; col < STRIDE; col++ )
                              for( size_t i = 0; i < LEN; i += STRIDE )
                                      nSum += pData[ i + col ];

      Summing 1,073,741,824 elements (int32) for a total size of 4GB, have these BOTH showing O(n) performance (in theory) but with a stride of 32 the latter is seven times slower (in practice)

      BOTH theory and implementation are important.

      People who say that only theory matters are retards.

    77. Re:Comp Sci by angel'o'sphere · · Score: 1

      Yes, I miss your point.
      No idea if your code examples are formatted wrong (and no idea what a stride is, either) ... your examples are completely irrelevant.
      Click a random page on Amazone .... there wont be anything in the processor cache of the machine handling your request, relevant to your request.
      The last time I had to work on an algorithm were it turned out, optimizing for the cash made sense, was the early 1990s.
      Your millage may vary ...

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

      > No idea if your code examples are formatted wrong

      They are formatted correctly.

      > and no idea what a stride is, either

      Array Stride

      The fact that you don't even know what a Stride of an Arrayis shows you don't know what the fuck you are talking about.

      > Click a random page on Amazone .... there wont be anything in the processor cache of the machine handling your request, relevant to your request.

      Total nonsense.

      We are not talking about Amazone (2000)

      A good programmer realizes that CPU optimization is only ONE part of optimization.

      * Network
      * Disk (Seek time, throughput, latency)
      * Memory (Cache)
      * CPU (Registers)

      Listed from slowest to fastest -- the slowest access will have the biggest impact if we optimize for that.

      > optimizing for the cash made

      Maybe you try optimizing for the instruction cache and the data cache instead.

      > was the early 1990s.

      That would explain why you don't know what the fuck you are talking about. Your optimization information is 20+ years out of date.

      Here's a modern clue stick:

      Pitfalls of Object Oriented Programming

    79. Re:Comp Sci by Anonymous Coward · · Score: 0

      Your post reminded me of an old lesson from Michael Abrash (from The Zen of Assembly Language) on the importance of knowing the hardware and actually measuring performance:

      A case in point: a few years back, I came across an article about 8088 assembly language called 'Optimizing for Speed.' Now, 'optimize' is not a word to be used lightly; Webster's Ninth New Collegiate Dictionary defines optimize as 'to make as perfect, effective, or functional as possible,' which certainly leaves little room for error. The author had, however, chosen a small, well-defined 8088 assembly-language routine to refine, consisting of about 30 instructions that did nothing more than expand 8 bits to 16 bits by duplicating each bit.

      The author of 'Optimizing' had clearly fine-tuned the code with care, examining alternative instruction sequences and adding up cycles until he arrived at an implementation he calculated to be nearly 50% faster than the original routine. In short, he had used all the information at his disposal to improve his code, and had, as a result, saved cycles by the bushel. There was, in fact, only one slight problem with the optimized version of the routine...

      It ran slower than the original version!

      As diligent as the author had been, he had nonetheless committed a cardinal sin of 8088 assembly-language programming: he had assumed that the information available to him was both correct and complete. While the execution times provided by Intel for its processors are indeed correct, they are incomplete; the other—and often more important—part of code performance is instruction fetch time...

      Had the author taken the time to measure the true performance of his code, he wouldn't have put his reputation on the line with relatively low-performance code. What's more, had he measured the performance of his code and found it to be unexpectedly slow, curiosity might well have led him to experiment further and thereby add to his store of reliable information about the 8088, and there you have an important part of the Zen of assembler: after crafting the best code possible, check it in action to see if it's really doing what you think it is. If it's not behaving as expected, that's all to the good, since solving mysteries is the path to knowledge. You'll learn more in this way, I assure you, than from any manual or book on assembly language.

      Assume nothing. I cannot emphasize this strongly enough—when you care about performance, do your best to improve the code and then measure the improvement. If you don't measure performance, you're just guessing, and if you're guessing, you're not very likely to write top-notch code.

    80. Re:Comp Sci by Pseudonym · · Score: 1

      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.

      I agree, but I'm going to make one proviso. Yes, programming exams on paper. But marks should not be taken off for trivial syntax errors or anything else that anyone with half a brain could easily fix when the compiler refuses to compile the code.

      Your job, as a programmer or computer scientist, to express your ideas, and as such, it is the intent of the program that must be checked before feeding it to the compiler. It is not your job to do the work of a machine. It is the compiler's job to free you from checking syntax, types, and typos.

      If the exam is in a language whose semantics are so dynamic that it will accept type-incorrect code, then you need to get it right under exam conditions. Or write unit tests with your pencil. Or something. I don't want to think about it, to be honest.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    81. Re: Comp Sci by Pseudonym · · Score: 1

      I can tell you that the IDE is not why we have so many Date classes.

      If anything, it's the other way around. The main job of a modern IDE is to make working with badly-designed high-surface-area APIs less painful.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    82. Re:Comp Sci by Pseudonym · · Score: 1

      No one is 'fixing' a Java, C++ program installed on a production system with SSH and VI.

      Correct. However, "fixing" a program installed on a test environment is common enough. This is especially true in the scientific computing space (which I currently work in) where the best cut-down test case that you can find in a hurry won't run on your laptop with only 16G RAM.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    83. Re:Comp Sci by UnknownSoldier · · Score: 1

      I'm a big fan of Michael Abrash. Great reminders!

      1. Assuming Nothing!
      2. Measure / Verify! Documentation can be, and is, wrong.

      Back in the mid 90's I was working on an OpenGL game on some Indy SGI machines for my graphics course. Since float32 sin() / cos() performance was crap in those days, let alone float64 I used a 1.10 fixed point lookup table for a float32 fast_sin() and fast_cos() lookup. Now a 1.8 fixed point table of 256 entries would have been faster but didn't have the required precision I needed (360/256 = 1.45 degrees per entry), so I ended up with 1024 entries as a compromise between speed and precision (360/1024 = 0.3515625 degrees per entry)

      Anyhoo, I ran my benchmark:


              float sum = 0.f;
              timer_start();
              for( i = 0 ; i < N; i++ )
                      sum += fast_sin( (float) i );
              timer_end();

      and noticed that it was taking zero seconds!?!? I thought "That can't be right --I MUSThave a bug."

      I double checked, and triple checked the table and fast_sin() call. All the values were correct. There was no bug.

      So I increased my benchmark so I was doing 10,000,000 fast_sin() calls and noticed that I _finally_ had a blip on the total time! Something like 0.001 seconds, whereas as the standard C double sin() was taking 10+ second. The floating-point performance on the Indy was SO bad that even hitting slow memory was STILL faster!

      THEN I tried to take advantage of quadrant symmetry since you only need to store 0 degrees ... 90 degrees for a cos lookup table (since sine is just is sin(x) = cos( x - 90 degrees) but it WASN'T any faster due to have to perform extra calculations!

      Your reminder about Michael Abrash's points:

      1. Assume Nothing!
      2. Measure / Verify!

      are great timeless reminders.

    84. Re:Comp Sci by angel'o'sphere · · Score: 1

      Well, when I hear stuff like this I always wonder how plausible that is ...
      My laptop has only 8GB ... but ATM, about 120GB free disk space for swap ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    85. Re:Comp Sci by angel'o'sphere · · Score: 1

      The fact that you don't even know what a Stride of an Array [wikipedia.org]is shows you don't know what the fuck you are talking about.

      Actually it only shows that I'm not a native english speaker.

      That would explain why you don't know what the fuck you are talking about. Your optimization information is 20+ years out of date.

      As you nearly know nothing about me, this only shows that you are a moron.

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

      Twist... vi is my fancy-pants IDE

    87. Re:Comp Sci by Pseudonym · · Score: 1

      It's probably not a common scenario, but it's certainly true for me some of the time. It may be possible to rearchitect a Big Simulation (where, say, touching every part of a 20G data structure in a quasi-random order every simulation step is normal) to have better locality for debugging purposes, but is it worth it just to avoid debugging over an SSH connection?

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    88. Re:Comp Sci by TemporalBeing · · Score: 1

      > Edsger W. Dijkstra ... in fact shouldn't, involve actual computers at all.

      Computer Science is an applied science. .

      Wrong. Compute Science is the theoretical side of programming, and very much behaves like it. It came out of the Mathematical departments. The Applied Science is Software Engineering, which most schools fail to teach at all. It's more akin to Computer Engineering but with a higher software focus.

      Dijkstra was an idiot who thought that only theory should be taught.

      * In theory performance shouldn't matter * In practice it does.

      Implementation details do matter regardless of many fucking cluesless profs try to handwave them. For example, how do you sort your data when it fit into available RAM? There is a reason why Map Reduce was invented.

      Focus solely on theory is the wrong approach. There are 3 types of optimizations that a programmer needs to understand.

      1. Micro-optimization: Bit-Twiddling I.e. https://graphics.stanford.edu/...

      2. Algorithmic Spending time to optimize a bubble sort is a complete waste of time when you could use mergesort, quicksort, etc.

      3. Macro-optimization (or cache-orientated) aka (Data-Orientated Design) Techniques such as Memoization exist for a reason.

      A good programmer learns HOW to optimize. i.e.

      Code Clinic 2015: How to Write Code the Compiler Can Actually Optimize

      Ignoring optimization doesn't make it go away. That's how we end up with bloated crap where a user is forced to download a 50 MB file for a bloody printer driver.

      A good Software Engineer knows how to do those things; however, it's hard to find any good Software Engineers. Software Engineering goes way way beyond those things too and it is extremely hard to find a good Software Engineer, especially since most programmers want to be about art instead of engineering.

      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    89. Re:Comp Sci by Anonymous Coward · · Score: 0

      Wrong. Compute Science is the theoretical side of programming, and very much behaves like it. It came out of the Mathematical departments.

      Not wrong, just shortsighted.

      Yes, computer science stems from mathematics, but it emerged after, and in response to, the imvention of electronic computers.

      You can do computer science without hardware, but there is no reason to. Without computers, "computer science" is just a collection of otherwise-unrelated math subfields.

    90. Re:Comp Sci by tepples · · Score: 1

      Quicksort
      Pick one number in a list at random. This number is called the pivot. Split the list into two smaller lists: those numbers smaller than the pivot and those bigger than the pivot. Then replace the list with the split lists in this order: the list of smaller numbers, then the pivot, then the list of larger numbers. Do the same with each of the smaller lists. You'll need extra scratch space for the start and end points of the lists that are yet to be split up. At the end, the numbers in the list will be in order.

      Merge sort
      Cut a list of numbers in half. Sort each half. Then make a new list. Until the two sorted halves are empty, compare the first number of both halves, copy the lesser to the new list, and remove it from the beginning of the half. You'll need extra scratch space for the half you're sorting. At the end, the numbers in the list will be in order.

      LEFT JOIN
      You have two tables of facts and figures: the left table and the right table. You're about to correlate them into a new table based on matching values in one column of each table, called the key column. The left half of the new table has the same columns as the left table, and the right half of the new table has the same columns as the right table. Each row in the new table corresponds to at least one row in the left table. For each row of the left table, look at the key column in the left table, and then look for rows of the right table whose key column has the same value. For each matching row in the right table, copy the row from the left table followed by this row from the right table into the new table. If no rows of the right table match, copy one row from the left table but leave the columns for the right table blank.

      INNER JOIN
      This is the same as a LEFT JOIN, except you don't write anything if no rows in the right table match.

      Do I get the second interview?

    91. Re:Comp Sci by TemporalBeing · · Score: 1

      Wrong. Compute Science is the theoretical side of programming, and very much behaves like it. It came out of the Mathematical departments.

      Not wrong, just shortsighted.

      Yes, computer science stems from mathematics, but it emerged after, and in response to, the imvention of electronic computers.

      You can do computer science without hardware, but there is no reason to. Without computers, "computer science" is just a collection of otherwise-unrelated math subfields.

      Programming existed long before Computer Science existed and came out of the Electrical Engineering field - the Applied Sciences, before even the "electronic computer".

      Computer Science came about as mathematicians got involved in the field *after* computer languages started sprouting up. EE's also have high training in math - oddly sometimes more than CS folks. As the theoretical side took hold it moved to the Math oriented folks and took hold in and grew out of the Math departments. CS didn't even exist until the last 1960's, wasn't official until sometime in the 1970's, and didn't really become popular until the 1990's.

      Interestingly, the conversion of Computer Programming from being based in EE to being based in CS has also largely corresponded with decline of women participating in the overarching field. (Though one cannot say the transition caused such an effect.)

      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    92. Re:Comp Sci by Anonymous Coward · · Score: 0

      Programming existed long before Computer Science existed and came out of the Electrical Engineering field - the Applied Sciences, before even the "electronic computer".

      Sort of. Implementing an algorithm in hardware is very different from doing it in a high-level language.

      CS developed as a 'science' in the context of hardware implmentations; it's about investigating the properties of computing machinery, as much as purists would like to argue otherwise.

  4. 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 Qbertino · · Score: 1

      Well I'm sort of glad the Prof didn't have us punch cards. Although that would've been more useful than papercoding.

      --
      We suffer more in our imagination than in reality. - Seneca
    2. Re: Student knows best by Anonymous Coward · · Score: 0

      Paper tape? My first university class in Algol was on paper tape. (sigh)

    3. 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
    4. Re: Student knows best by uncqual · · Score: 1

      That does teach one to be careful. But, what's this "three compiles a day"? Did you bribe the RJE operator?

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
  5. On line would be better by Anonymous Coward · · Score: 0

    Online you could do stuff like -
    Here is 10K lines of code that is supposed to do XXX. Debug and fix it.

    It would be able to test if the person actually knew what was supposed to happen, how it was supposed to do it and their ability to actually understand structures and interactions way more than you can do on paper.

    1. 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.

    2. Re:On line would be better by uncqual · · Score: 1

      Any "skilled programmer" should know the specifics of most common algorithms and datatypes - although if they haven't actually used a particular algorithm in years, I don't see why they can't refresh their brain by spending a couple minutes online (i.e., I would count that as "know" as it was "once knew but have forgotten some of the specifics").

      Of course, a keypunch operator working off of coding forms doesn't need to understand common algorithms and datatypes.

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
  6. 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 Anonymous Coward · · Score: 0

      I also graduated in the early 2000s. All my assessed code was in the form of coursework (so done on my computer or in the computer labs and done with my choice of tools).

      Exams at most asked for psuedocode to demonstrate algorithms, data structures etc

    4. Re: That was torture by Anonymous Coward · · Score: 0

      I also graduated in the early 2000s. All my assessed code was in the form of coursework (so done on my computer or in the computer labs and done with my choice of tools). Exams at most asked for psuedocode to demonstrate algorithms, data structures etc

      It was mostly like that in the late '70s when I graduated - though there wasn't a choice of tools:) I imagine there are many other courses like this as well where tests complement work that's submitted.

    5. Re:That was torture by Anonymous Coward · · Score: 0

      "computer science is no more about computers than astronomy is about telescopes" --Dijkstra

      Why do people think CS degrees make someone ready for a job with computers is beyond even the experts in the field.

    6. 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.

    7. Re:That was torture by Anonymous Coward · · Score: 0

      My handwriting is ATROCIOUSLY slow, always has been, always will be. I learned to type before I learned cursive. My high school pulled crap like this on me; I learned to keep an old $5 all-mechanical typewriter with me at school. The first time a given teacher would see me whip it out of my backpack they'd almost always try to claim "No electronics!" or the like (natch, mechanical, lever action, non-correcting) but they'd give up at a certain point.

    8. Re:That was torture by Anonymous Coward · · Score: 0

      Studied CompSci back in the 80's. ALL exams where on PAPER! Try writing COBOL and FORTRAN code on paper! In one semester alone we has COBOL, FORTRAN, C, PDP-11 assembler, VAX-11 assembler, M68K assembler (for data communication applications). Data structures using PASCAL, but I use C with the prof's approval.

    9. Re:That was torture by Anonymous Coward · · Score: 0

      Let me tell you about Malbolge

      (=`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc

      This language syntax requires computer science.

    10. Re:That was torture by tepples · · Score: 1

      Language syntax is not really computer science, its trivia.

      Error: "its trivia": pronoun has unclear antecedent; "trivia" belonging to what?

      By your rules, English syntax is not really technical communication; it's trivia.

  7. Yes/No by Anonymous Coward · · Score: 1, Insightful

    "Computer Science and Software Development" graduate of 2004 here,

    To the question asked: "Should Coding Exams Be Given on Paper?"
    Yes.

    Does "Coding Exams" mean "being asked to write code on paper"?
    No.

    The majority of the "coding" portion of my classes was evaluated through assignments, and practical classes.

    The exams ask specific things to test your knowledge, and didn't require "writing a program on paper", and if they did, only asked for psuedo-code, not something that would compile.

    This question is pointless.

    1. Re: Yes/No by Anonymous Coward · · Score: 0

      Graduated a bit more recently but still a while ago. Had to write a lot of syntax correct code on exams.

      I remember having to write a NVIC system in HDL during a hardware design final. Was several pages front and back.

    2. 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.
  8. too easy to cheat with a computer by Anonymous Coward · · Score: 0

    While written exams might be considered torture, the real issue is that giving an exam on computer opens up too many opportunities for academic dishonesty.

    1. Re:too easy to cheat with a computer by techno-vampire · · Score: 1

      My thought exactly. If I were teaching such a course, I'd only allow the students to use a desktop computer with no network connection, and forbid them to use their cellphones during the test so that they can't use them to research things on the net.

      --
      Good, inexpensive web hosting
    2. Re:too easy to cheat with a computer by uncqual · · Score: 1

      If dedicated computers are configured for "test taking", there shouldn't be any room for academic dishonesty. You probably can't let students use their own laptops unless you really think your honor code is taken seriously by all (which, I think, is rare).

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
  9. 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 Anonymous Coward · · Score: 1

      If you have such disability you should let it known. In my country, you'll get additional time - I suppose it might be the same in the US. Or other measures might be taken, up to having someone accompany you if that's needed. In other settings, blind people are allowed to have a dog in places restricted to dogs.
      I mean, someone thought of these problems already, before I was born.

    3. Re: There's a point to it by Anonymous Coward · · Score: 0

      Legibility generally isn't a prerequisite. My handwriting is horrid, and none of my teachers have given me a hard time for it.

    4. Re:There's a point to it by mysidia · · Score: 1

      Avoid all technology problems. My computer crashed. My battery's dead. I accidentally deleted the file. I have the wrong version

      Computer based testing is typically administered using special software or a HTML5 web-based app. High school students are taking ALL their tests in ALL subjects using computer-based testing these days..... I think Universities could easily be doing the same, and No.... the student shouldn't need an IDE on the test. Nor should they be expected to be writing fully functional programs on a CS test.... the purpose of the test is to show they have learned the CS material and mathematics knowledge deemed relevant or necessary to the course.

    5. 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.

    6. Re:There's a point to it by Anonymous Coward · · Score: 0

      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?
      *

      I think you've described nicely what bugs me so much about the TDD cargo cult! Thanks!

    7. 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.

    8. Re: There's a point to it by Anonymous Coward · · Score: 0

      Not googling. Wtf is disgraphia.

    9. Re: There's a point to it by Anonymous Coward · · Score: 0

      It's a condition where a person wants a real degree from a real school, but wants special treatment and easier conditions, but without an asterisk on their degree. For example, getting extra time on an exam or being allowed to use a computer when no one else can.

    10. Re: There's a point to it by Anonymous Coward · · Score: 0

      Not googling : it's obviously a made up word based on ancient greek, from dys- meaning "fucked up", and graphia has something to do with 'graphics'. You heard of 'graphics', probably? Could be about drawing, but there are some terms like graphology, calligraphy where it refers to writing. Though, these are about the "drawing" act of writing.
      To sum up, dysgraphia likely just means "can't write"

      (perhaps it should really be dysgraphy, French language would say dysgraphie, no choice to make between a -ia and -y ending. -ia is dubious latin ending perhaps)

      What's a spectrograph? a device that "writes" a spectrum.
      What's a megalopolis? etc.
      We've been playing that little game for centuries, such that even if you never studied ancient Greek you should recognise what the words mean. I guess that was a pre-google thing. The bonus of that embedded legacy Greek language is the made up words are the same in dozens languages. e.g. links on the wikipedia article for megalopolis indicate the word is the same in Spanish (and other languages of Spain), Italian, German, Polish, Ukrainian, Turkish, Kazakh, the other ex-Soviet countries from central Asia. Bulgaria too, which is next door to what was Constantinople, the capital of an empire for a milllenium. In the whole millenium before that millenium you had Alexander the Great speaking Greek. The famous Cleopatra was Greek.
      Hence this embedded language spans now at least the Americas, entire Europe, ex-USSR.

    11. Re:There's a point to it by uncqual · · Score: 1

      Frankly though, even just writing by hand for two hours is painful, frustrating, and slow if the rest of the time you type almost everything. If you take notes in class on a laptop, type all your papers, and (of course) do your programming assignments on a (guess what) computer, the muscles in your fingers are probably just are not used to writing longhand for very long.

      A CS test should not be a test of how diligent you are at doing hand exercises during the semester in order to prepare your hands for a longhand test.

      I'm LONG out of school but if I try to write more than a few lines of English text, my fingers get tired and it becomes almost illegible as I've been typing 99.9+% of my written work (including "out of class" written assignments when I was in school) since the mid 70's.

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
    12. Re:There's a point to it by Anonymous Coward · · Score: 0

      Languages can be C or a functional language, where giant libraries of everything aren't really thought of as being part of the language. I did these without touching an IDE. Not saying that was a good thing - maybe it was lazy in the bad meaning of the word to stick with text editors used as notepad clones like everyone did.
      Also, it was the early 00s and we used X terminals with a raw Motif window manager, the remote machines were monsters with 8 CPUs, gigabytes of RAM and SCSI etc. but if everyone ran Eclipse that might have brought them down.

    13. Re:There's a point to it by uncqual · · Score: 1

      It's hard to say that one has a well rounded CS degree if one does not know at least one language and preferably more. I probably used at least 15 different languages in the 3-4 years I spent getting my CS BSc decades ago from a fairly well respected school. Of course, only one of languages I used in school did I ever use professionally and that was quite a different dialect of the language. However, this exposure to multiple ways of expressing algorithms and working at different levels was quite helpful - Simula, LISP, APL, Assembly (various), Microcode (Varian), Algol, and SNOBOL come to mind as being among the useful ones. Some were similar enough to others (or just annoying) to not be as useful (FORTRAN, Basic, Pascal come to mind in this category - although spending way too many recreational hours reverse engineering the intermediate "compiled" file format of BASIC on a PDP with not one word of documentation was fun and there were still a few bytes I never figured out - for some reason my girlfriend didn't seem nearly as interested in this as I was!).

      Fortunately, I never had to, or chose to, actually write COBOL - in my spare time I read a book about it and swore I would never ever:

      PERFORM VARYING Pain FROM Low BY TooMuch UNTIL Pain GREATER THAN Tolerance

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
    14. Re: There's a point to it by Anonymous Coward · · Score: 0

      Damn. And I had mod points but already posted to this thread. '+1 Insightful' would have been my vote!

  10. 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?
     

    1. Re:As someone who has set exams... by LinuxIsGarbage · · Score: 1

      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)?

      This one is currently done all the time. Frequently students with learning disabilities are given special accommodation. Usually in a room separate from the rest of the class, sometimes given additional time to write. I'm sure those assistive technologies are accommodated as well.

    2. Re:As someone who has set exams... by mysidia · · Score: 1

      I've had interviews where they want code written on the whiteboard

      The purpose of taking computer science is not to learn to write code; nor is it to pass an interview --- coding is a trade skill that is barely germane to CS, other than computer scientists need implementation languages to express their ideas And may analyze code and may use CS concepts to design and build compilers and systems that parse or optimize code, and there are other training routes to learn coding itself (which are shorter courses and a different path of study from computer science).

      People won't generally write code on a whiteboard.
      But there are MANY weird things people can be asked to answer or do at a job interview which are totally outside the realm of what a CS degree will prepare them for.

    3. Re:As someone who has set exams... by Anonymous Coward · · Score: 0

      I have three degrees form a university that has focused practical exams. They are more challenging, but also behave as a trial by fire for workplace competence. I'll give one university's solution to these questions.

      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?

      The purpose is to determine if they can complete a programming task in the real world with the skills they have gained. Using the internet and bringing in materials is expected everywhere else except an exam at a university. The only cheating that can be done is asking others for help and that is easily monitored.

      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?

      You fail if you can't get the exam done in the time allotted. Hardware failures and accidents happen. Solve the problem or fail to be counted among those that can.

      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)?

      Let them use whatever they normally use. It's up to them outside the class. It's up to them in the class.

      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)?

      They may reschedule exams within the semester window for medical reasons. If they can't pass the exam by the end of the semester, they can't pass the class and will have to take it again.

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

      Whatever they would like. Again, the purpose is to ensure some skill in the real world and not be hand-held at university. They can use what they want. Some professors will ban libraries, but most will design exams such that libraries and code samples will be useless to those that don't understand the concepts.

      Clearly a hard-line stance, but what is the point of hiring a CS grad if they have not proven they can use the most efficient processes to complete tasks. Why would a hiring manager take on a grad that hasn't and wont use every resource available to complete their tasks in the most efficient way for the organization if there is another candidate that has?

    4. Re:As someone who has set exams... by Anonymous Coward · · Score: 0

      How do you deal with students who sent skieing in the holiday before the exams and broke both arms?

      Both arms? Presumably their mother would help them out then, with the father's knowledge and approval.

    5. Re:As someone who has set exams... by uncqual · · Score: 1

      The purpose is to determine if they can complete a programming task in the real world with the skills they have gained. Using the internet and bringing in materials is expected everywhere else except an exam at a university. The only cheating that can be done is asking others for help and that is easily monitored.

      Wrong (usually), the purpose of an exam in school (unless perhaps the course is Computer Plagiarism 101A) is to measure your understanding of the material, not "to get it done" -- after all, your degree is telling the world that you understood the curriculum and, if you have the degree and didn't get the curriculum, you are sullying the reputation of the University and reducing the value of the degrees of the other students around you. That is not the purpose of programming in the "real world" - the goal is to get it done properly (including not compromising IP by copying code that you don't have rights to use in the way you are using it). Hence, except what the professor authorizes (as in an open book test where she states that you can use the textbook or some other specific reference material), everything is off-limits -- and that usually will be "the whole internet".

      This pretty much mandates locked down dedicated "workstations" w/o internet access and without networked access to other students or anything but the "authorized open books" unless the University has an honor code that is taken seriously (likely requiring severe consequences for a violation -- such as expulsion with no opportunity to return and permanent refusal to release transcripts on a student's first violation).

      Let them use whatever they normally use.

      Unfortunately, the need for dedicated locked down systems makes this impractical -- although, there's no reason (except administrative costs) several popular environments shouldn't be available.

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
  11. Uphill both ways by Anonymous Coward · · Score: 0

    Next those spoiled brats'll expect to have access to stack overflow before they can answer their questions.

    1. Re:Uphill both ways by Chris+Mattern · · Score: 1

      Next those spoiled brats'll expect to have access to stack overflow before they can answer their questions.

      Well, that'll weed out the ones stupid enough to use it.

    2. Re:Uphill both ways by Restil · · Score: 1

      Better yet, allow them access to it, have it only display a single random answer to any specific question, and don't provide a compiler to test if it actually works.

      --
      Play with my webcams and lights here
  12. 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/
    1. Re:No by Anonymous Coward · · Score: 0

      Aren't all shop teachers retired by this point in time?

    2. Re: No by Anonymous Coward · · Score: 0

      Whoa! For the first time ever I have now seen you post something that makes sense!

      Oh, it isn't politics/AGW (same thing) so you stood a chance.

      Stay with non political topics you know something about and you'll be ok.

  13. Code should be mostly comments anyway by Anonymous Coward · · Score: 0

    So paper is ok

  14. 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.

  15. Not dumb by Anonymous Coward · · Score: 0

    To write code from scratch with a pen and paper indicates true mastery of the subject. (if it's good)

    But, yeah, it's a bit like requiring fountain pens for exams.

    If it's just a case of lack of resources that's a whole different thing.

    1. Re:Not dumb by Chris+Mattern · · Score: 1

      But, yeah, it's a bit like requiring fountain pens for exams.

      Hey, I love fountain pens! I own about a dozen. Main problem is cheap paper isn't made for them anymore--the ink feathers.

    2. Re: Not dumb by Anonymous Coward · · Score: 0

      Fountain pens are also a massive problem for us left-handers.

  16. Same could be asked of all exams by Anonymous Coward · · Score: 1

    [I'm a college professor that does a lot of science-related programming, but not a CS prof]

    If you get an IDE and/or compiler to test your program, then the exam changes in kind, turning into a practical assessment more than a theoretical one. This is good in some cases, and bad in others, but I would guess that most programming exams with a functioning compiler might as well be a "take home" software project. If you don't get an IDE or compiler, getting an editor is mostly convenience, but the considerations are the same between a cs paper-code exam and a sociology open question exam.

    At our university, I would say 90% of our exams are pen-and-paper based. This is annoying for everyone involved, from the student (RSI, more time spent writing than thinking, no longer used to think "linearly", e.g. without quick editing), the professor (bad handwriting, lugging stacks of paper around that you really shouldn't lose, more difficult o spread the work or grade by question) and support/admin (more difficult to archive, more difficult to check samples post hoc, etc).

    The reason why? A lot of our university's exams are in the same weeks (to make it easier to mix and match courses), so there is a peak demand for probably well over a thousand exam seats. Normal computer labs aren't really suitable, both in terms of layout and software (to prevent cheating). They have facilities for digital testing, but it's too expensive to provide enough, so the higher priority courses get served first, i.e. exams like applied statistics where you actually use a computer program for the test.

    So, yes you're right that it would be a lot nicer if more exams would be computer based, but in most cases CS is no different from e.g. sociology in this respect.

    1. Re: Same could be asked of all exams by Anonymous Coward · · Score: 0

      Disagree. The computer is a crutch and not required to write an exam. This is not a driving test. It is a test of your ability to navigate a map from memory.

    2. Re:Same could be asked of all exams by whitesea · · Score: 1

      ... exams are pen-and-paper based. This is annoying for everyone involved, from the student (RSI, more time spent writing than thinking, no longer used to think "linearly", e.g. without quick editing), the professor (bad handwriting, lugging stacks of paper around that you really shouldn't lose, more difficult o spread the work or grade by question) and support/admin (more difficult to archive, more difficult to check samples post hoc, etc).

      Can't help with bad handwriting, but you may want to try Gradescope for the rest. It solves all the problems you mention and then some.

  17. 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.
    1. Re:Two issues: cheating and difficulty by Anonymous Coward · · Score: 0

      Let students do the exam at their own home. When they submit the answers ask them questions about their code.

    2. Re:Two issues: cheating and difficulty by Anonymous Coward · · Score: 1

      Then you will be testing the coding skills of Indian programmers on fiverr instead of your students.

  18. I had one professor do this in college by Anonymous Coward · · Score: 0

    I think the idea of making student write code on paper comes from countries that don't use the Latin alphabet. If you're in China or Russia or something, making them write the code shows they know how to write Latin characters by hand. It was slightly annoying, but on the other hand it meant we could have a quiz with actually coding rather than multiple choice picking possible outputs to some given code.

    1. Re: I had one professor do this in college by Anonymous Coward · · Score: 0

      Disagree. This is a navigation test. Not a alphabet test.

  19. I'm going through this right now by Anonymous Coward · · Score: 0

    Downside: My fingers hurt from writing so much.
    Upside: I'm actually spending time on learning to optimize my code and make it more simple, easier to write. Start with something complex, rewrite and make it less redundant and repeat.

    I try to stop before it starts turning into write only code.

  20. Absolutely NOT! by Anonymous Coward · · Score: 0

    A chisel and a big slab of granite please. In addition to write the code, the student should also shape it like a tablet. Preferably with a notch!

    1. Re:Absolutely NOT! by tomhath · · Score: 1

      In addition to write the code, the student should also shape it like a tablet.

      Points off if the tablet has rounded corners - that infringes on Apple's patent.

  21. 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.

  22. 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.

  23. Cram based tests are stuck in the past and big han by Joe_Dragon · · Score: 1

    Cram based tests are stuck in the past and big hand written ones just make it easy to make spelling / spacing / etc errors.

  24. 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?

    1. Re:It all depends what you are testing. by Ronin+Developer · · Score: 1

      Agree wholeheartedly. I, actually, have a white board in my apartment when I design systems. But, I do enjoy using tools like Visual Paradigm (a UML) tool or an ERD designing tool to flesh out the designs and work out bugs and edge cases. But, not one line of code is written before it's time to do so. Then, I enjoy a decent IDE with code completion to make the writing part easier.

      In college, the written book tests provided a way to guarantee the work is your own and demonstrate mastery of a skill or language without a crutch. I still remember how we'd write "solutions" to FORTRAN CS problems (circa 1984-88...dark ages of computing) and print them...only to find our printouts stolen before we made it to the printer. Got a laugh out of it as about 2/3 of the class would turn in our false solutions and fail the exam. Yeah...we were dicks. LOL

  25. Re: As a high school programming teacher, I don by Anonymous Coward · · Score: 1

    That's great! You're reaching your students that knowledge is useless because of course there are never bad answers to anything on the net. They should just cut n paste whatever shit they find in Google from an h1b posting 8 years ago.

  26. Survival reqiurement by fluffernutter · · Score: 1

    I think we should just remember that writing with pen/pencil and paper is an important life skill, and we as humans should try to keep that skill well rehearsed for the sake of the human race. The skill will come in handy if the lights ever go out.

    --
    Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
    1. Re:Survival reqiurement by Anonymous Coward · · Score: 0

      No, it isn't an important life skill. Not any more.

      Just because a pen and paper was the standard method of writing does not mean that it is forever relevant. Making fire with two sticks was once an important human skill, now it's just a hobby for a few. Chipping your spear points was an important life skill, it's irrelevant outside of archaeology now. Tilling the soil with a hand plow, making clothing from animal skins, spinning wool, weaving, how to crank start your car, and many of other things were once important life skills. They're not any more.

      The time of paper and pen is ending. The lights aren't going out.

      Enjoy your hobby, but the human race doesn't need it to survive any more.

  27. Paper disadvantages dyslexia and dysgraphia by nbritton · · Score: 1

    How do they get around disability laws with this? There are a fair number of people that go into computer assisted professions because they have reading and/or writing disorders such as dyslexia or dysgraphia. I'm at a serious disadvantage on a paper test because I have both. Spell check, grammar check, and syntax highlighting are fundamental requirements for me.

    1. Re:Paper disadvantages dyslexia and dysgraphia by Anonymous Coward · · Score: 0

      just tell them fill out this forum and go collect you check.

    2. Re: Paper disadvantages dyslexia and dysgraphia by Anonymous Coward · · Score: 0

      Dunno how your teachers grade, but I don't penalize syntax errors, as long as the algorithm is correct. The exception being questions that are specifically about syntax (example, how to create an anonymous class).

      That said, everyone has strengths and weaknesses. Your dyslexia is your weakness. Me, I have a crappy memory. We all have to find ways to compensate - it's not the tester's job.

    3. Re: Paper disadvantages dyslexia and dysgraphia by Anonymous Coward · · Score: 0

      But he has found a coping mechanism for his dyslexia, and it's one that will be available to him his whole career, just not in exams.

      It's not unreasonable to allow for the fact that his exam answer might start "pubic class" and accept that as correct, the knowledge and intent is clearly there.

  28. Re:Student knows best - Maybe by Spazmania · · Score: 1

    That makes the case for being allowed to test out of a class. Which should be allowed for any class that's not core to the curriculum.

    --
    Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
  29. 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!
    1. Re:Utter Arse! by Anonymous Coward · · Score: 0

      In that case, if they use an IDE, expect perfectly functioning 100% correct code, with much stricter grading.

  30. Uhh... by Anonymous Coward · · Score: 0

    Not only that but also the coursework in general is bad. They teach "PSP", don't teach git, still use textbooks from the 90's. And I go to a high ranked public college. Often when you're allowed to use IDEs it's something like Eclipse and all other ones get the axe or using IDLE to program in python. The tests of course are done on paper still.

    Ridiculous.

  31. 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.
    1. Re:Paper ... by paulxnuke · · Score: 1

      I can relate! I had to learn to keypunch for several classes... I bet this snowflake would love to do his tests that way. I hope I get to give him his first whiteboard interview.

      Writing everything out ahead of time was a great learning tool. I usually did the next day's assignment at home (no computer, not even embedded controllers in appliances) and it took forever, but I could make the most of my half hour or so on one of my college's 3 Apple II's the next day. It was a little better in BASIC (PDP-11, 8 or 10 terminals scattered around campus) but BASIC gets old.

  32. Not really by execthts · · Score: 1

    >The point of the paper exams was to check if I understood the *concepts*. Yeah, except when the sadistic professor doesn't actually test you for the concepts and fails you for minor errors that you would call a typo on a computer screen. This was my experience.

  33. NO! by gordona · · Score: 0

    You should test how you learn. How many folks program without ever looking at different web sites. Tests should be real world.

    --
    "Gentlemen, you can't fight in here! This is the War Room!" -- Dr. Strangelove
  34. No pooters by Anonymous Coward · · Score: 0

    For my programming exams I got to write out C, LaTeX, Racket, bash, SQL, and assembly on my exam papers. Only 1 class used online. I liked paper exams for this. Makes you think harder.

  35. Qbertino is a fool by Anonymous Coward · · Score: 0

    Qbertino is pursuing a comp sci degree

    Really? Why? You're just flushing your time and money down the toilet. There aren't any jobs for computer science graduates. There are exactly zero jobs. Go on. Spend years applying for fake jobs that don't exist. Come back when you've given up and realized that your degree is completely worthless.

    If you go through with it and get the degree, you're totally fucked.

    There. Are. ZERO. Jobs.

  36. Nothing wrong with paper by Anonymous Coward · · Score: 0

    If you know the material you should be able to write it down with paper and pencil.

    The question is whether the exam can be completed in a reasonable time. So the problems should be compact enough. It should be acceptable to use pseudocode, flow charts, etc to express the ideas clearly and show you know the material.

    If you cheated your way through the semester by using others code ideas, you won't be able to complete the final exam. That was my feeling - if you studied all semester and did the assignments yourself, the final should be a cakewalk. You already studied it, now prove you know it.

    Otherwise, why are you at university studying courses in computer science, if you just want to be a code monkey?

  37. 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?

    1. Re: Computer Science != Programming by Anonymous Coward · · Score: 0

      Yes, I would. Civil engineers sound the perfect candidate for the spaghetti and glue gun bridge test!

    2. Re:Computer Science != Programming by Anonymous Coward · · Score: 0

      Yes. In under two hours using only two #2 pencils and all of the paper in the exam book.

      But then again, I'm a bastard.

    3. Re:Computer Science != Programming by twistedcubic · · Score: 1

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

      Yes, but a properly scaled-down version. I agree with paper-only programming exams, but I have to criticize your imperfect analogy.

    4. Re:Computer Science != Programming by Anonymous Coward · · Score: 0

      Remember, the work product of civil engineers is drawings and reports, not roads and bridges. So this is really like asking if a Civ-E exam should be given on paper or at a computer with CAD and an analysis tool (like a physics simulation).

      dom

    5. Re:Computer Science != Programming by TuringTest · · Score: 1

      That's great as a practice on structures. Not for testing their understanding of the strength of materials theory.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    6. Re:Computer Science != Programming by Anonymous Coward · · Score: 0

      No, we give them iron ore, limestone, coal and similar materials, and ask them to build a Ferris Wheel (so we get machinery in there too).
      You have 8 hours, begin now.

  38. No. by Anonymous Coward · · Score: 1

    The test is not fair.

    If the partner you are paired with doesn't have the necessary logical-thinking skills, no amount of explanation will make them competently understand an algorithm with any degree of sophistication at all.

    And anyway, your ability to explain things well to others is a separate skill from your ability to create, analyze, optimize algorithms. While it is true that you must understand it well in order to explain it well, it is not true that you must explain it well in order to understand it well.

  39. Does the medium really matter... by QuietLagoon · · Score: 1

    ... if the purpose of the exam is to determine coding capability?

  40. Heh by Anonymous Coward · · Score: 0

    I had a slightly different issue.

    Last semester I had a written test in my CS program as well. I was thoroughly aware of the subject material, and was acing the homework assignments, even using somewhat novel techniques, just for fun.

    But I struggled more with the written variety because it was less forgiving. My development style relies on feedback from the system for things like type checking or other conventionally supplied features.

    So, I can program with little problem in the real world (been there, done that), and understand the algorithms fine, but the written test put an unexpected premium on being "mistake free" which I found to be troubling, because it wasn't representative of the real world.

    Long story short, I had problems with the first test due to this, then paid attention to mitigate it for later tests, and did fine. But the way it prioritized "perfection" was a surprise.

  41. Of course by Anonymous Coward · · Score: 0

    The answer to "Did I miss something?" in any article is always: "Yes. You missed the whole point."

  42. Operators by myid · · Score: 1

    I agree with the above advantages of paper over typing. However we have to consider clear handwriting, to know if the test-taker wrote the correct operator. The operators less than, open curly brace, open parenthesis, and open square bracket look similar to each other. And a period and comma look similar. So do ! and | .

    If a test is on paper, one way to get around clear handwriting problems is to have a multiple-choice question:

    How do you express the ith element of myArray?
    a) myArray[i]
    b) myArray(i)

    1. Re:Operators by angel'o'sphere · · Score: 1

      In Pascal/C it is a)
      In BASIC it is b)
      So what is your point?

      If one writes either of it in pseudo code in an exam, I know he knows what he is doing. Why would I fail him the test?

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

      So what is your point?

      My point is that a multiple-choice question is a way to avoid the problem of not being able to read the student's handwriting, and not knowing if s/he wrote brackets or parentheses in the test.

    3. Re:Operators by Anonymous Coward · · Score: 0

      As someone that has graded both weekly hand-in assignments and exams in a CS101 course over the number of years, I can say that student handwriting wasn't the big issue... ever.

      Some might have purposely written bad to try to cover up the fact that they were guessing and throwing a hail mary in hopes that they could get some partial points for that question.

      And at least when we did a CS exam, minor syntactic errors were ignored and the grader just corrected it with the red pen. Major syntactic errors that made the code not make sense any more gave deductions of the grade total off course.

      When we graded the tests, we always had the mindset to try to understand what the student were trying to do. After all, we weren't a compiler throwing compilation errors, we were trying to see if they had grasped the concepts and could solve the tasks given. If a student proved that they also could code correctly, it was a bonus.

    4. Re:Operators by angel'o'sphere · · Score: 1

      Multiple choice tests are easy to 'cheat'.
      And I never heard about a stupdent who had so bad hand writing that he could not write in 'printing letters'.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  43. Do it to other professions.... by Anonymous Coward · · Score: 0

    Hey I need you to paint a house, but I am going to not let you use a paintbrush.

    And I'm going to blindfold you.

    While throwing spitballs at you and scribbling all over your plan drawings.

    -----------------

    Seesh, let us use our freaking tools. My brain is optimized to only remember what is needed. I say this as a Vim-using C++ coder on Gentoo who can install it without a manual. Without google for quick lookups, I'm paralyzed against those who wasted their time learning things no one ever is not able to lookup (except when artificially paralyzed by contest rules).

    Might as well practice crawling fast since I won't be allowed to run upright during that next marathon..... I'm sure we'll find the best runners with those restrictions!

  44. 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++
  45. Re:Student knows best - Maybe by Anonymous Coward · · Score: 0

    Back in highschool I mostly did math homework in English classes. I was pretty bummed that university wasn't any better at organising this sort of stuff. Adopting some parts of MOOCs could be god here: Just follow the lecture videos, hit up the lecturer when you're stuck, work on the assignments, do in-person exams whenever you're ready.

    (I also was really annoyed you could in fact get dispensation for a core class in the second year of university CS if only you'd done accounting in the second-to-last year of highschool. That really ticked me off at the entire university course.)

    * As a second language, since it was for all of us, in fact most everyone in the country. But I digress.

  46. Yup by Anonymous Coward · · Score: 0

    Same here, all my exams were on paper. One we had to write out both Python and C++. Basically it was just memorizing syntax. Very tedious and probably worthless. Be prepared to be very disappointed in CS from universities. You will need to teach yourself to code while passing their memorization tests.

  47. Re:As a high school programming teacher, I don by Anonymous Coward · · Score: 0

    I am a community college instructor and hope the audience will forgive me for posting AC.

    I give paper tests, quizzes on an LMS (Blackboard/Canvas/Moodle/et cetera), and programming labs. Exams are all open (paper) book, no electronic devices. Students usually have access to a PC with Visual Studio and the Intel architecture manuals (for Computer Architecture classes) during tests, but the lab is not connected to the internet. The final may be split into a paper-only, no resource segment and a segment with the PC available.

    It is my experience that there is a certain segment of every class which can answer multiple choice questions OK, but flounder when asked to write any code. I am very lenient regarding syntax errors. But giving exams on paper, requiring problem analysis, design, and coding is essential to identifying those who should be counseled to change majors.

    Learning disabled students have more time in a separate, quiet room to complete their exams.

    Let the flames begin!

  48. What is the problem? by Anonymous Coward · · Score: 0

    Im job interviews, meetings, etc you have to be able to express yourself without a computer.
    You should know enough code to write something that maybe has syntax errors but will describe clearly what you are going to do.
    The low level code monkeying might be outsourced to India when you as a developer has solved the problems and used 3 times the coding time documenting it.

  49. Re: As a high school programming teacher, I don by Anonymous Coward · · Score: 0

    Well it seems your education was also a waste of money. Since you clearly cannot read between the lines or comprehend a text which is longer than two sentences. The teacher above didn't mention that they should copy something without thinking it over if it works or not. But lexical knowledge is really overvalued in our world and the only advantage you have with your lexical knowledge is that in some corner cases you might recall some lexical facts faster then I can google it or find it on stackoverflow which is an extremely small proportion of the cases.

    And actually one of my job interviews in a reputable London based company was exactly like this. We sat down to a laptop together, they opened the IDE with some code in it and they asked me to refactor it and find bugs in it. I could ask questions from a domain expert and a software developer to finish the task. I really enjoyed it. The task was challenging but fun and very much relevant to the job. All tests should be like this. Not like asking trivia on whiteboards or paper.

  50. I do it on paper by lorinc · · Score: 1

    I do my OOP exams on paper because I don't care if you can or cannot write correctly in $LANGUAGE. The IDE and stackoverflow will eventually correct your code syntax. What I want to test is whether you can understand what a piece of complex undocumented code does, how do the OOP concepts work in practice* and whether you are capable of designing a software architecture that uses said concepts to solve a non-trivial problem.

    If you think a good programmer is somebody that can translate a pseudo-code algorithm into his/her favourite language blindfolded, think again.There will be an AI available on the market that does that quicker and better than you before you hit 40.

    * Here's an example in Java:

    class A {
        public int x;
        public A() {
            this.x = 0;
            inc();
        }
        public void inc() {
            this.x += 1;
        }
    }

    class B extends A {
        public B() {
            super();
            inc();
        }
        public void inc() {
            this.x += 5;
        }
        public static void main(String[] args) {
            B b = new B();
            System.out.println(b.x);
        }
    }

    What does that code print and why? You'd be surprised how many students fail a question like that. Now, this is typically a paper question that doesn't make much sense if computers are allowed. However, I think it's a question that makes a clear distinction between the students that truly understood what polymorphism is and those who did not completely, which is a pretty good indication of who is going to design correct programs and who is not....

    1. Re:I do it on paper by angel'o'sphere · · Score: 0

      Wow, you make people write code like this?

          this.x = 0; // superfluvious ... it is initialized to 0 by default. ...
      public B() {
                      super(); // superfluvious, the super class constructor is called automatically
                      inc();
              }

      If you would ask me stuff like this I would laugh my ass off.
      Especially this:

      However, I think it's a question that makes a clear distinction between the students that truly understood what polymorphism is and those who did not completely,

      The code has nothing/not much to do with polymorphism ... I guess you should not be a CS teacher, but perhaps you are just tired from your hard work and made a bad example. (Hint: B calls in its constructor a method defined in B. In C++ it would always call the implementation of B, statically. Same for A. In Java the constructor of A "unfortunately" calls the inc() implementation of B, which is a design flaw of the language. Asking students about such trivia is plain stupid and nitpicking. I bet if you ask 100 senior Java programmers and C++ programmers chances are: no one knows the correct answer!
      There is actually an official anti pattern for that: Intellectual Violence ... or as we germans call it: mental masturbation.)

      (I bet a wage of one year that, you did not even know/knew that C++ behaves exactly opposite way ... so much to "understanding polymorphism" )

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    2. Re:I do it on paper by Megol · · Score: 0

      Long time since I touched Java but can one actually have main inside a class?

    3. Re:I do it on paper by Anonymous Coward · · Score: 0

      I am not the instructor, but I have to disagree. The question has everything to do with polymorphism.

      Written simply as a question, it is "What happens if you call a polymorphic (virtual) function from a constructor? Will the derived function be called or will the base-class version be called?"

      That is especially important to understand if students move between languages (which they will).
      Similarly, as a teacher, I would think important to point out to them that x will be initialized to 0 in Java, but it won't be in C++.

    4. Re:I do it on paper by Anonymous Coward · · Score: 0

      In Java, main() is always in a class. In Java, almost everything is in a class.

    5. Re:I do it on paper by Megol · · Score: 1

      Slashdot: where an honest question is moderated troll :D

    6. Re:I do it on paper by Megol · · Score: 1

      Thanks, as I wrote it was a long time since last touching Java. Remembered the OOP to absurdity mindset behind it but not the specifics.

    7. Re:I do it on paper by Anonymous Coward · · Score: 0

      Seems to me that question is implementation-dependent and doesn't teach any general lessons about polymorphism.

      The best lesson to take away from this is: if you're going to move between OO languages, don't assume they implement the same rules about polymorphism.

  51. The exam was OOP1. Pure code. by Qbertino · · Score: 1

    The exam was OOP1 and pure code on paper. So your critique doesn't compute.

    --
    We suffer more in our imagination than in reality. - Seneca
  52. Seems reasonable by Anonymous Coward · · Score: 0

    I graduated in 2009 and all of my CS finals ever involved a paper exam. Given that over the course of each term I would have to write multiple programs that had to compile and pass the grader's testing programs, it seems perfectly reasonable to me to have a paper test. They already know by that point whether or not you can code in an editor. They want to know if they can think clearly and rationally about algorithms:

    1. Under a tight time constraint
    2. Without anything more sophisticated than a pen and paper (imagine doing a literal back-of-a-napkin design)
    3. On your own without help

    A paper exam is the best way to do it. Bear in mind that the questions in these paper exams are going to be appropriate to the medium - 20 lines at most, including comments and closing curly braces.

    Because hey, guess what, sometimes you'll need to do this in the real world. You're in a conference room with other developers and all you have to work with is a whiteboard and marker, and you need to outline your algorithm to them.

  53. Re: As a high school programming teacher, I don by Anonymous Coward · · Score: 0

    This is computer science. Not coding 101. If you are asked to write code, it is to demonstrate versatility in mapping algorithms to arbitrary code vernacular which was part of the syllabus. By not knowing the rote usage of constructs, you are forcing synthesis of a solution in code instead of a solution in the algorithm. We are social learners. We should not relearn the how every time we have a problem or we are constantly having to relearn as we forget. You are the problem. You are the reason junior team members on my staff are routinely aghast when I ask them to use something they haven't looked up a in a while and I have to reteach it to them from memory. And then they are shocked that I've retained it.

    All you are doing is training a group of kids to always need a crutch and feel that they are entitled to it. You are not doing them a service. You are forcing them into a lifelong relearning cycle because you did not teach them to value knowledge.

    Knowledge is power. Shame on you for teaching otherwise. Some things do not have to synthesized each and every time. Some things should just be remembered as muscle memory. You are the reason why kids can't do simple math any more because they are taught to reason it out each time. The human mind is designed to acquire and chunk knowledge because the speed of our perception is limited. A chess master cannot use your method. A plumber cannot use your method. Only a blank slate that has to work everything out each time can use your method. You are hobbling your students for life.

    With you as a teacher back in the time of Galileo, the students would be dropping cannonballs to calculate gravity. Or redoing Leibnitz sums instead of integrating.

    Teach how to value knowledge and when higher thought is needed. Not everything online is worth having to look up. Stop taking the easy way out with your students. Demonstrate why knowledge itself is power instead of worrying that they will not engage. Do your real job instead of getting paid. My Ontario teachers from high school would be appalled at your method.

  54. 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.

    1. Re:vim is what I use. If you know the language by ceoyoyo · · Score: 1

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

      Agreed. Which is a great reason not to use them. It's like looking at your fingers when you type. It helps when you're a crappy typist, and when you're learning you can fool yourself into thinking it makes you better, but you'll never learn properly if you do.

  55. It's a matter of degree. by msauve · · Score: 1

    Wait, he's complaining that he has to use paper in order to get a piece of paper?

    --
    "National Security is the chief cause of national insecurity." - Celine's First Law
  56. Both are helpful... by mcorner · · Score: 1

    Speaking as someone that teaches second semester CS to 300 undergrads a semester, there is value in both.

    Advantage Paper: The computer is a crutch. If you know it, you can write it. You are going to to have to do this in coding interviews. Requires no infrastructure to give an exam without cheating. (I actually don't have the space/computers to give a computer exam to hundreds of students at a time.)

    Advantage Computer: I/TAs don't have to grade it, I can just use gradescope.com and students won't argue with me for partial credit.

  57. Re:As a high school programming teacher, I don by Anonymous Coward · · Score: 0

    >Let the flames begin!

    Ok, here goes. Why are you "identifying and counseling" students to change majors away from CS? Let me guess, the students you identify to change majors away from CS are women and underrepresented minorities. Sorry, if some student blows your exam, that doesn't give you license to try to change the course of their life.

  58. Coding, no. Big picture stuff, YES! by Anonymous Coward · · Score: 0

    Coding, no. Big picture stuff, YES!

    When I took programming in school, the tests were about pseudo-code and big ideas. Homework was graded either by showing the code and running it in front of the teacher or by turning in the code, compiler output and runs.

    15 yrs ago, I was applying for a senior systems architect position at a large financial services company. My resume had C/C++ on it, but I hadn't done any of that in 3 years and mainly on Unix systems. After the interview, I was sent to another room for testing, which was a shock. They put me behind a Windows computer, which I hadn't programmed on in 5+ yrs, and handed some paper with coding questions.

    After looking through the test, I stood, told the proctor that I clearly wasn't the guy they wanted, and left. I wrote a thank her to the VP explaining where I was coming from. At that point in my life, I wasn't going to code anymore. I'd been happy coding for 15 yrs, but wasn't ready for the 50% pay cut or to be a code monkey anymore.

    I can completely understand why testing someone's skills for a position is needed. Nobody mentioned that there would be any testing involved. My resume was loaded with technologies in a list for everything I'd used over 15 yrs. I wasn't prepared to be tested on OSI models or writing an outer-join in SQL at that point either.

    I still code a little, but mainly in bash or perl. Wrote some bash this morning. The C and C++ standards have all changed since I last did anything non-trivial. Heck, std templates were new and we were migrating from RogueWave tools when I stopped.

  59. 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)
  60. Most of mine were by Anonymous Coward · · Score: 0

    A lot of my beginning classes in college were only on paper for the exams. We would use the computers during class and kinda peer-program with the professor (if we were learning something new) or program by ourselves after he taught us the basics using a projector (the camera-based ones, not the old-school ones that you need to print on clear plastic).

    Only during my final year was I able to write my programs on a computer, and they were much harder.

  61. Papyrus, parchment, slate? Who cares? by Anonymous Coward · · Score: 0

    If you want to make it harder for the students, give them access to a computer that contains no software at all. See if they will write an editor before starting work on the exam questions.

    In my time the students had access to computers where tney could do programming assignments. The theoretical exams used paper. Today, programming tests in job interviews are often taken on paper.

  62. Thats why we have Libraries. by wolfheart111 · · Score: 1

    You think your better than the rest of the world? Goodluck.

    --
    [($)]
  63. That would be an interesting study. Slow autocompl by raymorris · · Score: 1

    It would be interesting to do a study on the extent to which autocomplete is a teacher vs a crutch.

    My guess is that the ideal would be a slow-response autocomplete, slow enough that it never appears while typing things you know, and it gives the learner a second to try to remember. If you stop typing mid-word for a few seconds (because you don't know) it prompts you with reminders.

    It's language-dependent too. For example, JavaScript was written in a just a few days. Because of that, the order of arguments and such is inconsistent in places. Reminders are needed more than in a more consistent language such as C. C is also a much smaller language, and therefore should be easier to learn quickly.

  64. Computing classes will ALWAYS be behind... by Chas · · Score: 1

    Mostly because of how slow ACTUAL information flows back to educational institutions, compared to the Internet-Speed changes in the workplace, educational courses are going to lag actual realities of working with technology by 10-20 years minimum.

    Hell, to take computer classes back in the late 80's, they were still REQUIRING you to take a typewriting class!
    Never mind that you don't use a computer the same way you use a typewriter or even a dedicated word processing machine...

    And, after leaving the Army in the mid 90's, I found that college-level courses were barely more sophisticated.
    If I wanted to take programming classes, I had to learn how to use OFFICE?

    REALLY?

    --


    Chas - The one, the only.
    THANK GOD!!!
    1. Re:Computing classes will ALWAYS be behind... by Anonymous Coward · · Score: 0

      It is not because educational courses lag behind "actual realities of working". It is because courses usually teach you concepts rather than tools. And for concepts, testing on pen and paper might actually be what you want since that really reflects how the "actual realities of working" is.

      How do you think an architect start a design of a new house? By sketches on pen and paper or complete architectural drawing in a CAD system?

      But sure, if you took a class in a specific programming tool, then it would make more sense to use that tool in the exam.

  65. Coding is still writing after all... by PmanAce · · Score: 1

    If you know how to code properly...why do you care about the medium used to do so? Writing stuff down actually forces you not to use shortcuts and demonstrates your actual knowledge. Suck it up! :)

    --
    Tired of my customary (Score:1)
  66. Re: As a high school programming teacher, I don by FFCecil · · Score: 1

    I hear what you're saying, many of my colleagues initially react in a similar way (though with more professional language, mind you). They make the same initial, and faulty, assumption -- that my students aren't being taught the skills necessary to analyze information for its authenticity/relevance. If I could pick one skill which is most important in our world of FAKE NEWS and biases galore, it would be that.

    Although I suppose we could stick to the government-supplied textbook model of information acquisition. Heck, it's worked for over 100 years, why change?

  67. Sounds like the summer of 9th grade. by shess · · Score: 1

    Back in those days, you didn't have a computer in your pocket. I had no computer access until school started in fall (and then it was really limited). So I wrote a threaded-code FORTH kernel in 6502 assembly on lined paper. Then I debugged it and rewrote it a couple times in between milking cows and attending band camp. By the time I had semi-routine computer access again, I had lots of other stuff I wanted to get to, so I never actually saw it in action.

    IOW, big deal, a computer scientist makes do with the tools available to build solutions. Even today, decades later, when I want to _really_ get a problem solved rather than just dicking around with it pretending to work, I take some legal pads to a quiet spot with no computer access and get shit done. When you go interview for a job, they also are probably not going to give you an IDE. When you get a job and have a project proposal, they aren't going to sit and watch you screw around in an IDE for a few hours until you start making sense.

  68. Re:That would be an interesting study. Slow autoco by Anonymous Coward · · Score: 0

    lol, slow-response...so that is a "feature" in Eclipse?

  69. 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!

  70. Real world practice as an interviewer by rcgorton.dg · · Score: 1

    Context: i graduated with a CS degree in 1983, and have been doing systems-ish stuff ever since. Compilers/Runtimes/Binary Translation/Interposing&Intercepting user space calls for security purposes. No web-ish stuff all all. Thus: when interviewing candidates for similar positions, debugging skills are key. Which means that general problem solving approaches are critical. Pseudo-code is just fine. Goofs are acceptable, and if the candidate can adapt to changing requirements (aka annoying product requirement changes) that is a big plus. I've recommended "HIRE NOW!" for one guy who got stuck on one part of the puzzle presented, but admitted it, and clearly had an approach outlined to attempting to solve it with more time. Fortunately, we hired him (great contributor)

  71. Exam integrity by Anonymous Coward · · Score: 0

    Yes, final exams are on the horizon.

    As an instructor who is considering this idea for CS1/CS2 courses, one major motivation is exam integrity. We teach with cloud based tools and everything goes into GitHub. I have no control over lab machine network access, etc. Other than a paper exam, how can I be sure of testing their mastery of relevant knowledge and skills? Seriously-- suggestions are welcome.

    (I wouldn't nitpick minor syntax issues, but I would expect `objectReference.propertyName` types of expressions to be correct, etc.)

  72. 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.

  73. Depends by Anonymous Coward · · Score: 0

    If the point is to write a substantial amount of working code that does stuff, it's a project, not an exam, and it should be done on a computer.

    If the point is to write a small amount of correct code that illustrates a concept, it's an exam question and should be written down.

    In projects, all but egregious deficiencies in application of the theory should not be emphasized. Instead, quality of design and implementation, process, documentation, user experience and satisfaction of project requirements should be the goal.

    In exams, all but outrageous errors in execution of code should be ignored if the theoretical principle is adequately demonstrated.

  74. As someone who gives the exams: Yes! by cowtamer · · Score: 1

    As a student this also annoyed the heck out of me. After all, you'll never be without a computer when you're the programmer -- whether it's 1995 or 2018.

    As a professional programmer I found great value in being able to write "stream of consciousness" code which compiles, runs, and does what I want it to do.

    Over the years, I realized that the only way to get my code to work each time is to be able to write and debug it on paper -- and to master the syntax of the language to the level of not needing the compiler.

    So now I give exams on paper and have recently taken away the cheat sheets which I used to allow.

    That being said, most of my intro programming classes focus on projects, assignments, and actually writing code during class. It is ABSOLUTELY pointless to have a paper only CS class. I also don't take off too many points for syntax and allow my students to define helper functions during exams without writing the bodies of the functions.

    You can (very inefficiently) get code to work by trial and error -- and you HAVE to do this when you're learning.

    However, if you can't at least provide the basic idea of what you're trying to do on paper, you haven't mastered the language or the content of the class.

    1. Re:As someone who gives the exams: Yes! by Anonymous Coward · · Score: 0

      I agree (except that I never questioned the pen-and-paper technique even as a student). And it is important to remember that even though you are never without a computer as a programmer, you are never without pen and paper (or whiteboard equivalent) either.

      One of my best projects during my school yearswas a knowledge base system used at an institution at my school. I probably took two or three weeks of spare time to design it, all on paper, writing down all the individual components, database schemas and some pseudocode. After I felt that I had got everything I needed, I sat down one afternoon and in less than a day I implemented the whole system. This was before web frameworks existed on a broad scale so I had to implement almost everything (login/authentication, search, editing, etc). After this the system ran for years, first during my time there and then for almost a decade after I left, with minimal maintenance.

      If I had started typing away I am willing to say that it would have been much more of a patchwork and would have taken longer time since I would have to rewrite parts not properly thought out.

      I am certain that designing on paper can save you time and headache.

  75. It's, like, 2018 - come on! by kenh · · Score: 1

    Why not head over to their departments in your university and see how those degree candidates write up their exams:

    English Litrrature - paper
    Physics - paper
    Chemistry - paper
    Math - paper
    Psychology - paper
    Astronomy - paper
    Biology - paper
    Etc.

    Why is Comp Sci different?

    --
    Ken
  76. Re: That would be an interesting study. Slow autoc by Anonymous Coward · · Score: 0

    First thing I turn off is automatic auto complete, I.e. the waiting game thing. I do use auto completion on keyboard shortcut a LOT though. I know what I want to type and I know when exactly to ask the auto completion to type the rest out for myself. If I'm in vim I use vim auto completion (usually just for local strings like variables but I have used some plugins that make vim an IDE where it populates auto complete from included header files and such as well (used it for C back when).

    In eclipse in java as an example I use some other auto completion features to my advantage too like adding a variable I use without declaring it as a method parameter including the correct type. There's a keyboard shortcut for that. Why would I go add the parameter first and then use it? Takes much longer to type.

    Another great IDE feature is opening the right file. I don't bother learning where things are package wise. Thanks to consistent naming of classes I know how to open most important pieces of the code base I work on by typing just the CamelCase version of the class I want. I've learned most of the ambiguous cases as well where I need to type maybe one or two other characters. If I had to open all those from the command line and know which folders/packages they were in that would take ages. Of course my use case is that I rarely actually develop anything any longer but I need to debug or look stuff up in our code base.

  77. Good point for paper by manu0601 · · Score: 1

    The good point for paper is that students cannot destroy their work by issuing a wrong rm command (with the intent of cleaning up their directory from object files).

  78. Funny I was just about to do that by Anonymous Coward · · Score: 0

    I am working on the next feature for an ongoing software project and my first step ... Sketch out how it is going to work on paper. This might include pseudo code because I have found this is a good exercise for identifying issues.

  79. How Interesting Do You Want It by Bender0x7D1 · · Score: 1

    My exams were on paper - and my data structures course was also open book, open note.

    The professor wanted open book, open note because it let him ask more interesting questions. He wanted to have the exam in the lab so he could ask questions that were even MORE interesting; however, there wasn't a lab big enough where everyone could take the exam at the same time. (I think this is better than having people take it remotely as it helps prevent cheating.)

    Also, exact syntax mattered on our exams. Which didn't make things harder - it just made you a LOT more careful about what you put down. If you wanted to write pseudocode, you could take an algorithms class.

    --
    Reading code is like reading the dictionary - you have to read half of it before you can go back and understand it.
  80. Re:Student knows best - Maybe by uncqual · · Score: 1

    Why not allow testing out of a class that is core to the curriculum? Perhaps the "test out" test should be harder (deeper and broader and probably longer) than the tests that would be taken by someone taking the class and/or perhaps the "passing score" should be an "A" just to make sure that the person really wouldn't benefit from taking the class because they would likely learn something from it.

    --
    Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
  81. Re:That would be an interesting study. Slow autoco by Anonymous Coward · · Score: 0

    "It would be interesting to do a study on the extent to which autocomplete is a teacher vs a crutch."

    The other problem with autocomplete (and IDEs in general) is that they can get you to the stage of having code that compiles and runs without error, but unless you know what you are doing, it can give something completely different to what you expect.

  82. ATM CARDS by Anonymous Coward · · Score: 0

    NEED A HACKED ATM CARD WITH PIN?
    We Sell Physical Loaded ATM Cards . It Is A Crooned Card That Can Be Used To Withdraw Cash At Any ATM Machine. This Cards Comes In Visa/MasterCard. Therefore It Works At Any ATM Machine That Accept Visa/MasterCard Worldwide.

    CAN I USE THIS READY MADE ATM CARD TO BUY STUFF IN STORES? OR ONLINE SHOPPING? PAY BILLS?
    Yes, With This Physical ATM Card, You Can Use It To Pay Stuff At Stores Through POS. With This ATM Card Information, You Can Use It Online To Pay Bills Or Do Online Shopping. When You Order For This Card, Full Information About The Card Will Be Given To You. We Also Reload Your Card When Funds Exhausted.

    DO I NEED TO ORDER NEW CARD EVERY TIME THE FUNDS IS FINISH?
    No, If You Have Already Ordered Our Card, There Is No Need To Keep Ordering New Cards, Just Contact Us For A Reload. We Shall Easily Reload The ATM Card Already In Your Possession

    HOW LONG DOES IT TAKE TO RECEIVE ATM CARD IN MY COUNTRY?
    If You Are In ASIA, You Will Receive Your Card In 2-3 DAYS With Guaranteed. If You Are Outside Asia Your Card Will Arrive To You Between 3 – 5 Business Days Guaranteed.

    HOW SAFE IS THIS CARD?
    It Is 100% Safe To Use This Card. Because It Will Be Shipped To You As A Gift Card.

    DO YOU ALSO RELOAD ANY OTHER CARD NOT FROM THIS CLONED CARDS?
    Yes, We Can Reload Any Active And Valid Cards, Any Type Of Card Just Contact Us For A Reload (Prepaid Cards, Credit/Debit Cards).
    HOW DO I ORDER FOR THE ATM CARD?
    EMAIL: legithackers@outlook.com

    HOW DO WE MAKE THIS CARD?
    We Use A Machine MSR To Crone This Cards . You Can Also Buy This Machine From Us Also. You Can Order For The ATM Card Either The Designed Card Or The Blank Card But Still Same Information On Them.
    EMAIL: (legithackers@outlook.com)

  83. Did assembly on paper by Dmitri_Yuriescu · · Score: 1

    Approx. 1996, I took and passed an exam in assembly code on paper. It was the kind of paper with a carbon back that made a copy of what you wrote.

  84. Re: That would be an interesting study. Slow autoc by Anonymous Coward · · Score: 0

    Ha! I had a horrible vision of the future where a descendant of Clippy from MS Word asks something like "It looks like you're trying to write some code that I already have an open source library for, would you like me to just use that instead?".

  85. Smith Corona by Anonymous Coward · · Score: 0

    They should be allowed to use typewriters.

  86. CS Prof here... by Dr.+Blue · · Score: 1

    As a long-time CS professor, let me add this: The entire purpose of a university education is to advance your understanding about whatever topic you are studying. To develop mental models. The purpose of a test is to see what you understand, and I want as little as humanly possible between your brain and what you produce for the exam. For the vast majority of students, that means brain to paper, with no distractions in between. My exams never have a lot of writing -- they do tend to have more problems to solve than many students like to solve in one sitting, but they are designed to get to core concepts with as few distractions as possible. I have had many students over the years that struggled with some disability or other that made paper exams difficult (whether dysgraphia or even a blind student in one situation), and so we have accommodations for students.

    But again, the entire purpose is to see what you understand. I don't want to see how well you can use a tool, or how fast you can google things, or whether you can do some task like a trained monkey. Do you understand (and can you explain) why a red-black tree is balanced? Do you understand the balancing operation well enough so that you can write down a basic rebalancing operation on paper? Can you analyze the balance property to justify why the tree is O(log n) depth? If you have a clear picture in your mind, and if you really *understand* red-black trees, you should be able to do those things.

  87. Horrible? That sounds wonderful! by raymorris · · Score: 1

    That sounds great. I have some co-workers that could use that!

    Recently I fixed up some Perl where one of our most senior guys had forked a process to run /use/bin/time. Uhm, did you mean time()?

  88. Oops I mean /usr/bin/date +%s by raymorris · · Score: 1

    Actually /usr/bin/date +%s
    Which returns the same thing as the Perl built-in time()

  89. Testing programming? Or IDE skills? by Anonymous Coward · · Score: 0

    Yes for paper. Otherwise you end up testing for ability to use the editor/IDE. Eclipse (for example) is so byzantine that one can get lost in it trying to find the correct submenu for setting up a runtime environment.

  90. Not coding: Linear Algebra by Anonymous Coward · · Score: 0

    The one that drives me bonkers isn't coding. It's Linear Algebra tests on paper, without even a four function calculator. Get one of dozens of arithmetic operations wrong, and the confused teacher tells the class /they/ are missing the forest for the trees.

    In Linear Algebra, the important thing isn't doing dozens of arithmetic operations correctly - that's what computers are for. The important thing is knowing what formula or transformation to apply when, which pencil pushing just obfuscates.

    When I took a Computer Graphics course, the one that talked about Beziers and Splines and stuff, we used a lot of Linear Algebra. I did my homeworks on paper, as requested, but I checked it with symmat, which I wrote just for that class.

  91. mimimi why have I to write by Hand? by prefec2 · · Score: 1

    Really, AS a student you should be able to do some coding in paper, cardboard, whiteboard etc. This is how we communicate primarily with each other and customers. Also it is an exam not a piece of software going to run somewhere. BTW even after the exam you should still aim for knowing everting the course thought you.

  92. Pseudo code on paper is okay by Anonymous Coward · · Score: 0

    Pseudo code on paper is okay. But compilable code on paper is a throwback to the 1960's, when computer time was limited, and a computer program had to be desk checked on paper before being compiled. As long as this university is being so lame, why not require a flow chart on paper before the student writes code on paper. And make sure that the flow chart has goto arrows to insure that the program will be filled with goto statements.

    I sympathize with the student, the university is being absurd.

  93. Re:As a high school programming teacher, I don't.. by FFCecil · · Score: 1

    I like your idea on how to condition the students to take exams on paper with regular quizzes. Thanks for sharing!

  94. Re: As a high school programming teacher, I don by FFCecil · · Score: 1

    Wow -- they're using these techniques at the job interview level! I had no idea -- thanks for sharing. The disadvantage of having become a teacher and leaving the programming industry, is that I've left the programming industry. So all my skills have aged, and keeping up has been a challenge. Thanks for the insight!

  95. Re:As a high school programming teacher, I don by FFCecil · · Score: 1

    I love the idea of having a lab which is offline, but at the (public) high school level that's unfortunately not an option for me.

    My "online" tests/exams seem to involve all the same things you do, but without code writing. It's taken a lot of time and effort on my part to figure out how to do that -- as I still believe in the validity of tests/exams, just not writing code without an IDE. So, for example, I'll give them code and have them explain what's happening in English. Or I'll give them broken code and have them explain what's wrong or how to fix it. Or I'll ask what situations you'd use one construct vs another. I just don't like asking them to code in tests/exams. It seems like a skill that doesn't mimic the real-world, and to me that's what education is supposed to be preparing them for. Though, I realize that MANY disagree with me on that point.

  96. Re: As a high school programming teacher, I don by FFCecil · · Score: 1

    I'm afraid I respectfully disagree. Without trying to shame you for your opinion, I'll try to explain why I strongly believe the complete opposite of you.

    Knowledge WAS power, that is true. In the time of Galileo, in which you have placed your argument, knowledge was hard to come by. One would have to hunt down the proper books, and spend countless hours reading through them to acquire the knowledge necessary for some task at hand. But we don't live in that world anymore. Now, a properly formatted Google search will instantly take you to several resources somewhat-related to what you need. Learning how to synthesize that knowledge into a solution is now where the time can be spent, instead of spending the hours finding and memorizing knowledge which will soon be out of date.

    But, I get where you're coming from. It's hard to recognize that a fundamental paradigm shift in society has occurred, and even harder to change oneself as a result. I could have happily gone on teaching as my forefathers have, all the way back to Galileo. It certainly would have been easier! But we're not in Galileo's world anymore, nor will we ever be again.

  97. Pls no paper. by Anonymous Coward · · Score: 0

    I still have to write exams on paper where they are grading on syntax in courses like Introduction to C, Data structures and algorithms, heck we even had to write assembly and VHDL with correct syntax on paper, and I'm fine with them grading the syntax, my only problem is what if I make an error or I have bad handwriting or I realize I forgot to add a line somewhere.
    I think exams written on paper should be better organized. Some courses had exams where you just have to write certain functions or short snippets of code and im all for that but don't make me write a 30+ line program on paper.

  98. English has a smaller punctuation repertoire by tepples · · Score: 1

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

    A computer program in a major programming language generally uses a larger variety of punctuation marks than comparably long prose in English. Even in something like Python that has keywords and indentation for things where C++ and JavaScript use punctuation operators, you need to use all three kinds of brackets (round, square, and curly) in any nontrivial code that handles dictionaries. Nor does English class generally give a grade for handwriting past primary school. That's something you typically see only in logographic languages like Chinese and Japanese.

  99. "Functional" in what way? by tepples · · Score: 1

    Nor should they be expected to be writing fully functional programs on a CS test

    They are if the question is "How can this be done without mutation operators?" and the language of choice is Haskell or the subset of Scheme without set! or other mutators.

    1. Re:"Functional" in what way? by mysidia · · Score: 1

      They are if the question is "How can this be done without mutation operators?" .....

      Oh no.... I woke up an Academic. I mean nor should they expected to be write complete working programs on a CS test

      And the subject of writing a purely functional program in a functional language is something completely
      different, but let's just hope their language of choice is not Haskell or Scheme without set!, and in general:
      it's not going to be as functional languages are not a popular choice in the real-world, and most CS students
      will take 1 or 2 courses over their entire academic career that requires a functional language during part of the course....