Hot answers tagged

50

Edit: This relatively high voted answer seems to be confusing to some, as it does not seem to give a clear answer. TL;DR: yes, doing tests on paper is usual at least in my university, at least many years ago. My anecdotal experience means to give a background where this might be coming from, together with the title "CS!=coding". The last section at the end ...


50

100% yes. In beginning courses, it's practically a cognitive requirement. Let me see if I can break down for you why it is so important. It comes down to what we can know that the student knows. Let's say we have a student who is a rather mediocre coder and who, to be honest, really has no idea what is going on in class. We're going to give him a problem ...


49

My best practice would be to provide students with test cases and require them to submit additional test cases with their code. Then run everyone's test cases against everyone's code. Let the students know that they will get extra credit if their tests break anyone's code. That will put them in a mindset of creating tough tests and writing bullet-proof code, ...


31

I have seen my share of this 'program gets output' but the programmer has no clue how she/he got there. It's funny how that happens so many times. This is what I have done to at least handle the issue. Before assessments, I break down the evaluation to include the following. Simply getting the output gets them the bare passing grade. Those who can use ...


22

Although most of the answers here seem to be in agreement that coding tests should be done on paper, I would like to offer a different opinion. Any test that includes coding would benefit the student, and most likely the teacher, if it was done on a computer with an IDE for the appropriate language rather than on paper. Since the question contains the tags ...


21

If I understand your problem correctly, it's that students can create programs that behave correctly without understanding why they behave correctly. I assume that they do this by some combination of brute force trying things and SO search. Using program correctness for grading has the desirable qualities of being objective and automation friendly. So how ...


19

Speaking as a former student and as a coder: yes. Perhaps there's an element of in-my-day geezerism here, but under the assumption that by "on a computer" you mean "in an IDE" I'll point out that when you have to write it out, you don't get: syntax highlighting autocomplete as-you-type compiler checking new project wizards ("What was the signature for main ...


18

I've always released a number of test cases for the purposes of clarity. I do have to double- and triple-check that my unpublished test cases are nevertheless unambiguously specified in the documentation I provided. However, I am a computer science teacher, not a mystery novelist. It would never occur to me to deduct points for test cases that are not ...


15

The degree of automation that you can achieve depends on how you want to grade. The most valuable type of grading (to a student) does not only cover whether the code works or not, but also offers suggestions as to how to make it better, including readability, design, and so no. And that you cannot totally automate. You can (and should) automate basic ...


14

As a student who went through 4 years of undergraduate in computer science, writing all my exams on paper, I do think there are advantages to a paper exam. If you need an IDE to tell you the things that are missing, then do you really know your material and syntax?. Having an environment to test your code over and over isn't really practical for examination ...


12

Speaking as a former student, a coder & a teacher: yes. In addition to the points raised by G. Ann, I would add the following: Problems on tests are typically far simpler than full real world problems. It's reasonable to expect increased attention to detail (missing semicolons, etc) when there are fewer details to attend to. In a writing class with ...


12

Speaking as a former student, a former competitive programmer, a real world programmer, yes. Forcing student to write code on paper is not pointless. It has following benefits: Giving you syntax awareness, avoid computer generated code. Therefore giving you deeper understanding of the concept. You will find a way to write shorter code, since you can't copy-...


11

In "Assessing Individual Contributions to Group Software Projects" (WCCCE '03), William Gardner discusses a number of strategies for adjusting team programming project grades for individual performance and ends by recommending a "share-out" approach: The essence of share-out is that each student is conceptually given a pot of points, and must allocate ...


11

As a tool for differentiation, writing out code by hand is absolutely worthwhile. I taught this year in a classroom with whiteboard top desks, and students loved a) getting to writing on their desks (even being encouraged to) while b) learning syntax through multiple modalities. What might catch a student's eye or get instilled in her memory through ...


11

Maybe some complementary points to what as already been said (as a CS assistant professor, giving both theoretical and practical courses). Even for practical courses (those which involve coding), writing code on paper is good. The point is not to fill your page with boilerplate code (and I cannot stress that enough). Writing sequence of Java imports or ...


11

I am wondering how much of this is because they can not express in natural language (don't know terminology). How much is because of just fiddle until it works programming. Learning to express in natural language This is important, to allow them to communicate with a larger team, to allow them to look stuff up on an internet search, and to answer some of ...


10

Your question has an implicit assumption: that CS is programming and what you're learning (and will always learn) in CS is programming. That's not necessarily true. Even though an introductory course "teaches" a language, probably something like Python, C/C++, or Java, in actuality you're learning a type of programming language, a procedural language (...


10

Having taken and TA'd for classes which use both approaches, I would have to say that it all depends on what you want to see from the students. On the side of having paper exams, it has already been mentioned that CS!=Programming. If you're trying to test concepts of CS, there doesn't have to be a single line of code written on the exam, and a paper exam ...


10

TL;DR: If there's no special reason against it, release them before the assignments are done. If you'd like to keep them secret to the students while developing, I would still recommend releasing them after the assignment for the students to help them to evaluate their mistakes. I think whether and when the test cases should be released depends on a few ...


10

Yikes, that doesn't sound like a fun way to grade. Sounds about like what I do with students that are competing in ACSL competitions. But that's only 6 or 7 students, 4 times a year. I can't imagine trying it with 100 students all year. Here's what I'm doing, and what I've done. Online Autograder This is what I'm doing now. Kids login to Canvas and it ...


10

I'm afraid my answer here will suggest that you completely revamp how you teach. The sort of problems that result in issues like this, seem to me to be problems that treat the computer as a fancy calculator. Problems given to students are of the "math-y" type. Some require tricky thinking, of course, but they are unlike the sorts of problems that people in ...


9

For simple stuff I've used CodingBat. They've got an authoring system buried on the site. It's not terribly difficult to create your own questions, although the instructions are pretty wordy. When you create a problem there are a set of fields to fill in. I'd attach a screenshot, but the network I'm on blocks imgur. I'll try to come back and add an image ...


9

As much as I hate the fact that we need to consider this, paper and pencil makes it harder to cheat. Even if you restrict them to using lab computers and not their own laptops, and cut off networking to the room, it'd be easy to smuggle in a USB key with entire books worth of notes and the source code from every one of their labs and projects. (Yes, with ...


8

I think this question is perhaps mis-framed or at least misleadingly framed. Fundamentally, the question an educator has to answer is: what knowledge do you want your students to demonstrate? Once you know that, the next question is how do you strip away all other distractions so that whatever product you evaluate gives you a good proxy for what knowledge ...


8

It's time for a little "code review." Have a student present his code in front of class and talk about how he made it work. Hey, this happens in the professional world. There is no time like the present to begin learning this vital skill.


7

I am a strong advocate for code interviews. I make principles of style into about 50% of a lab grade (though I do permit kids to go back and refactor after an interview for full credit.) For some context, I discuss regularly that there are two audiences of code: computers, and people, and that these audiences have very different needs. Since my high ...


7

When I went to college, we had 2 exams. A practical and a theory exam. The practical was on the computer and we could use all resources including the internet. The theory exam was basically what you describe a paper and pen closed book exam where we would either write code or find the error in some pre-written. There were also standard question as well. I ...


7

I have done both percentages and points in my career, the latter being the most recent and preferred. Percentages: The only advantage I can see is that, especially in high school, this seems to be the dominant way of grading, so students and teachers are accustomed to it. Disadvantages are that students can have a difficult time tracking their progress, ...


6

I think having kids write code by hand can be incredibly worthwhile, but be careful of how you assess it. I wouldn't take points off for mistakes that would be easily caught by a compiler such as a missing semicolon or mixing up length and size. I also wouldn't take points off for mistakes students might make when writing code by hand that show they know ...


6

I would recommend repl.it classroom It allows creation of a course and assignments within that course. Assignments can be auto-graded using unit testing (JUnit) or by providing inputs and comparing expected outputs against actual outputs. Students get feedback on what test cases passed and which did not. These can then be converted directly into student ...


Only top voted, non community-wiki answers of a minimum length are eligible