15
$\begingroup$

I saw a question about how to deal with high performing students, and although I think it is very important, the problem that we are facing in my school is the exact opposite.

We have a high number of ghost students (approx. 25%) and also a large number of students dropping or failing in a second year OOP Java class (approx. 50%).

Most of the dropping/failing students have passed CS1 (intro to programming with C) and CS2 (data structures with C). The problem is that they passed with a low grade (10 or 11 in a 0-20 scale) and in some cases, they are enrolling in the OOP class for the 5th or 6th time and have had CS1 and CS2 a long time ago. The main issue is that they've forgotten the most basic programming concepts, and each year it is getting worse.

What should the teacher do?

  1. assume that the students know the basis and just keep on moving forward. (knowing in advance that most will fail)
  2. reserve the first weeks to recap the “forgotten concepts”.
  3. Advise the students to enroll in CS1/CS2 again.

Anyone else has this problem? What have you done? Did it work?

$\endgroup$
6
  • $\begingroup$ Great question! I edited out introductory-programming because we are working to replace it with a more accurate tag. See meta for a full discussion of the effort. $\endgroup$
    – Peter
    Jun 21, 2017 at 22:03
  • 2
    $\begingroup$ What are "ghost students"? I could recommend an exorcist. :) $\endgroup$
    – Ben I.
    Jun 21, 2017 at 22:56
  • 1
    $\begingroup$ "Ghost students", are those that you know that exist, but have never actually seen them on classes... :) $\endgroup$ Jun 22, 2017 at 13:26
  • $\begingroup$ +1 for the question. Finding this eliminated the need to post the exact same question myself (at a large U.S. community college). $\endgroup$ Dec 23, 2019 at 4:46
  • 2
    $\begingroup$ Does credit not expire in your setting? Where I'm from, any passing grade from a class is set to expire after 3 years (unless you pass a re-test), which mostly prevents these issues. $\endgroup$
    – Flater
    Dec 30, 2019 at 10:42

7 Answers 7

11
$\begingroup$

One elegant way to deal with this sort of problem (though it does take a lot of work) is to create a self-explanatory review packet (including a practice quiz!), give it out on day one, and promise that there will be a quiz on its contents during the second week of class.

You then don't need to spend another minute on the material in class, at least for that first week. (Especially for that first week. They should not feel hand-held at first! See below...) You might want to make help available during office hours, however.

This has a second benefit, which is that you can set a recommendation for withdrawal from the class. I would give this a soft sell: "if you can't achieve an 80% on this quiz, then the kindest thing I can do is to recommend that you drop the class. It's not to be mean, but you WILL NOT have a good time here if you haven't reasonably mastered these concepts."

By putting the onus of weeding poorly performing students back on the students themselves, you will (hopefully!) find that you get very little resistance. And folks who choose to stay on anyway will be making an active choice to work very hard going forward (or suffer the consequences).

The big brunt of the work need only be done one time; the review packet and the practice quiz can be the same every semester. It is only the quiz itself that need be changed.

While this should weed out some of the lowest performers (and give many others a much-needed review), if the students are as low-performing as you say, it might not hurt to touch on some of the harder concepts that people get stuck on when you come to them again in the class.

Hopefully you'll have much better performance in the course going forward. Best of luck!

