Hot answers tagged

15

I don't think there are any published tools to generate programming assignments, though there are articles that describe such tools (such as this one from a CUNY, or this one from Croatia, so one option is to try to contact those authors and find out whether they would share their results with you.) I will state categorically that there is no way of ...


15

You seem to already realize that this is a subtle question. When I taught Mathematics early in my career, I also forbade students to work together. Later on, teaching Computer Science, I found myself at the opposite pole. I normally forced students to work together on nearly every task. In some ways I changed, but it was more that the subjects are different. ...


7

I look at it as two separate tasks. Learning: The goal here is to learn new things and practice what you've learned. For my classes, these are mostly small lab style assignments. I want them to work with their neighbors. I switch seats every two weeks or so that they have new neighbors to work with. I've gotten pretty good at explaining concepts, but ...


7

I agree with Ben I. and Buffy. I'm planning to cancel the remaining exams in the semester (assuming my university ends up moving to online instruction) and replace them with projects. Many studies have shown that project-based learning is more effective for most learners, and especially for learners from underrepresented groups. That said, if I needed to ...


6

For many things it is possible, even advantageous, to learn from older books and materials. But it also depends on your goals. Computer Science, like any field, has some things that are fundamental and the fundamentals change only very slowly. The major programming paradigms, for example, were all created in the previous century. The fundamentals of ...


6

Whether this is a good plan or not depends on some things, most especially the nature of your students. However, it seems a bit too unstructured. If you have a general mix of student ability it could cause problems unless you incorporate the questions from the site(s) more formally into your teaching. There are a lot of questions available, I would guess ...


6

It is true that these issues can be problematic in some cases, however, this depends on the context and the usage of the class. The "design problem" that you were hoping they would find also depends on the context and usage of the class. We have no idea whether the users of this class are obeying your JavaDoc. In fact, I could see an argument that your "...


5

As an instructor, this is certainly a sticky problem. There are two questions at play here: What can I help you to understand during our time together? How do I know that you actually know it? There is an understandable impulse to work only on the first question. After all, what is the purpose of education if not to help the students progress as fast ...


5

I don't think that an entire Cloze test is practical, and in any case, it does not assess deep understanding well. One problem with longer Cloze examples is that they force the student not only to understand the goal, but also your particular implementation, which will often feel quite foreign to them, even if they are strong students. A further problem ...


4

I believe that the best tool is communication. Letting students know, beforehand, why their progress is being assessed in a particular way and how they are allowed to collaborate is a very important part of teaching. For instance, MIT has a very interesting page on what type of collaboration when is allowed writing code for assignments. Regarding the no ...


4

Test taking is a skill that not every student has. It should be learnable with practice, but not everyone comes to the same level. This is independent of subject. Some people just freeze up, some spend too much time on inessentials, trying hard to "get it right." Some students just panic and nothing you say will alleviate that panic. Every exam is like their ...


4

My worry here is that there is no general solution other than to improve any question when you reuse it based on the answers you saw in the past. I have to admit that, even as a very experienced Java developer who is also very Pattern literate, I missed it entirely since I didn't actually read the Javadoc before I looked at the code. I came up with only ...


4

At my University, we had the chance to modify the syllabus, if needed, to remove or decrease the weight of "traditional" written tests. While in most programming courses eliminating tests is not a problem, as most of us were already relying mostly on assignments, group works, oral presentations, and so on, there are some courses, were more traditional ...


4

No This may be a good way to test understanding of function calls, and the stack. However I don't think it helps much with recursion. As when we design we need to abstract. To do this we need to be able to think without having to keep all of the detail in our heads. We need to focus only on externally visible behaviour, not internal details. Yes Having ...


3

The answer to this question is highly dependent on which courses you are interested in. Courses focused on fundamentals can benefit from these older materials. Of course algorithms and discrete math (including graphs) fall into this category but even more "applied" courses such as OOP or Operating Systems can benefit from these older books/courses. Some ...


3

This isn't really an answer and requires long term thinking, but perhaps this is an opportunity to start to rethink how we evaluate students. I'm not a big fan of testing. Especially high stakes testing and testing dependent on memorization. Perhaps there is just a better way to determine whether students have mastered the material. I depended much more on ...


3

I am not sure what you mean by a "useful test" in this context. If your goal is to create a bell curve with English speakers at the top, you could administer the verbal section of the SATs. You say that your students are complaining because what you actually wanted from them was unclear without an eagle-eye reading (and from your own accounts, it sounds ...


3

Simple demonstration: Presenting this and asking, "What do you see?" is sure to get a variety of answers. Most might be along the line of a bird feeding baby birds. Not all will be, however. Possible answers include "A bunch of birds," "A birds' nest," "Tiny leaves," "A pretty picture," and even "A fuzzy background." None are wrong, and all will show what ...


3

I would break the question into parts. You can put a short paragraph describing what the code in front of them is supposed to do. When one (or more) writes code for something, the design is inseparable from the purpose of the code. Following the paragraph, put the code. Also, I suggest changing the documentation of the code by adding a short description ...


2

I think that, when code is shared, one of the central questions is: After it has been seen, does the student understand what they have seen and will they be able to use this knowledge independently in the future. That is: Did they actually learn something? There certainly is a population of students for whom this works. None of this is really about them. ...


2

You are seeing a difference between virtual memory as described to a computer user some number of years ago (this is more frequently called "swap" now), and virtual memory as understood by an operating system developer. If one goes back and looks at, say... Mac OS System 7, one can see this description: Virtual memory adds more memory to your Macintosh ...


2

Exam question order is known to influence performance via confidence and self-efficacy. Put easy questions at the beginning, hard questions at the end, and group questions together if they pertain to the same topic. Difficulty should be inherent in the question itself rather than in the test taker getting oriented to the topic, question, and answer choices. ...


2

I have done something similar to this. I've found codingbat to be a great resource. The exercises there are not complex and are structured in a way that later exercises build on previous ones. There are more exercises there for Java than Python but at worst it may be useful for prompting ideas. Now, I have set classroom exercises using some of the ones ...


2

Re: expensive books: There are hundreds of lecture notes floating around, ranging from awful to outstanding. Check them out too. Re: oldish material: I've used much older texts (up to 20 years old). It very much depends on the subject matter. For the standard CS fare (regular expressions and languages, algorithms, combinatorics, complexity, most of computer ...


2

Maybe a better idea could be a quiz with automatically generated questions, like a code snippet and the request to determine the output for a given input, with different input values and variable names for each student. I actually have successfully implemented this (in part) for my first-semester programming tests this year. For example: Using the ...


2

If I were to try some online sleuthing, the first question I would ask is for the course's website, if there is one, or for links to recent assignments. This has the double benefit that your primary goal in doing this is to make sure that your instruction is as helpful as it can be. If students cannot provide this, then my next question would be about how ...


1

"Group work" is hard to handle. One of the first courses I taught here was structured around a bunch of homework programming tasks, to be done in two-person teams. Around midterm one of the students showed up complaining he had done his half of the homeworks (his mate didn't participate), and now it was the mate's turn... and the mate had left the class. ...


1

Background: As a senior in my IT company, I am often teaching fresh colleagues on-the-job, so I know where you came from. On the other hand, as teamlead, getting people to work together (i.e., tough things like being able to ask questions and actually listen to answers...), is very important for me, as there's only so much of myself (in the first role) to go ...


1

Those problems are usually more in the line of 2 hour work to get it done, so I'd either sample very carefully and/or simplify. For on-line exams the format of an input in a fixed format, no validation needed, and a fixed output is nice (can be graded by test cases). You'll want to add a code review. A generic rubric of mine for programs ran roughly like: ...


1

You don't really have a dilemma. Just give them the information as you have presented it here and note to them that if it comes up on the exam, the older definition, though no longer strictly correct, should prevail. Hopefully, though, a valid question on an exam wouldn't depend on the distinction here. Perhaps you have access to old exams and can learn ...


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