What's the benefit of prohibiting the use of techniques/language constructs that have not been...
Can I fix my boots by gluing the soles back on?
Planar regular languages
How to control the output voltage of a solid state relay
Why is the year in this ISO timestamp not 2019?
A Mainer Expression
Where is it? - The Google Earth Challenge Ep. 2
Would it be unbalanced to increase Wild Shape uses based on level?
Are space camera sensors usually round, or square?
super and subscripts on stackrel variable
geschafft or geschaffen? which one is past participle of schaffen?
Can derivatives be defined as anti-integrals?
Is there any way to land a rover on the Moon without using any thrusters?
Why are some files not movable on Windows 10?
Does my opponent need to prove his creature has morph?
What are these things that surround museum exhibits called?
Reading double values from a text file
Are there successful ways of getting out of a REVERSE MORTGAGE?
What makes a smart phone "kosher"?
How to publish superseding results without creating enemies
Has SHA256 been broken by Treadwell Stanton DuPont?
New default file type?
What exactly is a marshrutka (маршрутка)?
How do we know that black holes are spinning?
Why don't Wizards use wrist straps to protect against disarming charms?
What's the benefit of prohibiting the use of techniques/language constructs that have not been taught?
Teaching high-level versus low-level conceptsA quick ruby crash courseHow do you structure broad, open-ended, freely chosen projects so that students use class time wisely?To plan or not to plan that is the questionWhy do educators not set an upper bound for the amount of times we're allowed to compile code?Students seem to be unable to use code to express their ideas. Is the teaching methodology improvable?How to teach C++ language to beginners of (BSCS) students who have no any idea about it?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}
$begingroup$
I teach as a private tutor and most of my students are prohibited to use techniques and/or language constructs that they haven't been taught!
There's a really broad variety of stuff that is prohibited like foreach-loops, switch-statements, functions/methods, etc.
What do you think is the benefit of this rule or why do most schools and universities have such a rule?
programming project homework
New contributor
$endgroup$
add a comment
|
$begingroup$
I teach as a private tutor and most of my students are prohibited to use techniques and/or language constructs that they haven't been taught!
There's a really broad variety of stuff that is prohibited like foreach-loops, switch-statements, functions/methods, etc.
What do you think is the benefit of this rule or why do most schools and universities have such a rule?
programming project homework
New contributor
$endgroup$
add a comment
|
$begingroup$
I teach as a private tutor and most of my students are prohibited to use techniques and/or language constructs that they haven't been taught!
There's a really broad variety of stuff that is prohibited like foreach-loops, switch-statements, functions/methods, etc.
What do you think is the benefit of this rule or why do most schools and universities have such a rule?
programming project homework
New contributor
$endgroup$
I teach as a private tutor and most of my students are prohibited to use techniques and/or language constructs that they haven't been taught!
There's a really broad variety of stuff that is prohibited like foreach-loops, switch-statements, functions/methods, etc.
What do you think is the benefit of this rule or why do most schools and universities have such a rule?
programming project homework
programming project homework
New contributor
New contributor
edited 8 hours ago
thesecretmaster♦
3,3713 gold badges11 silver badges44 bronze badges
3,3713 gold badges11 silver badges44 bronze badges
New contributor
asked 9 hours ago
csabinhocsabinho
1164 bronze badges
1164 bronze badges
New contributor
New contributor
add a comment
|
add a comment
|
3 Answers
3
active
oldest
votes
$begingroup$
Rules like this are generally instituted because the teacher is attempting to teach a concept made moot by one of these constructs. For example, as a teacher, if you're teaching bitwise operators and ask students to implement absolute value, it simply makes no sense to permit the students to use whatever library function does absolute value. You're teaching bitwise operators, and the fact that they know of the library function doesn't help them learn bitwise operators.
I believe that because you're asking here, the reason for the prohibition isn't as obvious as in my example, but my guess (without knowing the specifics of the situation) is that the prohibited constructs are not what are being taught so, for that course, the students knowledge of a more advanced concept is irrelevant to the subject matter being taught.
$endgroup$
$begingroup$
The first sentence of your second paragraph is spot-on. In most cases I suspect that those constructs were just forgotten... Also i don't see why functions/methods are taught that late, but that's almost another topic... Also I'm not really sure if there is a clear plan behind this or if it is more about authority than didactics, or in other words: "Rules are rules and that's it! Just follow them and don't ask why they have been set up. If you don't follow them, you disrespected the teacher and will be penalized"!
$endgroup$
– csabinho
7 hours ago
add a comment
|
$begingroup$
I think that the answer of thesecretmaster is correct but let me add a bit of advice to an instructor who would do this. Just as you wonder yourself, the rule doesn't seem to make a lot of sense and it won't make sense to students either. It may cause resentment.
So, if an instructor wants to use a rule like this then, I think that a general rule agains using things not yet taught is foolish. However, you can achieve the same result by carefully stating the problem you want solved. So, for example, following thesecretmaster, instead of asking for the students to compute the absolute value ask them to compute the absolute value using only the bitwise operators. In other words, put the specific restriction into the question itself.
This brings up an important teaching and learning technique called "creativity under constraint". Some wood working artists, for example, use only hand tools, forgoing power tools. Furniture makers I've known do this. The restricted set of tools forces them to make better use of the tools that the do use, becoming more skilled in the process. But, to impose it on someone else requires that you make it clear why it is a good idea to do this.
I've discussed Creativity Under Constraint here in the past in other contexts. See this post and this other one.
$endgroup$
add a comment
|
$begingroup$
Where it stems from is, of course, because the lab is not the thing that the instructors want solved. After all, the lab problem is not an unsolved problem, and it will only be unique (if at all) in some surface way. This is the source of the feeling that people have that the restrictions are unreasonable: they feel like solving the lab is somehow the purpose of the assignment, and therefore any high quality solution is to be praised.
So if solving the problem isn't the deeper purpose of a lab, then what is? Typically, we are teaching an algorithm or a data structure. The lab is conjured as something that lends itself to that algorithm or data structure, and that is the goal of the instruction. I want to engender mastery of linked lists, or stack management, or two-dimensional arrays, or memory management, or... whatever the focus is.
The lab problem itself is entirely secondary, even if it does not in any way feel like this to the student. The lab problem is simply meant to provide a rich environment to play around with the learning target, and to gain some measure of experience wrestling with it.
The problem that we run into, then, is that there is no problem that cannot be solved in many ways. I can search as hard as I might for a problem that would be much, much harder to solve in a manner perpendicular to the purpose of the lab, and sometimes I will have some success. But sometimes I will not, because sometimes no such problem exists.
There exists no problem that can be solved with a linked list that cannot also be solved with an arraylist. I could provide starter code to try to force my approach, but that simultaneously increases the difficulty of creating the lab while decreasing the thought that must go into solving it.
A blanked ban, such as "you may use no bang operators in your Racket lab" is an imperfect solution, but all of the solutions are imperfect, and sometimes a ban feels like the least of the evils.
This is not a blanket defense; such bans can be careless, or needless, or clumsily done. I try hard to avoid them in my own instruction, but I don't always succeed. If it seems unfair to restrict my students' approach, it is also unfair to my students if they don't delve far enough into the course material because they originally thought of a different solution, and they just stuck with it. That cheats them of the chance to learn the material in the course, which they may well need in their next course, or later on in their life.
$endgroup$
$begingroup$
Even though I completely see your point, my point, which was maybe not made clear enough in my question, is why students are forced to do typical "don't try this at home"-programming because of those restrictions. Also mostly I don't have the feeling that the teachers are following a clear didactic plan which requires to solve specific examples with specific constructs but it's more about their authority, which is undermined if their students leave their path and start learning on their own(and also that some constructs are just forgotten, but that's another topic).
$endgroup$
– csabinho
4 hours ago
add a comment
|
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "678"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
csabinho is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcseducators.stackexchange.com%2fquestions%2f5906%2fwhats-the-benefit-of-prohibiting-the-use-of-techniques-language-constructs-that%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Rules like this are generally instituted because the teacher is attempting to teach a concept made moot by one of these constructs. For example, as a teacher, if you're teaching bitwise operators and ask students to implement absolute value, it simply makes no sense to permit the students to use whatever library function does absolute value. You're teaching bitwise operators, and the fact that they know of the library function doesn't help them learn bitwise operators.
I believe that because you're asking here, the reason for the prohibition isn't as obvious as in my example, but my guess (without knowing the specifics of the situation) is that the prohibited constructs are not what are being taught so, for that course, the students knowledge of a more advanced concept is irrelevant to the subject matter being taught.
$endgroup$
$begingroup$
The first sentence of your second paragraph is spot-on. In most cases I suspect that those constructs were just forgotten... Also i don't see why functions/methods are taught that late, but that's almost another topic... Also I'm not really sure if there is a clear plan behind this or if it is more about authority than didactics, or in other words: "Rules are rules and that's it! Just follow them and don't ask why they have been set up. If you don't follow them, you disrespected the teacher and will be penalized"!
$endgroup$
– csabinho
7 hours ago
add a comment
|
$begingroup$
Rules like this are generally instituted because the teacher is attempting to teach a concept made moot by one of these constructs. For example, as a teacher, if you're teaching bitwise operators and ask students to implement absolute value, it simply makes no sense to permit the students to use whatever library function does absolute value. You're teaching bitwise operators, and the fact that they know of the library function doesn't help them learn bitwise operators.
I believe that because you're asking here, the reason for the prohibition isn't as obvious as in my example, but my guess (without knowing the specifics of the situation) is that the prohibited constructs are not what are being taught so, for that course, the students knowledge of a more advanced concept is irrelevant to the subject matter being taught.
$endgroup$
$begingroup$
The first sentence of your second paragraph is spot-on. In most cases I suspect that those constructs were just forgotten... Also i don't see why functions/methods are taught that late, but that's almost another topic... Also I'm not really sure if there is a clear plan behind this or if it is more about authority than didactics, or in other words: "Rules are rules and that's it! Just follow them and don't ask why they have been set up. If you don't follow them, you disrespected the teacher and will be penalized"!
$endgroup$
– csabinho
7 hours ago
add a comment
|
$begingroup$
Rules like this are generally instituted because the teacher is attempting to teach a concept made moot by one of these constructs. For example, as a teacher, if you're teaching bitwise operators and ask students to implement absolute value, it simply makes no sense to permit the students to use whatever library function does absolute value. You're teaching bitwise operators, and the fact that they know of the library function doesn't help them learn bitwise operators.
I believe that because you're asking here, the reason for the prohibition isn't as obvious as in my example, but my guess (without knowing the specifics of the situation) is that the prohibited constructs are not what are being taught so, for that course, the students knowledge of a more advanced concept is irrelevant to the subject matter being taught.
$endgroup$
Rules like this are generally instituted because the teacher is attempting to teach a concept made moot by one of these constructs. For example, as a teacher, if you're teaching bitwise operators and ask students to implement absolute value, it simply makes no sense to permit the students to use whatever library function does absolute value. You're teaching bitwise operators, and the fact that they know of the library function doesn't help them learn bitwise operators.
I believe that because you're asking here, the reason for the prohibition isn't as obvious as in my example, but my guess (without knowing the specifics of the situation) is that the prohibited constructs are not what are being taught so, for that course, the students knowledge of a more advanced concept is irrelevant to the subject matter being taught.
answered 8 hours ago
thesecretmaster♦thesecretmaster
3,3713 gold badges11 silver badges44 bronze badges
3,3713 gold badges11 silver badges44 bronze badges
$begingroup$
The first sentence of your second paragraph is spot-on. In most cases I suspect that those constructs were just forgotten... Also i don't see why functions/methods are taught that late, but that's almost another topic... Also I'm not really sure if there is a clear plan behind this or if it is more about authority than didactics, or in other words: "Rules are rules and that's it! Just follow them and don't ask why they have been set up. If you don't follow them, you disrespected the teacher and will be penalized"!
$endgroup$
– csabinho
7 hours ago
add a comment
|
$begingroup$
The first sentence of your second paragraph is spot-on. In most cases I suspect that those constructs were just forgotten... Also i don't see why functions/methods are taught that late, but that's almost another topic... Also I'm not really sure if there is a clear plan behind this or if it is more about authority than didactics, or in other words: "Rules are rules and that's it! Just follow them and don't ask why they have been set up. If you don't follow them, you disrespected the teacher and will be penalized"!
$endgroup$
– csabinho
7 hours ago
$begingroup$
The first sentence of your second paragraph is spot-on. In most cases I suspect that those constructs were just forgotten... Also i don't see why functions/methods are taught that late, but that's almost another topic... Also I'm not really sure if there is a clear plan behind this or if it is more about authority than didactics, or in other words: "Rules are rules and that's it! Just follow them and don't ask why they have been set up. If you don't follow them, you disrespected the teacher and will be penalized"!
$endgroup$
– csabinho
7 hours ago
$begingroup$
The first sentence of your second paragraph is spot-on. In most cases I suspect that those constructs were just forgotten... Also i don't see why functions/methods are taught that late, but that's almost another topic... Also I'm not really sure if there is a clear plan behind this or if it is more about authority than didactics, or in other words: "Rules are rules and that's it! Just follow them and don't ask why they have been set up. If you don't follow them, you disrespected the teacher and will be penalized"!
$endgroup$
– csabinho
7 hours ago
add a comment
|
$begingroup$
I think that the answer of thesecretmaster is correct but let me add a bit of advice to an instructor who would do this. Just as you wonder yourself, the rule doesn't seem to make a lot of sense and it won't make sense to students either. It may cause resentment.
So, if an instructor wants to use a rule like this then, I think that a general rule agains using things not yet taught is foolish. However, you can achieve the same result by carefully stating the problem you want solved. So, for example, following thesecretmaster, instead of asking for the students to compute the absolute value ask them to compute the absolute value using only the bitwise operators. In other words, put the specific restriction into the question itself.
This brings up an important teaching and learning technique called "creativity under constraint". Some wood working artists, for example, use only hand tools, forgoing power tools. Furniture makers I've known do this. The restricted set of tools forces them to make better use of the tools that the do use, becoming more skilled in the process. But, to impose it on someone else requires that you make it clear why it is a good idea to do this.
I've discussed Creativity Under Constraint here in the past in other contexts. See this post and this other one.
$endgroup$
add a comment
|
$begingroup$
I think that the answer of thesecretmaster is correct but let me add a bit of advice to an instructor who would do this. Just as you wonder yourself, the rule doesn't seem to make a lot of sense and it won't make sense to students either. It may cause resentment.
So, if an instructor wants to use a rule like this then, I think that a general rule agains using things not yet taught is foolish. However, you can achieve the same result by carefully stating the problem you want solved. So, for example, following thesecretmaster, instead of asking for the students to compute the absolute value ask them to compute the absolute value using only the bitwise operators. In other words, put the specific restriction into the question itself.
This brings up an important teaching and learning technique called "creativity under constraint". Some wood working artists, for example, use only hand tools, forgoing power tools. Furniture makers I've known do this. The restricted set of tools forces them to make better use of the tools that the do use, becoming more skilled in the process. But, to impose it on someone else requires that you make it clear why it is a good idea to do this.
I've discussed Creativity Under Constraint here in the past in other contexts. See this post and this other one.
$endgroup$
add a comment
|
$begingroup$
I think that the answer of thesecretmaster is correct but let me add a bit of advice to an instructor who would do this. Just as you wonder yourself, the rule doesn't seem to make a lot of sense and it won't make sense to students either. It may cause resentment.
So, if an instructor wants to use a rule like this then, I think that a general rule agains using things not yet taught is foolish. However, you can achieve the same result by carefully stating the problem you want solved. So, for example, following thesecretmaster, instead of asking for the students to compute the absolute value ask them to compute the absolute value using only the bitwise operators. In other words, put the specific restriction into the question itself.
This brings up an important teaching and learning technique called "creativity under constraint". Some wood working artists, for example, use only hand tools, forgoing power tools. Furniture makers I've known do this. The restricted set of tools forces them to make better use of the tools that the do use, becoming more skilled in the process. But, to impose it on someone else requires that you make it clear why it is a good idea to do this.
I've discussed Creativity Under Constraint here in the past in other contexts. See this post and this other one.
$endgroup$
I think that the answer of thesecretmaster is correct but let me add a bit of advice to an instructor who would do this. Just as you wonder yourself, the rule doesn't seem to make a lot of sense and it won't make sense to students either. It may cause resentment.
So, if an instructor wants to use a rule like this then, I think that a general rule agains using things not yet taught is foolish. However, you can achieve the same result by carefully stating the problem you want solved. So, for example, following thesecretmaster, instead of asking for the students to compute the absolute value ask them to compute the absolute value using only the bitwise operators. In other words, put the specific restriction into the question itself.
This brings up an important teaching and learning technique called "creativity under constraint". Some wood working artists, for example, use only hand tools, forgoing power tools. Furniture makers I've known do this. The restricted set of tools forces them to make better use of the tools that the do use, becoming more skilled in the process. But, to impose it on someone else requires that you make it clear why it is a good idea to do this.
I've discussed Creativity Under Constraint here in the past in other contexts. See this post and this other one.
answered 7 hours ago
BuffyBuffy
25.4k9 gold badges44 silver badges88 bronze badges
25.4k9 gold badges44 silver badges88 bronze badges
add a comment
|
add a comment
|
$begingroup$
Where it stems from is, of course, because the lab is not the thing that the instructors want solved. After all, the lab problem is not an unsolved problem, and it will only be unique (if at all) in some surface way. This is the source of the feeling that people have that the restrictions are unreasonable: they feel like solving the lab is somehow the purpose of the assignment, and therefore any high quality solution is to be praised.
So if solving the problem isn't the deeper purpose of a lab, then what is? Typically, we are teaching an algorithm or a data structure. The lab is conjured as something that lends itself to that algorithm or data structure, and that is the goal of the instruction. I want to engender mastery of linked lists, or stack management, or two-dimensional arrays, or memory management, or... whatever the focus is.
The lab problem itself is entirely secondary, even if it does not in any way feel like this to the student. The lab problem is simply meant to provide a rich environment to play around with the learning target, and to gain some measure of experience wrestling with it.
The problem that we run into, then, is that there is no problem that cannot be solved in many ways. I can search as hard as I might for a problem that would be much, much harder to solve in a manner perpendicular to the purpose of the lab, and sometimes I will have some success. But sometimes I will not, because sometimes no such problem exists.
There exists no problem that can be solved with a linked list that cannot also be solved with an arraylist. I could provide starter code to try to force my approach, but that simultaneously increases the difficulty of creating the lab while decreasing the thought that must go into solving it.
A blanked ban, such as "you may use no bang operators in your Racket lab" is an imperfect solution, but all of the solutions are imperfect, and sometimes a ban feels like the least of the evils.
This is not a blanket defense; such bans can be careless, or needless, or clumsily done. I try hard to avoid them in my own instruction, but I don't always succeed. If it seems unfair to restrict my students' approach, it is also unfair to my students if they don't delve far enough into the course material because they originally thought of a different solution, and they just stuck with it. That cheats them of the chance to learn the material in the course, which they may well need in their next course, or later on in their life.
$endgroup$
$begingroup$
Even though I completely see your point, my point, which was maybe not made clear enough in my question, is why students are forced to do typical "don't try this at home"-programming because of those restrictions. Also mostly I don't have the feeling that the teachers are following a clear didactic plan which requires to solve specific examples with specific constructs but it's more about their authority, which is undermined if their students leave their path and start learning on their own(and also that some constructs are just forgotten, but that's another topic).
$endgroup$
– csabinho
4 hours ago
add a comment
|
$begingroup$
Where it stems from is, of course, because the lab is not the thing that the instructors want solved. After all, the lab problem is not an unsolved problem, and it will only be unique (if at all) in some surface way. This is the source of the feeling that people have that the restrictions are unreasonable: they feel like solving the lab is somehow the purpose of the assignment, and therefore any high quality solution is to be praised.
So if solving the problem isn't the deeper purpose of a lab, then what is? Typically, we are teaching an algorithm or a data structure. The lab is conjured as something that lends itself to that algorithm or data structure, and that is the goal of the instruction. I want to engender mastery of linked lists, or stack management, or two-dimensional arrays, or memory management, or... whatever the focus is.
The lab problem itself is entirely secondary, even if it does not in any way feel like this to the student. The lab problem is simply meant to provide a rich environment to play around with the learning target, and to gain some measure of experience wrestling with it.
The problem that we run into, then, is that there is no problem that cannot be solved in many ways. I can search as hard as I might for a problem that would be much, much harder to solve in a manner perpendicular to the purpose of the lab, and sometimes I will have some success. But sometimes I will not, because sometimes no such problem exists.
There exists no problem that can be solved with a linked list that cannot also be solved with an arraylist. I could provide starter code to try to force my approach, but that simultaneously increases the difficulty of creating the lab while decreasing the thought that must go into solving it.
A blanked ban, such as "you may use no bang operators in your Racket lab" is an imperfect solution, but all of the solutions are imperfect, and sometimes a ban feels like the least of the evils.
This is not a blanket defense; such bans can be careless, or needless, or clumsily done. I try hard to avoid them in my own instruction, but I don't always succeed. If it seems unfair to restrict my students' approach, it is also unfair to my students if they don't delve far enough into the course material because they originally thought of a different solution, and they just stuck with it. That cheats them of the chance to learn the material in the course, which they may well need in their next course, or later on in their life.
$endgroup$
$begingroup$
Even though I completely see your point, my point, which was maybe not made clear enough in my question, is why students are forced to do typical "don't try this at home"-programming because of those restrictions. Also mostly I don't have the feeling that the teachers are following a clear didactic plan which requires to solve specific examples with specific constructs but it's more about their authority, which is undermined if their students leave their path and start learning on their own(and also that some constructs are just forgotten, but that's another topic).
$endgroup$
– csabinho
4 hours ago
add a comment
|
$begingroup$
Where it stems from is, of course, because the lab is not the thing that the instructors want solved. After all, the lab problem is not an unsolved problem, and it will only be unique (if at all) in some surface way. This is the source of the feeling that people have that the restrictions are unreasonable: they feel like solving the lab is somehow the purpose of the assignment, and therefore any high quality solution is to be praised.
So if solving the problem isn't the deeper purpose of a lab, then what is? Typically, we are teaching an algorithm or a data structure. The lab is conjured as something that lends itself to that algorithm or data structure, and that is the goal of the instruction. I want to engender mastery of linked lists, or stack management, or two-dimensional arrays, or memory management, or... whatever the focus is.
The lab problem itself is entirely secondary, even if it does not in any way feel like this to the student. The lab problem is simply meant to provide a rich environment to play around with the learning target, and to gain some measure of experience wrestling with it.
The problem that we run into, then, is that there is no problem that cannot be solved in many ways. I can search as hard as I might for a problem that would be much, much harder to solve in a manner perpendicular to the purpose of the lab, and sometimes I will have some success. But sometimes I will not, because sometimes no such problem exists.
There exists no problem that can be solved with a linked list that cannot also be solved with an arraylist. I could provide starter code to try to force my approach, but that simultaneously increases the difficulty of creating the lab while decreasing the thought that must go into solving it.
A blanked ban, such as "you may use no bang operators in your Racket lab" is an imperfect solution, but all of the solutions are imperfect, and sometimes a ban feels like the least of the evils.
This is not a blanket defense; such bans can be careless, or needless, or clumsily done. I try hard to avoid them in my own instruction, but I don't always succeed. If it seems unfair to restrict my students' approach, it is also unfair to my students if they don't delve far enough into the course material because they originally thought of a different solution, and they just stuck with it. That cheats them of the chance to learn the material in the course, which they may well need in their next course, or later on in their life.
$endgroup$
Where it stems from is, of course, because the lab is not the thing that the instructors want solved. After all, the lab problem is not an unsolved problem, and it will only be unique (if at all) in some surface way. This is the source of the feeling that people have that the restrictions are unreasonable: they feel like solving the lab is somehow the purpose of the assignment, and therefore any high quality solution is to be praised.
So if solving the problem isn't the deeper purpose of a lab, then what is? Typically, we are teaching an algorithm or a data structure. The lab is conjured as something that lends itself to that algorithm or data structure, and that is the goal of the instruction. I want to engender mastery of linked lists, or stack management, or two-dimensional arrays, or memory management, or... whatever the focus is.
The lab problem itself is entirely secondary, even if it does not in any way feel like this to the student. The lab problem is simply meant to provide a rich environment to play around with the learning target, and to gain some measure of experience wrestling with it.
The problem that we run into, then, is that there is no problem that cannot be solved in many ways. I can search as hard as I might for a problem that would be much, much harder to solve in a manner perpendicular to the purpose of the lab, and sometimes I will have some success. But sometimes I will not, because sometimes no such problem exists.
There exists no problem that can be solved with a linked list that cannot also be solved with an arraylist. I could provide starter code to try to force my approach, but that simultaneously increases the difficulty of creating the lab while decreasing the thought that must go into solving it.
A blanked ban, such as "you may use no bang operators in your Racket lab" is an imperfect solution, but all of the solutions are imperfect, and sometimes a ban feels like the least of the evils.
This is not a blanket defense; such bans can be careless, or needless, or clumsily done. I try hard to avoid them in my own instruction, but I don't always succeed. If it seems unfair to restrict my students' approach, it is also unfair to my students if they don't delve far enough into the course material because they originally thought of a different solution, and they just stuck with it. That cheats them of the chance to learn the material in the course, which they may well need in their next course, or later on in their life.
edited 40 mins ago
answered 5 hours ago
Ben I.♦Ben I.
19.2k7 gold badges43 silver badges111 bronze badges
19.2k7 gold badges43 silver badges111 bronze badges
$begingroup$
Even though I completely see your point, my point, which was maybe not made clear enough in my question, is why students are forced to do typical "don't try this at home"-programming because of those restrictions. Also mostly I don't have the feeling that the teachers are following a clear didactic plan which requires to solve specific examples with specific constructs but it's more about their authority, which is undermined if their students leave their path and start learning on their own(and also that some constructs are just forgotten, but that's another topic).
$endgroup$
– csabinho
4 hours ago
add a comment
|
$begingroup$
Even though I completely see your point, my point, which was maybe not made clear enough in my question, is why students are forced to do typical "don't try this at home"-programming because of those restrictions. Also mostly I don't have the feeling that the teachers are following a clear didactic plan which requires to solve specific examples with specific constructs but it's more about their authority, which is undermined if their students leave their path and start learning on their own(and also that some constructs are just forgotten, but that's another topic).
$endgroup$
– csabinho
4 hours ago
$begingroup$
Even though I completely see your point, my point, which was maybe not made clear enough in my question, is why students are forced to do typical "don't try this at home"-programming because of those restrictions. Also mostly I don't have the feeling that the teachers are following a clear didactic plan which requires to solve specific examples with specific constructs but it's more about their authority, which is undermined if their students leave their path and start learning on their own(and also that some constructs are just forgotten, but that's another topic).
$endgroup$
– csabinho
4 hours ago
$begingroup$
Even though I completely see your point, my point, which was maybe not made clear enough in my question, is why students are forced to do typical "don't try this at home"-programming because of those restrictions. Also mostly I don't have the feeling that the teachers are following a clear didactic plan which requires to solve specific examples with specific constructs but it's more about their authority, which is undermined if their students leave their path and start learning on their own(and also that some constructs are just forgotten, but that's another topic).
$endgroup$
– csabinho
4 hours ago
add a comment
|
csabinho is a new contributor. Be nice, and check out our Code of Conduct.
csabinho is a new contributor. Be nice, and check out our Code of Conduct.
csabinho is a new contributor. Be nice, and check out our Code of Conduct.
csabinho is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Computer Science Educators Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcseducators.stackexchange.com%2fquestions%2f5906%2fwhats-the-benefit-of-prohibiting-the-use-of-techniques-language-constructs-that%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown