Answers.Body: <p>You say that the student already &quot;knows the material&quot;. If this is true, then this could be an ideal opportunity to offer the student Credit by Exam or some type of competency-based assessment.</p>
  <p>Offer the student a choice to take the final exam early and/or complete the most important course projects now. If the student passes, you can give them a passing grade for the course. If they fail, then tell them that they have not demonstrated mastery and need to keep working.</p>
  <p>One caveat to this is that it is probably unfair to limit this opportunity to just this one student, so you could offer it as an option to any student who wishes to short-circuit the course and complete it early. Read up on <a href="https://www.ed.gov/oii-news/competency-based-learning-or-personalized-learning" rel="nofollow noreferrer">Competency-Based Education (CBE)</a> as that is exactly what that is. The focus of the course shifts from &quot;sit through the material and not cause trouble&quot; to &quot;must demonstrate mastery of X, Y, and Z by passing Exams A, B, and C and completing Project D&quot;.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-12-15T18:39:34.237Z
Answers.LastActivityDate: 2021-12-15T18:39:34.237Z
Answers.UserDisplayName: Robert Columbia
Answers.Body: <p>First of all, I don't think the student is the problem. If you think he has understood the chapter well, you should also kick it up a notch. Backing down or not stepping up will essentially point that you know the bare minimum that is required to get a teaching job.
  Just tell him or your head that he is much more advanced than the class and try arranging for a more complex lesson so that he also gains interest in the lesson.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-13T14:37:15.657Z
Answers.Text: At the cost of the remaining 95% of the class failing tests and not understanding the material? And I find your statement that "I know the bare minimum that is required for a teaching job" very, very insulting.
Answers.UserDisplayName: ItamarG3
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-13T14:27:55.017Z
Answers.LastActivityDate: 2018-03-13T14:27:55.017Z
Answers.UserDisplayName: Ethan Scott
Answers.Body: <p>The best way to deal with this kind of student is to <strong>head it off at the pass</strong>.  If you can get the student at the beginning, you can often prevent the problem from festering in the first place. I have a student coming in next year who I have already been warned will have this problem, and I plan to show this to my class on the first day:</p>
  
  <p><a href="https://i.sstatic.net/vskFN.jpg" rel="noreferrer"><img src="https://i.sstatic.net/vskFN.jpg" alt="enter image description here"></a></p>
  
  <p>I will then say something like, <em>"For whom is this situation unfair?"</em></p>
  
  <p>When the kids point to the fish, I will point out that it is <em>just as unfair to the monkey</em>.  I will then ask them to talk to a neighbor and figure out why.</p>
  
  <p>I will finish up by saying that I have a promise for the fish of the class: everyone who puts in the work <em>will be able to climb the tree</em>.  That's MY job.  However, I have to find a way to be fair to the monkeys as well.  That means that I must reserve the right to try to find ways to push them to get better in my classroom.</p>
  
  <p>If they are in that position, and can get the work done very easily, and find that I give them harder work, I ask a few things of them: <strong>(1)</strong> understand that this is fairer than it may initially feel, and <strong>(2)</strong> understand that this comes from a place of actually caring about them as people. Making more appropriate assignments for them is harder for me as well. If I didn't care about them as people, I could just let them get away with the minimum.</p>
  
  <p>In essence, then, I am trying to recast making differentiated, harder assignments into something that the students will understand as both a loving act, and one that respects them deeply as individuals.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-07T05:45:44.620Z