$\endgroup$
9
  • 3
    $\begingroup$ Ben, I understand what you have said. The main problem is that this specific class is not optional. To graduate they will have to pass one day. A few minutes ago I had a code review with one of those students (in a server-side dev class using PHP). The student is entirely unable to understand even the smaller concepts. He has just made a couple of Inserts on a few tables, but even that code was provided by me in the classes a few years ago. My question is: should you tell a student that s/he is not fitted for this and s/he is just spending money? :( $\endgroup$ Jun 22, 2017 at 13:34
  • 1
    $\begingroup$ I don't believe there are people who can't get the first couple of CS courses. That being said, some people take longer to get it and some require different ways of having things explained to them. $\endgroup$ Jun 22, 2017 at 15:48
  • 1
    $\begingroup$ @NunoGilFonseca I agree with Alfred Thompson. If the course is required, then it falls onto the instructor to create a path that the student can follow in order to be successful. That path does not have to involve relaxing the standards they have to meet, and it can be difficult, but it must exist. Give them a reasonable list of resources and hoops (ie. not "read these 3 books"), and just make the standards and your recommendations for how to meet them know. It is our job to help the students get to where they need to be from where they are, not from where we wish they were. $\endgroup$
    – Ben I.
    Jun 22, 2017 at 15:54
  • 5
    $\begingroup$ @NunoGilFonseca no class is actually mandatory, because your major isn't mandatory. I have tutored people, even smart people, that were not able to conceptualize comp sci principles and, for all they could squeeze by with barely passing grades in early classes, were simply not suited as programmers. If someone is graduating a course with so little retention it's possible that they fit in that category of students that will never feel natural in CS no matter how hard they try. It is better to recognize that now when there is still time to pursue another major then 2 years later. $\endgroup$
    – dsollen
    Jun 26, 2017 at 18:04
  • 1
    $\begingroup$ I found this because I was about to post a basically identical question myself. I'm in the same situation as the OP (including basically same percentage stats I was going to post), at a U.S. community college. Unfortunately: All of the suggestions given here are things I've tried (for years!) and none of them make any difference at all. Students simply ignore the first-day review, packets, labs, quizzes, requests for one-on-one meetings, recommended cutoffs to withdraw, etc. They just keep coming with defeated looks on their faces, silently, day after day, semester after semester. $\endgroup$ Dec 23, 2019 at 4:43
6
$\begingroup$

I face the same issue every year. In France where I teach, University is basically free and, in some bachelor curricula you can repeat the year and re-enrol in courses you have not validated as much as you like (almost). At some point, there is little that the teacher can do.

  • Allocating say the first lecture and first lab to rehash the basics works for some students (those who are willing to get better). Actually grading this first lab might be an incentive to have the student work on it.
  • Asking them to re-enrol in a prerequisite course does not work so well since it means that it increases the workload and they only touch the interesting concepts at the end of the semester, and mean while they continue to fail in your course.
  • In some cases, I have seen students genuinely becoming better when they are paired with a good student and that the latter actually takes the time to explain what's going on, like a private tutor. But that is more a result of the guidance of the good student than something the teacher does, and I think a teacher should not expect a good student to act as a tutor. But favouring this kind of pairing (by making it explicit in the grading that a student "helping" another one may get a bonus) could work. Such grading say for a project needs to be devised carefully though.

Ultimately, this is something that needs to be addressed at the level of the degree itself, for all courses. For any course, 10/20 (or whatever passing grade) should only mean, this student actually knows the bare minimum to enrol in next years courses. This needs to be a curriculum-wide decision. But it can be hard in some countries since often courses are aggregated in "blocks" and you can pass as long as the average on a block is a passing grade (while you may very well have failed a course in the block). At his/her level, the only thing a teacher can do is to be stricter and rather fail borderline students than pass them (so as to not send these "sure to fail" students to more advanced courses yet).

$\endgroup$
1
  • $\begingroup$ Three years later - any solutions? Don't the universities want to address this, or is it a profit center for them? $\endgroup$
    – Scott Rowe
    Sep 26, 2020 at 15:19
6
$\begingroup$

I noticed that most of the answers focus on the things (topics, lectures, etc.) I have found that it is helpful to focus on the students. I normally ask them for a one-on-one chat and ask them why are they here? What do they like / not like about CS? This normally opens an opportunity for making their experience more engaging for them. It also identifies those that really want to succeed, and those that don't. In my experience the students that end up dropping out are the ones that actually want to (or don't really care). It's worth knowing who really does want to succeed, and who doesn't.

$\endgroup$
1
  • $\begingroup$ It's definitely worth knowing, I think the students themselves ought to want to know. $\endgroup$
    – Scott Rowe
    Sep 25, 2020 at 20:55
4
$\begingroup$

I do tend to review some basic topics at the start of a semester to get a handle on what students have forgotten or never learned completely. After that I don't use class time as I expect students to make some efforts on their own. I teach high school so I may handhold a bit more than a university professor. In my case that means I schedule time for helping students during their free periods or before or after school.

Additional resources, especially for review topics, are often helpful. I don't think that written resources work for everyone. I record a lot of the presentations I give for early topics and make them available for students. Lately I am trying to find videos by other people who, I hope, explain things differently than I do in hopes of reaching different students.

An other option is to use peer tutors to help struggling students. Often peers who already understand a topic can make it understandable in ways that would not occur to me.

$\endgroup$
2
$\begingroup$

Set a standard for the course and adhere to that standard. If a student cannot meet that standard, inform the student of their options. However, do not water down the teaching as that negatively impacts the other students, the value of the major and the prestige of the school.

There is a school in my area that pumped out a lot of CS students that were inept in CS positions. We've now decided that a CS degree from that school means you know a lot of Excel formulas, but can't analyze business processes or write functional code. Internally, we no longer consider a CS degree from that school as a qualification for a CS position, though they make great accountants. :)

$\endgroup$
1
  • $\begingroup$ One sensible answer! Wish I could +10 it! If out of compassion etc you give fraudulently lenient grades, you may (or not) help a couple of students. But you damage the system at an infinitely larger scale. $\endgroup$
    – Rusi
    Oct 2, 2020 at 4:10
1
$\begingroup$

You can provide some sort of anonymous public feedback channel with which students can communicate with you and their classmates. A wiki works well for this. You can get information that a student may not be willing to share face to face. You can ask questions yourself on this channel to prompt useful responses.

While this sounds risky, it really isn't. If a student vents, his/her classmates will probably correct the record. But a shy/underperforming student may feel empowered by having such an option.

It needs to be both public and anonymous, however. If it isn't public you might get only the venting and not a more complete picture. If it isn't anonymous you won't learn some important things, though it is also useful for students asking for clarification of points made in class.

I used this successfully over several years.

$\endgroup$
1
  • 1
    $\begingroup$ Your mileage with this technique may vary depending on your student population. I recall a blog post by a professor who had switched universities, and lamented that his ratemyprofessor comments completely changed in nature. He ran some language analytics across the entirety of both universities on that site, eventually coming to the conclusion that the feedback given at an institution says as much about the students themselves as it does about the teachers. $\endgroup$
    – Ben I.
    Jun 24, 2017 at 21:37
1
$\begingroup$

I know that this might not be the answer that you're looking for but I have been a software engineer for over 20 years and I feel that coding and software engineering is just simply not for everyone. I believe that it takes a certain mindset and interest to grasp and pursue coding and software, and this is more true the more sophisticated the topic.

This is not to say that software engineers individually or as a group are smarter than other people, which I don't think is true either. My wife has a master's degree in a non-technical field (I myself have only a BS in CS), and when I try to describe what I do at work her eyes just glaze over. She will sometimes watch over my shoulders as I'm working and all she says is, "wow your job is really tedious!". This is just how it seems to her.

I know countless people in the industry who started out as developers and did it for a year or two even though they did not like it, and later moved on into other related positions such as project manager, trainer, technical writer, etc. Doing hard core problem solving 5-10 hours a day dealing with things that are only in your mind and don't exist in the real world isn't something that everyone can relate to.

Edit: One more comment on this. Since I wrote this answer 3 years ago my kids have gotten into high school and are starting to decide what they want to pursue in college. They are both very advanced in math, my son completed calculus as a high school junior and just took the SAT and got an 800 in math. He is of the generation that is surrounded by technology and uses it every day. However he has zero interest in coding or even software or IT. He sees what I do and has tried it but just doesn't like it. I am sure he is technically intelligent enough to do it if he had to but he has tried it and just finds it boring and uninteresting. I think kids and their parents and teachers should just be realistic about whether or not coding is something the kid genuinely wants to do or if they are doing it because someone told them it would get them a good job one day.

$\endgroup$
4
  • $\begingroup$ I agree. It would be good if people could learn that they "do not like" programming before investing years of their lives to go through school and then land a job. Perhaps we need some targeted vocational assessment and counselling in High School? It wasn't so long ago that only 5% of people went to college, and then it was often simply because their parents wanted them to and had the money. Being able to go doesn't mean people should, for their own well-being and that of the community. $\endgroup$
    – Scott Rowe
    Sep 25, 2020 at 20:53
  • $\begingroup$ After seeing your edit, I am again prompted to wonder what many young people do want to do? This seems to be a frequent issue in this century. Long view: Freud said that life is made worthwhile by 2 things: Work, Love. So, if someone does not find work they want to do, their life is likely to be "a hiding to nothing". Do they not realize this? Perhaps it is connected to the recent news that 25% of people in the US age 18-25 have considered suicide this summer. Ennui might be a bigger problem than we can solve in Computer Science Educators, I think. $\endgroup$
    – Scott Rowe
    Sep 25, 2020 at 22:00
  • $\begingroup$ I guess all I can say is that there are a lot of choices besides coding and suicide. $\endgroup$ Sep 28, 2020 at 18:05
  • $\begingroup$ (for your son) There is a (outlook to) programing that is much closer to math than is the norm See this And that ppl (like your wife) "glaze over" may well be because we tend to delight in accidental needless complexity, not authentic difficulty See this $\endgroup$
    – Rusi
    Oct 2, 2020 at 4:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.