Answers.Text: This is a very good solution. In fact it helps with another students who fits the description (warned about future problems like that). Thanks!
Answers.UserDisplayName: ItamarG3
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-07-01T16:04:22.020Z
Answers.Text: Sounds like a Pedagogical Pattern, actually. Great name for it too. Head It Off At The Pass. Love it.
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-07-01T16:28:07.377Z
Answers.Text: See the book, [Pedagogical Patterns: Advice for Educators](https://www.amazon.com/Pedagogical-Patterns-Educators-Joseph-Bergin/dp/1479171824) for a moderately complete view, though there is an international, ongoing effort. [Joseph Bergin's website](http://csis.pace.edu/~bergin) has a lot of the material. I have a connection to this group. -- OOPS. I was responding to a question, now withdrawn.
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-06T20:41:23.153Z
Answers.LastActivityDate: 2017-06-12T15:23:20.750Z
Answers.LastEditDate: 2017-06-12T15:23:20.750Z
Answers.UserDisplayName: Ben I.
Answers.Body: <p>A few ideas...</p>
  
  <p><strong>Scaffold your problem sets.</strong> CS50 -- and by extension CS50 AP -- sections students according to "less comfortable" and "more comfortable" tracks. (<a href="http://docs.cs50.net/2016/fall/psets/2/pset2.html#what-to-do" rel="noreferrer">See what they do here for pset2.</a>) Giving students options, especially in terms of difficulty level, is a key. This may involve creating problems with additional, optional components, which will be additional work on your part, but it also gives opportunities for other students to extend their learning. I also love what they include in their syllabus:</p>
  
  <blockquote>
    <p>Know that CS50 draws quite the spectrum of students, including "those
    less comfortable," "those more comfortable," and those somewhere in
    between. However, what ultimately matters in this course is not so
    much where you end up relative to your classmates but where you, in
    Week 11, end up relative to yourself in Week 0.</p>
    
    <p>Each student’s final grade is individually determined at term’s end.
    Remarkable effort and upward trending are considered, as is input from
    the teaching fellows. The course does not have pre-determined cutoffs
    for final grades. The course is not graded on a curve. Those less
    comfortable and somewhere in between are not at a disadvantage
    vis-à-vis those more comfortable.</p>
  </blockquote>
  
  <p>Do you reward a student who knows everything from the start and doesn't show any signs of progress with a student who knows nothing at the start but makes dramatic progress? That's a huge philosophical question to consider in terms of how you assess student learning.</p>
  
  <p><strong>Give him additional, empowering responsibilities.</strong> Find a way for him to have a special role in the class. Use this advanced knowledge as a strength for you to use. When giving time to work in class, have him be a source of answers to his peers' questions. Better yet, have him lead a walkthrough where he has to teach a mini-lesson for how to approach a particular assignment. If he's going to be bored during a lecture, encourage him to write a sample program or two for use in direct instruction.</p>
  
  <p><strong>Make him complete the same work in a different language.</strong> Have him complete the same assignment, but in a language different from the one assigned. This will require him to learn different programming idioms, libraries, and paradigms. A solution in an imperative language would be much different from one in a functional language. No one is an expert at every language, so there's always a new challenge to be had with a different language.</p>
  
  <p>On a much smaller level, you could require challenges on a site like HackerRank either in the language of the class or a new one entirely.</p>
  
  <p><strong>Edit:</strong></p>
  
  <p>I also have two Java-specific suggestions...</p>
  
  <ul>
  <li>Have him learn a lower-level language (e.g. C) in which to implement the program.</li>
  <li>Challenge him to leave the object-oriented world and learn a functional language in which to complete the assignment.</li>
  </ul>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-07T02:43:33.223Z
Answers.Text: Some _very_ excellent suggestions. I really like the last option. Good chance the student is ahead of the curve because of self-directed learning and/or a true passion for the subject. Helping the student reach their own potential is much better than requiring them to drag their feet at the standard curriculum's level. Also allows for grading their work against their potential, and the student can feel they've actually _earned_ the grade instead of _passed_ some required course.
Answers.UserDisplayName: Gypsy Spellweaver
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-07T05:47:03.047Z
Answers.Text: The java specifics are quite useful. I will definitely use them,
Answers.UserDisplayName: ItamarG3
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-12T16:12:23.313Z
Answers.Text: I'm a big fan of giving strong student's extra responsibilities. Research points to deeper learning and understanding of material through teaching it to others, and that's certainly been my experience with students as well. If the student can check their attitude about the way that the course is being taught, they could become an excellent asset to helping bring up students who are falling behind. Why not make use of that?
Answers.UserDisplayName: Mark DeLoura
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-29T04:08:44.960Z
Answers.Text: As a Junior in high school, my daughter became a teacher's assistant in a technical program. She actually knew quite a lot more about the contents of the program than the teacher did, so he delegated a lot of the responsibility to her, including reviewing hte work of other students, which enabled him to take care of the details (school politics, etc) that students shouldn't be involved in. The biggest problem with that was some students resented the perceived amount of "pull" she had, even as her role was primarily coaching them towards better grades.
Answers.UserDisplayName: pojo-guy
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-07-08T03:54:35.920Z
Answers.Text: @nocomprende You may have to learn a mindset in the process in addition to just learning the curriculum.  That will not happen if you skip the class.
Answers.UserDisplayName: Thorbjørn Ravn Andersen
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-06T22:36:20.087Z
Answers.LastActivityDate: 2017-06-07T04:54:27.807Z
Answers.LastEditDate: 2017-06-07T04:54:27.807Z
Answers.UserDisplayName: Peter
Answers.Body: <p>You said he refuses to work, but has mastered the material. How do you know he's mastered the material? </p>
  
  <p>I've had students like this in the past. They'll finish 2 weeks worth of assignments in a day and a half. </p>
  
  <p>Talk to them. See what interests them about programming. The few times that this has come up, the student had something specific they wanted to build. It was well above what was expected in class, but it was still programming, so still related. We came up with a plan for them to work on their pet project, which always required that they finish the assignments I gave first. Then, they're free to build their project. </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-07T05:46:18.477Z
Answers.Text: That is the core of the problem. He refuses to cooperate, but I have seen his work. He does do things on occasion.
Answers.UserDisplayName: ItamarG3
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-07-08T03:52:51.047Z
Answers.Text: @ItamarG3 What work is required to pass the class then?
Answers.UserDisplayName: Thorbjørn Ravn Andersen
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-06T20:24:06.940Z
Answers.LastActivityDate: 2017-06-06T20:24:06.940Z
Answers.UserDisplayName: Ryan Nutt
Answers.Body: <p>In the spirit of the other answers, I would recommend:<a href="http://www.usaco.org" rel="noreferrer">http://www.usaco.org</a></p>
  
  <p>It contains excercises that progress from trivial to "stomps most undergrads" which would help him find his level (and maybe some humility).</p>
  
  <p>It contains an automatic grader with hidden test cases which allows more independant learning + he learns to debug and search for edge cases.</p>
  
  <p>It's the official site for the training and the selection for US national team which might help him get some awards or medals if he is really talented (IOI,google code jam,..) which might help him in college admission \job interviews.</p>
  
  <p>Students from other countries can use the website to train and I think the equivalent website for the French team is: FranceIoI.org</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-09-13T23:01:07.160Z
Answers.Text: Welcome to CSEducators. Thanks for that link and the explanation.
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-09-13T22:43:07.103Z
Answers.LastActivityDate: 2017-09-13T22:43:07.103Z
Answers.UserDisplayName: pozokoreca
Answers.Body: <p>Mastering the material is less than half of what it takes to be a great engineer. Showing up and doing the work - even when it is phenomenally boring - is critical. </p>
  
  <p>Giving him a pass will not in any way prepare him for a career in this field. If he's not willing to do the BS tasks, he shouldn't pass. If you feel so inclined, give him the final and base his entire grade off of that, and he'll become someone else's problem later. BUT, as an educator - especially at this level - your goal should be not only to develop mastery of the material, but to imbue a good work ethic and a sense of responsibility. </p>
  
  <p>Case in point: I hate changing diapers, but I love being a parent. Guess what I do quite frequently, and how fun that part is. </p>
  
  <p>I've met quite a few very intelligent people who work menial jobs because the industry won't adapt to their demands, because their boss was "a moron," etc. </p>
  
  <p>If this were a university-level course, he would fail. A (small-ish) part of high school is about preparing for university, and for life afterward. If this student winds up in my class at university, with this attitude, he will fail. Communication is key - talk to the kid about this - but excess accommodation (outside of disabilities) is NOT doing him, or anyone else, any favors.</p>
  
  <p>Aside from teaching, I've worked in embedded systems, EE, web, and games. The latter is the most accepting of this resistance to structure, but even that has its limits. You have to do the job you're given. If you're lucky, you can turn that into the job you want. </p>
  
  <p>It is FAR better that the student learn this now, rather than coasting on your compassion, understanding and attempts to help until, one day when the training wheels come off, he falls flat on his face. Help, in this case, may be teaching him a lesson. It sucks, but I'd rather have learned that lesson at 16 than 30. </p>
  
  <p>Good luck, and I admire the question. Far too many teachers just don't care.  </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-07-07T21:57:38.540Z
Answers.Text: Hi David! Welcome to [cseducators.se]! Glad to have you on board, and thanks for your candor. I hope to see you around the site more, or maybe in chat.
Answers.UserDisplayName: thesecretmaster
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-07-07T22:07:28.347Z
Answers.Text: @thesecretmaster there's a chat room? Sweet!
Answers.UserDisplayName: 3Dave
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-07-07T22:09:52.097Z
Answers.Text: Yup, [right here](https://chat.stackexchange.com/rooms/59174/the-classroom). It's called The Classroom.
Answers.UserDisplayName: thesecretmaster
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-07-09T15:42:37.827Z
Answers.Text: @nocomprende Excellent points.
Answers.UserDisplayName: 3Dave
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-07-07T20:59:53.820Z
Answers.LastActivityDate: 2017-07-07T21:05:13.063Z
Answers.LastEditDate: 2017-07-07T21:05:13.063Z
Answers.UserDisplayName: 3Dave
Answers.Body: <p>No one has yet mentioned the long term effects on the student. If the person wants to explore computing as a career they need people skills, not just technical skills. But that is a lesson your entire class needs, not just this one person. </p>
  
  <p>Highly valued people in the computing industry spend most of their time and effort working with other people -- and not just in coding teams. Design, estimation, managing large code bases, etc. all require people skills. There are a few  people who are absolute horrors personally who are valued, but those are extremely rare and need unique skills. For everyone else, learn to communicate, to offer and to accept advice. </p>
  
  <p>On a somewhat different scale, but perhaps related, I know a few people who are successful but also Extremely Introverted. But they have worked to overcome their tendency to withdraw and so their introversion isn't always obvious. Introversion is good if you draw power from your own thoughts and considerations, but it can be a handicap if you need to act outwardly in the world and haven't learned how. So, if that is the real issue here, deal with it as such. For the record, I am very introverted by nature. It cost me a lot early on until I learned how to deal with it. The scariest thing for me was to state my opinions. Perhaps you didn't notice that here :-).  </p>
  
  <p>For the entire class, field trips to local tech industries can be helpful so that students (all of them) can see what really happens. </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-07-08T03:56:02.123Z
Answers.Text: These days if you want to do anything interesting in computing, you must work with others.  Even if you could do it on your own, your employer may dislike having a bus factor of one.
Answers.UserDisplayName: Thorbjørn Ravn Andersen
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-07-08T12:14:25.833Z
Answers.Text: To explain: "Bus Factor" is the minimum number of team members that, if they left the project (went over the cliff in a bus crash) the project becomes unviable. Pair Programming and similar practices are partly intended to increase this number as knowledge is spread through the team. Sometimes called "Bus Number". Thanks @ThorbjørnRavnAndersen, an important point. Only the extremely rare "prima donna" is allowed to work alone and then only when there are no alternatives. If "Thug The Troll" has a unique skill then you may need to let him work alone. But you must _really_ need that skill.
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-07-08T15:07:32.583Z
Answers.Text: I think more than documentation is necessary. For all of the  usual reasons/caveats about docs. Experienced folks > docs any day. I've been the bus number one person a few times and the fact that I drove a VW Bug with a gas leak terrified by boss.
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-07-01T16:19:03.173Z
Answers.LastActivityDate: 2017-07-01T16:19:03.173Z
Answers.UserDisplayName: Buffy
Answers.Body: <p>I was this student.  Back then, we were learning BASIC in high school.  I had learned it when I was nine, and had already learned Pascal (the advanced language we'd learn next).</p>
  
  <p>My high-school teacher responded to my question "Do I really have to do this programming assignment?" with the following:</p>
  
  <ol>
  <li>I need something to grade for your classwork.  You may replace all the class assignments with one graded project (every six weeks); but, it has to be harder than all of the class assignments combined (and it had better be good).</li>
  <li>You still have to take the tests / quizzes.</li>
  </ol>
  
  <p>Today, I as so grateful that she permitted me to challenge myself.  She's one of the handful of High School teachers who's name I remember.</p>
  
  <p>I wrote a rudimentary chat system, an ASCII "graphics" editor, and a role-playing text adventure game (pre-GUI computing).  It was great, and my teacher would pop in from time-to-time to ask what I was doing, and remind me of the deadlines.</p>
  
  <p>Decades later, I'm still enjoying programming!</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-15T10:45:34.503Z
Answers.Text: Welcome to [cseducators.se]! I like the project based on combined class assignments!
Answers.UserDisplayName: ItamarG3
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-03-15T05:39:05.630Z
Answers.LastActivityDate: 2018-03-15T05:39:05.630Z
Answers.UserDisplayName: Edwin Buck
Answers.Body: <ol>
  <li>Figure out some simple way to let him test out of a unit - a quicker program to show he knows his stuff, a simple conversation with you, something that doesn't require much effort.</li>
  <li>Ask him what he wants to do first - he might want to work on some impressive projects of his own.</li>
  <li>If he doesn't have any ideas, gather some challenging project ideas, and show them to him - they could be learning a language like lisp and writing some project in that, or they could be implementing an algorithm in a paper, or they could be... you get the idea.</li>
  <li>To include the cooperation aspect, get him started on an open-source project as well of his choosing, or let another advanced, interested student work with him on his challenging project.</li>
  <li>If he's disdainful of the way it's taught, you could challenge him to teach the class for a day.</li>
  </ol>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-17T16:00:32.357Z
Answers.LastActivityDate: 2017-06-17T17:38:20.787Z
Answers.LastEditDate: 2017-06-17T17:38:20.787Z
Answers.UserDisplayName: auden
Answers.Body: <p>When I was in high school, by the time I had my first programming courses I already knew a lot more than the contents of these courses, since I had been programming as a hobby for a while.</p>
  
  <p>The teacher soon realised this and didn't want either of us to waste our time. He provided me with each mandatory assignment/mini-project when I finished the previous one (no artificial delay), and when I'd done them he offered me to take the final test ahead of schedule. </p>
  
  <p>I passed these courses in ~2 weeks rather than 10 and had my grade, and everyone was happy. I didn't have to lose time in class, and he could stay focused on the students who were at the level the course intended to teach.</p>
  
  <p>I guess this comes down to what rules the school has, but I think it is fair that the teacher has no responsibility to go beyond the course subject, and should rather put his time and effort into working towards the majority of the class getting to that level. </p>
  
  <p>So I would suggest doing the same, if this would be allowed. The final test questions can of course be adjusted (similarly to re-exams at university) so that there was no risk of me "leaking" the questions to other students. </p>
  
  <p>If you explain beforehand that this is an option, and would mean the student can get done asap, maybe they will see that they have an incentive to cooperate and get the work done. </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-09-03T01:08:19.270Z
Answers.Text: Welcome to [cseducators.se]! *"The final test questions can of course be adjusted..."* made my stomach turn a little bit.  Creating good questions for CS tests is *hard*.  I hope we hear more from you in the future.
Answers.UserDisplayName: Ben I.
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-09-03T13:38:52.457Z
Answers.Text: @BenI. I agree that creating good CS questions is hard. In this case it was a very basic programming course though, and I think any book about programming will contain plenty of examples that could be useful. Thinks like for-loops, string copying, etc.  I understood the OP to be in a similar situation, not university level CS. I didn't discuss it with the teacher, but I'll have to assume it wasn't a big issue for him since he was willing to do it. I'd imagine they have a set of questions they rotate anyway from year to year, otherwise the problem of leaking questions would easily happen.
Answers.UserDisplayName: user985366
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-09-02T12:38:20.393Z
Answers.LastActivityDate: 2017-09-02T12:38:20.393Z
Answers.UserDisplayName: user985366
Answers.Body: <p>Ask him if there are any projects of interest he'd like to work on.  I'd try to engage the student in research of some sort but he would still be required to demonstrate proficiency/mastery of the topics in the course.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-07T05:49:29.493Z
Answers.Text: The main issue is that we have project guidelines. They can't be made to fit the student's choice, so I am partly trying to think of a guideline that would allow him to do something on his level, and yet he'd still have to meet requirements (I guess you could say: "on his terms").
Answers.UserDisplayName: ItamarG3
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-29T05:23:28.510Z
Answers.Text: My daughter is in a technical program in high school where she is well beyond the level of the teacher or the coursework, so she TA's.  She takes on a management role for class projects and helps to review/coach/prescreen other students work. this frees the teacher to take care of non-technical and non-classroom things that are a part of running a technical class.
Answers.UserDisplayName: pojo-guy
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-06T21:58:30.797Z
Answers.LastActivityDate: 2017-06-06T21:58:30.797Z
Answers.UserDisplayName: Jaye Nias
Body: <p>I teach a high school student who has already developed an understanding of the language used in my curriculum and causes difficulties. The lectures and programming projects in the curriculum bore this student, and as a result, he doesn't cooperate when it comes to doing the coding labs and projects. He simply doesn't agree to do the work. An obvious "solution" is simply to give him a low grade, but it is not an ideal solution, because he has readily mastered the material.</p>
  
  <p>Specifically, what techniques can I employ to encourage him to work on projects and to cooperate? Alternatively, what changes can I make to project guidelines for such students?</p>
  
  <p>Tests reflect that the student knows the material (though it is clear that he is disdainful of the way it is taught).</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-06T20:12:06.800Z
Comments.Text: What is the age range? If it is prior to university, are you at a public or a private school? Sometimes your responses to issues like these depend on the administrative context of the institution you work for.
Comments.UserDisplayName: Ben I.
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-06T20:24:24.307Z
Comments.Text: Nothing about your question seems specific to CS. Could you rewrite it?
Comments.UserDisplayName: Ellen Spertus
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-06T20:37:25.483Z
Comments.Text: Differentiate: Look at your lesson objectives, and give him more challenging work, that leads to the same plus additional objectives. There is always more that they can learn, even if they are at M.Sc level, there is more. May be a research project. — Can you edit the question to make it specific: What material? What course? What age?
Comments.UserDisplayName: ctrl-alt-delor
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-06T22:37:47.523Z
Comments.Text: What language is your course in? That might make a huge difference for how to provide additional challenges.
Comments.UserDisplayName: Peter
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-07T01:28:48.247Z
Comments.Text: If the situation and school policy allows it, maybe the advanced student can help others as a teacher's aid. The helps the other students, reduces some of your load, and helps the advanced student by making them think about the subject enough to explain it to someone else.
Comments.UserDisplayName: Gypsy Spellweaver
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-07T02:49:17.590Z
Comments.Text: This question has raised another [question in meta](https://cseducators.meta.stackexchange.com/q/87/104) about site scope. Join the discussion if you like.
Comments.UserDisplayName: Gypsy Spellweaver
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-07T07:49:17.760Z
Comments.Text: @GypsySpellweaver I feel my question still needs more details, but I am unsure which.
Comments.UserDisplayName: ItamarG3
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-07T09:01:34.850Z
Comments.Text: Specifics always help, and will make this a CSE question rather than general education. We need these students in industry, don't loose them! The specifics can be exactly your scheme of work, etc.
Comments.UserDisplayName: Sean Houlihane
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2018-03-13T16:47:12.220Z
Comments.Text: I am this student. Send Halp.
Comments.UserDisplayName: undo
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2018-03-14T02:38:52.850Z
Comments.Text: @rahuldottech: For you I have good advance. Take the challenge/test out option.
Comments.UserDisplayName: Joshua
Tags: <secondary-education><best-practice><student-motivation><differentiation>
Title: Problematic student at a very high level
ThreadText: # Problematic student at a very high level
  
  (Asked by: username_0 on 2017-06-06)
  
  I teach a high school student who has already developed an understanding of the language used in my curriculum and causes difficulties. The lectures and programming projects in the curriculum bore this student, and as a result, he doesn't cooperate when it comes to doing the coding labs and projects. He simply doesn't agree to do the work. An obvious "solution" is simply to give him a low grade, but it is not an ideal solution, because he has readily mastered the material.
  
  Specifically, what techniques can I employ to encourage him to work on projects and to cooperate? Alternatively, what changes can I make to project guidelines for such students?
  
  Tests reflect that the student knows the material (though it is clear that he is disdainful of the way it is taught).
  
  **Tags:** secondary-education, best-practice, student-motivation, differentiation
  
  > **Comments:**
  > **username_1**: What is the age range? If it is prior to university, are you at a public or a private school? Sometimes your responses to issues like these depend on the administrative context of the institution you work for.  
  > **username_2**: Nothing about your question seems specific to CS. Could you rewrite it?  
  > **username_3**: Differentiate: Look at your lesson objectives, and give him more challenging work, that leads to the same plus additional objectives. There is always more that they can learn, even if they are at M.Sc level, there is more. May be a research project. — Can you edit the question to make it specific: What material? What course? What age?  
  > **username_4**: What language is your course in? That might make a huge difference for how to provide additional challenges.  
  > **username_5**: If the situation and school policy allows it, maybe the advanced student can help others as a teacher's aid. The helps the other students, reduces some of your load, and helps the advanced student by making them think about the subject enough to explain it to someone else.  
  > **username_5**: This question has raised another [question in meta](https://cseducators.meta.stackexchange.com/q/87/104) about site scope. Join the discussion if you like.  
  > **username_0**: @username_5 I feel my question still needs more details, but I am unsure which.  
  > **username_6**: Specifics always help, and will make this a CSE question rather than general education. We need these students in industry, don't loose them! The specifics can be exactly your scheme of work, etc.  
  > **username_7**: I am this student. Send Halp.  
  > **username_8**: @rahuldottech: For you I have good advance. Take the challenge/test out option.  
  
  ---
  
  ## 12 answers
  
  ### Answer by username_1 on 2017-06-06. Score: 35 | Accepted answer
  
  The best way to deal with this kind of student is to **head it off at the pass**. If you can get the student at the beginning, you can often prevent the problem from festering in the first place. I have a student coming in next year who I have already been warned will have this problem, and I plan to show this to my class on the first day:
  
  [![enter image description here](https://i.sstatic.net/vskFN.jpg)](https://i.sstatic.net/vskFN.jpg)
  
  I will then say something like, *"For whom is this situation unfair?"*
  
  When the kids point to the fish, I will point out that it is *just as unfair to the monkey*. I will then ask them to talk to a neighbor and figure out why.
  
  I will finish up by saying that I have a promise for the fish of the class: everyone who puts in the work *will be able to climb the tree*. That's MY job. However, I have to find a way to be fair to the monkeys as well. That means that I must reserve the right to try to find ways to push them to get better in my classroom.
  
  If they are in that position, and can get the work done very easily, and find that I give them harder work, I ask a few things of them: **(1)** understand that this is fairer than it may initially feel, and **(2)** understand that this comes from a place of actually caring about them as people. Making more appropriate assignments for them is harder for me as well. If I didn't care about them as people, I could just let them get away with the minimum.
  
  In essence, then, I am trying to recast making differentiated, harder assignments into something that the students will understand as both a loving act, and one that respects them deeply as individuals.
  
  > **Comments:**
  > **username_0**: This is a very good solution. In fact it helps with another students who fits the description (warned about future problems like that). Thanks!  
  > **username_11**: Sounds like a Pedagogical Pattern, actually. Great name for it too. Head It Off At The Pass. Love it.  
  > **username_11**: See the book, [Pedagogical Patterns: Advice for Educators](https://www.amazon.com/Pedagogical-Patterns-Educators-Joseph-Bergin/dp/1479171824) for a moderately complete view, though there is an international, ongoing effort. [Joseph Bergin's website](http://csis.pace.edu/~bergin) has a lot of the material. I have a connection to this group. -- OOPS. I was responding to a question, now withdrawn.  
  
  ---
  
  ### Answer by username_15 on 2017-06-06. Score: 12
  
  You said he refuses to work, but has mastered the material. How do you know he's mastered the material?
  
  I've had students like this in the past. They'll finish 2 weeks worth of assignments in a day and a half.
  
  Talk to them. See what interests them about programming. The few times that this has come up, the student had something specific they wanted to build. It was well above what was expected in class, but it was still programming, so still related. We came up with a plan for them to work on their pet project, which always required that they finish the assignments I gave first. Then, they're free to build their project.
  
  > **Comments:**
  > **username_0**: That is the core of the problem. He refuses to cooperate, but I have seen his work. He does do things on occasion.  
  > **username_14**: @username_0 What work is required to pass the class then?  
  
  ---
  
  ### Answer by username_4 on 2017-06-06. Score: 9
  
  A few ideas...
  
  **Scaffold your problem sets.** CS50 -- and by extension CS50 AP -- sections students according to "less comfortable" and "more comfortable" tracks. ([See what they do here for pset2.](http://docs.cs50.net/2016/fall/psets/2/pset2.html#what-to-do)) Giving students options, especially in terms of difficulty level, is a key. This may involve creating problems with additional, optional components, which will be additional work on your part, but it also gives opportunities for other students to extend their learning. I also love what they include in their syllabus:
  
  > Know that CS50 draws quite the spectrum of students, including "those
  > less comfortable," "those more comfortable," and those somewhere in
  > between. However, what ultimately matters in this course is not so
  > much where you end up relative to your classmates but where you, in
  > Week 11, end up relative to yourself in Week 0.
  >
  > Each student’s final grade is individually determined at term’s end.
  > Remarkable effort and upward trending are considered, as is input from
  > the teaching fellows. The course does not have pre-determined cutoffs
  > for final grades. The course is not graded on a curve. Those less
  > comfortable and somewhere in between are not at a disadvantage
  > vis-à-vis those more comfortable.
  
  Do you reward a student who knows everything from the start and doesn't show any signs of progress with a student who knows nothing at the start but makes dramatic progress? That's a huge philosophical question to consider in terms of how you assess student learning.
  
  **Give him additional, empowering responsibilities.** Find a way for him to have a special role in the class. Use this advanced knowledge as a strength for you to use. When giving time to work in class, have him be a source of answers to his peers' questions. Better yet, have him lead a walkthrough where he has to teach a mini-lesson for how to approach a particular assignment. If he's going to be bored during a lecture, encourage him to write a sample program or two for use in direct instruction.
  
  **Make him complete the same work in a different language.** Have him complete the same assignment, but in a language different from the one assigned. This will require him to learn different programming idioms, libraries, and paradigms. A solution in an imperative language would be much different from one in a functional language. No one is an expert at every language, so there's always a new challenge to be had with a different language.
  
  On a much smaller level, you could require challenges on a site like HackerRank either in the language of the class or a new one entirely.
  
  **Edit:**
  
  I also have two Java-specific suggestions...
  
  * Have him learn a lower-level language (e.g. C) in which to implement the program.
  * Challenge him to leave the object-oriented world and learn a functional language in which to complete the assignment.
  
  > **Comments:**
  > **username_5**: Some _very_ excellent suggestions. I really like the last option. Good chance the student is ahead of the curve because of self-directed learning and/or a true passion for the subject. Helping the student reach their own potential is much better than requiring them to drag their feet at the standard curriculum's level. Also allows for grading their work against their potential, and the student can feel they've actually _earned_ the grade instead of _passed_ some required course.  
  > **username_0**: The java specifics are quite useful. I will definitely use them,  
  > **username_12**: I'm a big fan of giving strong student's extra responsibilities. Research points to deeper learning and understanding of material through teaching it to others, and that's certainly been my experience with students as well. If the student can check their attitude about the way that the course is being taught, they could become an excellent asset to helping bring up students who are falling behind. Why not make use of that?  
  > **username_13**: As a Junior in high school, my daughter became a teacher's assistant in a technical program. She actually knew quite a lot more about the contents of the program than the teacher did, so he delegated a lot of the responsibility to her, including reviewing hte work of other students, which enabled him to take care of the details (school politics, etc) that students shouldn't be involved in. The biggest problem with that was some students resented the perceived amount of "pull" she had, even as her role was primarily coaching them towards better grades.  
  > **username_14**: @nocomprende You may have to learn a mindset in the process in addition to just learning the curriculum.  That will not happen if you skip the class.  
  
  ---
  
  ### Answer by username_16 on 2017-09-13. Score: 5
  
  In the spirit of the other answers, I would recommend:<http://www.usaco.org>
  
  It contains excercises that progress from trivial to "stomps most undergrads" which would help him find his level (and maybe some humility).
  
  It contains an automatic grader with hidden test cases which allows more independant learning + he learns to debug and search for edge cases.
  
  It's the official site for the training and the selection for US national team which might help him get some awards or medals if he is really talented (IOI,google code jam,..) which might help him in college admission \job interviews.
  
  Students from other countries can use the website to train and I think the equivalent website for the French team is: FranceIoI.org
  
  > **Comments:**
  > **username_11**: Welcome to CSEducators. Thanks for that link and the explanation.  
  
  ---
  
  ### Answer by username_17 on 2017-07-07. Score: 5
  
  Mastering the material is less than half of what it takes to be a great engineer. Showing up and doing the work - even when it is phenomenally boring - is critical.
  
  Giving him a pass will not in any way prepare him for a career in this field. If he's not willing to do the BS tasks, he shouldn't pass. If you feel so inclined, give him the final and base his entire grade off of that, and he'll become someone else's problem later. BUT, as an educator - especially at this level - your goal should be not only to develop mastery of the material, but to imbue a good work ethic and a sense of responsibility.
  
  Case in point: I hate changing diapers, but I love being a parent. Guess what I do quite frequently, and how fun that part is.
  
  I've met quite a few very intelligent people who work menial jobs because the industry won't adapt to their demands, because their boss was "a moron," etc.
  
  If this were a university-level course, he would fail. A (small-ish) part of high school is about preparing for university, and for life afterward. If this student winds up in my class at university, with this attitude, he will fail. Communication is key - talk to the kid about this - but excess accommodation (outside of disabilities) is NOT doing him, or anyone else, any favors.
  
  Aside from teaching, I've worked in embedded systems, EE, web, and games. The latter is the most accepting of this resistance to structure, but even that has its limits. You have to do the job you're given. If you're lucky, you can turn that into the job you want.
  
  It is FAR better that the student learn this now, rather than coasting on your compassion, understanding and attempts to help until, one day when the training wheels come off, he falls flat on his face. Help, in this case, may be teaching him a lesson. It sucks, but I'd rather have learned that lesson at 16 than 30.
  
  Good luck, and I admire the question. Far too many teachers just don't care.
  
  > **Comments:**
  > **username_18**: Hi David! Welcome to [cseducators.se]! Glad to have you on board, and thanks for your candor. I hope to see you around the site more, or maybe in chat.  
  > **username_17**: @username_18 there's a chat room? Sweet!  
  > **username_18**: Yup, [right here](https://chat.stackexchange.com/rooms/59174/the-classroom). It's called The Classroom.  
  > **username_17**: @nocomprende Excellent points.  
  
  ---
  
  ### Answer by username_11 on 2017-07-01. Score: 4
  
  No one has yet mentioned the long term effects on the student. If the person wants to explore computing as a career they need people skills, not just technical skills. But that is a lesson your entire class needs, not just this one person.
  
  Highly valued people in the computing industry spend most of their time and effort working with other people -- and not just in coding teams. Design, estimation, managing large code bases, etc. all require people skills. There are a few people who are absolute horrors personally who are valued, but those are extremely rare and need unique skills. For everyone else, learn to communicate, to offer and to accept advice.
  
  On a somewhat different scale, but perhaps related, I know a few people who are successful but also Extremely Introverted. But they have worked to overcome their tendency to withdraw and so their introversion isn't always obvious. Introversion is good if you draw power from your own thoughts and considerations, but it can be a handicap if you need to act outwardly in the world and haven't learned how. So, if that is the real issue here, deal with it as such. For the record, I am very introverted by nature. It cost me a lot early on until I learned how to deal with it. The scariest thing for me was to state my opinions. Perhaps you didn't notice that here :-).
  
  For the entire class, field trips to local tech industries can be helpful so that students (all of them) can see what really happens.
  
  > **Comments:**
  > **username_14**: These days if you want to do anything interesting in computing, you must work with others.  Even if you could do it on your own, your employer may dislike having a bus factor of one.  
  > **username_11**: To explain: "Bus Factor" is the minimum number of team members that, if they left the project (went over the cliff in a bus crash) the project becomes unviable. Pair Programming and similar practices are partly intended to increase this number as knowledge is spread through the team. Sometimes called "Bus Number". Thanks @username_14, an important point. Only the extremely rare "prima donna" is allowed to work alone and then only when there are no alternatives. If "Thug The Troll" has a unique skill then you may need to let him work alone. But you must _really_ need that skill.  
  > **username_11**: I think more than documentation is necessary. For all of the  usual reasons/caveats about docs. Experienced folks > docs any day. I've been the bus number one person a few times and the fact that I drove a VW Bug with a gas leak terrified by boss.  
  
  ---
  
  ### Answer by username_19 on 2018-03-15. Score: 3
  
  I was this student. Back then, we were learning BASIC in high school. I had learned it when I was nine, and had already learned Pascal (the advanced language we'd learn next).
  
  My high-school teacher responded to my question "Do I really have to do this programming assignment?" with the following:
  
  1. I need something to grade for your classwork. You may replace all the class assignments with one graded project (every six weeks); but, it has to be harder than all of the class assignments combined (and it had better be good).
  2. You still have to take the tests / quizzes.
  
  Today, I as so grateful that she permitted me to challenge myself. She's one of the handful of High School teachers who's name I remember.
  
  I wrote a rudimentary chat system, an ASCII "graphics" editor, and a role-playing text adventure game (pre-GUI computing). It was great, and my teacher would pop in from time-to-time to ask what I was doing, and remind me of the deadlines.
  
  Decades later, I'm still enjoying programming!
  
  > **Comments:**
  > **username_0**: Welcome to [cseducators.se]! I like the project based on combined class assignments!  
  
  ---
  
  ### Answer by username_20 on 2017-06-17. Score: 3
  
  1. Figure out some simple way to let him test out of a unit - a quicker program to show he knows his stuff, a simple conversation with you, something that doesn't require much effort.
  2. Ask him what he wants to do first - he might want to work on some impressive projects of his own.
  3. If he doesn't have any ideas, gather some challenging project ideas, and show them to him - they could be learning a language like lisp and writing some project in that, or they could be implementing an algorithm in a paper, or they could be... you get the idea.
  4. To include the cooperation aspect, get him started on an open-source project as well of his choosing, or let another advanced, interested student work with him on his challenging project.
  5. If he's disdainful of the way it's taught, you could challenge him to teach the class for a day.
  
  
  ---
  
  ### Answer by username_21 on 2017-09-02. Score: 2
  
  When I was in high school, by the time I had my first programming courses I already knew a lot more than the contents of these courses, since I had been programming as a hobby for a while.
  
  The teacher soon realised this and didn't want either of us to waste our time. He provided me with each mandatory assignment/mini-project when I finished the previous one (no artificial delay), and when I'd done them he offered me to take the final test ahead of schedule.
  
  I passed these courses in ~2 weeks rather than 10 and had my grade, and everyone was happy. I didn't have to lose time in class, and he could stay focused on the students who were at the level the course intended to teach.
  
  I guess this comes down to what rules the school has, but I think it is fair that the teacher has no responsibility to go beyond the course subject, and should rather put his time and effort into working towards the majority of the class getting to that level.
  
  So I would suggest doing the same, if this would be allowed. The final test questions can of course be adjusted (similarly to re-exams at university) so that there was no risk of me "leaking" the questions to other students.
  
  If you explain beforehand that this is an option, and would mean the student can get done asap, maybe they will see that they have an incentive to cooperate and get the work done.
  
  > **Comments:**
  > **username_1**: Welcome to [cseducators.se]! *"The final test questions can of course be adjusted..."* made my stomach turn a little bit.  Creating good questions for CS tests is *hard*.  I hope we hear more from you in the future.  
  > **username_21**: @BenI. I agree that creating good CS questions is hard. In this case it was a very basic programming course though, and I think any book about programming will contain plenty of examples that could be useful. Thinks like for-loops, string copying, etc.  I understood the OP to be in a similar situation, not university level CS. I didn't discuss it with the teacher, but I'll have to assume it wasn't a big issue for him since he was willing to do it. I'd imagine they have a set of questions they rotate anyway from year to year, otherwise the problem of leaking questions would easily happen.  
  
  ---
  
  ### Answer by username_22 on 2017-06-06. Score: 2
  
  Ask him if there are any projects of interest he'd like to work on. I'd try to engage the student in research of some sort but he would still be required to demonstrate proficiency/mastery of the topics in the course.
  
  > **Comments:**
  > **username_0**: The main issue is that we have project guidelines. They can't be made to fit the student's choice, so I am partly trying to think of a guideline that would allow him to do something on his level, and yet he'd still have to meet requirements (I guess you could say: "on his terms").  
  > **username_13**: My daughter is in a technical program in high school where she is well beyond the level of the teacher or the coursework, so she TA's.  She takes on a management role for class projects and helps to review/coach/prescreen other students work. this frees the teacher to take care of non-technical and non-classroom things that are a part of running a technical class.  
  
  ---
  
  ### Answer by username_9 on 2021-12-15. Score: 0
  
  You say that the student already "knows the material". If this is true, then this could be an ideal opportunity to offer the student Credit by Exam or some type of competency-based assessment.
  
  Offer the student a choice to take the final exam early and/or complete the most important course projects now. If the student passes, you can give them a passing grade for the course. If they fail, then tell them that they have not demonstrated mastery and need to keep working.
  
  One caveat to this is that it is probably unfair to limit this opportunity to just this one student, so you could offer it as an option to any student who wishes to short-circuit the course and complete it early. Read up on [Competency-Based Education (CBE)](https://www.ed.gov/oii-news/competency-based-learning-or-personalized-learning) as that is exactly what that is. The focus of the course shifts from "sit through the material and not cause trouble" to "must demonstrate mastery of X, Y, and Z by passing Exams A, B, and C and completing Project D".
  
  
  ---
  
  ### Answer by username_10 on 2018-03-13. Score: -4
  
  First of all, I don't think the student is the problem. If you think he has understood the chapter well, you should also kick it up a notch. Backing down or not stepping up will essentially point that you know the bare minimum that is required to get a teaching job.
  Just tell him or your head that he is much more advanced than the class and try arranging for a more complex lesson so that he also gains interest in the lesson.
  
  > **Comments:**
  > **username_0**: At the cost of the remaining 95% of the class failing tests and not understanding the material? And I find your statement that "I know the bare minimum that is required for a teaching job" very, very insulting.  
  
  ---
  
  